Saturday, June 30, 2012

Tutorial Membuat VoIP server di UBUNTU 11.10


Pada kali ini akan digunakan Asterisk sebagai servernya. Dimana Asterisk tersebut 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).

Voice over Internet Protocol (juga disebut VoIP, IP Telephony, Internet telephony atau Digital Phone) adalah teknologi yang memungkinkan percakapan suara jarak jauh melalui media internet. Data suara diubah menjadi kode digital dan dialirkan melalui jaringan yang mengirimkan paket-paket data, dan bukan lewat sirkuitanalog telefon biasa.
Definisi VoIP adalah suara yang dikirim melalui protokol internet (IP).

Untuk yang 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 dua buah PC (Saya menggunakan Ubuntu 11.10), koneksi LAN, dan bisa juga koneksi Internet.

PC1 = 141
Asterisk = 140
PC2 = 142

Berikut ini langkah-langkah yang perlu dilakukan:
Hal pertama yang dilakukan adalah dengan mengetikkan perintah dibawah ini yang berguna untuk menginstall paket asterisk
#apt-get install asterisk
Selanjutnya diketikkan perintah berikut ini
#cd /etc/asterisk

#nano sip.conf

Lalu tambahkan dibawahnya dengan mengetikkan:
;add by mutia
[141]
type=friend
context=mutia
username=141
secret=141
host=dynamic
nat=no
dtmfmode=rfc2833
allow=all


Keterangan,
[140]                       :adalah context yang menjadi nomer extension untuk melakukan panggilan dan dipanggil
type=friend              :adalah tipe standar (bisa melakukan panggilan dan dipanggil)
context=mutia          : 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=140         : adalah username dari user
secret=140              : 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. Dari [140] sampai dengan [144] seperti contoh dibawah ini:


[142]
type=friend
context=mutia
username=142
secret=142
host=dynamic
nat=no
dtmfmode=rfc2833
allow=all

[143]
type=friend
context=mutia
username=143
secret=143
host=dynamic
nat=no
dtmfmode=rfc2833
allow=all

Jangan lupa untuk mengesave dengan ctrl+o lalu enter
Selanjutnya disettingkan untuk extension-nya dengan mengetikkan :

#nano extensions.conf

Lalu tambahkan dibawahnya dengan mengetikkan:
;add by mutia
[mutia]
exten => 141,1,Dial(SIP/141,20)
exten => 141,2,Hangup()

exten => 142,1,Dial(SIP/142,20)
exten => 142,2,Hangup()

exten => 140,1,Playback(demo-echotest)
exten => 140,2,Echo
exten => 140,3,Playback(demo-echodone)

exten => 143,1,Dial(SIP/143,20)
exten => 143,2,Hangup()

exten => 144,1,Dial(SIP/144,20)
exten => 144,2,Hangup()

exten => 145,1,Dial(SIP/145,20)
exten => 145,2,Hangup()

exten => 146,1,Dial(SIP/146,20)
exten => 146,2,Hangup()

exten => 147,1,Dial(SIP/147,20)
exten => 147,2,Hangup()

exten => 148,1,Dial(SIP/148,20)
exten => 148,2,Hangup()

exten => 149,1,Dial(SIP/149,20)
exten => 149,2,Hangup()


dimana:
[mutia]                 : adalah context yang mengatur semua user yang menggunakan context mutia pada data account
Exten                      : adalah aturan di asterisk untuk menunjukkan nomor extension
140                        : 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
140 setelah SIP       : adalah nama context di sip.conf
20                           : adalah lamanya berdering saat terjadi pemanggilan oleh user yang lain

Lalu diketikkan perintah untuk merestart Asterisk

#asterisk –rx “reload”

Setelah Asterisk direstart, maka dapat dilakukan pengetesan menggunakan applikasi X-Lite dengan dilakukannya panggilan terhadap Echo ataupun PC lain yang termasuk dalam range-nya.

Pengetesan menggunakan X-Lite :

Untuk diketahui sebelumnya, salah satu PC ;dimana merupakan PCserver yang berfungsi sebagai server haruslah terhubung UBUNTU-nya, atau dalam kata lain UBUNTU pada PCserver tersebut harus nyala. IP yang digunakan untuk konfigurasi adalah IP dari server tersebut, dimana pada kondisi ini IP PCserver adalah : 172.16.30.6

Selanjutnya dapat dilakukan konfigurasi pada PC1 :


Maka tampilan pada X-Lite akan seperti ini :


Dapat dilihat dari gambar diatas bahwa PC1 memiliki username 141.

Untuk pengetesan apakah server tersebut berhasil atau tidak dapat dilakukan dengan melakukan panggilan ke Echo-nya atau pada saat penyetingan sebelumnya adalah 140.

Terlihat bahwa panggilan ke Echo berhasil, yang ditandai dengan adanya suara operator yang terdengar pada headphone yang digunakan. Selain itu, apabila suara operator tersebut selesai maka ketika kita melakukan pengetesan suara, akan terdengar suara tersebut berbalik.

Selanjutnya jika ingin melakukan panggilan terhadap dua PC, maka harus dilakukan konfigurasi lagi pada PC2 yang ingin digunakan.
Sehingga nanti tampilan dari X-Lite pada PC2 adalah :


Untuk melihat apakah PC2 ini sudah terhubung juga terhadap server, maka dapat dilakukan panggilan ke PC1 yang username=141.

Tampilan pada PC1 :

Tampilan pada PC2 :



Dari kedua gambar diatas dapat dilihat bahwa kedua PC tersebut sudah saling terhubung yang ditandai dengan berhasilnya panggilan yang dilakukan. Dengan menggunakan headphone, dapat dilakukan percakapan dari PC1 ke PC2 begitupun sebaliknya.

Selain itu, untuk pengetesan lebih jelas dapat dilakukan panggilan ke PC2 (142) dari PC1(141).

Tampilan pada PC1 :



Tampilan pada PC2 :



Kondisi diatas yaitu pada saat PC2(142) belum mengangkat atau menerima panggilan dari PC1 (141). Hal ini berarti ketika terdapat sebuah panggilan, dapat di accept ataupun diignore.

Setelah diterima oleh PC2(142) panggilan dari PC1(141),maka tampilan akan menjadi seperti :

Pada PC1:


Pada PC2:


Dari pengetesan yang dilakukan dapat diketahui bahwa pengetesan berhasil untuk mengirimkan suara (voice) maupun video antara 2 buah user, dimana pada kondisi ini adalah PC1 dengan username 141 dan PC2 dengan username 142 yang terhubung dengan server Asterisk dengan IP 172.16.30.6 dan Echo 140.