Difference between revisions of "OpenBTS: Yate Softswitch"

From OnnoWiki
Jump to navigation Jump to search
Line 158: Line 158:
  
  
===Calling==
+
===Calling===
  
With OpenBTS directed to make calls to Yate, calling is very simple.
+
OpenBTS call melalui Yate menjadi sangat sederhana.
  
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!
+
Yate (default) tidak memerlukan authentikasi / registrasi untuk menerima call. File configurasi default dapat menangani incoming call. Dial ke 99991002 dari handset harunys memberikan "busy tone" dari Yate. Jika ini terjadi, maka konfigurasi anda berhasil!
  
Adding the following to a route in regexroute.conf forces it to require authentication:
+
===Memaksa Yate Authentikasi===
 +
 
 +
Dengan menambahkan route di regexroute.conf memaksa semua call untuk authentikasi;
  
 
  ${route}^$=-;error=noauth
 
  ${route}^$=-;error=noauth

Revision as of 21:24, 3 August 2012

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.

Install Aplikasi Pendukung

Install

sudo apt-get install build-essential autoconf cvs sox pkg-config git-core


Yate Install

Untuk interoperability dengan OpenBTS, kita perlu menginstalasi libgsm1-dev SEBELUM mengbuat Yate. Tanpa library tersebut, yate tidak akan mendukung codec gsm dan kita akan melihat message berikut:

<yrtp:WARN> Wrapper neither format nor payload specified [0x1b014b0] 

Untuk mengatasi hal ini, kita perlu menginstalasi libgsm1-dev melalui perintah berikut,

sudo apt-get install libgsm1-dev 

Download source code dari

http://yate.null.ro/pmwiki/index.php?n=Main.Download

Compile menggunakan perintah

cp yate-4.1.0-1.tar.gz /usr/local/src/
cd /usr/local/src/
tar zxvf yate-4.1.0-1.tar.gz 
cd /usr/local/src/yate
./autogen.sh
./configure
make clean
make all
make install

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

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

Di blok [extra] tambahkan

[extra]
;skipping auth step
user.auth=20

Tambahkan aturan routing yang sebenarnya di akhir file. Perhatikan block ini tidak ada, kita harus menambahkannya:

[user.auth]
.*=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_SMS_Route.py=50
VBTS_Call_Route.py=10
VBTS_Echo_SMS.py=10|vbts_tp_dest_address|^100$

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}
config SIP.Proxy.SMS 127.0.0.1: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

Menjalankan yate menggunakan perintah

cd /usr/local/src/yate
./run &


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 harunys memberikan "busy tone" dari Yate. Jika ini terjadi, maka konfigurasi anda berhasil!

Memaksa Yate Authentikasi

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

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

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

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video