Asterisk adalah software IP PBX untuk membuat sistem layanan komunikasi telepon melalui internet atau biasa disebut VoIP (Voice over Internet Protocol). Asterisk adalah software Open Source yang berjalan di linux. Asterisk juga memungkinkan komunikasi antar pengguna telepon regular dengan telepon berbasis sip (sip phones). Asterisk juga sudah dilengkapi banyak fitur baik standard telephony maupun advance, diantaranya:
1.
Caller ID
2. Call Waiting
3. 3-Way Calling
4. Dinamic Call Forwarding
5. Follow Me
6. Voice Mail
7. Conference
8. Interactive Voice Response (IVR)
9. Automatic Call Distribution (ACD)
10. Dan masih banyak lagi fitur lainnya
Instalasi server Asterisk berbasis SIP
Untuk Anda baru mulai belajar VoIP, Asterisk bisa dimanfaatkan untuk membuat sebuah server VoIP sederhana. Tutorial berikut akan membahas bagaimana membuat sebuah VoIP server untuk jaringan LAN. Saya menggunakan Asterisk sebagai VoIP servernya. Untuk membuatnya minimal diperlukan sebuah PC Linux, koneksi LAN, dan bisa juga koneksi Internet. Berikut ini langkah-langkah yang perlu dilakukan:
1. Instalasi Asterisk
# apt-get install asterisk
Setelah
instalasi selesai, pastikan 3 paket berikut sudah terinstall dengan baik:
1. asterisk
2. asterisk-config
3. asterisk-sounds-main
2. Konfigurasi File “sip.conf”
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.
Untuk konfigurasi ini,
kita cukup mengetikkan:
# pico sip.conf
Pada pengaturan sip.conf kita akan mengkonfigurasi data account user. Pada percobaan ini saya menggunakan 211-219 sebagai nomor extension untuk melakukan panggilan dan dipanggil.
Pada gambar yang di bulatkan diatas, menunjukkan pembuatan untuk data account user, dimana:
a.
[211] : adalah
context yang menjadi nomer extension untuk melakukan panggilan dan dipanggil
b.
type=friend :
adalah tipe standar (bisa melakukan panggilan dan dipanggil)
c.
context=febrian :
adalah nama context yang akan dikenali pada dial plan
d. host=dynamic
: adalah host yang digunakan oleh user, dynamic berarti account
dapat digunakan dari host mana saja
e.
username=211 :
adalah username dari user
f.
password=password
: adalah password yang digunakan oleh user said untuk login
g. Untuk menambahkan user lain, dapat dengan meng-copy-paste baris diatas kemudian isikan context dan user yg berbeda untuk masing-masing user.
Konfigurasi Ekstensi dan dial-plan Server Asterisk :
Ø Konfigurasi ekstensi server Asterisk
Anda dapat mencari semua file konfigurasi Asterisk untuk instalasi standar
dalam directory /etc/asterisk:
debian:/usr/src# cd /etc/asterisk
debian:/etc/asterisk# ls
adsi.conf cdr_tds.conf indications.conf
privacy.conf
adtranvofr.conf codecs.conf logger.conf queues.conf
agents.conf dnsmgr.conf manager.conf res_odbc.conf
alarmreceiver.conf dundi.conf meetme.conf rpt.conf
alsa.conf enum.conf mgcp.conf rtp.conf
asterisk.adsi extconfig.conf misdn.conf sip.conf
asterisk.conf extensions.ael modem.conf
sip_notify.conf
cdr.conf extensions.conf modules.conf skinny.conf
cdr_custom.conf features.conf musiconhold.conf
telcordia1.
adsi
cdr_manager.conf festival.conf osp.conf
voicemail.conf
cdr_odbc.conf iax.conf oss.conf vpb.conf
cdr_pgsql.conf iaxprov.conf phone.conf zapata.conf
debian:/etc/asterisk#
Untuk miniPBX kita, kita hanya perlu dua buah file.
pertama, kita perlu menyalin file yang dibuat dengan make samples ke
/etc/asterisk/backup/ (Kita dapat mengambilnya untuk keperluan nanti; secara
umum, tindakan yang bagus untuk menyalin file asli ke directory backup ketika
anda melakukan perubahan)
debian:/etc/asterisk# mkdir backup
debian:/etc/asterisk# mv sip.conf backup/
debian:/etc/asterisk# mv extensions.conf backup/
debian:/etc/asterisk#
Dengan menggunakan favorite editor anda, buat sebuah file
baru / etc/asterisk/sip.conf dan masukkan berikut ini:
[general]
port = 5060
bindaddr = 0.0.0.0
context = others
[2000]
type=friend
context=myphones
secret=1234
host=dynamic
[2001]
type=friend
context=myphones
secret=1234
host=dynamic
Kita menulis sebuah dialplan sederhana pada
/etc/asterisk/extensions.conf:
[others]
[myphones]
exten => 2000,1,Dial(SIP/2000)
exten => 2001,1,Dial(SIP/2001)
Apakah beberapa baris tersebut cukup untuk mengkonfigurasi
PBX? Mari kita coba! Jalankan Asterisk dengan perintah shell
asterisk c:
debian:/etc/asterisk# asterisk c
Asterisk 1.4.2, Copyright (C) 1999 2005
Digium.
Written by Mark Spencer
* CLI>
Setelah Asterisk dijalankan, kita akan mendapatkan sebuah
konsol yang memungkinkan kita untuk berkomunikasi dengan proses asterisk yang
berjalan. Apa yang kita lihat sekarang adalah Asterisk CLI (command line
interface) yang memperbolehkan kita untuk mengendalikan Asterisk secara
interacktif. Aksi pertama kita adalah untuk menghentikan asterisk secara
langsung dengan perintah stop now:
*CLI> stop now
debian:/etc/asterisk#
Kemudian, kita harus menghubungkan dua SIP phone ke
miniPBX.Jika anda tidak memiliki ip phone, anda dapat menggunakan software
phone (”softphones”) yang dapat diunduh dari Internet. Untuk konfigurasi
pengguna pada telepon, gunakan informasi extension yang telah kita set di
/etc/asterisk/sip.conf. Extension Sip 2000 harus dikonfigurasi untun ini:
·
User:
2000
·
Password:
1234
·
SIPRegistrar:
IP address server asterisk kita
·
SIPProxy:
IP address server asterisk kita
Jika anda tidak mengetahui alamat IP dari server
astersik, anda dapat mencari dengan perintah berikut:
ifconfig | grep Bcast | sed s/Bcast.*//
Sekarang kita jalankan Asterisk kembali, untuk kali ini
dengan konsole verbose yang lebih banyak, sehingga kita dapat melihat apa yang
sedang terjadi ketika kita mencoba melakukan panggilan. Kita lakukan dengan
menambahkan parameter vvvvvc setelah perintah (5 v artinya “verbosity level
5”). Dengan ini kita dapat melihat kapan SIP phone terdaftar pada PBX:
debian:/etc/asterisk# asterisk vvvvvc
[…]
Asterisk Ready.
*CLI>
Konfigurasi dial-plan server Asterisk
Selanjutnya adalah setting dial plain, konfigurasinya terdapat pada file“extensions.conf”.
dimana:
a) [voiptest] : adalah
context yang mengatur semua user yang menggunakan context voiptest pada data
account
b)
exten : adalah aturan
di asterisk untuk menunjukkan nomor extension
c)
211 : adalah nomor
extension yang bisa dihubungi
d)
1-2 : adalah prioritas
action
e)
Dial : adalah aplikasi
untuk men-dial
f)
Hangup : adalah
aplikasi untuk mengakhiri koneksi
g)
SIP : adalah nama
protokol yang digunakan dan untuk mengidentifikasi bahwa user berada di file
sip.conf
h)
211 setelah SIP :
adalah nama context di sip.conf
i)
20 : adalah lamanya
berdering saat terjadi pemanggilan oleh user yang lain
Dialplan
menentukan telepon mana dapat menelepon telepon lain, dan bagaimana. Dialplan
dibagi dalam contexts.
[others]
Pada bagian pertama pada konfigurasi ini adalah context
[others]. Karena kita tidak memakai dalam contoh ini, maka bisa dikosongkan.
[myphones]
exten => 2000,1,Dial(SIP/2000,20)
exten => 2000,2,VoiceMail(2000,u)
Penulisan dialplan selalu mengikuti peraturan berikut:
exten => Nomor,Prioritas,Aplikasi
Ketika sebuah nomor dipanggil, Asterisk akan mengecek
untuk mengetahui apakah sesuai dengan dialplan. Jika ditemukan kesesuaian,
makan masukan itu akan dibaca dan dijalankan. Jika terdapat lebih dari sebuah
masukan untuk nomor yang dipanggil, Asterisk akan menjalankan isi dengan
prioritas 1 lebih dahulu. Parameter ketiga (”Application”) menentukan apa yang
akan dilakukan Asterisk dengan panggilan itu. Berdasarkan pada konfigurasi
contoh kita, yang terjadi ketika sebuah panggilan dari 2001 ke 2000 adalah:
· Asterisk
melihat context dari extesion yang memanggil (2001) dalam
/etc/asterisk/sip.conf. Pada contoh kita, Contextnya adalah [myphones].
Asterisk menggunakan context ini untuk menentukan kelompak mana yang digunakan
dalam /etc/asterisk/extensions.conf.
· Setelah
menemukan context [myphones] dalam /etc/asterisk/extensions.conf, Asterisk
menjalankan isi yang sesuai dengan nomor yang dipanggil, 2000, dengan
prioritasnya. Kita memiliki dua baris yang sesuai pada contoh kita.
· Isi
yang sesuai dengan prioritas 1 akan dijalankan terlebih dahulu, Tidak pedulu
urutan secara fisik dalam isian. Disini, isian dengan prioritas 1 memiliki
aplikasi Dial(SIP/2000,20). Aplikasi Dial() dijalankan dengan paramater yang
telah diberikan; seperti pada isian nomor 2000 dalam /etc/asterisk/sip.conf dan
bunyikan dalam 20 detik(angka “,20 s etelah SIP/2000).
· Jika
extension SIP 2000 tidak menjawab dalam 20 detik, Dial()selesai dan prioritas
ditambah 1.
· Isi
yang sesuai selanjutnya — exten ⇒ 2000,2,VoiceMail(2000,u)— dijalankan.
Asterisk menjalankan aplikasi VoiceMail() dengan parameter “2000 dan “u”. “2000
adalah untuk nomor mailbox seperti yang dikonfigurasi dalam
/etc/asterisk/voicemail.conf; “u” memberitahukan Asterisk untuk menggunakan
pesan standar “unavailable”. tentu saja, voicemail tidak ada gunanya kecuali
anda dapat mengambil pesan yang ditinggalkan kepada anda. Kita dapat memberi
akses dengan mengisi:
exten => 2999,1,VoiceMailMain(${CALLERID(num)},s)
terdapat fungsi dialplan pertama kita di Asterisk! kita
memanggil aplikasi VoiceMailMain() dengan fungsi ${CALLERID(num)} sebagai
parameter. fungsi ${CALLERID(num)} mengembalikan nomor dari pihak yang
memanggil. Dengan cara ini, VoiceMailMain() selalu tahu untuk mengambil pesan
untuk telepon yang memanggilnya. Jika parameter tidak diisi, kita akan ditanya
nomor mailbox. parameter “,s” memberitahu VoiceMailMain() untuk tidak meminta
password untuk pemanggil.
Setelah dilakukan
konfigurasi pada data account dan dial plan maka
lakukan restart asterisk dengan mengetikkan #
/etc/init.d/asterisk restart.
Untuk tahap pengujian ini kita menggunakan X-Lite. terlebih dahulu kita add account untuk melakukan panggilannya, seperti pada gambar dibawah ini.
Lalu masukkan name, dan user name(account) panggilan untuk melakukan panggilan nanti. selain itu juga masukkan password dan IP domain agar saat melakukan panggilan dapat terhubung.
Setelah setting diatas selesai, baru lah diuji dengan melakukan panggilan berdasarkan data account yang telah di add sebelumnya.
0 komentar:
Posting Komentar
SILAHKAN TINGGALKAN KOMENTAR