Difference between revisions of "OpenBTS: E110 Yate Softswitch"

From OnnoWiki
Jump to navigation Jump to search
Line 30: Line 30:
 
  opkg install libqtxmlpatterns4
 
  opkg install libqtxmlpatterns4
 
  opkg install gnuradio-dev
 
  opkg install gnuradio-dev
 +
opkg install libqtassistantclient4-dev
  
 
==Download Yate==
 
==Download Yate==

Revision as of 07:01, 22 August 2013

Yate adalah sebuah mesin untuk routing message yang sangat flexible. Yate di rancang untuk dapat di jalankan mulai dari switch SIP yang sangat besar hingga SIP client yang di jalankan di pesawa telepon. Proses instalasi Yate akan di jelaskan di sini.

Siapkan Pendukung

  • Pastikan ada sambungan ke Internet, banyak aplikasi yang harus di download via Internet
  • Instal aplikasi pendukung
opkg remove libqtuitools4-dev --force-removal-of-dependent-packages
opkg install libqtuitools4-dev
opkg install mysql5-dev
opkg install sqlite3-dev
opkg install qt4-x11-free
opkg install qmake2
opkg install qt4-x11-free-dev
opkg install qt4-x11-free-doc
opkg install libqwt-dev
opkg install libqwt-examples
opkg install libqtgui4
opkg install libqtgui-dev
opkg install libgsm-dev
opkg install libgsm-static
opkg install libgsm1
opkg install autoconf-dev
opkg install autoconf
opkg install libqtcore-dev
opkg install libqtcore4
opkg install libqtxml-dev
opkg install libqtxml4
opkg install libqtxmlpatterns-dev
opkg install libqtxmlpatterns4
opkg install gnuradio-dev
opkg install libqtassistantclient4-dev

Download Yate

Source Code Yate dapat di ambil dari

Compile Yate

Untuk interoperability dengan OpenBTS, kita perlu menginstalasi libgsm1-dev SEBELUM menginstall Yate. Compile Yate melalui perintah

cd ~/src
wget http://yate.null.ro/tarballs/yate4/yate-4.3.0-1.tar.gz
cd ~/src/
tar zxvf yate-4.3.0-1.tar.gz 
cd ~/src/yate
./configure
make
make install

Cek Instalasi

Pastikan bahwa codec gsm telah berhasil di instalasi dengan baik dengan lihat adanya file "modules/gsmcodec.yate"

ls /usr/local/src/yate/modules/
ls /usr/local/src/yate/modules/gsmcodec.*

harusnya ada

/usr/local/src/yate/modules/gsmcodec.cpp
/usr/local/src/yate/modules/gsmcodec.yate

Pastikan bahwa yate telah di instalasi dengan baik di lokasi default dengan melihat adanya file /usr/local/share/yate/scripts

ls /usr/local/share/yate/scripts

Library Lain

Pastikan anda mempunyai sambungan ke Internet yang baik.

Kita memerlukan dua library untuk melakukan routing di yate, yaitu:

Proses instalasi yang perlu dilakukan adalah,

cd /usr/local/src
git clone git://github.com/pmarti/python-messaging
git clone git://github.com/kheimerl/libvbts
cd /usr/local/src/python-messaging/
sudo python setup.py install
cd /usr/local/src/libvbts/
sudo python setup_yate.py install

Yate Configuration

Ada beberapa file yang perlu di ubah untuk mengkonfigurasi yate dengan OpenBTS. File ini berlokasi di /usr/local/etc/yate/

ysipchan.conf

ysipchan mengkonfigurasi sip module. Kita perlu memberitahukan yate untuk membuat SIP MESSAGE event.

vi /usr/local/etc/yate/ysipchan.conf

Di bagian [general], tambahkan : OpenBTS: Yate Softswitch

[general]
maxpkt=4096
generate=yes

dan, di blok [methods], tambahkan :

[methods] 
message=yes

regexroute.conf

regexroute.conf control routing dari paket tertentu. Kita menggunakan regexroute.conf untuk mematikan authorization of messages.

vi /usr/local/etc/yate/regexroute.conf

*JANGAN*

Pastikan di bagian akhir dari blok [default] tidak ada

.*=return true

extmodule.conf

extmodule.conf mengontrol external modul yate. libvbts mengimplementasi beberapa hal yang dibutuhkan untuk operasi OpenBTS. Kita perlu mengaktif module tersebut, dengan mengedit

vi /usr/local/etc/yate/extmodule.conf

