sigit@lapinetworks.com
http://sigit.no-ip.info
Dalam tulisan ini, saya akan mencoba membuat dokumentasi kecil-kecilan™ tentang pembuatan jaringan
Voice over Internet Protocol menggunakan software-software Open Source. Dalam aplikasinya, hanya
dibutuhkan satu buah pc server dan beberapa pc client (2 misalnya) yang saling terhubung satu sama lain.
Parameter saling terhubung satu sama lain: dapat saling -ping.
A. PC Server
Untuk pc server, diperlukan sistem operasi UNIX atau GNU/Linux. Dalam tulisan kali ini, saya akan
memakai FreeBSD-5.4 RELEASE sebagai sistem operasi, alasannya sederhana: kebiasaan. Asterisk
adalah software yang akan diinstal pada server. Asterisk dibuat oleh Digium Corp. sebagai aplikasi proxy
pada protokol SIP, H.323, dan juga MGCP (cukup lengkap kan!).
1. Instalasi
Untuk Instalasi pada GNU/LINUX lihat ***NB di halaman terakhir.
Dalam banyak hal, saya lebih menyukai instalasi menggunakan port pada FreeBSD. Alasannya: ada
ftp://ftp.itb.ac.id, tinggal ketik sebaris perintah, dan.... jebred!!! terinstal dengan ajaibnya :P. Bagi anda
yang ada di dalam kampus ITB, silahkan edit file /etc/make.conf agar fetch port langsung mengarah ke
ftp://ftp.itb.ac.id [ingat, saya pake FreeBSD-5.4 RELEASE], tambahkan line berikut:
MASTER_SITE_OVERRIDE=ftp://ftp.itb.ac.id/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
lalu masuklah ke port Asterisk:
cd /usr/port/net/asterisk
ketik mantra berikut untuk menginstall:
make install clean
*adalah sangat penting bagi anda untuk mengalokasikan /swap file pada sistem anda minimal sebanyak
2X ukuran memori. Kejadian yang pernah saya alami karena melanggar hal ini adalah: getswapspace()
yang menyusahkan pada kernel. Hal ini disebabkan proses kompilasi dan instalasi Asterisk yang sangat
melelahkan bagi pc server anda. Memakan waktu kurang lebih 1 hari [tergantung spec juga ketang] *
Jika proses instalasi telah selesai, maka akan terinstal file /usr/local/sbin/asterisk yang executable. Selain
itu, akan terinstal pula file-file konfigurasi pada direktori /usr/local/etc/asterisk.
> pwd
/usr/local/etc/asterisk
> ls
adsi.conf features.conf oss.conf-dist
adsi.conf-dist features.conf-dist phone.conf
adtranvofr.conf festival.conf phone.conf-dist
adtranvofr.conf-dist festival.conf-dist privacy.conf
agents.conf h323.conf privacy.conf-dist
agents.conf-dist h323.conf-dist queues.conf
alarmreceiver.conf iax.conf queues.conf-dist
alarmreceiver.conf-dist iax.conf-dist res_config_odbc.conf
alsa.conf iaxprov.conf res_config_odbc.confdist
alsa.conf-dist iaxprov.conf-dist res_odbc.conf
asterisk.adsi indications.conf res_odbc.conf-dist
asterisk.adsi-dist indications.conf-dist rpt.conf
asterisk.conf logger.conf rpt.conf-dist
asterisk.conf-dist logger.conf-dist rtp.conf
cdr_manager.conf manager.conf rtp.conf-dist
cdr_manager.conf-dist manager.conf-dist sip.conf
cdr_odbc.conf meetme.conf sip.conf-dist
cdr_odbc.conf-dist meetme.conf-dist sip.conf.ASLI
cdr_pgsql.conf mgcp.conf skinny.conf
cdr_pgsql.conf-dist mgcp.conf-dist skinny.conf-dist
cdr_tds.conf modem.conf telcordia-1.adsi
cdr_tds.conf-dist modem.conf-dist telcordia-1.adsi-dist
enum.conf modules.conf voicemail.conf
enum.conf-dist modules.conf-dist voicemail.conf-dist
extconfig.conf musiconhold.conf vpb.conf
extconfig.conf-dist musiconhold.conf-dist vpb.conf-dist
extensions.conf osp.conf zapata.conf
extensions.conf-dist osp.conf-dist zapata.conf-dist
extensions.conf.ASLI oss.conf
>
Cukup banyak bukan, namun jangan takut dulu, kita tidak perlu menggunakan semua file tersebut. Cukup
konfigurasi file-file yang protokolnya kita gunakan. Dalam hal ini, saya memakai SIP (Session Initiation
Protocol) karena kemampuan intelligent routingnya *client tidak diidentifikasi oleh ip addressnya,
melainkan login usernya*.
2. Konfigurasi
a. Karena kita akan menggunakan protokol SIP, maka sip.conf perlu kita atur. Bentuk konfigurasi
sederhana sip.conf.
[general]
port=5060
bindaddr=0.0.0.0
context=voipcomlabs
[sigit]
type=friend
host=dynamic
defaultip=192.168.79.132
musiconhold=default
context=voipcomlabs
;context=demo
canreinvite=no
username=sigit
secret=sigitganteng
callerid="sigit"
nat=no
dtmfmode=rfc2833
[brian]
type=friend
host=dynamic
defaultip=192.168.79.131
musiconhold=default
context=voipcomlabs
;context=demo
canreinvite=no
username=brian
secret=brian
callerid="brian"
nat=no
dtmfmode=rfc2833
[hotben]
type=friend
host=dynamic
defaultip=192.168.30.215
musiconhold=default
context=voipcomlabs
;context=demo
canreinvite=no
username=hotben
secret=hotben
callerid="hotben"
nat=yes
dtmfmode=rfc2833
[ariewibowo]
type=friend
host=dynamic
defaultip=192.168.64.145
musiconhold=default
context=voipcomlabs
;context=demo
canreinvite=no
username=ariewibowo
secret=ariewibowo
callerid="ariewibowo"
nat=yes
dtmfmode=rfc2833
Penjelasan:
[general] // merupakan context umum, harus ada
port=5060 // port yang digunakan SIP
bindaddr=0.0.0.0 // listen semua ip addr yang request
context=voipcomlabs //nama context jaringan kita
[sigit] // context user, dipakai di extensions.conf untuk seting no. voip
type=friend // tipe-tipe client, lih. sip.conf.default
host=dynamic // menyatakan ip addr dapat berubah
defaultip=192.168.79.132 // default ip addr
musiconhold=default // musik ketika telepon hold
context=voipcomlabs // context jaringan [sama dgn di atas]
;context=demo // karakter ';' untuk commenting
canreinvite=no// mekanisme canreinvite
username=sigit // login client
secret=sigitganteng // password client
callerid="sigit" // id client
nat=no // set yes jika berada di belakang NAT
dtmfmode=rfc2833 // RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals
b. Untuk meng-assign nomor voip ke tiap-tiap user digunakan file extensions.conf, berikut contoh file
sederhana.
[default]
;exten => koko,1,Dial(H323/koko,t,20)
;exten => koko,1,Answer
;exten => koko,2,Playback,current-time
;exten => ridho,1,Dial(H323/ridho,t,20)
exten => 5000,1,Dial,H323/20X.15X.1X0.10X
exten => 4000,1,Dial,H323/20X.15X.1X0.10X
[voipcomlabs]
exten => 100,1,Dial(SIP/sigit)
exten => 101,1,Dial(SIP/sigitlab)
exten => 102,1,Dial(SIP/redo)
exten => 103,1,Dial(SIP/corojkt)
exten => 104,1,Dial(SIP/rommel)
exten => 105,1,Dial(SIP/bramtousai)
exten => 106,1,Dial(SIP/kangmaswiwit)
exten => 107,1,Dial(SIP/pampam)
Berikut adalah penjelasannya:
[default] // setingan untuk jaringan bercontext default
;exten => koko,1,Dial(H323/koko,t,20) // contoh penggunaan protokol H.323 dengan settingan time out
20 detik [lih. extensions.conf.default]
exten => 4000,1,Dial,H323/20X.1X2.1XX.10X // H.323 tidak mengimplementasikan intelligent routing,
satu nomor dikorelasikan ke satu ip addr
[voipcomlabs] // setingan untuk jaringan bercontext voipcomlabs
exten => 100,1,Dial(SIP/sigit) // nomor 100 di assign ke user ber konteks [sigit], langkah 1 Dial lwt
kanal SIP
exten => 102,1,Dial(SIP/redo)
Silahkan coba-coba berbagai macam konfigurasi, termasuk dengan sistem IVR (Interactive Voice
Respons) yang dimiliki oleh Asterisk secara default.
c. Asterisk CLI (Command Line Interface). CLI dapat digunakan untuk monitoring dan juga administrasi
jaringan VoIP yang akan kita buat. Panggil CLI dengan perintah berikut:
/usr/local/sbin/asterisk -r
Berikut adalah beberapa hasil output Asterisk CLI.
> su
Password:
su: Sorry
> su
Password:
riset# /usr/local/sbin/asterisk -r
Asterisk 1.0.6-BRIstuffed-0.2.0-RC7j, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer
=========================================================================
Connected to Asterisk 1.0.6-BRIstuffed-0.2.0-RC7j currently running on riset (pid = 345)
! abort add agi answer autoanswer bri
console database debug
devstate dial dont dump extensions h.323 hangup help
iax2 include
init load local logger meetme mgcp no pri
reload remove
restart send set show sip skinny soft stop
transfer unload
zap
riset*CLI> show c
channel channels codec codecs conferences config
riset*CLI> show co
codec codecs conferences config
riset*CLI> show cod
codec codecs
riset*CLI> show codecs
Disclaimer: this command is for informational purposes only.
It does not indicate anything about your configuration.
INT BINARY HEX TYPE NAME DESC
--------------------------------------------------------------------------------
1 (1 << 0) (0x1) audio g723 (G.723.1)
2 (1 << 1) (0x2) audio gsm (GSM)
4 (1 << 2) (0x4) audio ulaw (G.711 u-law)
8 (1 << 3) (0x8) audio alaw (G.711 A-law)
16 (1 << 4) (0x10) audio g726 (G.726)
32 (1 << 5) (0x20) audio adpcm (ADPCM)
64 (1 << 6) (0x40) audio slin (16 bit Signed Linear PCM)
128 (1 << 7) (0x80) audio lpc10 (LPC10)
256 (1 << 8) (0x100) audio g729 (G.729A)
512 (1 << 9) (0x200) audio speex (SpeeX)
1024 (1 << 10) (0x400) audio ilbc (iLBC)
65536 (1 << 16) (0x10000) image jpeg (JPEG image)
131072 (1 << 17) (0x20000) image png (PNG image)
262144 (1 << 18) (0x40000) video h261 (H.261 Video)
524288 (1 << 19) (0x80000) video h263 (H.263 Video)
riset*CLI> show ch
channel channels
riset*CLI> show channels
B. PC Client
1. Instalasi
Untuk pc client, dapat digunakan sistem operasi microsoft windows. Dalam tulisan ini,
saya menggunakan microsoft windows xp professional. Software client yang akan
digunakan adalah softphone freeware 'X-Lite' hasil produksi Xten Corp.
Download source dari http://sigit.no-ip.info/?page=downloads&&opt=1 Anda tinggal
melakukan dobel klik pada file tersebut. Setelah terinstal biasanya X-Lite akan
mengecek hardware anda. Jadi siapkan terlebih dulu sebuah headset (mic + speaker).
NB: X-Lite hanya mendukung protokol SIP.
2. Konfigurasi
Tampilan X-Lite ketika pertama kali dijalankan:
Artikel Populer IlmuKomputer.Com
Copyright © 2003 - 2006 IlmuKomputer.Com
6
Pilih Menu (tombol di atas angka 3)
Pilih System Settings kemudian SIP Proxy
Pilih Default, pada field-field ini, isi hal-hal berikut:
Enabled: Yes
Display Name: [nama user]
Username: [nama konteks user, [user] di sip.conf]
Authorization User: sama dengan Username
Password: [password user di sip.conf]
Domain/Realm: [ip addr client]
SIP Proxy: [ip_addr_svr:sip_port] cth 192.168.64.132:5060
parameter yang lain tak perlu di set.
Setelah ini semua selesai, Jaringan VoIP siap dicoba. Jangan berharap langsung
berhasil, pembelajarannya ada pada debugging.
***NB:
X-Lite dapat juga berjalan di GNU/LINUX, tetapi anda memerlukan libstdc++5.0 untuk
menggunakannya. Cukup install libstdc++5.0 melalui rpm.
Asterisk dapat pula diinstall dengan mudah untuk GNU/LINUX dengan mendownload
tarball berikut:
http://sigit.no-ip.info/?page=downloads&&opt=2

No comments:
Post a Comment