Yate ConfigInstall ¶Yate InstallYate 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 LibrariesYou'll need two libraries to route in yate. These are Python Messaging and libvbts. These follow the (well-established) python installation methodology. Python Messaging: git clone https://github.com/pmarti/python-messaging.git cd python-messaging sudo python setup.py install libvbts: git clone https://github.com/kheimerl/libvbts.git cd libvts sudo python setup_yate.py install Yate ConfigurationThere are a few files that have to be changed to configure yate with OpenBTS. These files are located in /usr/local/etc/yate/ ysipchan.confysipchan 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.confregexroute.conf controls the routing of specific packets. We use regexroute.conf to disable the authorization of messages. In the [extra] block... [extra] ;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.confextmodule.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] ;sip.message handlers VBTS_SMS_Provisioning.py=5 VBTS_SMS_Echo.py=10|vbts_tp_dest_address|^100$ VBTS_SMS_Route.py=50 ;call.route handlers VBTS_Route_Provisioning.py=5 VBTS_Route_Local.py=10 These variables set the priority of the message handlers and/or the regex that cause the message to be handled. PermissionsFor a number of services, yate requires write permissions to a DB's directory (not just the DB!) to modify a DBs content. This is because it uses a journaling system to maintain consistency. This shouldn't be a problem for the defauly install, but keep it in mind if DB access (e.g., provisioning) seem to fail. OpenBTS configurationThere'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} #probably localhost:5060 config SIP.Proxy.Voice {YATE_IPADDRESS}:{YATE_PORT} Run YateWith the changes, yate should automatically route voice/sms messages. Run yate with sudo yate To test, try calling one of the numbers in regexroute.conf (such as 99991007). RManagerRManager 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
|