Pada block [scripts] isi:

[scripts]
VBTS_Call_Route.py=10
; VBTS_Call_Originate.py=10
; VBTS_Call_Provisioning.py=10
VBTS_Route_Local.py=10
VBTS_Route_Provisioning.py=5
VBTS_SMS_Echo.py=10|vbts_tp_dest_address|^100$
VBTS_SMS_Provisioning.py=5
VBTS_SMS_Route.py=50
; VBTS_SMS_Send.py=50

Variabel ini menset prioritas penanganan message dan / atau regex yang menyebabkan bagaimana cara message di tangani.

OpenBTS configuration

Hanya perlu satu perubahan parameter untuk operasi dengan openbts: kita perlu mengarahkan OpenBTS di yate agar dapat menangani messages, ini dilakukan di OpenBTS command line:

cd /usr/local/src/openbts-2.8.0/openbts/trunk/apps
./OpenBTSCLI

OpenBTS original / yang normal

SIP.Proxy.SMS 127.0.0.1:5063

Masukan untuk Yate

config SIP.Proxy.SMS {YATE_IPADDRESS}:{YATE_PORT} #probably localhost:5060
config SIP.Proxy.Speech {YATE_IPADDRESS}:{YATE_PORT}

atau

config SIP.Proxy.SMS localhost:5060
config SIP.Proxy.Speech localhost:5060
config save

yate monitor port berikut

TCP 1720: untuk H323
UDP 4569: untuk IAX2 
UDP 5060
TCP 5038: Telnet admin app

Yate Use

Dengan perubahan tersebut, yate akan secara automatis akan me-route voice / sms message. Lihat catatan yate berikut ini:


Run & Kill

Menjalankan yate menggunakan perintah

cd /usr/local/src/yate
./run -t -l /var/log/yate -vvvv -c /usr/local/etc/yate -m /usr/local/lib/yate -e /usr/local/share/yate -d

Mematikan yate

killall yate


Melihat Log

Melihat log penting sekali untuk melihat masalah dalam konfigurasi, log yang penting

  • /tmp/VBTS.log
  • /var/log/yate


Calling

OpenBTS call melalui Yate menjadi sangat sederhana.

Yate (default) tidak memerlukan authentikasi / registrasi untuk menerima call. File configurasi default dapat menangani incoming call. Dial ke 99991002 dari handset harunya memberikan "busy tone" dari Yate. Jika ini terjadi, maka konfigurasi anda berhasil!

Daftar nomor untuk testing

99991001 dial
99991002 busy
99991003 ring
99991004 specdial
99991005 congestion
99991006 outoforder
99991007 milliwatt
99991008 info

Memaksa Yate Authentikasi

Dengan menambahkan route di regexroute.conf memaksa semua call untuk authentikasi;

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


Messaging

Yate (default) tidak merouting SIP MESSAGE.

Modifikasi ysipchan.conf untuk menerima to SIP MESSAGE. Tambahkan kalimat berikut di bagian [methods]:

message=true

RManager

RManager adalah CLI engine Yate. Ini memungkinkan Yate untuk di control melalui telnet yang sederhana. RManager dapat di akses menggunakan perintah telnet berikut (asumsi kita beroperasi di localhost):

telnet localhost 5038

Perintah dalam RManager

Available commands:
  quit
  echo [on|off]
  help [command]
  auth password
  status [overview] [modulename]
  uptime
  machine [on|off]
  output [on|off]
  color [on|off]
  debug [module] [level|on|off]
  drop {chan|*|all} [reason]
  call chan target
  control chan [operation] [param=val] [param=...]
  reload [plugin]
  restart [now]
  stop [exitcode]
  alias [name [command...]]
  module {{load|reload} modulefile|unload modulename|list}
  events [clear] [type]
  logview 
  status jabber [stream_name|{c2s|s2s} [remote_jid]]
  jabber drop {stream_name|{c2s|s2s|*|all} [remote_jid]}
  jabber create remote_domain [local_domain] [parameter=value...]
  jabber debug stream_name [debug_level|on|off]
  callgen {start|stop|drop|pause|resume|single|info|reset|load|save|set paramname[=value]}
  filetransfer {{send|receive} filename [callto:]target [[paramname=value]...]}
  accounts [reload|{login|logout|...} [account]]
  users {add user [parameter=value...]|delete user|update user [parameter=value...]}
  sigdump component [filename]
  cache {load|flush} cache_name [[param=value]...]

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

GPRS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video