OpenBTS: Briker

From OnnoWiki
Jump to navigation Jump to search

OpenBTS 2.8 installation to use Briker 1.4 as IP PBX

Author: Anton Raharja (anton@itmn.co.id)
        Asoka Wardhana (asoka@itmn.co.id)

Update: 201305310000

Architecture

OpenBTS server (192.168.2.1) <--------> IP PBX server (192.168.2.2)

Equipments

  • 1 unit server for OpenBTS 2.8 trunk
  • 1 unit server for Asterisk and FreePBX based IP PBX (Briker 1.4)
  • 1 unit USRP1 with 52MHz clock (must use USRP1 and with 52MHz clock)
  • Ubuntu server 12.04.1 LTS ISO on USB disk or burned to CD
  • Briker 1.4 ISO burned to CD
  • LAN will be a plus
  • Fast Internet connection for apt-get
  • Several cellphones
  • IP Phones or desktop computers with SIP softphone installed is a plus


PART I: OpenBTS server

Install Ubuntu server 12.04 LTS You should have OpenSSH installed by choosing them from Ubuntu installation menu Set correct IP address and make it connected to the Internet to allow apt-get Login as root

Example local IP address for this server: 192.168.2.1

apt-get update

no need to apt-get upgrade

apt-get install subversion autoconf libtool libosip2-dev libortp-dev g++ sqlite3 \
libusb-1.0.0-dev libsqlite3-dev erlang libreadline6-dev libboost-all-dev swig \ 
libfftw3-dev libcppunit-dev libaudio-dev sdcc libusb-dev make
cd /usr/local/src
wget -c http://voiprakyat.or.id/pub/openbts/usrp52mhz.patch
wget -c http://gnuradio.org/redmine/attachments/download/279/gnuradio-3.4.2.tar.gz
svn co http://wush.net/svn/range/software/public OpenBTS
cd /usr/local/src
tar -zxf gnuradio-3.4.2.tar.gz
cd gnuradio-3.4.2/
patch -p0 < ../usrp52mhz.patch
./configure --disable-usrp2 --enable-usrp
make
make install
ldconfig
addgroup usrp
usermod -G usrp -a <YOUR_LINUX_USERNAME>
echo 'SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="fffe", ATTR{idProduct}=="0002", GROUP="usrp", MODE="0666"' > tmpfile
chown root.root tmpfile
mv tmpfile /etc/udev/rules.d/10-usrp.rules
udevadm control --reload-rules

Connect USRP1 to OpenBTS server through USB port:

ls -lR /dev/bus/usb | grep usrp

Should display something like this:

crw-rw---- 1 root usrp 189, 1 2013-05-28 11:34 003

If not then you should reboot the server and try again. Stop here and ask questions if you don't see the display like above.

cd /usr/local/src/OpenBTS/openbts/trunk/
autoreconf -i
./configure --with-usrp1
make
touch /var/run/command
mkdir -p /var/lib/asterisk/sqlite3dir
mkdir /etc/OpenBTS
sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db .quit
sqlite3 /etc/OpenBTS/OpenBTS.db .dump
cd /usr/local/src/OpenBTS/openbts/trunk/apps
ln -s ../Transceiver52M/transceiver .
mkdir -p /usr/local/share/usrp/rev4/
cp ../Transceiver52M/std_inband.rbf /usr/local/share/usrp/rev4/
./OpenBTS

If OpenBTS started and system ready (no error, or exitting) then OpenBTS compiled and initiated successfully.

Ctrl+C to exit OpenBTS, and run again but this time with nohup.

cd /usr/local/src/OpenBTS/openbts/trunk/apps
nohup ./OpenBTS &
./OpenBTSCLI
config GSM.Identity.ShortName BrikerGSM
config SIP.Local.IP 192.168.2.1
config SIP.Proxy.Registration 192.168.2.2:5060
config SIP.Proxy.Speech 192.168.2.2:5060
config SIP.Proxy.SMS 192.168.2.2:5060
config SMS.MIMEType text/plain
config save
quit
sqlite3 /etc/OpenBTS/OpenBTS.db "update CONFIG set VALUESTRING=NULL where KEYSTRING='SIP.SMSC'"
killall -9 OpenBTS
killall -9 transceiver
nohup ./OpenBTS &
tail -f /var/log/syslog


PART II: IP PBX server

Install Briker 1.4 (Asterisk 11), get it from http://www.briker.org Set correct IP address Login as root or become root using su

Example local IP address for this server: 192.168.2.2

cd /root
wget -c http://voiprakyat.or.id/pub/openbts/briker-OpenBTS.txt
wget -c http://voiprakyat.or.id/pub/openbts/extensions_OpenBTS.conf
chmod 755 briker-OpenBTS.txt
chmod 644 extensions_OpenBTS.conf

Please note that you download briker-OpenBTS.txt and copy it to /var/lib/asterisk/agi-bin as briker-OpenBTS.php

cd /root
cp briker-OpenBTS.txt /var/lib/asterisk/agi-bin/briker-OpenBTS.php
cp extensions_OpenBTS.conf /etc/asterisk/

On below commands, be warned, it is double arrow >> not single arrow >

echo '#include extensions_OpenBTS.conf' >> /etc/asterisk/extensions_custom.conf
echo 'textsupport=yes' >> /etc/asterisk/sip_general_custom.conf
echo 'accept_outofcall_message=yes' >> /etc/asterisk/sip_general_custom.conf
echo 'outofcall_message_context=SMS' >> /etc/asterisk/sip_general_custom.conf


You might found the png files as screenshots to the following steps in http://voiprakyat.or.id/pub/openbts/

Create SIP trunk:

Trunk name: OpenBTS

PEER details:
type=peer
context=OpenBTS
host=192.168.2.1
port=5062
transport=udp
disallow=all
allow=gsm
qualify=no

Create custom extensions:

  • Fill User Extension with extension number
  • Fill Display Name with extension number, or anything
  • Fill dial with: SIP/OpenBTS/<IMSI>

Hit button Apply configuration above.

You need to create custom extension everytime you need to add a new cellphone


Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

Ettus N210

GPRS

Briker OpenBTS

FreeSWITCH OpenBTS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video