Posts tagged ‘asterisk’

Februari 2, 2010

Install SIPp Web Front-end

Dua tahunan yang lalu, saya menggunakan SIPp langsung dari console (dengan menggunakan libncurses). Tampilannya sudah cukup memadai. Dengan SIPp tersebut, saya bisa menguji (stress test) kemampuan call-handling Asterisk IP-PBX dengan membangkitkan SIP call dari UAC ke UAS untuk mengetahui berapa concurrent call yang bisa ditangani, berapa call yang success/failed, apakah RTP bisa dilewatkan dengan kualitas yang masih bisa diterima dll.

Sekarang proyek SIPp sudah menyertakan front-endnya yang berbasis web sejak SIPp versi 3.1 (Dec 2008), bernama sipp_webfrontend_v1.2.tgz . Dokumentasinya bisa diikuti di sini. Front-end tersebut menggunakan php untuk web scriptingnya dan mysql untuk databasenya.

read more »

Februari 2, 2010

Install SIPp-3x di uBuntu

Program SIPp akan saya install di Linux uBuntu (Jaunty). Selanjutnya, program tersebut akan digunakan untuk membangkitkan trafik SIP (Session Initiation Protocol) dengan skenario user agent (UAC/User Agent Client sebagai originating call dan UAS/User Agent Server sebagai destination call). Rencananya trafik tersebut akan dilewatkan ke gateway FXS (single/quad) dan FXO (single/quad) sebagai DUT (Device-Under-Test). Testplan terhadap DUT tersebut akan meliputi: 1) call generation and termination, 2) Caller-ID reception, 3) DTMF coding and decoding, dan 4) transfer RTP media (audio, video?).

Namun, kompilasi SIPp versi 3 (3.0 atau 3.1) di Linux uBuntu tersebut ternyata masih ada error. Walaupun kita menggunakan perintah standar ‘make’, error tetap muncul. Error terjadi karena INT_MAX yang tidak terdeklarasi. Memang di source direktori sipp, INT_MAX tidak terdefinisi dan dia digunakan di file call.cpp dan scenario.cpp. Di Linux, INT_MAX didefinisikan di file /usr/include/limits.h. Sehingga yang perlu dilakukan adalah menambah include header limits.h di dua file cpp tersebut di atas. Patch untuk sipp-3.0 adalah sebagai berikut :

read more »

Januari 26, 2010

Busy detect di Asterisk 1.6

Sekarang saya lagi mengetes modul quad FXO buatan sendiri yang disambungkan ke jalur PSTN. Jalur PSTN diemulasikan dengan menggunakan VoIP gateway 4 port FXS. Testplan kali ini adalah menguji deteksi saat remote (destination party) onhook (menutup telepon/hangup). Sistem (yang diimplementasikan dengan IP-PBX berbasis Asterisk dan VoIP gateway) harus bisa mendeteksi saat destination party menutup teleponnya dan segera membebaskan jalur telepon untuk panggilan berikutnya. Jika tidak, jalur telepon akan dianggap ‘occupied’, dan panggilan menggunakan jalur ini akan diblok.

read more »

Juni 12, 2009

PCI Interface untuk VoIP Gateway 8-port

:: PCB Interface PCI untuk VoIP Gateway 8-port telah siap diassembly::

:: PCB Interface PCI untuk VoIP Gateway 8-port telah siap diassembly::

Senang sekali saat inisial nama kita tertulis produk yang akan dijual dan digunakan oleh masyarakat. Produk card interface PCI untuk VoIP gateway 8-port ini dikembangkan di grup kami, DSP-RTG ITB. Modul gateway yang didukung adalah modul single: X100M, S100M dan modul quad: X400M, S400M. Modul tersebut adalah buatan Digium. Namun, kami juga membuat modul yang kompatible dengan modul tersebut, baik single maupun quad, baik FXO maupun FXS, hehehe.

read more »

Januari 27, 2009

Polarity Reversal Detection

Kabel telepon dari PSTN atau PABX mempunyai 2 jalur, Tip dan Ring, dengan Vring-tip = -48volt saat on-hook. Arusnya 20mA. Saat ringing, tegangan peak-to-peaknya bisa mencapai -82 volt. Bagaimana kalau tanpa sengaja kita pasang telepon atau pabx uplink dengan polaritas terbalik (jalur tip dipasang ke ring, dan sebaliknya). Vring jadi lebih besar daripada Vtip. Beberapa pesawat telepon atau pabx akan langsung mati jika tidak ada rangkaian deteksi polarity. Maklum, rating tegangan input reversenya telah melampaui absolute value.

