Simple SIP/Voip Server – Asterisk Practice

Asterisk adalah aplikasi open source PBX (Private Branch Exchange) yang dikembangkan diatas lisensi GPL, yang membuat siapapun yang tertarik untuk mencoba atau mempelajari hal-hal yang berbau Voip Gateway bisa dengan mudah dan murah untuk merealisasikannya, tidak hanya sekedar bisa mempelajari, bahkan implementasinya pun bisa dijual.. hehe.. :D

Meskipun demikian, asterisk juga sudah dilengkapi banyak fitur baik standard telephony maupun advance, diantaranya:

  • Caller ID
  • Call Waiting
  • 3-Way Calling
  • Dinamic Call Forwarding
  • Follow Me
  • Voice Mail
  • Conference
  • Interactive Voice Response (IVR)
  • Automatic Call Distribution (ACD)
  • Dan masih banyak lagi fitur lainnya..

Satu lagi kelebihan asterisk, adalah dia dapat berjalan pada multiplatform sistem operasi termasuk Linux, Mac, BSD dan Sun Solaris. Untuk practice kali ini digunakan PC Desktop biasa dengan Ubuntu 10.10 sebagai sistem operasinya. Untuk instalasi tentunya hanya cukup dengan :

# apt-get install asterisk

Setelah instalasi selesai, pastikan 3 paket berikut sudah terinstall dengan baik:

  1. asterisk
  2. asterisk-config
  3. asterisk-sounds-main

Selanjutnya adalah langkah yang paling menarik, konfigurasi. Namun sebelum memulai konfigurasi, alangkah baiknya untuk mengenali dulu teknologi atau protocol-protocol telephony yang ada seperti SIP, H323, IAX, MGCP, juga termasuk didalamnya layanan PSTN, dll. Pada practice kali ini kita akan menggunakan SIP karna konfigurasinya yang relatif mudah dengan implementasi yang mudah juga. Selain teknologi dan protocol satu hal lagi yang perlu diketahui adalah komponen-komponen dasar dari PBX atau lebih tepatnya IP PBX adalah:

Data Account

Adalah identitas yang digunakan sebagai extension dalam IP PBX, extension disini bisa berupa nama atau nomer yang merepresentasikan user dari IP PBX. Data Account biasanya dibagi dalam 2 gologngan:

  1. Account Extension, adalah data account yang digunakan sebagai extension dalam IP PBX
  2. Account Trunk, adalah data account yang digunakan oleh IP PBX untuk menghubungi IP PBX atau server yang lain

Dial Plan

Merupakan aturan dial yang digunakan oleh user untuk menghubungi user lain dalam satu IP-PBX (account extension) atau menghubungi trunk untuk melakukan panggilan ke luar, dan atau sebaliknya.

Kembali kepada konfigurasi, dengan bermodalkan sedikit pemahaman mengenai protocol dan komponen IP PBX yaitu Data Account dan Dial Plan, kita dapat membuat konfigurasi account, dimana file-file konfigurasi tersebut terletak di:

# cd /etc/asterisk/

Untuk pembuatan data account dengan menggunakan SIP, file konfigurasinya adalah sip.conf, edit file tersebut dengan text editor kemudian tambahkan account dengan menambahkan baris berikut pada bagian bawah file:

[101]
type=friend
context=voiptest
host=dynamic
username=user1
password=password
dimana:
[101] : adalah context yang menjadi nomer extension untuk melakukan panggilan dan dipanggil
type=friend : adalah tipe standar (bisa melakukan panggilan dan dipanggil)
context=voiptest : adalah nama context yang akan dikenali pada dial plan
host=dynamic : adalah host yang digunakan oleh user, dynamic berarti account dapat digunakan dari host mana saja
username=said : adalah username dari user
password=password : adalah password yang digunakan oleh user said untuk login
Untuk menambahkan user lain, dapat dengan meng-copy-paste baris diatas kemudian isikan context dan user yg berbeda untuk masing-masing user. Selanjutnya adalah setting dial plain, konfigurasinya terdapat pada file extensions.conf, edit dengan text editor dan tambahkan baris berikut di bagian bawah file:
[voiptest]
exten => 101,1,Dial(SIP/101,20)
exten => 101,2,Hangup
dimana:
[voiptest] : adalah context yang mengatur semua user yang menggunakan context voiptest pada data account
exten : adalah aturan di asterisk untuk menunjukkan nomor extension
101 : adalah nomor extension yang bisa dihubungi
1-2 : adalah prioritas action
Dial : adalah aplikasi untuk men-dial
Hangup : adalah aplikasi untuk mengakhiri koneksi
SIP : adalah nama protokol yang digunakan dan untuk mengidentifikasi bahwa user berada di file sip.conf
101 setelah SIP : adalah nama context di sip.conf
20 : adalah lamanya berdering saat terjadi pemanggilan oleh user yang lain
Dengan kata lain user yang menggunakan extension 101 hanya memiliki dua buah aturan panggilan, yaitu melakukan panggilan dan mengakhiri panggilan. Dengan membuat dua buah data account dan dial plan seperti diatas, misalnya extension 101 dan 102, kemudian restart asterisk:
# /etc/init.d/asterisk restart
Maka kedua user tersebut sudah dapat saling melakukan panggilan dengan menggunakan aplikasi softphone yang banyak tersedia di internet secara gratis, seperti:

Sebagai BONUS :D Berikut ini adalah dial plan echo yang dapat digunakan untuk keperluan testing:

[voipecho]
exten => 1000,1,Playback(demo-echotest)
exten => 1000,2,Echo
exten => 1000,3,Playback(demo-echodone)

Bonus berikutnya adalah dial plan dan konfigurasi yang digunakan untuk conference dengan menggunakan fitur meet me yg bisa dikonfigurasi pada file meetme.conf

# vi extensions.conf

[conferencetest]

exten => 1,1,Meetme(1)

# vi meetme.conf

conf => 1,123456

dimana:

[conferencetest] : adalah nama context
exten : adalah aturan di asterisk untuk menunjukkan nomor extension
1 : adalah nomor extension yang bisa dihubungi
1 setelah nomor extension : adalah prioritas action
Meetme(1) : adalah configuration number pada file meetme.conf
1 pada meetme.conf : adalah configuration number
123456 pada meetme.conf : adalah pasword untuk masuk ke room conference

Demikian posting kali ini, semoga lain waktu dapat dilanjutkan dengan konfigurasi Voicemail, Hunting dan NSP atau Nada Sambung Pribadi.