Version 11 (modified by kurtis.heimerl, 11 months ago)

--

Yate Config

Disclaimer

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.

Install

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  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.

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  Messaging and  https://github.com/kheimerl/libvbts|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

Yate, being a modern SIP switch, requires a great deal of individual configuration. There are a number of important files:

ysipchan.conf

The SIP configuration file

regexroute.conf

The dialplan/routing file. Specifies where messages are routed.

regfile.conf

The user registration file. This isn't used by OpenBTS installations, as OpenBTS does not store it's registration information with the SIP switch.

Yate Use

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

Calling

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:

${route}^$=-;error=noauth

Messaging

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:

message=true