Untungnya, modul gateway (khususnya FXO) yang dibuat oleh Clarisense, mempunyai fitur polarity reversal detection. Sehingga jika tanpa sengaja (hehe, atau disengaja) sambungan kabel dari PSTN-nya kebalik-balik, modul akan langsung mendeteksinya, dan segera beradaptasi dengan koneksi yang ada. Paling di Asterisk akan muncul warning “Polariry reversal detected.” yang tidak akan mengganggu operasional keseluruhan. Tapi, ada tidak yah pengaruhnya terhadap penggunaan dayanya jika ada polarity reversal? apa bisa jadi bertambah.

Oktober 17, 2008

Instalasi SIPp untuk Menguji Asterisk

screen-shot sipp

screen-shot sipp

SIPp merupakan program opensource yang digunakan untuk membangkitkan trafik protocol SIP. Didalamnya terdapat skenario user agent (UAC dan UAS) dan untuk membangun dan merelease beberapa panggilan dengan metode INVITE dan BYE. SIPp ini dapat digunakan untuk menguji kemampuan dan performansi Asterisk, berapa banyak ia dapat menghandle panggilan SIP dalam satu waktu.

Source code SIPp dapat didownload dari sini. Ada beberapa mode instalasi SIPp yang mungkin, yaitu:

  1. Tanpa TLS (Transport Layer Security) dan tanpa dukungan authentication : mode ini merupakan setup yang direkomendasikan jika kita tidak memerlukan otentikasi SIP dan/atau TLS.
       # tar xvzf sipp-xxx.tar.gz
       # cd sipp-xxx
       # make
    
  2. Dengan dukungan TLS dan authentication. Mode ini memerlukan library OpenSSL (>=0.9.8). Di debian diperlukan package libssl-dev. Ini seperti software SIP client yang harus terlebih dahulu melakukan otentikasi username dan password ke server Asterisk sebelum melakukan panggilan.
       # tar -xvzf sipp-xxx.tar
       # cd sipp
       # make ossl
    
  3. Dengan PCAP play dan tanpa dukungan authentication. Mode ini memerlukan libpcap dan libnet. Di Debian, diperlukan package libpcap-dev. Dengan PCAP trafik media (RTP) yang berupa audio atau audio+video dapat dikirimkan dengan RTP echo dan RTP/pcap replay.
      
      # tar -xvzf sipp-xxx.tar
      # cd sipp
      # make pcapplay
    
  4. Dengan PCAP play dan dukungan authentication, sehingga autentikasi dan pengiriman media RTP dapat dilakukan. Mode ini memerlukan openssl, libpcap dan libnet.
      
      # tar -xvzf sipp-xxx.tar
      # cd sipp
      # make pcapplay_ossl
    

Saya sendiri lebih menyukai instalasi dengan dukungan PCAP play dan otentikasi, sehingga UAC ini menyerupai sistem (SIP client) yang real.

