|Version 11 (modified by kurtis.heimerl, 11 months ago)|
This is a page in active development. There are no utilities to support actually running OpenBTS with yate, at this point. However, notes are stored here.
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 http://yate.null.ro/pmwiki/index.php?n=Main.Download|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.
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.
Python Messaging: sudo python setup.py install
libvbts: sudo python setup_yate.py install
Yate, being a modern SIP switch, requires a great deal of individual configuration. There are a number of important files:
The SIP configuration file
The dialplan/routing file. Specifies where messages are routed.
The user registration file. This isn't used by OpenBTS installations, as OpenBTS does not store it's registration information with the SIP switch.
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
With OpenBTS directed to make calls to Yate, calling is very simple.
Firstly, Yate (by default) does not require authentication/registration to receive calls. As such, the default conf files should be able to handle incoming calls. Dialing 99991002 from the handset should give you a "busy tone" from Yate. If so, it's working!
Adding the following to a route in regexroute.conf forces it to require authentication:
Yate (by default) does not route SIP MESSAGEs. Instead, it returns a 501 Unimplemented message. Fortunately, Yate is a generic message passing engine and we can cajole it into forwarding that message to the routing service.
First, you have to modify ysipchan.conf to accept SIP MESSAGES. That's done by adding the following line to the [methods] field: