OpenBTS: Yate Softswitch

From OnnoWiki
Revision as of 07:11, 28 July 2012 by Onnowpurbo (talk | contribs) (New page: ==Yate Install== Yate is a very flexible engine for routing messages. It's designed to run as everything from a large-scale SIP switch to an actual SIP client capable of running on a phon...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Yate Install

Yate is a very flexible engine for routing messages. It's designed to run as everything from a large-scale SIP switch to an actual SIP client capable of running on a phone. The install is demonstrated Here.

To interoperate with OpenBTS, you'll need to install libgsm1-dev BEFORE building yate. Without this library installed, yate will not support the gsm codec and you will see the following message

<yrtp:WARN> Wrapper neither format nor payload specified [0x1b014b0] 

To remedy this, install libgsm1-dev with the following command (on ubuntu)

sudo apt-get install libgsm1-dev 

Then run the normal make/install scripts for yate.

make;make install 

You can confirm the gsm codec was successfully installed by seeing if the file "modules/gsmcodec.yate" exists.

You'll also need to ensure that yate was installed in the default location. Make sure that /usr/local/share/yate/scripts exists.

Other Libraries

You'll need two libraries to route in yate. These are Python Messaging and libvbts. These follow the (well-established) python installation methodology.

Python Messaging:

sudo python setup.py install

libvbts:

sudo python setup_yate.py install

Yate Configuration

There are a few files that have to be changed to configure yate with OpenBTS. These files are located in /usr/local/etc/yate/

ysipchan.conf

ysipchan configures the sip module. We need to tell it to generate SIP MESSAGE events.

In the [general] section, add the following:

[general]
maxpkt=4096
generate=yes

And, in the [methods] block, add the following:

[methods] 
message=yes 

regexroute.conf

regexroute.conf controls the routing of specific packets. We use regexroute.conf to disable the authorization of messages.

In the [extras] block...

[extras]
;skipping auth step
user.auth=20

And the actual routing rule at the end of the file. Note that this block doesn't exist yet, you'll have to add it:

[user.auth]
.*=return true

extmodule.conf

extmodule.conf controls external yate modules. libvbts implements a number of these that support OpenBTS. You'll need to turn these on.

In the [scripts] block:

[scripts]
VBTS_SMS_Route.py=50
VBTS_Call_Route.py=10
VBTS_Echo_SMS.py=10|vbts_tp_dest_address|^100$

These variables set the priority of the message handlers and/or the regex that cause the message to be handled.

OpenBTS configuration

There's only one openbts change required: You have to point OpenBTS at yate to cause it to handle messages. This is done from the OpenBTS command line:

config SIP.Proxy.SMS {YATE_IPADDRESS}:{YATE_PORT}

Yate Use

With the changes, yate should automatically route voice/sms messages. Some yate notes follow:

RManager

RManager is Yate's CLI engine. It allows for Yate to be controlled by a simple telnet client. RManager can be accessed by running the following command (assuming it's running on localhost):

telnet localhost 5038 

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video