Dalam pengiriman media, SIPp mempunyai beberapa mode transport, yaitu

  1. UDP mono socket (default).
    Di mode ini (dengan parameter di baris perintah SIPp “ -t u1“), satu soket IP/UDP dibuka antara SIPp dan server remote. Semua panggilan akan menggunakan socket ini. Mode ini umumnya digunakan untuk mengemulasikan hubungan antar 2 server SIP.
  2. UDP multi socket.
    Di mode ini (dengan parameter di baris perintah SIPp “ -t un“), satu soket IP/UDP dibuka untuk tiap panggilan baru antara SIPp dan server remote. Mode ini biasanya digunakan untuk mengemulasikan user agent (UA) dalam melakukan panggilan ke server SIP.
  3. TCP mono socket.
    Di mode ini (dengan parameter di baris perintah SIPp “-t t1“), satu soket IP/TCP dibuka antara SIPp dan server remote. Semua panggilan akan menggunakan socket ini. Mode ini umumnya digunakan untuk mengemulasikan hubungan antar 2 server SIP.
  4. TCP multi socket.
    Di mode ini (dengan parameter di baris perintah SIPp “-t tn”), satu soket IP/TDP dibuka untuk tiap panggilan baru antara SIPp dan server remote. Mode ini biasanya digunakan untuk mengemulasikan user agent (UA) dalam melakukan panggilan ke server SIP.
  5. TLS mono socket.
    Di mode ini (dengan parameter di baris perintah SIPp “-t l1“), satu soket secure TLS dibuka antara SIPp dan server remote. Semua panggilan akan menggunakan socket ini. Mode ini umumnya digunakan untuk mengemulasikan hubungan antar 2 server SIP. Saat menggunakan TLS transport, SIPp memerlukan 2 file di direktori lokal, yaitu certificate (cacert.pem) dan kuncinya (cakey.pem). Jika salah satu terkunci dengan password, SIPp akan menanyakan password tersebut. SIPp juga mendukung X509 CRL (Certificate Revocation List). CRL dibaca dan digunakan jika baris perintah “-tls_crl” diberikan.
  6. TLS multi socket.
    Di mode ini (dengan parameter di baris perintah SIPp “-t ln“), satu soket secure TLS dibuka untuk tiap panggilan baru antara SIPp dan server remote. Mode ini biasanya digunakan untuk mengemulasikan user agent (UA) dalam melakukan panggilan ke server SIP.
  7. IPv6 support.
    SIPp 1.1 memberikan dukungan IPv6. Untuk menggunakannya, spesifikasikan alamat IP lokal (dengan parameter di baris perintah SIPp “-i”) dengan alamat IP IPv6. Contoh berikut untuk server UAS yang listen di port 5063 dan client UAC mengirimkan trafik IPv6 ke port tersebut.

      ./sipp -sn uas -i [fe80::204:75ff:fe4d:19d9] -p 5063
      ./sipp -sn uac -i [fe80::204:75ff:fe4d:19d9] [fe80::204:75ff:fe4d:19d9]:5063
    

Saat mode transport “multi-socket” digunakan, jumlah maksimum soket yang dapat dibuka (yang berkaitan dengan
jumlah panggilan simultan yang dapat dilakukan) akan ditentukan oleh sistem. Begitu jumlah maksimum soket yang dibuka mencapai batas, trafik akan didistribusikan ke soket-soket yang telah dibuka. Batas jumlah soket yang digunakan dapat diset dengan memberikan option “-max_socket” ke perintah SIPp.

Saya lebih sering menggunakan mode “UDP mono socket”.

Agustus 15, 2008

Setting VoIP Gateway untuk Least Cost Routing dan Call Queueing

Ilustrasi skema implementasi LCR

Ilustrasi skema implementasi LCR

Integrasi IP-PBX/VoIP Gateway FXO 3 kanal berbasis Asterisk, CDMA FWT 2 kanal dan GSM FWT 1 kanal, serta 2 buah IP-phone dapat diperoleh konfigurasi sistem VoIP-PSTN-Mobile yang dapat mengimplementasikan LCR (Least Cost Routing, routing panggilan dengan tarif (pulsa) termurah). CDMA FWT diisi dengan 1 kartu Flexy dan 1 kartu Esia, sedangkan GSM FWT diisi dengan kartu Mentari. Diinginkan panggilan keluar (outgoing) menggunakan skema LCR, sedangkan panggilan masuk didistribusikan secara round-robin ke 2 IP-Phone.

Skema LCR ini dilakukan sedemikian sehingga jika panggilan ke nomor flexy akan dilewatkan ke kanal FXO dengan kartu flexy, ke nomor esia dilewatkan ke jalur esia, sedangkan nomor mentari dilewatkan ke mentari. Sedangkan nomor tujuan lain secara default dilalukan lewat nomor telkom. Hehehe, masih belum tahu perbandingan tarif lintas operator, euy. Tabel routing panggilan seperti ditunjukkan dalam gambar.

Distribusi panggilan masuk dilakukan dengan aplikasi call queueing dengan metode round-robin, terminal yang on-hook akan menerima ring panggilan masuk, tanpa prioritas tertentu.

Mungkin alat sejenis yang bisa melakukan fitur routing panggilan keluar termurah adalah ecare-xxx dari elco solution, hehehe. Tentunya dengan fitur yang beda, terutama VoIP dengan paket switchnya dan analog line dengan circuit switchnya (di ecare-xxx).

Hehehe, beres dah. Sedang ujicoba sampai 2 bulan di lab desain PAUME ITB. Kalau mau nyoba telepon ke 022-4254100 atau 085846052265 šŸ™‚