berbasis web pada sistem operasi linuxrepository.usd.ac.id/32281/1/035314043_full.pdfberbasts web...
TRANSCRIPT
APLIKASI MANAJEMEN ASTERISK VoIP SERVER
BERBASIS WEB PADA SISTEM OPERASI LINUX
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Informatika
Oleh :
Albert Kurnia
03 5314 043
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
i
WEB BASED MANAGEMENT APPLICATION OF ASTERISK
VoIP SERVER IN LINUX OPERATING SYSTEM
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By :
Albert Kurnia
03 5314 043
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
ii
SKRIPSI
APLIKASI MAITAJEMEN ASTERISK VOIP SERYERBERBASIS WEB PADA SISTEM OPERASI LINUX
Oleh:
Albert Kurnia
Tanggal
lll
SKRIPSI
APLIKASI MANAJEMEN,4 S TERISK VOIP SERVERBERBASTS WEB PADA SISTEM OPERASI LINUX
Dipersiapkan dan ditulis oleh :Albert Kurnia
NIM : 03 5314 043
Telah dipertahankan di depan Panitia Penguji
Pada Tanggnl2l Mei 2008
Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tand:
Alb. Agung Hadhiatma, S.T.o M.T.
Sekretaris St. Wi'snu \Mijaya, S.T., M.T.
Ketua
Anggota
Anggota
H. Agung Hennawan, S.T.
Puspaningtyas Sanjoyo Adi, S.T., M.T.
Itas Sains dan Teknologis Sanata Dharma
lv
Tanda Tangan
Yogyakarta, Mei 2008
s.J., s.s., B.s.T., M.A., M.Sc.
PER}IYATAA}I KEASLIAN KARYA
Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya
atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan
daftar pustaka" sebagaimana layalcrya karya ilmiah.
Yogyakart4 Mei 2008
Albert Kurnia
LEMBAR PERNYATAAN PERSETUJUANPUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Albert Kurnia
NIM :03 5314 043
Demi pengembangan ilmu pengetahuan, saya memberikan kepada PerpustakaanUniversitas Sanata Dharma karya ilmiah saya yang berjudul :
APLIKASI MANAJEMEN ASTERISK VOIP SERVERBERBASIS WEB PADA SISTEM OPERASI LINAX
Beserta perangkat yang diperlukan ( bila ada ). Dengan demikian sayamemberikan kepada Perpustakaan Universitas Sanata Dharma hak untukmenyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentukpangkalan dat4 mendistribusikan secara terbatas, dan mempublikasikannya diInternet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin darisaya maupun memberikan royalti kepada saya selama tetap mencantumkan namasaya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal: 12 Juni 2008
Yang menyatakan
( Albert Kurnia )
vi
HALAMAN PERSEMBAHAN
Karya ini ku persembahkan untuk :
....
Tuhan Yesus-ku, panutan sekaligus sumber kekuatan-ku
….
Kedua orang tua-ku yang telah membesarkan aku dengan penuh perhatian
dan kasih sayang
….
Keluarga besarku yang selalu senantiasa memberikan support dan bantuan
selama aku kuliah
….
Kakak dan Adik-ku, partner sejati dalam hidup-ku
....
Marsinah ( Mbak Sinah ), yang telah ikut membesarkan dan merawat aku
dengan penuh perhatian
....
Teman – teman Up 2 U, Sahabat sejati dalam hidupku
....
vii
HALAMAN MOTTO
.....
Practice Makes Perfect
.....
Selalu ada jalan bagi orang yang mau berusaha dan
belajar dengan keras
.....
Lakukan yang terbaik dan berdoalah, maka tidak ada
sesuatu yang mustahil untuk dilakukan
.....
Setiap masalah yang datang pasti akan membawa serta
solusi untuk menyelesaikannya
.....
viii
ABSTRAKSI
Proses konfigurasi Asterisk sebagai VoIP server pada sistem operasi Linux
dapat dilakukan melalui dua cara yaitu berbasis text ( text based ) dan berbasis teknik Asterisk Realtime. Apabila berbasis text konfigurasi dilakukan dengan cara mengetikkan serangkaian parameter pada file tertentu. Sedangkan jika dilakukan dengan menggunakan teknik Asterisk Realtime konfigurasi dilakukan dengan cara menginsertkan data konfigurasi pada tabel yang ada pada database, dimana struktur tabel yang digunakan merupakan struktur tabel standard yang dapat dikenali oleh sistem Asterisk. File atau tabel yang dibutuhkan untuk konfigurasi bergantung dari jenis protokol VoIP yang akan digunakan. Selain itu juga seorang administrator harus melakukan proses konfigurasi Asterisk pada komputer yang dijadikan VoIP Server secara langsung.
Pada penelitian ini akan dibuat sebuah aplikasi konfigurasi Asterisk VoIP server berbasis web yang dapat digunakan untuk konfigurasi Asterisk dengan menggunakan teknik Asterisk Realtime serta berbasis protokol SIP.Dengan menggunakan aplikasi ini seorang Administrator dapat melakukan konfigurasi Asterisk dengan berbasis grafis ( GUI ) dan juga Administrator tidak perlu lagi mendatangi komputer yang dijadikan VoIP server lagi karena aplikasi ini dapat diakses melalui web browser. Dalam pembuatan aplikasi ini digunakan PHP sebagai bahasa pemrograman dan database MySQL.sebagai database aplikasi ini.
ix
ABSTRACT
Asterisk configuration process as VoIP server in Linux operation system could be done in two ways, they are text-based and Asterisk Realtime technique-based. Text-based configuration could be done by typing a set of parameter in a certain file. While, in Asterisk Realtime technique, configuration could be done by inserting configuration data in the table that is available in database, in which table structure used was the standard table structure that could be recognized by Asterisk system. File or table needed for configuration depended on the type of VoIP protocol that would be used. Besides, an administrator has to conduct Asterisk configuration process in the computer that was used as VoIP Server directly.
This study developed a web-based application which could be used in Asterisk configuration using Asterisk realtime technique and protocol-based SIP. By using this application, an administrator could conduct graphic-based Asterisk configuration. Beside that, an administrator did not need to face the computer that was used as VoIP anymore because this application could be accessed through web browser. In making this application, PHP was used as programming language and database MySQL as the database of this application.
x
KATA PENGANTAR
Puji syukur saya haturkan kepada Tuhan Yesus Kristus yang telah
melimpahkan berkat-Nya. Sehingga saya dapat menyelesaikan Laporan Tugas
Akhir ini.
Pada kesempatan ini saya ingin mengucapkan terima kasih kepada pihak –
pihak yang telah membantu saya dalam menyelesaikan skripsi ini, baik dalam hal
bimbingan, perhatian, kasih sayang, semangat, kritik, dan saran yang telah
diberikan. Ucapan terima kasih ini saya sampaikan antara lain kepada :
1. Bapak Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.A., M.Sc., selaku Dekan
Fakultas Saint dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing Akademik
Teknik Informatika angkatan 2003.
4. Bapak Alb. Agung Hadhiatma, S.T, M.T, selaku Dosen Pembimbing I.
Terima kasih atas bimbingan selama saya mengerjakan Laporan Skripsi ini.
5. Bapak H. Agung Hernawan, S.T, selaku Dosen Pembimbing II. Terima kasih
atas bimbingan dan juga atas ide yang bapak berikan kepada saya untuk
mengerjakan Tugas Akhir dengan topik ini. Dan terima kasih juga atas
kesempatan yang diberikan kepada saya untuk kerja part time diwarnet
Bapak.
xi
6. Seluruh staf dan dosen di Universitas Sanata Dharma pada umumnya dan
Jurusan Teknik Informatika pada khususnya.
7. Kedua orangtua dan keluarga tercinta, terima kasih atas dukungan, kasih
sayang dan semangat yang tiada henti sehingga saya dapat menyelesaikan
Tugas Akhir ini.
8. Norbertine Risma Asteria Wardhani, Someone special yang pernah ada
mengisi hari – hariku dengan kebahagiaan dan cinta. Terima kasih atas
semuanya.
9. Staf Laboran Teknik Informatika, Pak Bele terima kasih atas pinjaman kunci
Lab Jarkomnya, Mas Danang dan Pak Dar atas kesabaran dan kesetiannya
selama menemani saya di Lab Jarkom.
10. Teman – teman dari forum voiprakyat : pak Anton Rahardja ( anton_rd ), pak
Onno W.Purbo, Dwidy Putut ( doank_29 ), Salman Kalista, terima kasih atas
bimbingan dan jawaban – jawaban yang diberikan atas pertanyaan yang saya
tulis di forum voiprakyat.
11. Teman – teman Up2U : Ari P.K, Arief ( Surip ), Gunawan ( Bobo ), Grace,
Titiek, Nanick, Dewi, Lolo, Lulu, Risma, Rio ( mbah Dukun ), Wawan
( Liong ), Nunug, Heri ( Boyo ), Galih ( Gaband ), Ibu Khatarina Sri H.D ( bu
Uciek ), Ninin. Yang telah memberikan arti persahabatan bagi hidup saya.
12. Teman – teman Informatika angkatan 2003 yang telah berjuang bersama
dengan saya sewaktu kuliah, special buat Evi ( epot ) dan Ari Tunggul
( Teman dikala susah dan senang ☺ ), Yansen ( yang telah mengenalkan
Linux pada saya ) , Albert C.P ( Sang Kepala Suku ), Si Jun, Bergas, Eko
xii
( Ucup ), Hendrik ( Cilblek ), Ellen, Jeje, Dion, Adwi, Danang, Heni, Angga
( TooCool ), Marcell, Irvan, Hendro, Dian, Isti, Si Nug ( akhirnya selesai juga
yach www.kalithi.com nya ☺ ), Acied, Kristin dan Tika ( Teman seperjuangan
waktu pendadaran ☺ ), Ruth, Onezzt, Sarah, Ina, Ratih, Gina, Dea, Agus
( Gepenk ), Devi, Anis, Dani, Wikan ( Erros ), Linda, Risa, Santhos, Amin,
Winda, Fendy, Seno, Chandra, Hana, David, Merry, Monic, Yeyen, Pamako
Renda ( Anak TI 03 yang pertama kali saya kenal ), Nur, Rubin, Esther, Oscar,
Ria, Rachel, serta teman – teman jurusan Teknik Informatika lainnya.
13. Seluruh pihak yang membantu saya baik secara langsung maupun tidak
langsung, yang tidak dapat saya sebutkan satu persatu.
Saya menyadari masih banyak kekurangan yang terdapat pada laporan ini.
Saran dan kritik selalu saya harapkan dari pembaca untuk perbaikan – perbaikan
di masa yang akan datang.
Akhir kata, saya berharap tulisan ini dapat bermanfaat bagi kemajuan dan
perkembangan ilmu pengetahuan dan berbagai pihak pengguna pada umumnya.
Yogyakarta, Mei 2008
Penulis
xiii
DAFTAR ISI
HALAMAN JUDUL .................................................................................................
HALAMAN PERSETUJUAN ..................................................................................
HALAMAN PENGESAHAN ...................................................................................
PERNYATAAN KEASLIAN KARYA ...................................................................
PERNYATAAN PUBLIKASI KARYA ..................................................................
HALAMAN PERSEMBAHAN ...............................................................................
HALAMAN MOTTO ...............................................................................................
ABSTRAK ................................................................................................................
ABSTRACT ..............................................................................................................
KATA PENGANTAR ..............................................................................................
DAFTAR ISI .............................................................................................................
DAFTAR GAMBAR ................................................................................................
DAFTAR TABEL .....................................................................................................
i
iii
iv
v
vi
vii
viii
ix
x
xi
xiv
xviii
xxv
BAB I. PENDAHULUAN
1.1 Latar Belakang Masalah ................................................................................
1.2 Rumusan Masalah .........................................................................................
1.3 Batasan Masalah ............................................................................................
1.4 Tujuan Penelitian ...........................................................................................
1.5 Manfaat Penelitian .........................................................................................
1.6 Metodologi Penelitian ...................................................................................
1
3
4
5
5
6
xiv
1.7 Sistematika Penulisan .................................................................................... 7
BAB II. LANDASAN TEORI
2.1 Transmission Control Protocol / Internet Protocol (TCP/IP) .......................
2.1.1 Transmission Control Protocol ( TCP ) ...................................................
2.1.2 Internet Protocol ( IP ) .............................................................................
2.2 Voice over Internet Protocol ( VoIP ) ..........................................................
2.2.1 Format Paket VoIP ....................................................................................
2.2.2 Protokol Standard dalam sistem VoIP ......................................................
2.2.3 Kebutuhan Bandwith untuk VoIP .............................................................
2.2.4 Jenis Konfigurasi Jaringan VoIP ..............................................................
2.3 Session Initiation Protocol ( SIP ) ................................................................
2.3.1 Susunan Protokol SIP ...............................................................................
2.3.2 Komponen Protokol SIP ...........................................................................
2.3.3 Pengalamatan Protokol SIP ......................................................................
2.3.4 Format Pesan Protokol SIP .......................................................................
2.3.5 Header Field pada Protokol SIP ...............................................................
2.3.6 SIP Request dan SIP Response .................................................................
2.3.6.1 SIP Request ...........................................................................................
2.3.6.2 SIP Response ........................................................................................
2.3.7 Prosedur Persinyalan pada Protokol SIP ...................................................
2.3.7.1 Prosedur Persinyalan menggunakan Proxy Server ...............................
2.3.7.2 Prosedur Persinyalan menggunakan Redirect Server ...........................
2.3.8 Fungsi dari Protokol SIP ..........................................................................
9
9
12
13
14
15
15
16
19
20
22
23
24
25
26
26
27
28
28
29
31
xv
2.4 Internet Protocol Private Branch Exchange ( IP PBX ) ...............................
2.4.1 Komponen Dasar IP PBX .........................................................................
2.5 Asterisk ..........................................................................................................
2.5.1 Features Asterisk ......................................................................................
2.5.2 File Konfigurasi Asterisk ..........................................................................
2.5.3 Konfigurasi Asterisk .................................................................................
2.6 Asterisk Realtime Architecture ( ARA ) ........................................................
2.6.1 Langkah – Langkah Konfigurasi ARA pada Asterisk ..............................
2.7 Web Browser .................................................................................................
2.8 Web Server ....................................................................................................
2.9 PHP ...............................................................................................................
31
33
34
35
36
36
39
40
45
46
46
BAB III. ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM
3.1 Analisis Kebutuhan Sistem ...........................................................................
3.2 Gambaran Umum Sistem Komunikasi VoIP menggunakan Asterisk ...........
3.3 Penggunaan Teknik Asterisk Realtime Dalam Konfigurasi Asterisk
Berbasis Protokol SIP ..................................................................................
3.4 Perancangan Sistem ......................................................................................
3.4.1 Flowchart Komunikasi VoIP ....................................................................
3.4.2 Use Case Diagram Aplikasi .....................................................................
3.4.3 Sequence Diagram Aplikasi ......................................................................
3.4.4 Konfigurasi Hardware dan Software ........................................................
3.4.5 Skenario Pengujian Sistem .......................................................................
3.4.6 Struktur Tabel Database ...........................................................................
47
50
51
56
56
57
60
68
71
73
xvi
3.4.7 Perancangan Antarmuka ( User Interface ) .............................................. 78
BAB IV. IMPLEMENTASI SISTEM
4.1 Spesifikasi Hardware dan Software yang digunakan ...................................
4.2 Setting Koneksi Asterisk dengan database MySQL .....................................
4.3 Implementasi Antarmuka ( User Interface ) .................................................
4.4 Implementasi File Antarmuka dan File Action .............................................
4.5 Implementasi Skenario Pengujian Sistem .....................................................
4.6 Implementasi IP Phone sebagai client Asterisk VoIP Server ........................
4.7 Implementasi X-Lite sebagai client Asterisk VoIP Server ............................
4.8 Implementasi VoIP Gateway ( ITG ) sebagai media penghubung antara
jaringan VoIP dengan jaringan PABX ..........................................................
95
97
101
141
141
153
157
161
BAB V. ANALISIS HASIL IMPLEMENTASI
5.1 .Hasil Uji Coba Program ................................................................................
5.2 .Analisis Konfigurasi Asterisk sebagai VoIP Server Berbasis Protokol SIP ..
5.3 .Kelebihan dan Kekurangan Program ............................................................
5.3.1 Kelebihan Program ...................................................................................
5.3.2 Kekurangan Program ................................................................................
167
167
172
172
173
BAB VI KESIMPULAN DAN SARAN
6.1 Kesimpulan ....................................................................................................
6.2 Saran ..............................................................................................................
174
175
DAFTAR PUSTAKA
LAMPIRAN
xvii
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Format Paket Voice over Internet Protocol ( VoIP ) 14
2.2 Hubungan Telepon menggunakan N:1 Gateway 17
2.3 Hubungan PC menggunakan Router 17
2.4 Hubungan Telepon ke PC 18
2.5 Hubungan dengan Gateway 1:1 18
2.6 Hubungan menggunakan LAN ( Local Area Network ) 19
2.7 Susunan Protokol SIP 20
2.8 Format Pengalamatan pada Protokol SIP 24
2.9 Format Pesan SIP 24
2.10 Prosedur Persinyalan SIP menggunakan Proxy Server 28
2.11 Prosedur Persinyalan SIP menggunakan Redirect Server 29
2.12 Komponen Dasar IP PBX 33
2.13 Format Blok text Data Account 37
2.14 Contoh Konfigurasi Data Account ( menggunakan SIP ) 37
2.15 Format Penulisan DialPlan 37
2.16 Contoh Konfigurasi DialPlan 39
2.17 Contoh Konfigurasi file res_mysql.conf 41
2.18 Contoh Konfigurasi file cdr_mysql.conf 41
2.19 Contoh Konfigurasi file extconfig.conf 42
xviii
2.20 Contoh Konfigurasi file extensions.conf 42
2.21 Perintah SQL untuk membuat tabel sip_buddies 43
2.22 Perintah SQL untuk membuat tabel extensions_table 44
2.23 Perintah SQL untuk membuat tabel voicemail_users 44
2.24 Perintah SQL untuk membuat tabel cdr 45
3.1 Perangkat Telepon VoIP Hardware ( IP Phone ) 48
3.2 Perangkat Telepon VoIP Software ( X-Lite ) 48
3.3 Perangkat VoIP Gateway 49
3.4 Sistem Komunikasi VoIP Menggunakan Asterisk 51
3.5 Contoh Konfigurasi Otentikasi User Pada File sip.conf 53
3.6 Contoh Konfigurasi DialPlan Pada File extensions.conf 54
3.7 Contoh Konfigurasi Voicemail Pada File voicemail.conf 55
3.8 Flowchart Proses Komunikasi VoIP 56
3.9 Use Case Diagram Aplikasi 57
3.10 Sequence Diagram Login 60
3.11 Sequence Diagram Asterisk File 61
3.12 Sequence Diagram Service Asterisk 61
3.13 Sequence Diagram Menambah Extensions Line 62
3.14 Sequence Diagram Mengedit Extensions Line 62
3.15 Sequence Diagram Menghapus Extensions Line 63
3.16 Sequence Diagram Menambah PABX Line 63
3.17 Sequence Diagram Mengedit PABX Line 64
xix
3.18 Sequence Diagram Menghapus PABX Line 64
3.19 Sequence Diagram Menambah Trunking Server Line 65
3.20 Sequence Diagram Mengedit Trunking Server Line 65
3.21 Sequence Diagram Menghapus Trunking Server Line 66
3.22 Sequence Diagram Change Password Administrator 66
3.23 Sequence Diagram Cari Data Call Detail Record 67
3.24 Sequence Diagram Menghapus Data Call Detail Record 67
3.25 Sequence Diagram Phonebook 68
3.26 Skenario Komunikasi VoIP menggunakan
Sebuah VoIP Server 71
3.27 Skenario Komunikasi VoIP PC to Phone dan Phone to PC 72
3.28 Skenario Komunikasi VoIP menggunakan dua buah
VoIP Server ( Trunking Server ) 73
3.29 Perancangan Antarmuka Login Administrator 78
3.30 Perancangan Antarmuka Phonebook 79
3.31 Perancangan Antarmuka Index Configuration 80
3.32 Perancangan Antarmuka Asterisk File 81
3.33 Perancangan Antarmuka Edit Asterisk File 82
3.34 Perancangan Antarmuka Service Asterisk 83
3.35 Perancangan Antarmuka Extensions Line Type Local 84
3.36 Perancangan Antarmuka Extensions Line Type Trunk 85
3.37 Perancangan Antarmuka Edit Extensions Line Type Trunk 86
xx
3.38 Perancangan Antarmuka Edit Extensions Line Type Local 87
3.39 Perancangan Antarmuka PABX Line 88
3.40 Perancangan Antarmuka Edit PABX Line 89
3.41 Perancangan Antarmuka Trunking Server Line 90
3.42 Perancangan Antarmuka Trunking Registration Status 91
3.43 Perancangan Antarmuka Edit Trunking Server Line 92
3.44 Perancangan Antarmuka Call Detail Record 93
3.45 Perancangan Antarmuka Change Password Administrator 94
4.1 Hasil Load Module Koneksi Asterisk Ke database MySQL 98
4.2 Implementasi Antarmuka Login Administrator 101
4.3 Implementasi Antarmuka Phonebook 102
4.4 Antarmuka Hasil Data Phonebook ditemukan 103
4.5 Implementasi Antarmuka Index Configuration 104
4.6 Implementasi Antarmuka Asterisk File 106
4.7 Implementasi Antarmuka Edit Asterisk File 108
4.8 Implementasi Antarmuka Asterisk File 109
4.9 Implementasi Antarmuka Extensions Line Type Local 110
4.10 Antarmuka Hasil Penambahan Extensions Line
Type Local 113
4.11 Antarmuka Konfirmasi Delete Extensions Line Type Local 114
4.12 Implementasi Antarmuka Edit Extensions Type Local 116
4.13 Antarmuka Informasi Proses Edit Extensions Type Local 118
xxi
4.14 Implementasi Antarmuka Extensions Line type Trunk 118
4.15 Antarmuka Hasil Penambahan Extensions Line
Type Trunk 120
4.16 Antarmuka Konfirmasi Hapus Extensions Line
Type Trunk 121
4.17 Implementasi Antarmuka Edit Extensions Type Trunk 122
4.18 Implementasi Antarmuka PABX Line 123
4.19 Antarmuka Hasil Penambahan Account PABX Line 126
4.20 Antarmuka Konfirmasi Hapus Data PABX Line 127
4.21 Implementasi Antarmuka Edit PABX Line 128
4.22 Antarmuka Informasi Proses Edit PABX Line 129
4.23 Implementasi Antarmuka Trunking Server Line 130
4.24 Antarmuka Informasi Hasil Penambahan
Trunking Server Line 133
4.25 Antarmuka Hasil Penambahan Trunking Server Line 133
4.26 Antarmuka Konfirmasi Hapus data Trunking Server Line 134
4.27 Implementasi Antarmuka Edit Trunking Server Line 136
4.28 Implementasi Antarmuka Trunking Registration Status 137
4.29 Implementasi Antarmuka Call Detail Record 139
4.30 Implementasi Antarmuka Change Password Administrator 140
4.31 Skenario Jaringan VoIP Menggunakan Sebuah
VoIP Server 141
xxii
4.32 Tabel Data Account Extensions Local Skenario Jaringan I 142
4.33 Skenario Komunikasi VoIP PC to Phone dan Phone to PC 143
4.34 Tabel Data Account Extensions Local Skenario Jaringan II 145
4.35 Tabel Data Account PABX Line Skenario Jaringan II 146
4.36 Skenario Komunikasi VoIP menggunakan dua buah
VoIP Server ( Trunking Server ) 147a
4.37 Tabel Data Account Extensions Local dan Trunk
Pada VoIP Server I Skenario Jaringan III 149
4.38 Tabel Data Account Extensions Local dan Trunk
Pada VoIP Server II Skenario Jaringan III 150
4.39 Tabel Data Account Trunking Server Line
Pada VoIP Server I Skenario Jaringan III 151
4.40 Tabel Data Account Trunking Server Line Pada
VoIP Server II Skenario Jaringan III 152
4.41 Halaman Login Admin pada Perangkat IP Phone 153
4.42 Halaman Informasi Perangkat IP Phone 154
4.43 Menu Network Configuration pada Perangkat IP Phone 155
4.44 Menu SIP Configuration pada Perangkat IP Phone 156
4.45 Tampilan Proses Registering IP Phone 156
4.46 Tampilan Status IP Phone siap digunakan 157
4.47 Tampilan Awal Program X-Lite 158
4.48 Jendela Menu Konfigurasi pada X-Lite 158
xxiii
4.49 Menu SIP Account Pada X-Lite 159
4.50 Konfigurasi SIP Account Pada X-Lite 159
4.51 Aktifasi X-Lite 160
4.52 Tampilan Proses Registering Pada X-Lite 160
4.53 Tampilan X-Lite Siap Digunakan 161
4.54 Tampilan Login Admin Perangkat ITG 162
4.55 Tampilan Awal Menu Konfigurasi ITG 163
4.56 Menu WAN Setting pada Perangkat ITG 163
4.57 Pemasangan Kabel Pada ITG 164
4.58 Tampilan Form Input Data Registrasi Pada ITG 165
4.59 Setting Data SIP Proxy Pada ITG 166
4.60 Tampilan Status registrasi Perangkat ITG
ke Asterisk VoIP Server 166
5.1 Konfigurasi otentikasi user pada file sip.conf 169
5.2 Konfigurasi DialPlan pada file extensions.conf 170
5.3 Konfigurasi voicemailbox pada file voicemail.conf 171
xxiv
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Protokol Standard VoIP 15
2.2 Kebutuhan Bandwith VoIP 16
2.3 Pesan SIP Response 27
3.1 Contoh Konfigurasi Otentikasi User Pada
Tabel sip_buddies 53
3.2 Contoh Konfigurasi DialPlan Pada Tabel extensions_table 54
3.3 Contoh Konfigurasi Voicemail Pada Tabel voicemail_users 55
3.4 Tabel Admin 74
3.5 Tabel sip_buddies 74
3.6 Tabel extensions_table 75
3.7 Tabel Voicemail_users 75
3.8 Tabel CDR 76
3.9 Tabel PABX_tables 76
3.10 Tabel Trunking_tables 77
4.1 Daftar file Antarmuka dan file Action 141
4.2 Data Register Client Skenario Jaringan I 143
4.3 Data Registrasi Client Skenario Jaringan II 145
4.4 Data Registrasi Perangkat VoIP Gateway 146
xxv
Skenario Jaringan II
4.5 Data Registrasi Client Pada VoIP Server I
Skenario Jaringan III 149
4.6 Data Registrasi Client Pada VoIP Server II
Skenario Jaringan III 150
4.7 Data Registrasi Trunking VoIP Server I
ke VoIP Server II 151
4.8 Data Registrasi Trunking VoIP Server II
ke VoIP Server I 152
5.1 Kebutuhan Konfigurasi Asterisk Berdasarkan
Cara Konfigurasi 168
5.2 Konfigurasi otentikasi user pada tabel sip_buddies 169
5.3 Konfigurasi DialPlan pada tabel extensions_table 170
5.4 Konfigurasi voicemail pada tabel voicemail_users 171
xxvi
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Tingginya tarif komunikasi, terutama untuk sambungan jarak jauh
misalkan : SLJJ ( Sambungan Langsung Jarak Jauh ) maupun SLI ( Sambungan
Langsung Internasional ) seringkali menjadi kendala dalam berkomunikasi
melalui jaringan telepon biasa ( PSTN ). Tingginya tarif komunikasi tersebut
dipengaruhi oleh beberapa faktor diantaranya jarak dan waktu, sehingga semakin
jauh jarak dan semakin lama panggilan yang dilakukan melalui jaringan telepon
tersebut, maka tarif yang harus dibayarkan juga semakin tinggi.
Salah satu alternatif untuk mengatasi kendala dalam berkomunikasi tersebut
adalah dengan memanfaatkan teknologi Internet. Salah satunya dengan
menggunakan teknologi telepon via Internet yang dikenal dengan IP Telephony,
selanjutnya dikenal dengan istilah VoIP ( Voice over Internet Protocol ). Secara
sederhana, VoIP bisa diartikan bertelepon menggunakan jaringan IP ( Internet
Protocol ) atau Internet. Dengan bertelepon menggunakan VoIP banyak
keuntungan yang dapat diambil, diantaranya adalah dari segi biaya jelas lebih
murah dibandingkan dengan telepon biasa ( PSTN ), hal ini dikarenakan jaringan
IP atau Internet bersifat global. Sehingga faktor jarak dan waktu tidak lagi
mempengaruhi tarif komunikasi. Dan sudah bukan merupakan hal yang asing lagi
bahwa biaya pulsa untuk akses Internet lebih murah dibandingkan dengan biaya
telepon biasa ( PSTN ).
1
2
Salah satu software yang dapat digunakan untuk implementasi teknologi
VoIP adalah Asterisk. Asterisk merupakan salah satu software IP PBX ( Internet
Protocol Private Branch Exchange ) jenis SIP Proxy, dengan menggunakan
Asterisk dimungkinkan untuk membangun sebuah sentral telepon sederhana
berbasis jaringan IP ( Internet Protocol ). Asterisk berupa file konfigurasi yang
dapat digunakan untuk membangun sebuah sentral telepon berbasis jaringan IP
( VoIP Server ). Asterisk didukung oleh beberapa protokol untuk komunikasi
VoIP, antara lain SIP ( Session Initiation Protocol ), IAX ( Inter-Asterisk
Exchange ), H.323, MGCP ( Media Gateway Control Protocol ), dan SCCP
( Cisso Skinny ).
Setting konfigurasi pada Asterisk untuk membangun VoIP Server pada
dasarnya meliputi proses dua proses yaitu pertama, proses otentikasi user
(dengan nomor telepon dan password) dan kedua, proses konfigurasi DialPlan.
DialPlan merupakan konfigurasi yang digunakan untuk mengatur apa yang harus
dilakukan untuk melakukan panggilan ke sebuah nomor telepon tertentu.
Setting konfigurasi Asterisk untuk membangun sebuah sentral telepon
( VoIP Server ) dapat dilakukan melalui dua cara yaitu : berbasis text ( text based )
dan berbasis Asterisk Reealtime. Konfigurasi Asterisk berbasis text ( text based ),
merupakan konfigurasi Asterisk yang dilakukan dengan cara mengetikkan
serangkaian aturan konfigurasi pada file tertentu secara langsung, sedangkan
konfigurasi Asterisk berbasis Asterisk Realtime merupakan cara konfigurasi
Asterisk yang dilakukan dengan cara mengentrykan data pada tabel tertentu pada
database yang telah disiapkan sebelumnya.
3
Selain itu juga setting konfigurasi masih dilakukan dengan cara mendatangi
komputer ( PC ) yang dijadikan VoIP Server tersebut secara langsung, hal ini
tentu saja sangat merepotkan bagi seorang pengguna khususnya yang ingin
membuat sebuah sentral telepon sederhana dengan menggunakan Asterisk.
Dengan melihat permasalahan yang ada pada setting konfigurasi pada
Asterisk tersebut, maka pada penelitian ini akan dibangun sebuah aplikasi
manajemen Asterisk VoIP Server, khususnya untuk mengatur proses otentikasi
username dan password dari client VoIP Server dan proses pengaturan DialPlan
yang berbasis web dan dengan menggunakan teknik Asterisk Realtime dan
berbasis protokol SIP pada sistem operasi Linux. Aplikasi ini akan dibuat dengan
menggunakan bahasa pemrograman PHP ( Hypertext Preprocessor ) dan database
MySQL.
1.2 Rumusan Masalah
Permasalahan pada penelitian ini adalah :
1. Bagaimana mengkonfigurasi Asterisk sebagai VoIP Server dengan
menggunakan teknik Asterisk Realtime dan berbasis protokol SIP
sehingga dapat digunakan untuk implementasi teknologi VoIP,
khususnya untuk membangun sebuah sentral telepon berbasis jaringan IP
( Internet Protocol ).
2. Bagaimana mengimplementasikan teknologi berbasis web untuk
membuat sebuah program aplikasi manajemen Asterisk pada sistem
operasi Linux yang dapat diakses jarak jauh ( remote ), sehingga
4
memberikan kemudahan bagi pengguna ( administrator ) untuk setting
konfigurasi Asterisk, khususnya untuk proses otensikasi user dan proses
pengaturan DialPlan yang berbasis GUI ( Graphical User Interface ).
1.3 Batasan Masalah
Karena keterbatasan waktu, tenaga dan kemampuan, penelitian ini di batasi
sebagai berikut :
1. Sistem yang dibuat dibatasi untuk implementasi VoIP menggunakan
Asterisk sebagai VoIP Server, khususnya untuk membuat sebuah sentral
telepon berbasis jaringan IP atau internet yang menyediakan layanan
komunikasi suara seperti layaknya komunikasi pada jaringan telepon
biasa ( PSTN ).
2. Sistem yang dibuat dibatasi pada proses konfigurasi Asterisk untuk
proses otensikasi user dan pengaturan DialPlan dengan menggunakan
teknik Asterisk Realtime.
3. Pada penelitian ini tidak membahas mengenai kebutuhan dan
perhitungan bandwith yang dibutuhkan pada implementasi VoIP yang
dapat digunakan untuk membangun layanan telepon berbasis jaringan IP.
4. Protokol VoIP yang akan digunakan adalah SIP ( Session Initiation
Protocol ).
5. Features Asterisk yang digunakan pada penelitian ini antara lain :
voicemail system, call detail record, caller id, remote call agents, local
call agents.
5
6. Setting konfigurasi yang digunakan adalah setting konfigurasi yang
berhubungan dengan konfigurasi Asterisk dengan Teknik Asterisk
Realtime dan berbasis protokol SIP.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun aplikasi berbasis grafis (GUI)
yang dapat digunakan untuk mengkonfigurasi Asterisk VoIP server, khususnya
untuk konfigurasi proses otensikasi user ( dengan username dan password ) dan
proses pengaturan DialPlan sehingga dapat digunakan untuk membantu dalam
membangun sebuah sentral telepon berbasis jaringan IP ( Internet Protocol ).
1.5 Manfaat Penelitian
Dengan adanya aplikasi yang akan dibuat pada penelitian ini, ada beberapa
manfaat yang diperoleh, yaitu :
1. Memberikan alternatif solusi untuk mengatasi kendala dalam
berkomunikasi, khususnya berkaitan dengan tingginya biaya komunikasi
menggunakan jaringan telepon biasa (PSTN) dengan cara
mengimplementasikan teknologi komunikasi melalui jaringan VoIP
dengan menggunakan Asterisk.
2. Proses konfigurasi pada Asterisk, khususnya untuk menangani otentikasi
user dan pengaturan DialPlan dapat dilakukan dengan berbasis grafis
( GUI ), yaitu dengan cara menginputkan data pada form yang telah
disediakan pada aplikasi ini.
6
1.6 Metodologi Penelitian
Metode yang dipergunakan untuk perancangan sistem dan pembuatan
perangkat lunak ( aplikasi ) , serta menyelesaikan permasalahan adalah dengan
cara :
1. Studi Literatur
Kegiatan ini merupakan pendalaman materi yang berkaitan dengan
pembuatan program dan sistem yang akan dibuat meliputi :
a. Mengenal serta pendalaman konfigurasi dan cara kerja Asterisk
sebagai VoIP Server pada sistem operasi Linux, sehingga mendukung
untuk membangun sebuah sentral telepon berbasis jaringan IP dan
berbasis protokol SIP.
b.Pendalaman bahasa pemrogaman PHP dan aplikasi database MySQL
untuk membangun aplikasi manajemen Asterisk VoIP Server.
2. Perancangan Sistem
Setelah melakukan studi Literatur selanjutnya dilanjutkan dengan
perancangan sistem yang akan dibuat, perancangan meliputi topologi sistem
beserta piranti – piranti yang digunakan dan desain user interface.
3. Implementasi
Pada tahap ini adalah penerapan desain ke dalam bentuk program dengan
memanfaatkan bahasa pemrograman yang ada.
7
1.7 Sistematika Penulisan
BAB I PENDAHULUAN
Berisi latar belakang masalah, batasan masalah, tujuan tugas akhir,
rumusan masalah, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi landasan teori yang mendukung kegiatan penelitian,
baik dalam analisis, desain dan implementasi sistem.
BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM
Berisi tentang langkah – langkah pembuatan perangkat lunak serta
piranti yang digunakan untuk menyelesaikan masalah.
BAB IV IMPLEMENTASI SISTEM
Bab ini menjelaskan mengenai implementasi rancangan ( desain )
ke dalam bentuk utilitas yang nyata yang dapat dipergunakan
secara langsung.
BAB V ANALISIS HASIL IMPLEMENTASI
Bab ini berisi analisa mengenai aplikasi perangkat lunak yang telah
dibuat, serta kelebihan dan kekurangan aplikasi.
8
BAB VI PENUTUP
Bab ini berisi kesimpulan yang diperoleh dari keseluruhan proses
pembuatan tugas akhir ini, serta beberapa saran untuk
pengembangan aplikasi lebih lanjut.
9
BAB II
LANDASAN TEORI
2.1. Transmission Control Protocol / Internet Protocol (TCP/IP)
2.1.1.Transmission Control Protocol ( TCP )
Dalam komunikasi dua atau lebih network device diperlukan sebuah standar
yang saling dimengerti satu sama lain, seperti layaknya sebuah bahasa bagi
manusia agar dapat berkomunikasi dengan baik antara satu sama lain. Dalam
sebuah network istilah “bahasa” tersebut disebut dengan protokol. TCP/IP sendiri
merupakan kumpulan protokol yang terdiri dari dua protokol utama, yaitu :
Transmission Control Protocol dan Internet Protocol. TCP/IP memungkinkan
terjadinya komunikasi antar komputer yang memiliki perbedaan karakteristik dari
segi hardware ataupun software.
Model TCP/IP dikembangkan pertama kali oleh Departmen Pertahanan
Amerika Serikat (U.S. Department of Defense – DoD) dengan tujuan membangun
jaringan yang dapat bertahan pada segala kondisi. Sejak saat itu TCP/IP dijadikan
model dasar yang terus digunakan, contoh model dasar dari TCP/IP adalah
internet.
Fitur – fitur yang di miliki oleh TCP / IP ( menurut Hunt 2002 ) :
1) Merupakan open protokol standard, tersedia secara bebas dan
dikembangkan terlepas dari perangkat keras komputer dan sistem operasi.
Karena dukungan yang luas inilah, TCP/IP sangat ideal untuk menyatukan
berbagai perangkat keras dan lunak komputer yang beraneka ragam.
10
2) Independen dari perangkat keras jaringan yang khusus. Hal ini
memungkinkan penyatuan dari berbagai macam jenis jaringan. TCP/IP
dapat di pakai pada Ethernet, koneksi DSL, dial-up line, dan semua jenis
medium transmisi fisik lainnya.
3) Memiliki skema pengalamatan yang memungkinkan setiap TCP/IP device
dapat di kenali secara spesifik walaupun berada dalam jaringan yang
sangat besar seperti internet.
TCP merupakan bagian dari protokol TCP/IP yang digunakan bersama
dengan IP untuk mengirimkan data dalam bentuk unit-unit pesan antara komputer
ke internet. Pengiriman data ini dapat terjamin karena TCP memilki dua proses
data acknowledgement yaitu retransmisi dan sequencing di mana TCP selalu
meminta konfirmasi setiap kali selesai mengirim data , apakah data telah sampai
ditempat tujuan. Kemudian TCP akan mengirimkan data urutan berikutnya atau
melakukan retransmisi yaitu pengiriman ulang data tersebut. Data yang dikirim
dan diterima diatur berdasarkan nomor urut. TCP juga mengawasi unit data
individual atau dikenal dengan nama paket, dimana pesan-pesan dibagi efisiensi
routing melewati internet (Gilbert, 1995).
Protokol TCP bertanggung jawab untuk pengiriman data dari sumber ke
tujuan dengan benar. TCP juga bertugas mendeteksi kesalahan atau hilangnya data
dan melakukan pengiriman kembali sampai data yang benar diterima dengan
lengkap. TCP menyediakan pelayanan seperti connection oriented, reliable, byte
stream service. Connection oriented berarti dua aplikasi pengguna TCP harus
melakukan pembentukan hubungan dalam melakukan pertukaran data tersebut.
11
Reliable berarti TCP menerapkan proses deteksi kesalahan paket dan retransmisi.
Byte stream service berarti paket dikirimkan dan sampai ke tempat tujuan secara
berurutan.
TCP/IP terdiri dari empat layer kumpulan protokol. layer tersebut antara
lain :
Network interface layers
Dikenal juga sebagai link layer, merupakan layer terbawah yang
bertanggung jawab mengirim dan menerima data ke dan dari fisik. Media
fisiknya dapat berupa kabel, kabel optik, atau gelombang radio. Karena
tugasnya ini, protokol pada layer ini harus mampu menjadi data digital yang
di mengerti komputer yang berasal dari peralatan lain yang sejenis.
Network layer biasanya disebut Internet layers
Protokol yang berada pada layer ini bertanggung jawab dalam proses
pengiriman paket ke alamat yang tepat. Pada layer ini terdapat tiga macam
protokol yaitu IP, ARP, dan ICMP.
Transport layers
Layer ini berisi protokol yang bertanggung jawab untuk mengadakan
komunikasi antara dua host. Kedua protokol yang terdapat pada layer ini
adalah TCP ( Transmission Control Protocol ) dan UDP ( User Datagram
Protokol ).
Applications layers
Pada lapisan ini terletak semua aplikasi yang menggunakan protokol
TCP/IP. Pada lapisan ini terdapat beberapa protokol seperti TFTP, FTP,
12
NFS untuk file transfer. SMTP dan POP3 sebagai protokol aplikasi e-mail.
Telnet dan ssh sebagai aplikasi remote login. SNMP sebagai protokol
manajemen jaringan. Kemudian DNS, sebagai protokol aplikasi sistem
penamaan di internet. Serta HTTP, sebagai protokol aplikasi web.
2.1.2 Internet Protocol ( IP )
IP adalah protokol pada TCP/IP yang mengatur bagaimana suatu data dapat
dikenal dan dikirim dari satu komputer ke komputer lain sampai tujuan dalam
suatu jaringan komputer. IP memiliki karakteristik sebagai connectionless
protocol. Ini berarti IP tidak melakukan erorr – detection- and-recovery dan
pertukaran kontrol informasi ( disebut juga “handshake” ) untuk membangun
sebuah koneksi sebelum mengirim data. Sebuah koneksi baru akan terjadi apabila
proses handshake tersebut dilakukan, sehinga dalam hal ini IP bergantung pada
layer lainnya untuk melakukan handshake tersebut ( hunt, 2002 ).
IP memiliki 5 fungsi utama dalam jaringan berbasiskan TCP/IP ( Menurut
Hunt ) :
1. Mendefinisikan paket yang merupakan unit dasar transmisi di Internet
2. Mendefinisikan skema pengalamatan Internet
3. Memindahkan data antara Transport layer dengan Network Access layer
4. Melakukan routing paket
5. Melakukan fragmentasi dan penyusunan ulang paket.
13
2.2. Voice over Internet Protocol ( VoIP )
Voice over Internet Protocol ( VoIP ) atau yang dikenal juga dengan sebutan
IP Telephony, adalah sistem yang mampu mengirimkan data paket suara
menggunakan jaringan internet dari suatu tempat ke tempat yang lain
menggunakan perantara protokol IP ( Internet Protocol ).
Bentuk paling sederhana dalam sistem VoIP adalah dua buah komputer yang
terhubung dalam suatu jaringan yang dapat berkomunikasi suara. Syarat dasar
untuk mengadakan koneksi sistem VoIP adalah pada ke dua buah komputer
tersebut mempunyai sound card ( kartu suara ), speaker dan mikropon. Dengan
menggunakan perangkat lunak khusus, kedua pemakai komputer bisa saling
terhubung dalam koneksi VoIP satu sama lain. Penekanan hubungan tersebut
adalah dalam bentuk suara ( voice ).
Pada perkembangannya, sistem koneksi VoIP mengalami evolusi. Bentuk
peralatan pun berkembang, tidak hanya berbentuk hubungan antar komputer
dalam suatu jaringan, tetapi juga hubungan komputer dengan peralatan yang lain
( contoh : pesawat telepon analog milik jaringan “ TELKOM “ ) yang terhubung
dengan jaringan VoIP. Untuk hubungan yang berbentuk seperti ini dibutuhkan
sebuah VoIP gateway, agar telepon analog biasa tersebut bisa berhubungan
dengan komputer dalam satu jaringan VoIP.
14
2.2.1. Format Paket VoIP
Tiap paket VoIP terdiri atas dua bagian, yaitu header dan payload (beban).
Header terdiri atas IP Header, Real-time Transport Protocol ( RTP ) header, User
Datagram Protocol ( UDP ) header dan link header. Lihat gambar 2.1.
Masing - masing bagian dalam header tersebut memiliki tugas dan fungsi
sebagai berikut :
1. IP Header bertugas menyimpan informasi routing untuk mengirimkan
paket – paket ke tujuan. Pada setiap header IP disertakan tipe layanan atau
Type of Service ( ToS ) yang memungkinkan paket tertentu seperti paket
suara diperlakukan berbeda dengan paket yang non real-time.
2. UDP header sangat peka terhadap delay dan latency sehingga UDP sangat
cocok digunakan dalam aplikasi voice real-time. Selain itu juga UDP
memiliki ciri khusus yaitu tidak menjamin paket sampai tujuan.
3. RTP header adalah header yang dapat dimanfaatkan untuk melakukan
framing dan segmentasi data real-time. Pada RTP menggunakan protokol
kendali yang disebut RTCP ( Real-time Transport Control Protocol ) yang
akan mengendalikan QoS dan sinkronisasi media stream yang berbeda.
4. Besarnya Link header bergantung dari jenis media yang digunakan.
Gambar 2.1 Format Paket Voice over Internet Protocol ( VoIP )
Link Header IP Header Voice Payload UDP Header RTP Header
X Bytes 20 Bytes X Bytes 8 Bytes 12 Bytes
FORMAT PAKET VoIP
15
2.2.2. Protokol Standard dalam sistem VoIP dari site www.Protocols.com
Tabel 2.1 Protokol Standard VoIP
Signaling
H.323 H.323
Megaco H.248 Gateway Control Protocol
MGCP Media Gateway Control Protocol
RVP over IP Remote Voice Protocol Over IP Specification
SAPv2 Session Announcement Protocol
SGCP Simple Gateway Control Protocol
SIP Session Initiation Protocol
Skinny Skinny Client Control Protocol (Cisco)
Media
DVB Digital Video Broadcasting
H.261 Video stream for transport using the real-time transport
H.263 Bitstream in the Real-time Transport Protocol
RTCP RTP Control protocol
RTP Real-Time Transport
2.2.3. Kebutuhan Bandwith untuk VoIP
Salah satu hal yang menjadi kendala dalam komunikasi VoIP adalah
ketersedian bandwith jaringan yang akan dipakai, karena ketersediaan bandwith
akan berpengaruh kepada kualitas suara dalam komunikasi VoIP. Ada beberapa
faktor yang mempengaruhi kebutuhan bandwith salah satunya adalah teknik
kompresi yang digunakan dalam jaringan tersebut atau yang biasa disebut dengan
codec ( coder decoder ). Ada beberapa jenis codec yang umum digunakan dalam
jaringan VoIP, antara lain : G.711, G.723, G.726, G.729, ILBC, LPC, dan GSM.
Untuk memperoleh perkiraan penggunaan dari berbagai codec dapat dilihat pada
16
tabel berikut ( dihitung dengan menggunakan bandwith calculator dari site
http://www.asteriskguru.com/tools/bandwith_calculator.php) :
Tabel 2.2 Kebutuhan Bandwith VoIP
Codec Incoming ( Kbps ) Outgoing ( Kbps ) GSM-13.00 Kibps 28.63 28.63
ILBC – 15.20 Kibps 30.83 30.83
LPC – 2.50 Kibps 18.13 18.13
G.711 – 64.00 Kibps 79.63 79.63
G.723 – 1-6.10 Kibps 21.73 21.73
G.726 – 32.00 Kibps 47.63 47.63
G.729 – 8.00 Kibps 23.63 23.63
Tabel 2.2, merupakan tabel hasil perkiraan perhitungan bandwith yang
dibutuhkan dalam setiap 1 panggilan / percakapan pada jaringan VoIP dengan
menggunakan codec tertentu. Kebutuhan bandwith untuk masing – masing codec
dapat dilihat pada hasil incoming bandwith dan outgoing bandwith.
2.2.4. Jenis Konfigurasi Jaringan VoIP
Jenis Konfigurasi VoIP dapat dibuat dalam berbagai skenario, konfigurasi
ini bergantung pada perangkat apa saja yang akan diterapkan dalam membangun
jaringan VoIP. Secara umum konfigurasi VoIP dapat dijelaskan sebagai berikut :
1. Hubungan Telepon dengan menggunakan N:1 Gateway
Konfigurasi VoIP ini menggunakan jaringan telepon dan merupakan
hubungan phone to phone. VoIP gateway berfungsi sebagai translator atau
konversi voice ke data ataupun sebaliknya.
17
Gambar 2.2 Hubungan Telepon menggunakan N:1 Gateway
2. Hubungan PC menggunakan Router
Konfigurasi ini merupakan konfigurasi komunikasi PC to PC
menggunakan router. Pada konfigurasi ini, proses encoding, kompresi, serta
enkapsulasi dilakukan di PC. Tugas router adalah mempelajari IP address
tujuan yang terdapat pada datagram dan me-routing-kan sesuai dengan
tujuannya. Pada konfigurasi ini, sangat bergantung pada kemampuan
microphone PC dalam hal penerimaan suara yang biasanya background noise
juga akan mengikuti sebagai bagian dari suara pembicara.
Gambar 2.3 Hubungan PC menggunakan Router
3. Hubungan Telepon ke PC
Konfigurasi ini digunakan untuk menghilangkan permasalahan noise yang
timbul pada konfigurasi hubungan PC menggunakan router, yaitu dengan
menggunakan telepon sebagai pengganti microphone. Pada konfigurasi ini PC
18
berfungsi sebagai pada operasi konversi A/D ( Analog to Digital ) dan D/A
( Digital to Analog ).
Gambar 2.4 Hubungan Telepon ke PC
4. Hubungan dengan Gateway 1:1
Konfigurasi ini merupakan bentuk lain dari hubungan phone to phone.
Rasio 1:1 berarti hanya ada satu voice connection ( koneksi suara ) yang
didukung oleh gateway. Fungsi dari gateway pada konfigurasi jenis ini adalah
untuk menerima sinyal analog dari telepon dan melakukan proses A/D
( Analog to Digital ) pada sinyal. Pada konfigurasi jenis ini memiliki beberapa
parameter antara lain : IP-address, nomor telepon, ISP yang akan dimasukkan
melalui dialpad pesawat telepon. Konfigurasi ini memiliki kelemahan yaitu
penerima dan pengirim harus mempunyai gateway 1:1.
Gambar 2.5 Hubungan dengan Gateway 1:1
19
5. Hubungan menggunakan LAN ( Local Area Network )
Konfigurasi jenis ini merupakan kombinasi dari konfigurasi hubungan
telepon ke PC dan konfigurasi hubungan dengan gateway 1:1. Pada
konfigurasi ini semua user dihubungkan dalam suatu LAN dan suatu site.
Panggilan Lokal pada LAN akan diatur oleh gateway. Fungsi dari gateway
adalah melakukan suatu fungsi manajemen hubungan, sedangkan PC dan
workstation akan menjalankan VoIP dan mengeksekusi low bit rate voice dari
voice coder.
Gambar 2.6 Hubungan menggunakan LAN ( Local Area Network )
2.3. Session Initiation Protocol ( SIP )
Session Initiation Protocol ( SIP ) merupakan standar protokol multimedia
yang dikeluarkan oleh group yang tergabung dalam Multiparty Multimedia
Session Control ( MMUSIC ) yang berada dalam organisasi Internet Engineering
Task Force ( IETF ) yang didokumentasikan kedalam dokumen request for
command ( RFC ) 2543 pada bulan Maret 1999.
20
SIP sendiri merupakan protokol yang berada pada layer aplikasi yang
mendefinisikan proses awal, pengubahan dan pengakhiran ( pemutusan ) suatu
sesi komunikasi. Protokol SIP ini memiliki karakter client-server, yang berarti
bahwa request diberikan oleh client dan request ini akan dikirimkan ke server.
Kemudian server akan mengolah dan memberikan tanggapan terhadap request
tersebut ke client. Request dan tanggapan ini disebut sebagai sebuah transaksi
SIP. SIP disebut juga sebagai protokol yang text-based ( berbasis text ).
2.3.1 Susunan Protokol SIP
Protokol SIP didukung oleh beberapa protokol, antara lain RSVP, RTP,
RCTP dan SDP. Tetapi secara default SIP menggunakan protokol RTP atau UDP
sebagai protokol transport. Susunan protokol SIP dapat digambarkan sebagai
berikut :
Gambar 2.7 Susunan Protokol SIP
UDP
RTP
IP
IP SDP SIP
TCP
21
1. Protokol RSVP ( Resource Reservation Protocol )
Protokol ini berfungsi untuk menyediakan bandwith agar data suara yang
dikirimkan tidak mengalami delay atau kerusakan saat mencapai alamat tujuan
unicast maupun multicast.
RSVP merupakan signaling protocol tambahan pada VoIP yang
mempengaruhi QoS. RSVP bekerja dengan mengirimkan request pada setiap
node dalam jaringan yang digunakan untuk pengiriman data stream dan pada
setiap node RSVP akan membuat resource reservation untuk pengiriman data.
2. RTP ( Real-time Transport Protocol )
Protokol RTP menyediakan transfer media secara real-time pada jaringan
paket. Protokol RTP menggunakan protokol UDP dan header RTP
mengandung informasi kode bit yang spesifik pada tiap paket yang
dikirimkan, hal ini digunakan untuk membantu penerima mengantisipasi
apabila ada paket yang hilang.
3. RCTP ( Real-time Control Transport Protocol )
Protokol RCTP merupakan protokol yang mengendalikan transfer media.
Protokol ini akan bekerja sama dengan protokol RTP. Dalam satu sesi
komunikasi, protokol RTP mengirimkan paket RCTP secara periodik untuk
memperoleh informasi transfer media dalam memperbaiki kualitas layanan.
4. SDP ( Session Description Protocol )
Protokol SDP merupakan protokol yang mendeskripsikan media dalam
suatu komunikasi. Tujuan protokol SDP adalah untuk memberikan informasi
aliran media dalam satu sesi komunikasi agar penerima yang menerima
22
informasi tersebut dapat berkomunikasi. Pada protokol SDP ini mencakup
beberapa hal antara lain : nama sesi komunikasi dan tujuannya, waktu sesi
(jika) aktif, media dalam sesi komunikasi, informasi bagaimana cara
menerima media ( misalnya : port dan format ), bandwith yang digunakan
dalam komunikasi, orang yang dapat dihubungi.
2.3.2 Komponen Protokol SIP
Dalam hubungannya dengan IP telephony atau VoIP, ada dua komponen
utama dalam sistem SIP, yaitu :
1. User Agent
User agent merupakan sistem akhir ( end system ) yang digunakan untuk
berkomunikasi. User agent terdiri atas dua bagian yaitu :
a. User Agent Client ( UAC )
UAC merupakan aplikasi pada client yang didesain untuk memulai SIP
request.
b. User Agent Server ( UAS )
UAS merupakan aplikasi server yang memberitahukan user jika
menerima request dan memberikan respon terhadap request tersebut.
Respon yang diberikan dapat berupa menerima atau menolak request.
2. Network Server
Agar user pada jaringan SIP dapat memulai suatu panggilan dan dapat
pula dipanggil, maka user terlebih dahulu harus melakukan registrasi agar
lokasinya dapat diketahui. Registrasi dapat dilakukan dengan mengirimkan
23
pesan REGISTER ke server SIP. Pada jaringan SIP ada dua tipe network
server yaitu :
a. Proxy Server
Proxy Server adalah server yang menerima request, mengolahnya serta
meneruskan request yang diterimanya ke next hop server setelah
mengubah beberapa header pada pesan request. Next hop server dapat
berupa server SIP atau server lainnya dimana proxy server tidak perlu
tahu. Proxy server dapat berfungsi sebagai client dan server karena proxy
server dapat memberikan request dan respon.
b. Redirect Server
Redirect Server merupakan server yang menerima pesan request serta
memberikan respon terhadap request tersebut yang berisikan alamat dari
next hop server.
2.3.3 Pengalamatan Protokol SIP
Entitas pada jaringan SIP mempunyai alamat yang diberi attribut berupa SIP
URL ( SIP Uniform Resource Locator ) agar mudah dikenali. SIP URL yang
digunakan pada jaringan SIP berbentuk seperti alamat email yaitu user@host.
Dimana user dapat berupa nama user, nomor telepon, atau nama instansi. Host
dapat berupa nama domain atau IP address. Alamat SIP dengan bentuk
phone_number@gateway menunjukkan nomor telepon pada jaringan General
Switched Telephone Network ( GSTN ) yang dapat dihubungi dengan nama
gateway yang diketahui.
24
Pengalamatan pada protokol SIP memiliki format sebagai berikut :
Gambar 2.8 Format Pengalamatan pada Protokol SIP
Contoh alamat SIP adalah sebagai berikut :
Sip : [email protected], merupakan host independent
Sip : [email protected], merupakan host spesific
Sip : [email protected], merupakan nomor
telepon user dengan domain gateway information.telkom.net
2.3.4 Format Pesan Protokol SIP
Secara keseluruhan, pesan SIP terdiri atas dua bagian, yaitu request dan
respon. Ketika client mengirimkan pesan request maka server akan memberikan
tanggapan terhadap pesan request dari client dengan menggunakan pesan respon.
Pesan request dan pesan respon menggunakan gereneric-message yang
didefinisikan pada standar pesan berbasis text dalam komunikasi internet yang
dapat dijumpai didalam RFC 822.
Pesan request dan respon terdiri atas start line, satu atau lebih header field
( message header ) , empty line yang digunakan sebagai petunjuk akhir dari
header field serta message body yang mendefinisikan sesi komunikasi. Format
pesan pada SIP dapat dilihat pada gambar dibawah ini :
Gambar 2.9 Format Pesan SIP
[sip:] < username@host >
Generic-message : Start-line ( dalam pesan request) Status-Line ( dalam pesan respon ) Message Header Empty Line Message body
25
2.3.5 Header Field pada protokol SIP
Pada protokol SIP mempunyai 37 header, yaitu pesan – pesan yang
menggunakan header field untuk mendefinisikan caller, callee, jalur pesan, tipe
dan panjang message body. Header SIP dikelompokkan menjadi empat jenis,
yaitu :
1. General Header Field ( GHF )
GHF merupakan header yang dipakai pada pesan request dan pesan
respon. GHF yang umumnya dipakai antara lain : Call-ID, Cseq, From,To,
via.
2. Entity Header Field ( EHF )
EHF menunjukkan informasi message body. Jika message body tidak
ditemukan, maka header ini menunjukkan sumber yang diidentifikasi oleh
request. Contoh header EHF antara lain : Content-Length, Content-Type,
Content-Encoding.
3. Request Header Field ( RsHF )
RsHF adalah header yang terdapat dalam pesan request, yang
merupakan tambahan informasi tentang client dan pesan request itu sendiri.
Header yang sering dipakai adalah header Contact yang merupakan
informasi lokasi yang tergantung dari pesan tempat header itu berada.
4. Response Header Field ( ReHF )
ReHF merupakan header yang dipakai oleh server untuk menambahkan
informasi tentang respon yang tidak dapat ditempatkan pada start line
request.
26
2.3.6 SIP Request dan SIP Response
2.3.6.1 SIP Request
SIP Request merupakan pesan request yang dikirimkan dari client ke
server. Terdapat 6 ( enam ) tipe pesan request, antara lain :
1. INVITE
Pesan ini digunakan untuk memulai suatu sesi komunikasi. Message
body pesan INVITE berisikan deskripsi media yang dapat digunakan dalam
komunikasi.
2. ACK
Pesan ini berfungsi memberitahukan bahwa client telah menerima
tanggapan terakhir terhadap pesan INVITE. Message body pesan ACK dapat
membaca deskripsi media yang akan digunakan oleh user yang dipanggil
( callee ). Jika message body ini kosong berarti calle setuju dengan message
body yang terdapat pada pesan INVITE.
3. BYE
Pesan ini dikirimkan oleh client untuk mengakhiri sesi komunikasi
4. CANCEL
Pesan CANCEL dikirimkan untuk membatalkan pesan request yang
telah dikirimkan sebelumnya, sebelum server mengirimkan pesan final
response.
5. OPTIONS
Pesan ini dikirimkan oleh client ke server untuk mengetahui
kapabilitasnya.
27
6. REGISTER
Pesan REGISTER digunakan oleh client untuk registrasi lokasi ke SIP
Server yang disebut dengan SIP register.
2.3.6.2 SIP Response
Pesan respon dikirimkan oleh server setelah menerima pesan request
dari client untuk menunjukkan status keberhasilan server. Pesan respon
didefinisikan dengan tiga angka. Angka pertama merupakan kelas respon
( seluruhnya ada 6 kelas respon ), angka kedua dan angka ketiga menunjukkan
arti dari respon tersebut. Berikut tabel yang menunjukkan arti kelas respon SIP :
Tabel 2.3 Pesan SIP Response
Kelas Respon Jenis Respon Kategori Respon 1XX Informational Provisional
2XX Success Final
3XX Redirection Final
4XX Client Error Final
5XX Server Error Final
6XX Global Error Final
Pada dasarnya SIP Response terbagi atas dua kategori, yaitu :
1. Provisional Response
Respon ini merupakan respon yang dikirimkan oleh server untuk
menunjukkan proses sedang berlangsung, tapi tidak untuk mengakhiri
transaksi SIP.
2. Final Response
Respon ini merupakan respons yang mengakhiri transaksi SIP.
28
2.3.7 Prosedur Persinyalan pada Protokol SIP
2.3.7.1 Prosedur Persinyalan menggunakan Proxy Server
Prosedur persinyalan menggunakan Proxy Server dapat dilihat pada
gambar 2.10 sebagai berikut :
Gambar 2.10 Prosedur Persinyalan SIP menggunakan Proxy Server
Langkah - langkah dalam proses persinyalan menggunakan proxy server
adalah sebagai berikut :
1. Pesan request INVITE dari caller ( endpoint 1@site1 ) akan
dikirimkan ke Proxy Server ( INVITE endpoint 2@site2 )
2. Proxy Server akan mengirimkan alamat yang terdapat pada pesan
request langkah 1 ke location server untuk memperoleh lokasi
endpoint 2@site2.
3. Location Server akan memberikan lokasi client yang berada pada site2
( client 2@site2 ).
29
4. Proxy Server akan mengirimkan pesan INVITE berdasarkan lokasi
yang diberikan oleh location server. ( INVITE endpoint 2@site2 )
5. User Agent Server akan memberitahukan pada user ada pesan INVITE
yang diterima ( 100 Trying )
6. Jika pesan INVITE diterima , maka dikirimkan pesan final response
200 OK
7. Setelah pesan final response ini diterima kemudian dikirimkan pesan
ACK.
2.3.7.2 Prosedur Persinyalan menggunakan Redirect Server
Prosedur persinyalan menggunakan Redirect Server dapat dilihat pada
gambar 2.11 berikut :
Gambar 2.11 Prosedur Persinyalan SIP menggunakan Redirect Server
30
Langkah - langkah dalam proses persinyalan menggunakan Redirect
Server adalah sebagai berikut :
1. Pesan request INVITE dari caller ( endpoint 1@site1 ) dikirimkan ke
Redirect Server ( INVITE endpoint 2@site2)
2. Redirect Server akan mengirimkan alamat yang terdapat pada pesan
request langkah 1 ke location server untuk memperoleh lokasi
endpoint 2@site3.
3. Location Server akan memberikan lokasi client yang berada pada site3
( site 3 ) kepada Redirect Server.
4. Setelah Redirect Server menerima lokasi dari location server ( langkah
3 ), redirect server akan mengirimkan respon redirect kelas 3XX
dengan menambahkan header Contact.
5. Caller ( endpoint 1@site1 ) akan mengirimkan pesan ACK ke
Redirect Server.
6. Caller ( endpoint 1@site1 ) akan mengirimkan pesan INVITE yang
dengan alamat yang diberikan oleh server langsung ke callee
( endpoint 2@site3 ).
7. Calle ( endpoint 2@site3 ) akan memberikan respon dengan
mengirimkan pesan respon 200 OK ke caller.
31
2.3.8 Fungsi dari Protokol SIP
Protokol SIP memiliki fungsi dan peranan sebagai berikut :
1. Call Initiation
Pada call initiation mencakup beberapa hal yaitu : membangun sesi
komunikasi, negosiasi media transfer ptotokol, mengundang user agent lain
untuk bergabung dalam sesi komunikasi.
2. Call Modification
Apabila diperlukan SIP dapat berfungsi untuk memodifikasi sebuah sesi
komunikasi.
3. Call Termination
SIP berfungsi juga untuk menutup sebuah sesi komunikasi.
2.4. Internet Protocol Private Branch Exchange ( IP PBX )
IP PBX atau Internet Protocol Private Branch Exchange adalah PABX yang
menggunakan teknologi IP. IP PBX merupakan perangkat switching komunikasi
telepon dan data berbasis teknologi Internet Protocol ( IP ) yang mengendalikan
ekstension telepon analog ( TDM ) maupun ekstension IP Phone. Fungsi-fungsi
yang dapat dilakukan pada IP PBX antara lain penyambungan, pengendalian, dan
pemutusan hubungan telepon; translasi protokol komunikasi; translasi media
komunikasi atau transcoding; serta pengendalian perangkat-perangkat IP
Telephony seperti VoIP Gateway, Access Gateway, dan Trunk Gateway.
Solusi berbasis IP PBX merupakan konsep jaringan komunikasi generasi
masa depan atau dikenal dengan istilah NGN ( Next Generation Network ) yang
32
dapat mengintegrasikan jaringan telepon konvensional ( PSTN/POTS ), jaringan
telepon bergerak ( GSM/CDMA ), jaringan telepon satelit, jaringan Cordless
(DECT), dan jaringan berbasis paket ( IP/ATM ).
IP PBX membawa kemampuan multilayanan dijaringan IP ke dunia
komunikasi telephony, sehingga akan memungkinkan semakin banyak layanan
komunikasi yang dapat berjalan di atas jaringan IP. Multilayanan tersebut antara
lain Voicemail & Voice Conference, Interactive Voice Response ( IVR ),
Automatic Call Distribution ( ACD ), Computer Telephony Integration ( CTI ),
Unified Messaging System ( UMS ), Fax Server & Fax on Demand, Call
Recording System, Billing System, serta Web-based Management System.
IP PBX juga dapat mendukung antarmuka trunk Analog FXO / FXS; Digital
E1-MFC R2, ISDN BRI, ISDN PRI; IP ( H.323/SIP/IAX ); dan Analog Tie Line
E&M. Selain itu, IP PBX dapat mendukung antarmuka ekstension Analog FXO /
FXS; ekstension Digital; ISDN Interface BRI ( 2B+D ); dan TCP IP ( H.323 / SIP
/ IAX ).
Pengembangan terbaru dari PBX adalah VoIP PBX (Voice Over IP) PBX ,
atau yang dikenal dengan IP PBX, yang menggunakan IP ( Internet Protocol )
untuk membawa panggilan.
33
2.4.1.Komponen Dasar IP PBX
Sebuah IP PBX ( Internet Protocol Private Branch Exchange ), terdiri atas
beberapa komponen, yaitu :
1. Data Account
Data Account pada IP PBX terdiri dari 2 macam, yaitu :
a. Data account Extensions
Merupakan data account yang akan di gunakan oleh extension agar
terhubung dengan IP PBX. Extension di sini adalah sebuah nama atau
nomor yang merepresentasikan user dari IP PBX
b. Data account Trunk
Merupakan data account yang akan di gunakan IP PBX untuk
menghubungi trunk. Trunk adalah sebuah nama atau nomor yang
merepresentasikan server lain atau IP PBX lain yang akan di hubungi
oleh IP PBX ini.
2. DialPlan
Merupakan aturan dial yang akan dimanfaatkan oleh extension untuk
menghubungi sesama extension atau trunk dan sebaliknya.
Gambar 2.12 Komponen Dasar IP PBX
34
2.5 Asterisk
Asterisk adalah salah satu software open source IP PBX ( Internet Protocol
Private Branch Exchange ) jenis SIP Proxy. Asterisk memiliki banyak features
sehingga dengan menggunakan Asterisk dapat dimungkinkan untuk membangun
sebuah jaringan “Telkom” sendiri.
Untuk dapat menjalankan Asterisk sebagai sebuah sentral telepon sederhana,
minimal dibutuhkan :
1. PC ( Personal Computer ) dengan sistem Operasi Linux, yang dijadikan
sebagai VoIP server.
2. Sambungan LAN ( Local Area Network ) atau Internet.
3. Asterisk, sebagai software IP PBX untuk membangun jaringan VoIP.
Untuk skalabilitas ( scalability ) pemekaran jaringan, Asterisk mendukung
beberapa bentuk format data, yaitu :
1. TDMoE ( Time Division Multiplex over Ethernet ), yang memungkinkan
penyambungan langsung ke IP PBX asterisk dengan delay rendah ( zero
latency ) serta dengan penggunaan kartu Ethernet yang ada di pasaran.
2. Voice-over IP yang memungkinkan integrasi berbagai peralatan yang
secara fisik terpisah menggunakan sambungan data yang biasa
digunakan atau menggunakan dialplan terintegrasi untuk banyak kantor
sekaligus.
3. Mendukung coder-decoder ( codec ) ADPCM, G.711 ( A-Law &
u-Law ), G.723.1 ( pass through ), G.726, G.729, GSM, iLBC, Linear,
LPC-10 dan Speex
35
4. Mendukung protokol VoIP, antara lain : IAX ( Inter-Asterisk Exchange )
, H.323, SIP ( Session Initiation Protocol ), MGCP ( Media Gateway
Control Protocol ), dan SCCP ( Cisco Skinny ).
5. Mendukung berbagai protokol ISDN PRI, seperti 4ESS, BRI
( ISDN4Linux ), DMS100, EuroISDN, Lucent 5E, National ISDN2, dan
NFAS.
2.5.1 Features Asterisk
Asterisk dapat di jadikan pilihan untuk mendirikan jaringan komunikasi
berbasis IP PBX ( baik untuk skala kecil,menengah, sampai ratusan extensions )
karena memiliki beberapa features antara lain : voicemail, conference bridge , call
queue, call detailed record.
Selain itu juga asterisk memilki beberapa features pendukung yang lain,
yaitu : ADSI On-Screen Menu System, Alarm Receiver, Blacklist, Blind Transfer,
Call Forward On Busy, Call Forward on No Answer, Call Monitoring, Call
Parking, Call Queuing, Call Recording, Call Retrieval, Call Routing ( DID &
ANI ), Call Transfer, Call waiting, Caller ID, Caller ID Blocking, Caller ID on
Call Waiting, Calling Cards, Conference Bridging, Dial by Name, Distinctive
Ring, Do Not Distrub, E911, ENUM, Interactive Voice Response ( IVR ), Music
On Hold, Music On Transfer, SMS Messaging, Spell / Say, Streaming Media
Access, Supervised Transfer, Talk Detection, Text-to-Speech ( via Festival ),
Three-way Calling, VoIP Gateways, Visual Indocator for Message Waiting, dan
Zapateller.
36
2.5.2 File Konfigurasi Asterisk
Setelah selesai proses instalasi Asterisk, maka terbentuk beberapa file
konfigurasi, yang terletak pada direktori antara lain :
1. /etc/asterisk : merupakan file – file konfigurasi utama
2. /var/log/asterisk : merupakan file yang mencatat log dan call data
record
3. /var/lib/asterisk : merupakan file yang digunakan untuk aplikasi
dan data pendukung ( AGI, MoH, sounds )
4. /usr/lib/asterisk : merupakan file yang digunakan untuk binary
module, codec dan aplikasi
2.5.3 Konfigurasi Asterisk
Konfigurasi Asterisk sebagai IP PBX dilakukan pada beberapa file
konfigurasi antara lain :
1. Konfigurasi data Account ( data account extensions dan trunks )
Konfigurasi ini bisa disebut dengan proses pendaftaran nomor telepon
pada Asterisk VoIP server. Konfigurasi data account extension dan trunk
berada di file berikut :
a. /etc/asterisk/sip.conf : digunakan untuk account yang
menggunakan protokol SIP
b. /etc/asterisk/iax.conf : digunakan untuk account yang
menggunakan protokol IAX2
37
Untuk setiap data account dikonfigurasi dengan sebuah blok text yang
memiliki bentuk sebagai berikut :
Gambar 2.13 Format Blok text Data Account
Dimana xxx merupakan nama yang diasosiasikan dengan SIP client
atau sembarang nama yang digunakan oleh file konfigurasi lain untuk
mereferensikan sebuah peralatan SIP. Pada Type,harus diisi dengan
“user”, “peer” atau “friend”. Sedangkan banyaknya parameter yang
digunakan dapat disesuaikan dengan kebutuhan.
Contoh konfigurasi data account extensions ( menggunakan SIP ):
Gambar 2.14 Contoh Konfigurasi Data Account ( menggunakan SIP )
2. Konfigurasi DialPlan
DialPlan merupakan proses untuk mengatur apa yang harus dilakukan
apabila ada client melakukan panggilan ( Dial ) pada nomor telepon tertentu.
Konfigurasi DialPlan berada pada file /etc/asterisk/extensions.conf, dengan
format penulisan sebagai berikut :
Gambar 2.15 Format Penulisan DialPlan
[ xxx ]
Type = yyy
Parameter1 = nilai
Parameter2 = nilai
[100] type=friend host=dynamic context= home username= 100 secret=100 callerid=100 <”100”>
[ home ] exten => extension,priority,application
38
Keterangan :
[ home ] adalah nama context seperti yang didefinisikan pada
konfigurasi data Account ( lihat gambar 2.14 ).
Extension adalah nomor extension, bisa menggunakan masking
Priority adalah nomor prioritas, dimulai dari 1
Application adalah aplikasi yang digunakan pada Dial Plan
Aplikasi Dasar yang ada pada DialPlan adalah sebagai berikut :
a. Ringing
Format : Ringing
Penjelasan : Aplikasi Ringing akan menyebabkan penelepon
mendengar nada tunggu
b. Wait
Format : Wait,delay
Contoh : Wait,2
Penjelasan : Aplikasi Wait di atas akan menyebabkan
penelepon tertunda selama 2 detik
c. Hangup
Format : Hangup
Penjelasan : Aplikasi Hangup akan menyebabkan penelepon
mendengar nada sibuk karena transaksi komunikasi berakhir.
d. Dial
Format :
Dial(technology/[account/]extension[|option])
39
Penjelasan :
Technology adalah protokol yang digunakan (contoh SIP, IAX2)
Account adalah data account trunk
Extension adalah data account extension, dapat juga menggunakan
variable ${EXTEN}
Option adalah pilihan tambahan, seperti waktu tunggu ringing.
Contoh Konfigurasi DialPlan :
Keterangan :
[ home ], merupakan context yang digunakan pada konfigurasi gambar
2.13
Bila dial 100,maka extension SIP 100 akan ringing, setelah selesai hangup.
2.6. Asterisk Realtime Architechture ( ARA )
Asterisk Real Time Architecture merupakan teknik untuk menyimpan data
konfigurasi users / peers ( sipusers ), voicemail, DialPlan ke dalam database.
Dengan menggunakan teknik ini, konfigurasi manual yang biasanya harus di
reload dulu sebelum digunakan tidak perlu dilakukan lagi. Teknik Asterisk
Realtime dilakukan dengan cara meng-entry data pada tabel dalam database yang
sudah dipersiapkan sebelumnya. Salah satu database yang didukung oleh teknik
ini adalah MySQL, dan juga beberapa database lainnya yang mendukung koneksi
ODBC.
[home] exten => 100,1,Dial(SIP/100) exten => 100,2,Hangup
Gambar 2.16 Contoh Konfigurasi DialPlan
40
2.6.1 Langkah – Langkah Konfigurasi ARA pada Asterisk
Untuk dapat menggunakan teknik ARA pada Asterisk, diperlukan suatu
driver yang digunakan untuk koneksi Asterisk dengan database, yaitu asterisk-
addons. Sebelum driver ini digunakan, maka perlu di compile terlebih dahulu
dengan perintah sebagai berikut :
Proses compile asterisk-addons tersebut, akan menambahkan modules
res_config_mysql.so dan cdr_mysql.so pada direktori /usr/lib/asterisk/modules
.Kedua buah modules ini berguna untuk koneksi Asterisk dengan database
khususnya database MySQL. Setelah kedua modules tersebut ditambahkan, maka
perlu untuk meng-copy file res_mysql.conf.sample dan cdr_mysql.conf.sample
yang berasal dari {asterisk-addons-direktori} menuju ke direktori /etc/asterisk.
Perintahnya adalah sebagai berikut :
Setelah dipastikan bahwa file res_mysql.conf dan cdr_mysql.conf ter-copy
pada direktori /etc/asterisk, maka langkah selanjutnya adalah melakukan
konfigurasi pada beberapa file konfigurasi antara lain :
1. Konfigurasi file res_mysql.conf
Konfigurasi ini dilakukan untuk mengkoneksikan antara Asterisk dengan
database yang digunakan. Konfigurasi yang digunakan misalkan saja
sebagai berikut :
Shell > cd {asterisk-addons-direktory}
Shell > cp res_mysql.conf.sample /etc/asterisk/res_mysql.conf
Shell > cp cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf
Shell > cd {asterisk-addons-direktory}
Shell > make; make install
41
Konfigurasi diatas, menyimpan informasi tentang host / IP address,
nama database, nama user dari database, password user database, nomor
port yang digunakan.
2. Konfigurasi file cdr_mysql.conf
Konfigurasi ini dilakukan untuk mengkoneksikan antara Asterisk dengan
tabel yang digunakan untuk menyimpan data call detail record. Konfigurasi
yang digunakan misalkan saja sebagai berikut :
Gambar 2.18 Contoh Konfigurasi file cdr_mysql.conf
Konfigurasi diatas, menyimpan informasi tentang host / IP address,
nama database, nama tabel yang digunakan, nama user dari database,
password user database, nomor port yang digunakan.
3. Konfigurasi file extconfig.conf
Konfigurasi ini dilakukan agar Asterisk dengan menggunakan teknik
Asterisk Realtime dapat mengkonfigurasi sippeers / sipusers, voicemail, dan
extensions ( DialPlan ) melalui database MySQL. Konfigurasi tersebut
[global] hostname=127.0.0.1 dbname= asteriskrealtime table=cdr password=mypass user=myuser port=3306 sock=/var/lib/mysql/mysql.sock userfield=1
[general] dbhost = 127.0.0.1 dbname = asteriskrealtime dbuser = myuser dbpass = mypass dbport = 3306 dbsock = /tmp/mysql.sock
Gambar 2.17 Contoh Konfigurasi file res_mysql.conf
42
masing – masing digunakan untuk otentikasi users / pendaftaran nomor
telepon, konfigurasi fasilitas voicemail, dan pengaturan nomor Dial
( DialPlan ). Format untuk konfigurasi ini adalah sebagai berikut :
[settings]
file.conf => driver,database[,table]
Contoh konfigurasi pada file extconfig.conf :
Gambar 2.19 Contoh Konfigurasi file extconfig.conf
4. Konfigurasi file extensions.conf
Konfigurasi ini dilakukan agar Asterisk dapat membaca data konfigurasi
DialPlan pada tabel yang ada di database. Konfigurasi yang digunakan
misalkan saja sebagai berikut :
Gambar 2.20 Contoh Konfigurasi file extensions.conf
Konfigurasi diatas berarti bahwa seluruh panggilan ( call ) pada context
asterisk-users, akan dibaca secara Realtime dengan context home
dengan nama family extensions ( nama family ini sama dengan nama family
yang digunakan pada file extconfig.conf untuk pengaturan DialPlan ).
Setelah mengkonfigurasi file – file seperti diatas, maka langkah selanjutnya
adalah membuat tabel yang akan digunakan untuk menyimpan data konfigurasi.
Tabel – tabel yang akan digunakan merupakan tabel standard yang dapat dikenali
oleh sistem Asterisk. Perintah SQL untuk membuat tabel – tabel tersebut antara
lain sebagai berikut ( diambil dari site www.voip-info.org ) :
[settings]sipusers => mysql,asteriskrealtime,sip_buddies sippeers => mysql,asteriskrealtime,sip_buddies extensions => mysql,asteriskrealtime,extensions voicemail => mysql,asteriskrealtime,voicemessages
[asterisk-users]
switch => Realtime/home@extensions
43
1. Tabel sip_buddies
Tabel ini digunakan untuk menyimpan data konfigurasi users / peers.
Perintah SQL untuk membuat tabel sip_buddies adalah sebagai berikut :
CREATE TABLE `sip_buddies` ( `id` int(11) NOT NULL auto_increment, `name` varchar(80) NOT NULL default '', `host` varchar(31) NOT NULL default '', `nat` varchar(5) NOT NULL default 'no', `type` enum('user','peer','friend') NOT NULL default 'friend', `accountcode` varchar(20) default NULL, `amaflags` varchar(13) default NULL, `callgroup` varchar(10) default NULL, `callerid` varchar(80) default NULL, `cancallforward` char(3) default 'yes', `canreinvite` char(3) default 'yes', `context` varchar(80) default NULL, `defaultip` varchar(15) default NULL, `dtmfmode` varchar(7) default NULL, `fromuser` varchar(80) default NULL, `fromdomain` varchar(80) default NULL, `insecure` varchar(4) default NULL, `language` char(2) default NULL, `mailbox` varchar(50) default NULL, `md5secret` varchar(80) default NULL, `deny` varchar(95) default NULL, `permit` varchar(95) default NULL, `mask` varchar(95) default NULL, `musiconhold` varchar(100) default NULL, `pickupgroup` varchar(10) default NULL, `qualify` char(3) default NULL, `regexten` varchar(80) default NULL, `restrictcid` char(3) default NULL, `rtptimeout` char(3) default NULL, `rtpholdtimeout` char(3) default NULL, `secret` varchar(80) default NULL, `setvar` varchar(100) default NULL, `disallow` varchar(100) default 'all', `allow` varchar(100) default 'g729;ilbc;gsm;ulaw;alaw', `fullcontact` varchar(80) NOT NULL default '', `ipaddr` varchar(15) NOT NULL default '', `port` smallint(5) unsigned NOT NULL default '0', `regseconds` int(11) NOT NULL default '0', `username` varchar(80) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) ) TYPE=MyISAM ROW_FORMAT=DYNAMIC;
Gambar 2.21 Perintah SQL untuk Membuat Tabel sip_buddies
44
2. Tabel extensions_table
Tabel ini di gunakan untuk menyimpan data untuk pengaturan DialPlan
Perintah SQL untuk membuat tabel extensions_table adalah sebagai berikut :
3. Tabel voicemail_users
Tabel ini digunakan untuk menyimpan informasi client yang dapat
menggunakan fasilitas voicemail pada Asterisk.
Perintah SQL untuk membuat tabel voicemail_users adalah sebagai berikut :
4. Tabel CDR ( Call Detail Record )
Tabel ini digunakan untuk menyimpan data catatan pembicaraan
( komunikasi ) yang terjadi pada Asterisk.
Perintah SQL untuk membuat tabel cdr adalah sebagai berikut :
CREATE TABLE `extensions_table` ( `id` int(11) NOT NULL auto_increment, `context` varchar(20) NOT NULL default '', `exten` varchar(20) NOT NULL default '', `priority` tinyint(4) NOT NULL default '0', `app` varchar(20) NOT NULL default '', `appdata` varchar(128) NOT NULL default '', PRIMARY KEY (`context`,`exten`,`priority`), KEY `id` (`id`) ) TYPE=MyISAM;
Gambar 2.22 Perintah SQL untuk membuat tabel extensions_table
CREATE TABLE `voicemail_users` ( `uniqueid` int(11) NOT NULL auto_increment, `customer_id` int(11) NOT NULL default '0', `context` varchar(50) NOT NULL default '', `mailbox` int(5) NOT NULL default '0', `password` varchar(4) NOT NULL default '0', `fullname` varchar(50) NOT NULL default '', `email` varchar(50) NOT NULL default '', `pager` varchar(50) NOT NULL default '', `stamp` timestamp(14) NOT NULL, PRIMARY KEY (`uniqueid`), KEY `mailbox_context` (`mailbox`,`context`) ) TYPE=MyISAM;
Gambar 2.23 Perintah SQL untuk membuat tabel voicemail_users
45
2.7 Web Browser
Web browser merupakan perangkat lunak yang ada di sisi client, yang
mempunyai tugas menterjemahkan informasi yang di terima dari web server dan
menampilkannya pada layar komputer user. Oleh karena HTTP memungkinkan
web server mengirimkan beragam data, seperti teks atau gambar, browser harus
bisa mengenali berbagai macam data yang akan di terimanya, dan selanjutnya
harus tahu cara untuk menampilkannya dengan benar.
Pada umumnya web browser menerima data dalam bentuk HTML. File
HTML sebenarnya adalah file teks biasa yang selain berisi informasi yang hendak
di tampilkan kepada user. Namun file HTML juga mempunyai perintah – perintah
untuk mengatur tampilan data tersebut. Browser-lah yang memiliki kuasa penuh
dalam menterjemahkan format dan elemen – elemen HTML. Contoh web browser
yang popular Mozilla, Opera, Internet Explorer dan lain sebagainya.
CREATE TABLE `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' );
Gambar 2.24 Perintah SQL untuk membuat tabel cdr
46
2.8 Web Server
Web server adalah server ( program yang melayani koneksi tertentu ) yang
melayani koneksi HTTP. Dalam protokol TCP / IP, default untuk koneksi HTTP
di lakukan pada port 80, nilai port tersebut bisa di ubah nilainya. Perangkat lunak
web server sekarang telah tersedia untuk berbagai macam platform dan
lingkungan sistem operasi. Untuk lingkungan UNIX, yang popular adalah Apache.
Sementara untuk lingkungan Windows tersedia Microsoft Internet Information
Server ( IIS ). Meskipun beragam macamnya, secara fungsional semua jenis web
server adalah sama yaitu berfungsi untuk melayani permintaan – permintaan dari
web server.
2.9 PHP
PHP ( Hypertext Preprocessor ) adalah salah satu web scripting yang
populer. PHP di ciptakan pertama kali oleh Rasmus Lerdorf pada tahun 1994 dan
kemudian di kenal sebagai Personal Home Page tools. PHP bersifat freeware,
yaitu bebas di gunakan tanpa perlu membayar apapun untuk menggunakan
perangkat lunak ini.
PHP adalah bahasa scripting yang menyatu dengan HTML dan di jalankan
pada server side. Artinya semua sintaks yang kita berikan akan sepenuhnya di
jalankan pada server sedangkan yang di kirimkan ke browser hanya hasilnya saja.
PHP juga di rancang untuk membentuk web dinamis, yang dapat membentuk
tampilan berdasarkan permintaan terkini, missal untuk menampilkan isi sebuah
database ke halaman web.
47
BAB III
ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM
3.1 Analisis Kebutuhan Sistem
Pada penelitian ini akan digunakan teknik Asterisk Realtime untuk
membangun Asterisk sebagai sebuah sentral telepon sederhana ( VoIP Server ),
dengan menggunakan teknik ini proses konfigurasi Asterisk dilakukan dengan
cara mengentry data pada tabel tertentu pada database, dimana data yang di-entry-
kan merupakan data parameter registrasi bagi client Asterisk. Untuk membangun
dan mengkonfigurasi sebuah Asterisk VoIP Server dengan menggunakan teknik
Asterisk Realtime, maka membutuhkan beberapa komponen antara lain sebagai
berikut :
1. Sebuah PC ( Personal Computer ) dengan sistem operasi Linux.
2. Software Asterisk, sebagai perangkat lunak untuk VoIP Server.
3. Asterisk-addons, sebagai driver untuk koneksi Asterisk dengan database
khususnya database MySQL.
4. Database Server, digunakan untuk melakukan konfigurasi Asterisk dengan
menggunakan teknik Asterisk Realtime
5. Perangkat Telepon VoIP, perangkat ini akan berfungsi sebagai client dari
VoIP Server dan merupakan perangkat yang akan melakukan komunikasi
VoIP. Secara umum perangkat Telepon VoIP ada dua jenis yaitu :
a. Perangkat Keras ( Hardware )
Hardware yang secara khusus didesain sebagai perangkat pesawat
48
telepon pada jaringan VoIP. Salah satu hardware telepon VoIP adalah
berupa IP Phone.
Gambar 3.1 Perangkat Telepon VoIP Hardware ( IP Phone )
b. Perangkat Lunak ( Software )
Software perangkat Telepon VoIP sering disebut juga sebagai
softphone, merupakan sebuah program yang diinstalkan pada sebuah PC,
kemudian PC tersebut dengan tambahan headset dan mikrofon dapat
berfungsi layaknya sebuah pesawat telepon. Salah satu softphone yang
dapat digunakan adalah X-Lite.
Gambar 3.2 Perangkat Telepon VoIP Software ( X-Lite )
6. VoIP Gateway, merupakan sebuah perangkat keras yang digunakan untuk
menghubungkan antara jaringan VoIP dengan jaringan telepon biasa
( PSTN ) maupun jaringan PABX. Penggunaan perangkat ini, bersifat
optional ( pilihan ), artinya apabila memang jaringan VoIP yang akan
49
dibangun ingin dihubungkan dengan jaringan PSTN atau PABX maka
perlu ditambahkan perangkat ini untuk tujuan tersebut, tetapi apabila
hanya akan mengoperasikan jaringan VoIP saja, tanpa dihubungkan
dengan jaringan PSTN atau PABX, maka perangkat ini tidak harus
digunakan. Salah satu perangkat VoIP Gateway yang dapat digunakan
adalah Internet Telephony Gateway ( ITG ) untuk selanjutnya sering
disebut dengan istilah Analog Telephony Adapter ( ATA ).
Gambar 3.3 Perangkat VoIP Gateway
7. Sambungan LAN atau internet, yang digunakan untuk menyambungkan
berbagai perangkat yang akan digunakan untuk membangun jaringan
VoIP.
Setelah komponen yang disebutkan diatas telah siap, maka langkah
selanjutnya yang harus dilakukan adalah sebagai berikut :
1. Menentukan jenis protokol yang akan digunakan pada jaringan VoIP
tersebut ( lihat pada tabel 2.1 ).
2. Membuat sebuah database dan tabel – tabel standard yang diperlukan
untuk mengkonfigurasi Asterisk secara Realtime ( lihat gambar 2.21 s/d
gambar 2.24 ).
3. Mengkonfigurasi file – file yang dibutuhkan untuk koneksi Asterisk
dengan database yang digunakan ( lihat gambar 2.17 s/d gambar 2.19 ).
50
4. Merancang skenario jaringan yang akan digunakan untuk komunikasi
VoIP. Perancangan skenario jaringan bergantung dari kebutuhan dan
perangkat apa saja yang akan digunakan pada jaringan tersebut.
5. Melakukan proses entry data pada tabel – tabel yang sudah dibuat pada
langkah 2. Proses entry data tidak dilakukan pada semua tabel, melainkan
hanya pada beberapa tabel yang mendukung untuk konfigurasi Asterisk
secara Realtime.
6. Langkah terakhir sebelum perangkat Telepon VoIP dapat melakukan
komunikasi adalah meregistrasikan masing – masing perangkat yang
digunakan ke Asterisk VoIP Server dengan data register yang sudah
dientrykan pada tabel.
3.2 Gambaran Umum Sistem Komunikasi VoIP Menggunakan Asterisk
Secara umum, sistem komunikasi VoIP dengan menggunakan Asterisk
diawali dengan proses registrasi perangkat yang berfungsi sebagai client dari
VoIP Server tersebut, dengan adanya proses ini maka client akan dikenali sebagai
sebuah extensions dengan identitas berupa nomor extensions tertentu.
Setelah client berhasil teregister pada Asterisk, maka sebuah client dapat
melakukan komunikasi dengan client yang lain dengan cara mendial nomor
telepon dari client yang akan diajak komunikasi tersebut. Penekanan komunikasi
disini adalah komunikasi suara seperti pada jaringan telepon tradisional ( PSTN ).
Untuk lebih jelasnya dijelaskan pada gambar sebagai berikut :
51
Gambar 3.4 Sistem Komunikasi VoIP Menggunakan Asterisk
Pada gambar 3.4 merupakan gambaran bentuk komunikasi antara client
berupa PC dengan nomor extensions 201 dan PC dengan nomor extensions 202.
Komunikasi diawali dengan proses register untuk masing – masing client pada
VoIP Server ( gambar 3.4 langkah 1 ) dengan menggunakan software Telepon
VoIP yang sudah terinstal pada masing – masing PC client tersebut.
Setelah proses register tersebut berhasil, masing – masing client dapat saling
berkomunikasi dengan diawali proses panggilan ( Dial ) dari salah satu extensions
ke extensions yang lain. Pada gambar 3.4 langkah 2 diatas diberikan contoh
proses Dial dari extensions 201 ke extensions 202. Apabila extensions 202
merespon panggilan tersebut ( gambar 3.4 langkah 3 ), maka komunikasi VoIP
berlangsung. Apabila extensions 202 tidak merespon panggilan dari extensions
201 maka proses selanjutnya dapat diatur melalui konfigurasi DialPlan
3.3 Penggunaan Teknik Asterisk Realtime Dalam Konfigurasi Asterisk
Berbasis Protokol SIP
Konfigurasi Asterisk untuk membangun sebuah sentral telepon ( VoIP
Server ) pada dasarnya dibagi menjadi dua proses, yaitu pertama konfigurasi
52
otentikasi user ( bisa disebut juga proses pendaftaran nomor extensions ), dan
kedua pengaturan DialPlan ( untuk mengatur apa yang harus dilakukan Asterisk
apabila ada user melakukan panggilan ke nomor tertentu ). Selain kedua buah
proses tersebut, konfigurasi dibutuhkan hanya jika ingin menambah features pada
Asterisk, salah satu contoh features yang sering digunakan adalah voicemail
system, dengan menambahkan features ini maka jika ada panggilan dari client
( caller ) yang tidak direspon oleh client ( callee ) yang dipanggil, maka caller
dapat meninggalkan pesan voicemail untuk calle.
Pada penelitian ini akan dibahas mengenai konfigurasi Asterisk untuk proses
otentikasi user, pengaturan DialPlan dan konfigurasi voicemail system dengan
menggunakan teknik Asterisk Realtime yang berbasis protokol SIP.
Proses konfigurasi yang akan dibahas pada penelitian ini, pada dasarnya
dilakukan pada tiga buah file yang terletak pada direktori /etc/asterisk, yaitu
antara lain sip.conf, extensions.conf, dan voicemail.conf. Dengan menggunakan
teknik Asterisk Realtime, maka proses konfigurasi akan dilakukan pada tabel
sip_buddies, tabel extensions_table, dan tabel voicemail_users.
1. Proses Konfigurasi pada file sip.conf
Konfigurasi pada file ini menggambarkan penggunaan protokol SIP pada
jaringan VoIP dan juga merupakan proses konfigurasi pendefinisian data
otentikasi user. Proses pendefinisian pada file ini dilakukan dengan cara
mengetikkan parameter yang dibutuhkan untuk otentikasi user tersebut.
Misalkan saja sebagai berikut :
53
[ 200 ]
type = friend
host = dynamic
username = 200
secret = abc
context = home
callerid = 200 <”albert”>
Gambar 3.5 Contoh Konfigurasi Otentikasi User Pada File sip.conf
Konfigurasi pada gambar 3.5, digunakan untuk mendaftarkan sebuah
nomor telepon ( extensions ) 200 pada Asterisk VoIP Server dan apabila
disimpan dalam bentuk sebuah record didalam tabel sip_buddies maka akan
menjadi sebagai berikut :
Tabel 3.1 Contoh Konfigurasi Otentikasi User Pada Tabel sip_buddies
name type Host username secret context callerid 200 friend dynamic 200 abc home albert
2. Proses Konfigurasi pada file extensions.conf
Konfigurasi pada file extensions.conf dilakukan untuk pengaturan
DialPlan artinya mengatur apa yang harus dilakukan oleh VoIP Server apabila
ada client melakukan panggilan (Dial ) pada nomor telepon tertentu.
Misalkan saja pengaturan DialPlan untuk user pada gambar 3.5 adalah
sebagai berikut :
[ home ]
exten => 200,1,Ringing
exten => 200,2,Dial(SIP/${EXTEN}|20)
exten => 200,3,VoiceMail(2200@home)
exten => 200,4,PlayBack(vm-goodbye)
exten => 200,5,Hangup
exten => 2200,1,VoiceMailMain(2200@home)
Gambar 3.6 Contoh Konfigurasi DialPlan Pada File extensions.conf
54
Aturan penulisan DialPlan diatas berarti apabila ada client ( caller )
melakukan panggilan ke extensions 200 ( calle ) pada Asterisk VoIP server,
maka hal yang pertama kali yang terjadi adalah client 200 akan berdering
( Ringing ) selama 20 detik, apabila tidak ada jawaban dari extensions tersebut
maka akan masuk ke voicemail (caller dapat meninggalkan pesan untuk calle),
setelah caller meninggalkan pesan, maka akan diputarkan file vm-goodbye
yang berarti bahwa waktu untuk meninggalkan pesan voicemail telah habis,
kemudian setelah itu akan di Hangup ( pemutusan komunikasi ). Calle dapat
mendengarkan pesan voicemail yang ditinggalkan oleh caller dengan menDial
ke nomor extensions 2200. Apabila pengaturan DialPlan pada gambar 3.6
disimpan dalam tabel extensions_table maka akan menjadi 5 buah record
sebagai berikut :
Tabel 3.2 Contoh Konfigurasi DialPlan Pada Tabel extensions_table
context exten priority app Appdata home 200 1 Ringing
home 200 2 Dial SIP/${EXTEN}|20
home 200 3 Voicemail 2200@home
home 200 4 Playback vm-goodbye
home 200 5 Hangup
home 2200 1 VoiceMailMain 2200@home
3. Proses Konfigurasi pada file voicemail.conf
Voicemail pada Asterisk digunakan untuk meninggalkan pesan, jika
panggilan yang dilakukan oleh sebuah client terhadap client yang lain tidak
direspon. Konfigurasi tersebut dilakukan pada file voicemail.conf, Format
untuk membuat mailbox voicemail pada Asterisk adalah sebagai berikut :
mailbox_number => password,name,email
55
Keterangan :
mailbox_number : adalah nomor yang digunakan pada file extensions.conf
untuk perintah Voicemail () dan untuk mendaftarkan
seorang user pada file sip.conf.
password : password yang digunakan untuk membuka voicemail box.
name : diasosiasikan ke sebuah voicemailbox.
e-mail : digunakan untuk memberitahu jika ada voicemail yang
masuk.
Contoh konfigurasi untuk membuat mailbox voicemail misalkan saja
sebagai berikut :
[ home ]
2200 => 1234,200,[email protected]
Gambar 3.7 Contoh Konfigurasi Voicemail Pada File voicemail.conf
Konfigurasi diatas, untuk membuat mailbox dengan nama context adalah
home, mailbox dengan nomor 2200 dan dengan password 1234 yang dimiliki
oleh user dengan nama 200 ( lihat gambar 3.5 ) dan email [email protected].
Apabila konfigurasi ini disimpan dalam bentuk record dalam tabel
voicemail_users pada database maka akan menjadi sebagai berikut :
Tabel 3.3 Contoh Konfigurasi Voicemail Pada Tabel voicemail_users
context mailbox password fullname Email home 2200 1234 200 [email protected]
56
3.4 Perancangan Sistem
3.4.1 Flowchat Proses Komunikasi VoIP
Gambar 3.8 Flowchart Proses Komunikasi VoIP
BEGIN
Data register client
Proses Register Client
Apakah Register berhasil ?
Pesan error
Tidak
Ya Pesan sukses
END
Nomor Telepon client
Proses Dial Client
Apakah Dial direspon ?
Ya Proses Komunikasi VoIP
Rekam Voicemail
Tidak
Pesan Voicemail
57
3.4.2 Use Case Diagram Aplikasi
Gambar 3.9 Use Case Diagram Aplikasi
Pada use case diagram tersebut diatas, masing – masing use case
mempunyai fungsi yang berbeda – beda. Fungsi dari masing – masing use case
adalah sebagai berikut :
1. Use Case Login
Use case ini merupakan proses login bagi seorang pengguna
(administrator) supaya dapat menggunakan aplikasi. Untuk melakukan proses
konfigurasi pada Asterisk VoIP Server, seorang administrator harus melalui
proses ini terlebih dahulu.
<<depends on>>
58
2. Use Case Mengkonfigurasi Asterisk File
Use case ini merupakan proses untuk menampilkan isi dari direktori
dimana file – file konfigurasi Asterisk VoIP Server berada. Setelah file tersebut
ditampilkan seorang administrator juga dapat mengubah isi dari file tersebut
melalui use case ini.
3. Use Case Mengkonfigurasi Service Asterisk
Use case ini merupakan proses untuk menampilkan status dari service
Asterisk, apakah sedang berjalan (start), atau berhenti (stop). Use case ini juga
digunakan untuk menggambarkan proses menjalankan (start), menghentikan
(stop), dan merestart service Asterisk. Admin dapat melakukan proses – proses
tersebut melalui use case ini.
4. Use Case Mengkonfigurasi Extensions Line
Use case ini menggambarkan proses menambah, menghapus, serta
mengubah data registrasi extensions pada VoIP Server. Melalui data registrasi
yang ditambahkan pada use case inilah nantinya perangkat Telepon VoIP
hardware maupun software dapat meregistrasikan diri menjadi client dari
VoIP Server.
5. Use Case Mengkonfigurasi PABX Line
Use case ini menunjukkan proses digunakan untuk menambahkan,
mengubah serta menghapus data registrasi bagi perangkat VoIP Gateway.
Melalui data yang ditambahkan pada use case inilah nantinya perangkat VoIP
Gateway dapat meregistrasikan diri menjadi client dari VoIP Server.
59
6. Use Case Mengkonfigurasi Trunking Server Line
Use case ini merupakan proses yang digunakan untuk menambahkan
menghapus, serta mengubah data registrasi Trunking Server. Data Trunking
Server merupakan data yang digunakan untuk menggabungkan VoIP Server
yang sedang menggunakan aplikasi ini dengan VoIP Server lain yang berada
pada jaringan yang lebih luas.
7. Use Case Change Password Administrator
Use case ini menggambarkan proses mengubah password admin yang
sedang login ( mengakses aplikasi ).
8. Use Case Menampilkan Call Detail Record
Use case ini menggambarkan proses untuk mencari dan kemudian
menampilkan data hasil percakapan yang dilakukan oleh client dari Asterisk
VoIP server. Data yang ditampilkan berupa tanggal percakapan, nomor
penelepon, nomor tujuan telepon, serta durasi ( lamanya ) percakapan. Melalui
use case ini juga administrator dapat menampilkan informasi tersebut ke
dalam format dokumen PDF.
9. Use Case Menampilkan Phonebook
Use case ini digunakan untuk proses menampilkan dan mencari informasi
mengenai nomor – nomor telepon ( extensions ) yang terdapat pada Asterisk
VoIP server. Proses ini dapat dilalui tanpa melalui proses login terlebih
dahulu. Informasi yang ditampilkan berupa nomor telepon ( extensions ),
nama, dan status dari extensions tersebut apakah sedang online atau offline.
Online artinya extensions tersebut dapat dihubungi ( ditelepon ), sedangkan
60
offline artinya extensions tersebut tidak dapat dihubungi ( ditelepon ).
10. Use Case Logout
Use case ini digunakan untuk menggambarkan proses logout ( keluar )
dari program aplikasi.
3.4.3 Sequence Diagram Aplikasi
Sequence diagram pada penelitian menjelaskan tentang proses yang terjadi
sehingga menghasilkan suatu fungsi di dalam sebuah use case. Pada penelitian ini
proses yang terjadi dihasilkan dari proses kerja aplikasi dan juga proses
konfigurasi Asterisk VoIP server menggunakan database MySQL. Sequence
Diagram yang dirancang untuk aplikasi ini adalah sebagai berikut :
Sequence Diagram Login
Gambar 3.10 Sequence Diagram Login
61
Sequence Diagram Asterisk File
Gambar 3.11 Sequence Diagram Asterisk File
Sequence Diagram Service Asterisk
Gambar 3.12 Sequence Diagram Service Asterisk
62
Sequence Diagram Extensions Line
Gambar 3.13 Sequence Diagram Menambah Extensions Line
Gambar 3.14 Sequence Diagram Mengedit Extensions Line
63
Gambar 3.15 Sequence Diagram Menghapus Extensions Line
Sequence Diagram PABX Line
Gambar 3.16 Sequence Diagram Menambah PABX Line
64
Gambar 3.17 Sequence Diagram Mengedit PABX Line
Gambar 3.18 Sequence Diagram Menghapus PABX Line
65
Sequence Diagram Trunking Server Line
Gambar 3.19 Sequence Diagram Menambah Trunking Server Line
Gambar 3.20 Sequence Diagram Mengedit Trunking Server Line
66
Gambar 3.21 Sequence Diagram Menghapus Trunking Server Line
Sequence Diagram Change Password Administrator
Gambar 3.22 Sequence Diagram Change Password Administrator
67
Sequence Diagram Call Detail Record
Gambar 3.23 Sequence Diagram Cari Data Call Detail Record
Gambar 3.24 Sequence Diagram Menghapus Data Call Detail Record
68
Sequence Diagram Phonebook
Gambar 3.25 Sequence Diagram Phonebook
3.4.4 Konfigurasi Hardware dan Software
Untuk membangun layanan telepon VoIP menggunakan Asterisk dan
program aplikasi yang akan dibuat pada penelitian ini, maka dibutuhkan perangkat
keras ( hardware ) dan perangkat lunak ( software ) yang mendukung. Spesifikasi
perangkat keras yang digunakan minimal memenuhi kriteria sebagai berikut :
1. Perangkat keras ( hardware ) pada PC yang berfungsi sebagai VoIP
Server :
Prosesor : INTEL Pentium III 733 Mhz
Memori : 128 MB
VGA : 8 MB
Hardisk : 2 GB
69
Kartu Jaringan : 2 buah kartu jaringan
2. Perangkat keras ( hardware ) pada PC yang berfungsi sebagai client
dari VoIP Server :
Prosesor : dengan kecepatan setara 233 Mhz
Memori : 64MB
VGA : 8 MB
Hardisk : 2 GB
Kartu jaringan : 1 buah kartu jaringan
Headset lengkap dengan mikrofon dan speaker : 1 buah
Kartu suara ( soundcard ) yang biasanya sudah terintegrasi pada komputer.
3. Perangkat Keras ( hardware ) Telepon VoIP
Hardware Telepon VoIP yang digunakan adalah berupa sebuah IP Phone
( lihat gambar 3.1 ). Perangkat ini akan digunakan sebagai client dari VoIP
Server.
4. Perangkat Keras ( hardware ) VoIP Gateway
Hardware yang digunakan berupa sebuah Internet Telephony Gateway
( lihat gambar 3.3 ). Perangkat ini akan digunakan sebagai media penghubung
antara jaringan VoIP dengan jaringan PABX.
70
Perangkat lunak yang digunakan untuk menerapkan VoIP server
menggunakan Asterisk, berupa Sistem operasi dan software aplikasi lainnya terdiri
dari :
1. Perangkat Lunak ( Software ) pada PC yang berfungsi sebagai VoIP
Server :
a. Linux Fedora Core 2, sebagai sistem operasi pada PC yang akan
dijadikan VoIP Server.
b. Apache Web Server, digunakan sebagai web server dari software
aplikasi yang akan dibuat.
c. PHP, digunakan sebagai bahasa pemrograman dalam pembuatan
aplikasi.
d. MySQL, digunakan sebagai database dalam pembuatan aplikasi.
e. Asterisk, digunakan sebagai software VoIP server.
f. Asterisk-sounds, digunakan untuk menambahkan suara operator
Asterisk.
g. Asterisk-addons, merupakan driver agar Asterisk bisa terkoneksi
dengan database MySQL.
2. Perangkat Lunak ( Software ) pada PC yang berfungsi sebagai client
dari VoIP Server :
a. Sistem Operasi yang digunakan adalah Windows XP
b. Software Telepon VoIP berupa sebuah program aplikasi ( softphone ),
pada penelitian ini menggunakan X-lite ( lihat gambar 3.2 ).
71
3.4.5 Skenario Pengujian Sistem
Skenario konfigurasi jaringan yang digunakan untuk membangun sentral
telepon ( VoIP Server ) menggunakan Asterisk dapat disesuaikan dengan
kebutuhan yang akan dipakai. Kebutuhan tersebut meliputi beberapa hal, misalkan
saja berapa jumlah VoIP Server yang akan dipakai, apakah jaringan VoIP tersebut
akan dihubungkan dengan jaringan PABX atau PSTN atau tidak.
Pada penelitian ini akan dibuat beberapa contoh skenario konfigurasi
jaringan untuk menggambarkan komunikasi VoIP yang dipakai secara umum.
Skenario jaringan VoIP yang digunakan pada penelitian ini antara lain :
1. Skenario Komunikasi VoIP menggunakan sebuah VoIP Server
Pada skenario konfigurasi ini digunakan sebuah PC yang berfungsi
sebagai VoIP server, yang akan bertugas melayani komunikasi VoIP. Pada
skenario ini dicontohkan VoIP Server bertugas untuk melayani dua buah client
berupa PC dan perangkat IP Phone yang saling terhubung dalam jaringan
LAN ( Local Area Network ). Skenario konfigurasi ini dapat digambarkan
sebagai berikut :
Gambar 3.26 Skenario Komunikasi VoIP Menggunakan Sebuah VoIP Server
72
2. Skenario Komunikasi VoIP PC to Phone dan Phone to PC
Pada skenario konfigurasi ini menggunakan sebuah PC yang berfungsi
sebagai sebuah VoIP Server, dan sebuah VoIP Gateway. VoIP Gateway
tersebut akan digunakan untuk media koneksi antara jaringan VoIP dengan
jaringan telepon PABX. Untuk konfigurasi ini dapat digambarkan
menggunakan gambar sebagai berikut :
Gambar 3.27 Skenario Komunikasi VoIP PC to Phone dan Phone to PC
3. Skenario Komunikasi VoIP menggunakan dua buah VoIP Server
( Trunking Server )
Konfigurasi ini digunakan untuk memberikan gambaran bagaimana
koneksi antar dua buah VoIP Server ( Trunking Server ), dimana masing –
masing VoIP server tersebut memiliki client, sehingga nantinya client dari
VoIP Server tersebut dapat saling melakukan panggilan ( komunikasi ) lintas
VoIP Server. Konfigurasi ini dapat digambarkan menggunakan gambar
sebagai berikut :
73
Gambar 3.28 Skenario Komunikasi VoIP menggunakan
dua buah VoIP Server ( Trunking Server )
3.4.6 Struktur Tabel Database
Pada penelitian ini menggunakan sebuah database dengan 7 ( tujuh ) tabel,
yaitu tabel admin, tabel sip_buddies, tabel extensions_table, tabel pabx_tables,
tabel trunking_tables, tabel voicemail_users, tabel cdr.
Desain untuk tabel sip_buddies, tabel extensions_table, tabel cdr, dan tabel
voicemail_users yang digunakan pada penelitian ini merupakan desain tabel
standard yang dapat dikenali oleh sistem Asterisk. Sedangkan untuk tabel admin,
tabel pabx_tables, dan tabel trunking_tables merupakan desain tabel yang dibuat
oleh penulis untuk menunjang pembuatan aplikasi. Desain tabel yang digunakan
adalah sebagai berikut :
1. Tabel Admin
Tabel ini digunakan untuk menyimpan data otentikasi administrator yang
berupa username, dan password yang digunakan administrator untuk login.
74
Tabel 3.4 Tabel Admin
Field Type Null Key Default Extra username varchar(10) NO PRI admin -
password varchar(50) NO - md5(‘admin’) -
2. Tabel sip_buddies
Tabel ini digunakan untuk menyimpan data account registrasi untuk client
pada Asterisk VoIP server. Client disini dapat berupa softphone, perangkat
VoIP Gateway, maupun account Trunking Asterisk VoIP Server yang lainnya.
Tabel 3.5 Tabel sip_buddies
Field Type Null Key Default Extra id int(11) unsigned NO PRI - auto_increment
name varchar(80) NO UNIQUE - -
status varchar(20) NO - local -
host varchar(31) NO - - -
nat varchar(5) NO - - -
type enum('user', 'peer', 'friend')
NO - - -
callerid varchar(80) YES - - -
cancallforward
char(3) YES - - -
canreinvite char(3) YES - - -
context varchar(80) YES - home -
dtmfmode varchar(7) YES - rfc2833 -
fromuser varchar(80) YES - NULL -
fromdomain varchar(80) YES - NULL -
insecure varchar(4) YES - NULL -
mailbox varchar(50) YES - NULL -
secret varchar(80) YES - NULL -
disallow varchar(100) YES - all -
allow varchar(100) YES - g729;ilbc;gsm;ulaw
;alaw
fullcontact varchar(80) NO - - -
ipaddr varchar(15) NO - - -
port smallint(5) NO - 0 -
regsecond int(100) NO - 0 -
username varchar(80) NO - - -
75
3. Tabel Extensions_table
Tabel ini di gunakan untuk menyimpan data untuk pengaturan DialPlan.
DialPlan yaitu untuk mengatur apa yang harus di lakukan untuk melakukan
panggilan ke sebuah nomor telepon tertentu.
Tabel 3.6 Tabel extensions_table
Field Type Null Key Default Extra id int(11) NO - - auto_increment
context varchar(20) NO PRI home -
exten varchar(20) NO PRI -
priority tinyint(4) NO PRI - -
app varchar(20) NO - - -
appdata varchar(128) NO - - -
4. Tabel Voicemail_users
Tabel ini digunakan untuk menyimpan data client yang dapat
menggunakan fasilitas voicemail pada Asterisk VoIP server.
Tabel 3.7 Tabel Voicemail_users
Field Type Null Key Default Extra uniqueid int(11) NO PRI - auto_increment
customer_id int(11) NO - 0 -
context varchar(50) NO - home -
mailbox int(6) NO - 0 -
password varchar(4) NO - - -
fullname varchar(50) NO - - -
email varchar(50) NO - - -
pager varchar(50) NO - - -
stamp timesstamp(14) YES - NULL -
76
5. Tabel CDR ( Call Detail Record )
Tabel ini digunakan untuk menyimpan data catatan pembicaraan
( komunikasi ) yang terjadi pada Asterisk VoIP Server.
Tabel 3.8 Tabel CDR
Field Type Null Key Default Extra calldate datetime NO - 0000-00-00 00:00:00 -
clid varchar(80) NO - - -
src varchar(80) NO - - -
dst varchar(80) NO - - -
dcontext varchar(80) NO - - -
channel varchar(80) NO - - -
dstchannel varchar(80) NO - - -
lastapp varchar(80) NO - - -
lastdata varchar(80) NO - - -
duration integer(11) NO - 0 -
billsec integer(11) NO - 0 -
disposition varchar(45) NO - - -
amaflags integer(11) NO - 0 -
accountcode varchar(20) NO - - -
uniqueid varchar(32) NO - - -
userfield varchar(255) NO - - -
6. Tabel PABX_tables
Tabel ini digunakan sebagai tabel bantu untuk menyimpan data registrasi
dari perangkat VoIP Gateway sebelum data tersebut dimasukkan ke dalam
tabel sip_buddies sebagai data konfigurasi Asterisk.
Tabel 3.9 Tabel PABX_tables
Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment
name varchar(50) NO PRI - -
callerid varchar(50) NO - - -
username varchar (50) NO PRI - -
password varchar(50) NO - - -
prefix varchar(10) NO PRI - -
77
7. Tabel Trunking_tables
Tabel ini digunakan sebagai tabel bantu untuk meyimpan data register
untuk Trunking Server, sebelum data tersebut dimasukkan ke dalam tabel
sip_buddies sebagai data konfigurasi Asterisk.
Tabel 3.10 Tabel Trunking_tables
Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment
name varchar(50) NO - - -
username varchar (50) NO PRI - -
password varchar(50) NO - - -
domain varchar(50) NO PRI - -
prefix varchar(10) NO PRI - -
78
3.4.7 Perancangan Antarmuka ( User Interface )
Antarmuka ( User Interface ), digunakan untuk memberikan kembudahan
pada pengguna ( user ) untuk melakukan proses konfigurasi pada Asterisk VoIP
Server. Pengguna ( user ) dapat mengkonfigurasi Asterisk VoIP Server melalui
antarmuka – antarmuka yang akan dibuat pada penelitian ini. Antarmuka yang
akan dibuat pada penelitian ini adalah sebagai berikut :
a. Perancangan Antarmuka Login Administrator
Antarmuka ini digunakan untuk proteksi terhadap pengguna yang tidak
diijinkan untuk mengakses aplikasi. Pengguna dapat memasukkan username
dan password yang valid supaya dapat menggunakan aplikasi ini.
Banner configuration phonebook
Footer
LOGIN ADMINISTRATOR
Username Password
LOGIN
Gambar 3.29 Perancangan Antarmuka Login Administrator
79
b. Perancangan Antarmuka Phonebook
Antarmuka ini digunakan untuk menampilkan informasi nomor extensions
yang ada pada VoIP Server. Pada antarmuka ini juga terdapat menu untuk
mencari data extensions tersebut. Pengguna dapat memasukkan nomor
extensions pada form yang disediakan, kemudian mengklik tombol search.
Banner configuration phonebook
Footer
NO PHONE NUMBER NAME STATUS
[first ] [ next ] [ previous ] [ last page ]
PHONEBOOK
SEARCH DATA PHONEBOOK
Keyword : SEARCH
PREFIXES TO DIAL PABX LINE
NO PREFIX NAME
NO
PREFIXES TO DIAL OUTBOUND PROXIES
PREFIX NAME
Gambar 3.30 Perancangan Antarmuka Phonebook
80
c. Perancangan Antarmuka Index Configuration
Jika Administrator diijinkan untuk mengakses aplikasi, maka halaman ini
yang pertama kali akan muncul. Pada aplikasi ini terdapat menu – menu yang
dapat digunakan administrator untuk melakukan proses manajemen pada
VoIP Server.
Banner Login as :
Footer
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.31 Perancangan Antarmuka Index Configuration
81
d. Perancangan Antarmuka Asterisk File
Halaman ini akan muncul jika link menu Asterisk File diklik. Halaman ini
di gunakan untuk menampilkan file konfigurasi yang ada pada direktori
konfigurasi Asterisk ( pada aplikasi ini letak file konfigurasi ada pada direktori
/etc/Asterisk ). Kemudian administrator juga dapat merubah isi dari file
konfigurasi tersebut cara mengklik pada nama file yang akan dirubah.
Banner Login as :
Footer
ASTERISK CONFIGURATION FILE
/ etc / asterisk /
File Name Last Modified No
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.32 Perancangan Antarmuka Asterisk File
82
e. Perancangan Antarmuka Edit Asterisk File
Halaman ini akan muncul jika salah satu file pada menu Asterisk File
diklik. Pada Halaman ini, isi file akan ditampilkan pada form, kemudian admin
dapat mengedit isi file tersebut, kemudian menyimpannya dengan mengklik
tombol save.
Banner
Login as :
Footer
ASTERISK FILE >> EDIT FILE < nama file >
Isi File yang akan di edit
SAVE
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.33 Perancangan Antarmuka Edit Asterisk File
83
f. Perancangan Antarmuka Service Asterisk
Halaman ini akan muncul jika link menu Service Asterisk diklik. Halaman
ini digunakan untuk menampilkan informasi tentang kondisi service VoIP
Server. Ada 2 ( dua ) kondisi yang dimungkinkan yaitu running atau stopped.
Dengan menggunakan menu ini Adminstrator dapat menghentikan ( stop ),
merestart ( restart ), dan menjalankan ( start ) Service VoIP Server.
g. Perancangan Antarmuka Extensions Line Type Local
Halaman ini akan muncul jika link menu Extensions Line diklik. Halaman
ini digunakan untuk proses menambah data registrasi bagi perangkat Telepon
VoIP, baik itu hardware maupun software pada VoIP Server. Type Local,
berarti bahwa perangkat ini boleh dipakai untuk registrasi bagi perangkat
Banner Login as :
Footer
STATUS SERVICE ASTERISK
Status : << running / stopped >>
START RESTART STOP
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.34 Perancangan Antarmuka Service Asterisk
84
Telepon VoIP yang berada pada jaringan yang sama dengan VoIP Server yang
sedang menggunakan aplikasi ini.
Banner
Login as :
Footer
EXTENSIONS
VOICEMAIL
SUBMIT
Type Extensions : Local
Telephone Number : Display Name :
Password :
Voicemail Number :
Voicemail Password :
Time Before Send to voicemail : 10 Second
Data Account Extensions Trunk NO USERNAME LOCAL / TRUNK STATUS ACTION Data Account Extensions Local NO PHONENUMBER MAILBOX NAME LOCAL / TRUNK STATUS ACTION
[first ] [ next ] [ previous ] [ last page ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.35 Perancangan Antarmuka Extensions Line Type Local
85
h. Perancangan Antarmuka Extensions Line Type Trunk
Halaman ini digunakan untuk menambahkan data registrasi yang nantinya
akan digunakan untuk register oleh VoIP Server lain untuk menjadi client dari
VoIP Server yang sedang menggunakan aplikasi ini (proses Trunking Server).
Banner
Login as :
Footer
EXTENSIONS
SUBMIT
Type Extensions : Trunk
Telephone Number :
Password :
Data Account Extensions Trunk NO USERNAME LOCAL / TRUNK STATUS ACTION Data Account Extensions Local NO PHONENUMBER MAILBOX NAME LOCAL / TRUNK STATUS ACTION
[first ] [ next ] [ previous ] [ last page ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.36 Perancangan Antarmuka Extensions Line Type Trunk
86
i. Perancangan Antarmuka Edit Extensions Line Type Trunk
Halaman ini akan muncul jika link edit salah satu baris pada tabel Data
Account Extensions Trunk yang berada pada antarmuka Extensions Line Type
Trunk diklik. Halaman ini digunakan untuk mengubah data account
Extensions Line yang memiliki Type Trunk.
Login as :
Banner
Footer
EXTENSIONS >> EDIT EXTENSIONS
[ Delete Extensions ]
EXTENSIONS
Phone Number
Caller ID
Host dynamic
Password
Dtmfmode rfc2833
Context home
Canreinvite yes
NAT yes
Codec allaw
SUBMIT
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.37 Perancangan Antarmuka Edit Extensions Line Type Trunk
87
j. Perancangan Antarmuka Edit Extensions Line Type Local
Halaman ini akan muncul jika link edit pada tabel Data Account Extensions
Local yang berada pada antarmuka Extensions Line Type Local diklik. Halaman
ini digunakan untuk mengubah data Account Extensions Line yang memiliki
Type Local.
Banner
Footer
EXTENSIONS >> EDIT EXTENSIONS
[ Delete Extensions ]
EXTENSIONS
Phone Number Caller ID
Host Password Dtmfmode
Context
Canreinvite
NAT
Codec
SUBMIT
VOICEMAIL
Voicemail Number Voicemail Password Voicemail Time Second
Login as :
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.38 Perancangan Antarmuka Edit Extensions Line Type Local
88
k. Perancangan Antarmuka PABX Line
Halaman ini akan muncul jika link menu PABX Line diklik. Halaman ini
digunakan untuk menambahkan data account PABX yang dapat digunakan oleh
perangkat VoIP Gateway untuk registrasi menjadi client dari VoIP Server.
Sehingga nantinya jaringan VoIP yang dioperasikan dapat terhubung dengan
jaringan PABX maupun jaringan telepon tradisional ( PSTN ).
Banner Login as :
Footer
ADD PABX LINE
PABX Name :
SUBMIT
Display Name :
Password :
Dialing Prefix :
Username :
Data Account PABX Line NO USERNAME CALLER ID DIALING PREFIX STATUS ACTION
[first ] [ next ] [ previous ] [ last page ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.39 Perancangan Antarmuka PABX Line
89
l. Perancangan Antarmuka Edit PABX Line
Halaman ini akan muncul jika link edit salah satu baris tabel Data Account
PABX yang berada pada antarmuka PABX Line diklik. Halaman ini digunakan
untuk melalukan proses ubah data untuk PABX Account yang ada pada VoIP
Server. Halaman ini akan memunculkan data sesuai dengan data dari baris pada
tabel yang telah diklik dari tabel Data Account PABX Line.
Banner Login as :
Footer
PABX LINE > > EDIT PABX LINE
PABX Name :
SUBMIT
Display Name :
Password :
Dialing Prefix :
NAT :
Codec :
Username :
Host :
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.40 Perancangan Antarmuka Edit PABX Line
90
m. Perancangan Antarmuka Trunking Server Line
Halaman ini akan muncul jika link menu Trunking Server Line diklik.
Halaman ini digunakan untuk mendaftarkan ( registrasi ) VoIP Server yang
sedang menggunakan aplikasi ini ke VoIP Server lainnya yang akan dijadikan
Trunking Server oleh VoIP Server pada aplikasi ini. Dengan adanya Trunking
Server ini maka perangkat client dari masing – masing VoIP Server dapat saling
berkomunikasi VoIP.
SUBMIT
Banner
Login as :
Footer
ADD TRUNKING SERVER LINE
Trunking Name :
Username :
Password :
SIP Proxy :
0.0.0.0
Dialing Prefix :
Data Account Trunking Server Line [Registration Status]
NO NAME USERNAME SIP PROXY DIALING PREFIX STATUS ACTION [first ] [ next ] [ previous ] [ last page ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.41 Perancangan Antarmuka Trunking Server Line
91
n. Perancangan Antarmuka Trunking Registration Status
Halaman ini akan muncul jika link [Registration Status] pada menu
Trunking Server Line diklik. Halaman ini digunakan untuk mengetahui status
registrasi Trunking VoIP Server yang menggunakan aplikasi ini pada VoIP
Server yang lainnya.
Banner
Footer
STATUS REGISTRASI TRUNKING SERVER
SIP Proxy | Username | Refresh State | Status
Status Registrasi
[ Kembali ke Trunking Server Line ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.42 Perancangan Antarmuka Trunking Registration Status
92
o. Perancangan Antarmuka Edit Trunking Server Line
Halaman ini akan muncul jika link edit salah satu baris tabel Data Account
Trunking Server diklik. Halaman ini digunakan untuk melalukan proses ubah
data account Trunking Server. Halaman ini akan memunculkan data sesuai
dengan data dari baris yang telah diklik pada tabel Data Account Trunking
Server.
Banner Login as :
Footer
TRUNKING SERVER LINE >> EDIT TRUNKING
Trunking Name :
SUBMIT
Username :
Password :
SIP Proxy : 0.0.0.0
NAT :
Codec :
Dialing Prefix :
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.43 Perancangan Antarmuka Edit Trunking Server Line
93
p. Perancangan Antarmuka Call Detail Record
Halaman ini akan muncul jika link menu Call Detail Record diklik.
Halaman ini digunakan untuk mencari dan menampilkan data komunikasi
( Call History ) yang terjadi pada VoIP Server. Administrator menginputkan
data tanggal pada form inputan yang disediakan, jika data yang dimaksud
ditemukan maka data tersebut akan ditampilkan pada tabel. Admin juga dapat
menampilkan data call detail record dalam format PDF, yaitu dengan mengklik
gambar icon PDF.
Banner
Login as :
CALL DETAIL RECORD
Footer
SEARCH
Search Call Detail Record By Date
From : To :
Icon PDF
Data Call Detail Record From : … To : … NO DATETIME FROM TO DURATION ACTION [first ] [ next ] [ previous ] [ last page ]
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.44 Perancangan Antarmuka Call Detail Record
94
q. Perancangan Antarmuka Change Password Administrator
Halaman ini akan muncul jika link Change Password Administrator diklik.
Halaman ini digunakan untuk mengganti password administrator yang sedang
aktif login. Admin dapat memasukkan password lama ( old password ) dan
menggantinya dengan password baru ( new password ) pada form yang
disediakan.
Banner Login as :
Footer
CHANGE PASSWORD ADMIN
SEARCH
admin Username :
Old Password :
New Password :
Asterisk File
Service Asterisk
Extensions Line
PABX / PSTN Line
Trunking Server Line Call Detail Record
Change Password Admin
Logout
Gambar 3.45 Perancangan Antarmuka Change Password Administrator
95
BAB IV
IMPLEMENTASI SISTEM
Pada bab ini akan dijelaskan mengenai implementasi dari perancangan yang
sudah dilakukan pada bab sebelumnya.
4.1 Spesifikasi Software dan Hardware yang digunakan
Spesifikasi perangkat lunak ( software ) yang digunakan adalah sebagai
berikut :
1. Spesifikasi Software pada PC yang berfungsi sebagai VoIP Server :
a. Sistem Operasi : Linux Fedora Core 2
b. Web Server : Apache versi 2.0
c. Database Server : MySQL versi 3.23
d. Bahasa pemrograman : PHP versi 4.3
e. VoIP Server : Asterisk versi 1.2.14
f. Asterisk-addons : Asterisk-addons versi 1.2.5
g. Asterisk-sounds : Asterisk-sound versi 1.2.1
2. Spesifikasi Software pada PC yang berfungsi sebagai Client dari
VoIP Server :
a. Sistem Operasi : Windows XP
b. Software Telepon VoIP : X-Lite versi 3.0
96
Spesifikasi perangkat keras ( hardware ) yang digunakan adalah sebagai
berikut :
1. Spesifikasi hardware pada PC yang berfungsi sebagai VoIP Server :
a. Prosesor : INTEL Pentium IV CPU 2.4 Ghz
b. Memori : 128 MB
c. VGA : 64 MB
d. Hardisk : 20 GB
e. Kartu Jaringan : 2 buah kartu jaringan
2. Spesifikasi hardware pada PC yang berfungsi sebagai client dari
VoIP Server :
a. Prosesor : dengan kecepatan setara 233 Mhz
b. Memori : 64 MB
c. VGA : 8 MB
d. Hardisk : 2 GB
e. Kartu jaringan : 1 buah kartu jaringan
f. Headset lengkap dengan mikrofon dan speaker : 1 buah
g. Kartu suara ( soundcard ) yang biasanya sudah terintegrasi pada
komputer.
3. Spesifikasi Telepon VoIP ( IP Phone ) :
a. Vendor : Planet
b. Jenis : VIP-103PT/ VIP-153PT/VIP-153T
c. Firmware : V1.00.05
d. Kartu Jaringan : 2 buah
97
4. Spesifikasi perangkat VoIP Gateway ( Internet Telephony Gateway ) :
a. Vendor : Planet
b. Jenis : VIP-480
c. Firmware : 2.8.2L
d. Kartu Jaringan : 5 buah
e. FXO ( port RJ 11 ) : 2 buah
f. FXS ( port RJ 11 ) : 2 buah
4.2 Setting Koneksi Asterisk dengan Database MySQL
Koneksi Asterisk dengan database MySQL diperlukan agar aplikasi yang
dibuat dapat menerapkan teknik Asterisk Realtime pada proses konfigurasi
Asterisk.
Untuk mengkoneksikan Asterisk dengan Database MySQL memerlukan suatu
driver, yaitu asterisk-addons. Driver ini berisi modules yang diperlukan untuk
mengkoneksikan Asterisk dengan database. Pada koneksi asterisk dengan
database MySQL diperlukan dua buah modules, yaitu res_config_mysql.so dan
cdr_addons_mysql.so. Berikut langkah – langkah konfigurasi untuk mengkoneksi
kan Asterisk dengan database MySQL :
a. Lakukan konfigurasi pada file modules.conf
Konfigurasi ini dilakukan untuk melakukan load module – module yang
dibutuhkan untuk koneksi antara Asterisk dengan database MySQL.
Konfigurasi dilakukan dengan cara menambahkan baris berikut pada file
modules.conf :
98
Setelah baris diatas ditambahkan, maka langkah selanjutnya melakukan
pengecekan apakah modules tersebut sudah berhasil di load oleh Asterisk,
perintahnya dapat dilihat pada gambar berikut :
b. Lakukan konfigurasi pada file res_mysql.conf
Konfigurasi ini dilakukan untuk mengkonfigurasi parameter yang
digunakan untuk koneksi Asterisk dengan database yang digunakan.
Parameter yang digunakan antara lain: host, nama database, nama user dan
password database, nomor port database ( default port MySQL = 3306 ).
c. Lakukan Konfigurasi pada file cdr_mysql.conf
Konfigurasi ini digunakan agar data hasil percakapan (Call Detail Record)
dapat disimpan secara otomatis dalam sebuah tabel, pada aplikasi ini data hasil
preload => res_config_mysql.so
[general] dbhost = 127.0.0.1 dbname = voip dbuser = root dbpass = dbport = 3306 dbsock = /var/lib/mysql/mysql.sock
Gambar 4.1 Hasil Load Module Koneksi Asterisk Ke database MySQL
99
pembicaraan tersebut disimpan pada tabel cdr ( lihat tabel 3.8 ). Pada
prinsipnya parameter yang dibutuhkan untuk konfigursi pada file
cdr_mysql.conf sama dengan parameter yang ada pada konfigurasi file
res_mysql.conf.
d. Lakukan Konfigurasi pada file extconfig.conf
Konfigurasi ini dilakukan agar Asterisk dengan menggunakan teknik
Asterisk Realtime dapat mengkonfigurasi sipusers dan sipusers ( untuk proses
otentikasi user ) , voicemail, dan DialPlan melalui tabel – tabel yang ada pada
database MySQL. Parameter yang digunakan pada file ini adalah sebagai
berikut :
Keterangan :
voip : nama database yang digunakan
sip_buddies : nama tabel untuk otentikasi user
extensions_table : nama tabel untuk konfigurasi DialPlan
voicemail_users : nama tabel untuk konfigurasi voicemail
[settings] sippeers => mysql,voip,sip_buddies sipusers => mysql,voip,sip_buddies extensions => mysql,voip,extensions_table voicemail => mysql,voip,voicemail_users
[global] hostname=127.0.0.1 dbname=voip table=cdr password= user=root port=3306 sock=/var/lib/mysql/mysql.sock userfield=1
100
e. Lakukan Konfigurasi pada file extensions.conf
Konfigurasi ini dilakukan agar Asterisk dapat membaca data konfigurasi
DialPlan pada tabel extensions_table yang ada di database. Konfigurasi yang
digunakan adalah sebagai berikut :
Keterangan :
[ home ] : default context untuk pengaturan DialPlan
Local.
[ outbound-trunk ] : default context untuk pengaturan DialPlan
pada proses Trunking Server.
Extensions : nama variable yang mewakili tabel
extensions_table yang digunakan pada konfigurasi file extconfig.conf
[home] switch => Realtime/home@extensions include => outbound-trunk [outbound-trunk] switch => Realtime/outbound-trunk@extensions include => home
101
4.3 Implementasi Antarmuka ( User Interface )
a. Implementasi Antarmuka Login Administrator
Halaman diatas ditampilkan ketika aplikasi pertama kali diakses. Setelah
tombol login di-klik, akan dilakukan pengecekan username dan password pada
tabel admin, jika username dan password cocok akan ditampilkan halaman
berikutnya. Kode programnya adalah sebagai berikut :
<?php $query_login = " select username,user_password from admin where username = '$_POST[username]' and user_password = md5('".$_POST["userpass"]."')"; $db_login = mysql_query($query_login) or die('Error Query'); if($db_login){ $hasil_login = mysql_fetch_row($db_login); $ada_username = $hasil_login[0]; $ada_password = $hasil_login[1]; } if($ada_username !="" && $ada_password != "" ){ session_start(); $_SESSION["user"] = $ada_username; $_SESSION["pass"] = $ada_password; header("location:configuration/index.php"); } else{ echo"<script language:\"javascript\">"; echo"alert('username atau password salah..!!');"; echo"document.location.href='index.php'"; echo"</script>"; } ?>
Gambar 4.2 Implementasi Antarmuka Login Administrator
102
Pada halaman login administrator terdapat 2 ( dua ) link menu, masing –
masing berfungsi sebagai berikut :
1. Link Menu Configuration
Link menu ini digunakan untuk menampilkan halaman Login
Administrator ( lihat gambar 4.2 )
2. Link Menu Phonebook
Link Menu ini digunakan untuk menampilkan informasi daftar nomor –
nomor extensions yang terdapat pada Asterisk VoIP server. Menu ini
dapat diakses tanpa melakukan proses login terlebih dahulu.
b. Implementasi Antarmuka Phonebook
Halaman ini digunakan untuk menampilkan informasi data nomor extensions,
informasi nomor prefix yang digunakan untuk menghubungi client pada VoIP
server lain yang terhubung dengan Trunking Server ( mirip dengan kode area
Gambar 4.3 Implementasi Antarmuka Phonebook
103
pada jaringan telepon biasa ), serta informasi nomor prefix untuk menghubungi
extensions yang ada pada jaringan PABX. Masing – masing informasi tersebut
didapat dari proses select data pada tabel sip_buddies, tabel pabx_tables, dan tabel
trunking_tables. Listing programnya adalah sebagai berikut :
Pada antarmuka Phonebook juga terdapat fasilitas untuk mencari data
extensions, hal ini dilakukan dengan cara menginputkan nomor yang ingin dicari
pada textfield keyword kemudian ketika tombol Search ditekan akan dilakukan
pengecekan data keyword yang diinputkan pada tabel sip_buddies menggunakan
kode program sebagai berikut :
Jika data yang dicari ditemukan maka akan ditampilkan pada sebuah tabel
yang juga berada pada antarmuka phonebook ini, tampilannya adalah sebagai
berikut :
Gambar 4.4 Antarmuka Hasil Data Phonebook ditemukan
<?php if(isset($_POST["submit"])){ if(!empty($_POST["txt_number"])){ $number = "select name,callerID,ipaddr from sip_buddies where name = '$_POST[txt_number]' and status ='Local'"; $db_number = @mysql_query($number) or die ("Query name gagal"); } ?>
<?php $extension_row = "Select name,callerID,ipaddr from sip_buddies where Status ='Local' order by name limit $_POST[offset],$_POST[rowsPerPage]"; $db_extensions_row = @mysql_query($extension_row); $pabx = "select name, username from pabx_tables order by name limit $_POST[offset],$_POST[rowsPerPage]"; $db_pabx = @mysql_query($pabx); $trunking = "select name, prefix, domain from trunking_tables order by name limit $_POST[offset],$_POST[rowsPerPage]"; $db_trunking = @mysql_query($trunking); ?>
104
c. Implementasi Antarmuka Index Configuration
Apabila administrator berhasil login maka muncul antarmuka index
configuration, dengan tampilan sebagai berikut :
Pada halaman ini terdapat beberapa menu yang dapat digunakan administrator
untuk konfigurasi Asterisk VoIP server, dimana masing – masing mempunyai
fungsi sebagai berikut :
1. Menu Asterisk File
Menu ini digunakan untuk menampilkan file konfigurasi yang ada pada
direktori konfigurasi Asterisk. Pada penelitian ini direktori konfigurasi
berada pada direktori /etc/asterisk. Melalui menu ini pula administrator
dapat mengedit isi file tersebut.
2. Menu Service Asterisk
Menu ini digunakan untuk menampilkan status dari service Asterisk.
Apakah sedang stop atau sedang running. Pada menu ini administrator
Gambar 4.5 Implementasi Antarmuka Index Configuration
105
juga dapat mengontrol service asterisk yaitu dengan menghentikan (stop),
menjalankan ( start ), atau merestart ( restart ) service asterisk tersebut.
3. Menu Extensions Line
Menu ini digunakan untuk proses penambahan account extensions bagi
perangkat Telepon VoIP, sehingga dengan menggunakan account tersebut
perangkat Telepon VoIP dapat login menjadi client dari VoIP server.
Melalui menu ini pula proses konfigurasi DialPlan untuk perangkat
tersebut dilakukan. Proses konfigurasi DialPlan terjadi otomatis ketika
administrator melakukan penambahan account.
4. Menu PABX / PSTN Line
Menu ini digunakan untuk menambahkan account untuk registrasi sebuah
perangkat VoIP Gateway menjadi client dari VoIP server. Dengan adanya
proses registrasi dari perangkat VoIP Gateway, maka jaringan VoIP dapat
dihubungkan dengan jaringan PABX maupun jaringan telepon tradisional
( PSTN ). Pada menu ini proses pengaturan DialPlan juga terjadi otomatis
saat administrator menambahkan data account.
5. Menu Trunking Server Line
Menu ini digunakan untuk meregistrasikan VoIP Server yang sedang
menggunakan aplikasi ini untuk menjadi client dari VoIP Server yang
lainnya ( proses Trunking Server ). Dengan adanya proses ini, maka dapat
terjadi komunikasi VoIP antar client masing – masing VoIP server yang
terhubung dalam Trunking. Pada menu ini proses pengaturan DialPlan
106
terjadi otomatis saat administrator selesai melakukan proses registrasi
VoIP server.
6. Menu Call Detail Record
Menu ini digunakan untuk mencari, kemudian menampilkan data dari
percakapan yang terjadi antar client dari VoIP Server pada sebuah tabel.
Data yang ditampilkan berupa tanggal, nomor penelepon, nomor yang
ditelepon, serta durasi lamanya komunikasi yang terjadi.
7. Menu Change Password Administrator
Menu ini digunakan untuk proses ganti password administrator yang
sedang aktif login.
8. Menu Logout
Menu ini digunakan untuk keluar ( Logout ) dari aplikasi. Sehingga
administrator harus login kembali jika ingin melakukan konfigurasi lagi.
d. Implementasi Antarmuka Asterisk File
Gambar 4.6 Implementasi Antarmuka Asterisk File
107
Antarmuka Asterisk File digunakan untuk menampilkan file – file yang
terdapat pada direktori konfigurasi asterisk VoIP server ( pada kasus aplikasi ini
direktori tersebut terletak di /etc/astersik ). Proses ini dilakukan oleh listing
program sebagai berikut :
Administrator juga dapat merubah isi file melalui halaman ini dengan cara
mengklik salah satu link file yang akan diedit.
<?php include”../config.php”; $_POST["files"] = array(); $d = opendir($dir_asterisk); echo " <table width =\"70%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\" id=\"table_asterisk_conf\" align=\"left\">"; echo"<tr id=\"judulmenu\"> <td>No</td> <td>File Name</td> <td align=\"center\">Last Modified</td> </tr>"; while (false !== ($_POST["file"] = readdir($d))){ if(($_POST["file"] {0} != '.') &&($_POST["file"] {0} != '~') && (substr($_POST["file"] , -3) != 'LCK') && ($_POST["file"] != basename($_SERVER['PHP_SELF']))){ $stat=$dir_asterisk.$_POST["file"]; $files[$_POST["file"]] = stat($stat); } } $no = 1; closedir($d); ksort($files); foreach ($files as $name => $stats) { echo"<tr> <td>$no</td> <td><a href=\"$sitepath/configuration/index.php?menu= edit_asterisk_conf&file=$name\" title=\"Edit File $name\">{$name} </a> </td>"; echo "<td>"."<div align=\"center\">".date('d-m-Y h:ia', $stats['mtime'])."</div>"."</td>"; echo "</tr>"; $no++; } echo "</table>"; ?>
108
e. Implementasi Antarmuka Edit Asterisk File
Setelah Administrator memilih link file yang akan diedit dari menu Asterisk
File, maka muncul halaman ini ( pada gambar 4.7 diberikan contoh ketika
administrator akan mengedit file cdr_mysql.conf ). Halaman ini digunakan untuk
menampilkan isi file yang akan diedit oleh administrator pada sebuah textarea.
Proses ini dikerjakan oleh script program dibawah ini :
Proses edit file ini berfungsi untuk pengaturan konfigurasi lainnya yang
belum disediakan oleh aplikasi yang dibuat. Proses edit ini dilakukan dengan cara
mengetikkan serangkaian aturan pada file yang akan diedit pada text area yang
<?php $_POST["file_name"] = $_GET["file"]; $nama_file = $dir_asterisk.$_GET["file"]; $_SESSION['file'] = $_POST["file_name"]; $buka=fopen($nama_file,'r'); $baca=fread($buka,filesize($nama_file)); fclose($buka); $output=nl2br(htmlspecialchars($baca)); ?> <textarea name="isi_File" cols="70" rows="20" > <?php echo $baca; ?> </textarea>
Gambar 4.7 Implementasi Antarmuka Edit Asterisk File
109
sudah disediakan. Setelah administrator selesai mengedit file, maka administrator
dapat menekan button Save untuk menyimpan hasil editan file tersebut. Proses
menyimpan file dilakukan oleh script berikut ini :
f. Implementasi Antarmuka Service Asterisk
<?php system("sudo -u root chmod 777 $dir_asterisk".$_GET["file"]); $write = @fopen($file_name,"w+"); $_POST["isi_File"] .= " "; if(fwrite($write,$_POST['isi_File'])){ if(system($restart)){ echo "<div style=\"color:#FF0000\" align=\"center\"> <br><br> File telah di simpan </div>"; echo "<div style=\"color:#FF0000\" align=\"center\"> <br><br> Service asterisk telah di restart</div>"; echo"<div align=\"center\"><br><br> <a href=\"../configuration/index.php?menu=asterisk_conf\">[ Kembali Asterisk File ]</a></div><br><br>"; } else{ echo "<div style=\"color:#FF0000\" align=\"center\"> <br><br> Service asterisk gagal di restart</div>"; echo"<div align=\"center\"><br><br> <a href=\"../configuration/index.php?menu=asterisk_conf\">[ Kembali Asterisk File ]</a></div><br><br>"; } ?>
Gambar 4.8 Implementasi Antarmuka Asterisk File
110
Halaman Service Asterisk digunakan untuk menampilkan status service
asterisk VoIP server, apakah sedang running ( siap untuk beroperasi ), atau
sedang stopped ( tidak dapat beroperasi ). Untuk menampilkan status service
asterisk menggunakan listing program sebagai berikut :
Kemudian setelah status service tersebut ditampilkan, administrator dapat
mengontrol service tersebut, apakah ingin di start, restart, atau di stop dengan
cara menekan salah satu tombol yang ada sesuai dengan aksi yang akan dilakukan
oleh administrator. Kode programnya adalah sebagai berikut :
g. Implementasi Antarmuka Extensions Line Type Local
<?php echo"<div align=\"center\" style=\"color:#FF0000\">"; if(isset($_POST["btn_start"])){ system("sudo -u root /etc/init.d/asterisk start"); } if(isset($_POST["btn_restart"])){ system("sudo -u root /etc/init.d/asterisk restart"); } if(isset($_POST["btn_stop"])){ system("sudo -u root /etc/init.d/asterisk stop"); } ?>
<?php system("sudo -u root /etc/init.d/asterisk status"); ?>
Gambar 4.9 Implementasi Antarmuka Extensions Line Type Local
111
Pada antarmuka gambar 4.9, digunakan untuk proses penambahan account
Extensions dengan type Local. Type Local, berarti bahwa account tersebut dapat
dipakai untuk registrasi bagi client ( perangkat Telepon VoIP ) yang berada pada
jaringan yang sama dengan VoIP Server yang sedang menggunakan aplikasi ini.
Pada form – form yang ada administrator dapat menginputkan data antara lain :
1. Telephone Number : merupakan nomor telepon dan username yang
digunakan untuk registrasi client ke VoIP Server.
2. Password : password untuk register client ke VoIP Server.
3. Display name : nama atau nomor yang ditampilkan pada layar IP
Phone atau X-Lite saat extensions ini melakukan panggilan ke extensions
lain.
4. Voicemail Number : nomor voicemail yang dapat dihubungi untuk
mendengarkan pesan voicemail box bagi extensions ini.
5. Voicemail Password : password untuk membuka voicemail box.
6. Time Before Send To Voicemail : waktu tunggu sebelum sebuah
panggilan masuk ke voicemail box.
Setelah tombol submit ditekan, maka data akan diinsertkan ke tabel
sip_buddies, tabel extensions_table, dan tabel voicemail_users . Sebelum data
tersebut diinsertkan dilakukan proses pencarian data account tadi pada masing –
masing tabel untuk menghindari terjadinya duplikasi data. Proses ini dilakukan
oleh kode program sebagai berikut :
112
Kemudian setelah data tersebut tidak ditemukan, maka data akan diinsertkan
ke masing – masing tabel dengan menggunakan kode program sebagai berikut :
<?php $search_ex = "Select * from sip_buddies where name='$_POST[ex_number]' order by name"; $db_search_ex = mysql_query($search_ex); $row_search_ex = mysql_num_rows($db_search_ex); $search_DialPlan ="Select * from extensions_table where exten ='$_POST[VMail_Number]' order by exten"; $db_search_DialPlan = mysql_query($search_DialPlan); $row_search_DialPlan = mysql_num_rows($db_search_DialPlan ); ?>
<?php if(isset($_POST["btn_addExtensions"])) { function Insertsip_buddies($ex_number,$status,$context, $mailbox,$host,$callerID,$secret,$username,$insecure,$allow){ $extensions = "insert into sip_buddies(name,status,context,mailbox, host,callerID,secret,username,insecure,allow) values('$ex_number','$status','$context','$mailbox','$host','$callerID','$secret','$username','$insecure','$allow')"; $db_extensions = mysql_query($extensions) or die ("Error insert sip_buddies"); } $dial_vmail = "SIP/$"."{EXTEN}"."|".$_POST["VMail_Time"]; $Ringing = "insert into extensions_table(context,exten,priority,app, appdata) values ('$context','$_POST[ex_number]','1','Ringing','')"; $Dial_Local = "insert into extensions_table(context,exten,priority, app,appdata) values('$context','$_POST[ex_number]','2', 'Dial','$dial_vmail')"; $VoiceMail = "insert into extensions_table(exten,context,priority,app, appdata) values ('$_POST[ex_number]','$context',3,'VoiceMail', '$_POST[VMail_Number]@home')"; $Playback = "insert into extensions_table (exten,context,priority,app, appdata) values('$_POST[ex_number]','$context',4,'Playback','vm- goodbye')"; $Hangup = "insert into extensions_table (exten,context,priority,app, appdata) values('$_POST[ex_number]','$context',5,'Hangup','')"; $VoiceMailMain = "insert into extensions_table(exten,context,priority, app,appdata) values('$_POST[VMail_Number]','$context',1, 'VoiceMailMain','$_POST[VMail_Number]@home')"; $Voicemail_user = "insert into voicemail_users (mailbox,context, password,fullname) values('$_POST[VMail_Number]','$context', '$_POST[VMail_Pass]','$_POST[ex_number]')"; if($_POST["pil_type"] == "Local"){
113
Apabila data berhasil diinsertkan ke tabel, maka akan ditampilkan pada
sebuah tabel yang juga berada pada antarmuka ini, tampilannya adalah sebagai
berikut :
if($row_search_ex < 1 ){ if($row_search_DialPlan < 1){ $mailbox = $_POST["ex_number"]."@".$context; Insertsip_buddies($_POST["ex_number"],$_POST["pil_type"], $context,$mailbox,$host,$_POST["callerID"], $_POST["secret"],$_POST["ex_number"],$insecure,$allow); $db_Ringing = mysql_query($Ringing) or die("Error Application Ringing Local"); $db_Dial_Local = mysql_query($Dial_Local) or die("Error Application Dial Local"); $db_Voicemail = mysql_query($VoiceMail) or die ("Error Application Voicemail Local"); $db_Playback = mysql_query($Playback) or die("Error Application Playback Local"); $db_Hangup = mysql_query($Hangup) or die ("Error Application Hangup Local"); $db_VoicemailMain = mysql_query($VoiceMailMain) or die ("Error Application VoicemailMain Local"); $db_Voicemail_user = mysql_query($Voicemail_user) or die ("Error voicemail users Local"); if($db_Ringing && $db_Dial_Local && $db_Voicemail && $db_Playback && $db_Hangup && $db_VoicemailMain && $db_Voicemail_user){ echo "<div style=\"color:#FF0000\">Extensions Number ".$_POST['ex_number']." berhasil di tambahkan !!! </div>"; } else{ echo "<div style=\"color:#FF0000\">Extensions Number ".$_POST['ex_number']." gagal di tambahkan !!! </div>"; } } elseif($row_search_DialPlan = 1){ echo "<div style=\"color:#FF0000\">Voicemail Number ".$_POST["VMail_Number"]." sudah ada !!! </div>"; } } elseif($row_search_ex = 1){ echo "<div style=\"color:#FF0000\">Telephone Number ".$_POST["ex_number"]." sudah di gunakan !!! </div>"; } } }?>
Gambar 4.10 Antarmuka Hasil Penambahan Extensions Line Type Local
114
Pada gambar 4.10, ditampilkan data hasil penambahan account Extensions
Type Local pada tabel Data Account Extensions Type Local. Melalui tabel ini,
administrator dapat mengubah atau menghapus data account tersebut. Proses
mengubah atau menghapus dilakukan dengan cara memilih salah satu record pada
link gambar edit ( ) atau delete ( ) yang berada pada kolom Action. Apabila
administrator akan mengedit data akan ditampilkan antarmuka Edit Extensions
Line Type Local, sedangkan apabila administrator akan menghapus data maka
akan ditampilkan halaman konfirmasi hapus, misalkan administrator akan
menghapus extensions 1000, maka tampilannya adalah sebagai berikut :
Pada gambar 4.11 diatas, ditampilkan konfirmasi untuk menghapus extensions
1000, apabila administrator yakin akan menghapus extensions yang dimaksud,
maka administrator dapat menekan tombol YA, maka data extensions tersebut
akan dihapus dari database. Sedangkan jika administrator tidak jadi menghapus
data extensions tersebut maka dapat memilih tombol TIDAK, maka akan kembali
Gambar 4.11 Antarmuka Konfirmasi Delete Extensions Line Type Local
115
ke antarmuka sebelumnya. Proses hapus data extensions terjadi pada tabel
sip_buddies, tabel extensions_table, dan tabel voicemail_users. Proses hapus data
account extensions dimulai dari proses mencari data yang dimaksud pada tiga
buah tabel tersebut, hal ini dilakukan oleh kode program sebagai berikut :
Setelah data account extensions ditemukan, maka akan dihapus dengan
menggunakan kode program sebagai berikut :
<?php $extensions = "Select name,callerID,mailbox from sip_buddies where name = '$_GET[Extensions]'"; $q_extensions = mysql_query($extensions); $data_extensions = mysql_fetch_array($q_extensions) or die("Select pada tabel sip_buddies gagal"); $voicemail = "Select mailbox,fullname,password from voicemail_users where fullname = '$_GET[Extensions]'"; $q_voicemail = mysql_query($voicemail) or die ('Select voicemail pada tabel voicemail_users gagal'); $ada_voicemail = mysql_num_rows($q_voicemail); $data_voicemail = mysql_fetch_array($q_voicemail); ?>
<?php if($_POST['btn_ya']){ if($q_extensions){ if($ada_voicemail >= 1){ $del_voicemail = "delete from voicemail_users where fullname = $_SESSION[Extensions]"; $q_del_voicemail = mysql_query($del_voicemail); $del_extensions = "delete from sip_buddies where name = '$_GET[Extensions]'"; $q_del_extensions = mysql_query($del_extensions); $del_VMailMain = "delete from extensions_table where exten = $data_voicemail[mailbox]"; $q_del_VMailMain = mysql_query($del_VMailMain); if ($q_del_extensions && $q_del_voicemail && $q_del_VMailMain){ $del_number = "delete from extensions_table where exten = '$_GET[Extensions]'"; $q_del_number = mysql_query($del_number) or die ("Delete DialPlan ".$_SESSION[Extensions]." gagal"); if($q_del_number){ Kode program untuk menampilkan pesan sukses hapus data account Extensions } else{ Kode program untuk menampilkan pesan gagal hapus data account Extensions } } ?>
116
h. Implementasi Antarmuka Edit Extensions Line Type Local
Halaman ini digunakan untuk proses edit data account extensions Type Local.
Pada Antarmuka ini menampilkan detail data account yang akan diedit oleh
administrator. Pada antarmuka gambar 4.12, diberikan contoh ketika
administrator akan mengedit data account extensions 1000. Administrator dapat
mengedit beberapa data antara lain :
1. Caller ID : fungsinya sama dengan Display Name.
2. Password : password untuk register client ke VoIP Server.
3. Dtmfmode : bagaimana cara extensions ini menangani signal DTMF,
nilai defaultnya adalah RFC 2833.
4. Canreinvite : mengaktifkan SIP re-invites, nilai defaultnya adalah yes.
5. NAT : pilih yes, apabila extensions berada dibelakang NAT. Nilai
defaultnya adalah no.
Gambar 4.12 Implementasi Antarmuka Edit Extensions Type Local
117
6. Codec : teknik kompresi ( codec ) yang digunakan oleh extensions
tersebut. Pilih codec dengan konsumsi bandwith rendah ( lihat tabel 2.2 ).
7. Voicemail Password : password untuk membuka voicemail box.
8. Time Before Send To Voicemail : waktu tunggu sebelum panggilan
masuk ke voicemail.
Setelah administrator selesai melakukan edit data, administrator dapat
menekan tombol save, maka akan terjadi proses update data pada tabel
sip_buddies, tabel extensions_table dan tabel voicemail_users. Kode programnya
sebagai berikut :
Setelah update data selesai maka akan menampilkan halaman informasi proses
update. Tampilannya adalah sebagai berikut :
<?php $up_extensions="update sip_buddies set callerID = '$_POST[callerID]', host = '$_POST[host]', secret = '$_POST[secret]', dtmfmode = '$_POST[dtmfmode]', canreinvite = '$_POST[canreinvite]',nat = '$_POST[nat]', allow = '$_POST[codec]' where name = '$_SESSION[Extensions]'"; $up_Voicemail = "update voicemail_users set password = '$_POST[VMail_Pass]' where fullname = '$_SESSION[Extensions]'"; $_POST["appdata"] ="SIP/$"."{EXTEN}"."|".$_POST["VMail_Time"]; $up_DialPlan = "update extensions_table set appdata = '$_POST[appdata]' where exten = '$_SESSION[Extensions]' and priority ='2' and app ='Dial'"; $db_upDialPlan = mysql_query($up_DialPlan) or die (mysql_error()); $db_upExtensions= mysql_query($up_extensions) or die (mysql_error()); $db_upVoicemail = mysql_query($up_Voicemail) or die (mysql_error()); if($db_upExtensions && $db_upVoicemail && $db_upDialPlan){ if(system($restart)){ Kode program untuk Menampilkan Pesan sukses update data } } else { Kode program untuk Menampilkan Pesan gagal update data } ?>
118
i. Implementasi Antarmuka Extensions Line Type Trunk
Halaman ini digunakan untuk proses penambahan account extensions Type
Trunk. Data account ini nantinya dapat digunakan oleh VoIP Server lain untuk
menjadi client dari VoIP Server yang sedang menggunakan aplikasi ini ( untuk
Gambar 4.13 Antarmuka Informasi Proses Edit Extensions Type Local
Gambar 4.14 Implementasi Antarmuka Extensions Line type Trunk
119
melakukan proses Trunking Server ). Pada antarmuka ini administrator dapat
menginputkan data antara lain :
1. Telephone Number : nomor atau username yang dapat digunakan oleh
VoIP server lain untuk register menjadi client dari VoIP server ini.
2. Password : password untuk register VoIP Server lain ke VoIP
server ini.
Setelah data Telephone Number dan password dimasukkan pada texfiled dan
tombol submit ditekan maka akan terjadi proses insert data ke tabel sip_buddies
dan tabel extensions_table. Sebelum data di-insert-kan terlebih dahulu dicek
apakah data sudah pernah pernah di-insert-kan sebelumnya pada tabel
sip_buddies. Pengecekan data dilakukan untuk menghindari duplikasi pada data
account. Kode program untuk mengecek data adalah sebagai berikut :
Setelah data tidak ditemukan, maka data Telephone Number dan password
akan di-insert-kan ke masing – masing tabel. Kode programnya adalah sebagai
berikut :
<?php $search_ex = "Select * from sip_buddies where name='$_POST[ex_number]' order by name"; $db_search_ex = mysql_query($search_ex); $row_search_ex = mysql_num_rows($db_search_ex); ?>
<?php if(isset($_POST["btn_addExtensions"])){ function Insertsip_buddies($ex_number,$status,$context,$mailbox, $host,$callerID,$secret,$username,$insecure,$allow){ $extensions = "insert into sip_buddies(name,status,context,mailbox, host,callerID,secret,username,insecure,allow) values('$ex_number', '$status','$context','$mailbox','$host','$callerID','$secret', '$username','$insecure','$allow')"; $db_extensions = mysql_query($extensions) or die ("Error insert sip_buddies"); } $Ringing = "insert into extensions_table(context,exten,priority,app, appdata) values ('$context','$_POST[ex_number]','1','Ringing','')";
120
Apabila penambahan data account Extensions Type Trunk tersebut telah
dilakukan, maka akan ditampilkan pada tabel yang juga berada pada halaman ini
juga, tampilannya adalah sebagai berikut :
Pada gambar 4.15, ditampilkan data account Extensions Type Trunk pada tabel
Data Account Extensions Type Trunk. Melalui tabel tersebut, administrator dapat
$dial_noVmail = "SIP/$"."{EXTEN}"; $Dial_Trunk = "insert into extensions_table(context,exten,priority, app,appdata) values ('$context','$_POST[ex_number]','2','Dial', '$dial_noVmail')"; $Hangup_Trunk = "insert into extensions_table (exten,context,priority, app,appdata) values('$_POST[ex_number]','$context',3,'Hangup','')"; if($_POST["pil_type"] == "Trunk"){ if($row_search_ex < 1 ){ $mailbox = "NULL"; $_POST["callerID"] =" "; Insertsip_buddies($_POST["ex_number"],$_POST["pil_type"],$context, $mailbox,$host,$_POST["callerID"],$_POST["secret"],$_POST["ex_number"],$insecure,$allow); $db_Ringing = mysql_query($Ringing) or die("Error Application Ringing Trunk"); $db_Dial_Trunk = mysql_query($Dial_Trunk) or die("Error Application Dial Trunk"); $db_Hangup_Trunk = mysql_query($Hangup_Trunk) or die("Error Application Hangup Trunk"); if($db_Ringing && $db_Dial_Trunk && $db_Hangup_Trunk){ echo "<div style=\"color:#FF0000\">Extensions Number ".$_POST['ex_number']."berhasil ditambahkan</div>"; } else{ echo "<div style=\"color:#FF0000\">Extensions Number ".$_POST['ex_number']."gagal di tambahkan !!! </div>"; } } elseif($row_search_ex = 1){ echo "<div style=\"color:#FF0000\">Telephone Number ".$_POST["ex_number"]." sudah di gunakan !!! </div>"; } } } ?>
Gambar 4.15 Antarmuka Hasil Penambahan Extensions Line Type Trunk
121
mengubah atau menghapus data tersebut dengan memilih salah satu record pada
link gambar edit ( ) atau delete ( ) pada kolom Action. Apabila
administrator akan melakukan edit data maka akan ditampilkan antarmuka Edit
Extensions Line Type Trunk, sedangkan apabila administrator akan menghapus
data maka akan ditampilkan halaman konfirmasi hapus, misalkan administrator
akan menghapus extensions 100, maka tampilannya adalah sebagai berikut :
Pada gambar 4.16 diatas, ditampilkan konfirmasi untuk menghapus account
extensions 100, apabila administrator yakin akan menghapus extensions yang
dimaksud, maka administrator dapat menekan tombol YA. maka data extensions
tersebut akan dihapus. Sedangkan jika administrator tidak jadi menghapus data
extensions tersebut maka dapat memilih tombol TIDAK, maka akan kembali ke
antarmuka Extensions Line. Proses hapus data terjadi pada tabel sip_buddies, dan
tabel extensions_table. Kode programnya adalah sebagai berikut :
Gambar 4.16 Antarmuka Konfirmasi Hapus Extensions Line Type Trunk
122
j. Implementasi Antarmuka Edit Extensions Line Type Trunk
Halaman ini digunakan untuk menampilkan detail data account extensions
Type Trunk yang akan diedit oleh administrator. Pada form ditampilkan data
extensions tersebut sesuai dengan nama form yang disediakan. Pada gambar 4.17
diberikan contoh apabila administrator akan mengedit extensions Trunk 100.
Melalui antarmuka pada gambar 4.17, administrator dapat mengedit beberapa
parameter antara lain : password,Dtmfmode, canreinvite, nat, dan codec. Fungsi
<?php $del_extensions = "delete from sip_buddies where name ='$_GET[Extensions]'"; $q_del_extensions = mysql_query($del_extensions); $del_number = "delete from extensions_table where exten = '$_GET[Extensions]'"; $q_del_number = mysql_query($del_number); ?>
Gambar 4.17 Implementasi Antarmuka Edit Extensions Type Trunk
123
dari masing – masing parameter tersebut sama dengan parameter yang digunakan
pada Extensions Line Type Local. Setelah administrator selesai melakukan edit
data extensions tersebut maka dapat menekan tombol Save, maka akan dilakukan
proses update data pada tabel sip_buddies. Kode programnya adalah sebagai
berikut :
k. Implementasi Antarmuka PABX Line
Halaman ini digunakan untuk menambah data account registrasi bagi VoIP
Gateway yang dapat digunakan untuk registrasi menjadi client dari VoIP Server.
Dengan adanya proses ini maka jaringan VoIP yang dioperasikan dapat
dihubungkan dengan jaringan PABX maupun jaringan telepon tradisional
<?php $up_extensions="update sip_buddies set callerID = '$_POST[callerID]', host = '$_POST[host]', secret = '$_POST[secret]', dtmfmode = '$_POST[dtmfmode]',canreinvite = '$_POST[canreinvite]', nat = '$_POST[nat]',allow = '$_POST[codec]' where name = '$_SESSION[Extensions]'"; $db_upExtensions= mysql_query($up_extensions) or die (mysql_error()); ?>
Gambar 4.18 Implementasi Antarmuka PABX Line
124
(PSTN). Data account yang diinputkan melalui antarmuka ini adalah sebagai
berikut :
1. PABX Name : sembarang nama yang digunakan untuk identitas
perangkat VoIP Gateway.
2. Display Name : nama atau nomor yang akan ditampilkan layar IP Phone
atau X-Lite saat extensions dari jaringan PABX menelepon ke extensions
pada jaringan VoIP.
3. Username : username yang dapat digunakan oleh VoIP gateway
untuk register ke VoIP Server.
4. Password : password yang digunakan oleh VoIP gateway untuk
register ke VoIP Server.
5. Dialing Prefix : nomor awal ( prefix ) yang di Dial, apabila extensions
dari jaringan VoIP akan melakukan panggilan ke extensions pada jaringan
PABX.
Pada saat administrator menekan tombol Submit, maka terjadi pengecekan
data account inputan administrator pada tabel sip_buddies, tabel extensions_table
dan tabel pabx_tables sebelum data tersebut di-insert-kan ke tabel- tabel tersebut,
hal ini dilakukan untuk mencegah terjadinya duplikasi data account register VoIP
Gateway. Proses pengecekan data dilakukan oleh kode program berikut :
125
Selanjutnya data inputan dari administrator akan di-insert-kan ke tabel
sip_buddies, tabel extensions_table dan tabel pabx_tables. Kode programnya
adalah sebagai berikut :
<?php $sip_pabx = "select * from sip_buddies where name ='$_POST[txt_userPABX]' order by name"; $db_sip_pabx = mysql_query($sip_pabx) or die('Error sip_pabx'); $ada_sip_pabx = mysql_num_rows($db_sip_pabx); $user_pabx = "select name,username,password,prefix from pabx_tables where username ='$_POST[txt_userPABX]' order by name"; $db_user_pabx = mysql_query($user_pabx); $ada_pabx = mysql_num_rows($db_user_pabx); $prefix_pabx = "select * from extensions_table where exten ='$dial_prefix' order by exten"; $db_prefix_pabx = mysql_query($prefix_pabx); $ada_prefix = mysql_num_rows($db_prefix_pabx); ?>
<?php $sip_pabx = "insert into sip_buddies(name,callerID,status,context, host,secret,username,insecure,allow) values('$username', '$callerID','PABX','$context','$host','$password','$username', 'very','$allow')"; $pabx_tables = "insert into pabx_tables(id,Name,callerid,username, password,prefix) values ('','$name','$callerID','$username', '$password','$dial_prefix')"; $Ringing = "insert into extensions_table(context,exten,priority,app, appdata) values('$context','$dial_prefix','1','Ringing','')"; $appdata_dial = "SIP/$"."{EXTEN}"."@$username"."|20.rt"; $Dial ="insert into extensions_table(context,exten,priority,app, appdata) values('$context','$dial_prefix','2','Dial', '$appdata_dial')"; $Hangup = "insert into extensions_table(context,exten,priority,app, appdata) values('$context','$dial_prefix','3','Hangup','')"; if(!empty($_POST["txt_userPABX"]) && !empty($_POST["txt_passPABX"]) && !empty($_POST["txt_prefixPABX"])){ if($ada_sip_pabx < 1 ){ if($ada_pabx < 1){ if($ada_prefix < 1){ $db_pabx_tables = mysql_query($pabx_tables) or die('Error pabx_tables'); $db_sip_pabx = mysql_query($sip_pabx) or die('Error sip_pabx'); $db_Ringing = mysql_query($Ringing) or die ('Error Ringing PABX'); $db_Dial = mysql_query($Dial) or die('Error Dial PABX'); $db_Hangup = mysql_query($Hangup) or die('Error Hangup PABX'); if($db_sip_pabx && $db_Ringing && $db_Dial && $db_Hangup){ Kode program untuk Menampilkan pesan insert data berhasil
126
Apabila data berhasil diinputkan, maka data tersebut akan ditampilkan dalam
sebuah tabel yang juga berada pada antarmuka ini, tampilannya adalah sebagai
berikut :
Gambar 4.19 Antarmuka Hasil Penambahan Account PABX Line
Pada gambar 4.19, ditampilkan data hasil penambahan PABX Line pada tabel
Data account PABX Line. Melalui tabel tersebut, administrator dapat mengubah
atau menghapus data account tersebut, hal ini dilakukan dengan cara memilih
salah satu record dari link gambar edit ( ) atau delete ( ) yang berada pada
kolom Action. Apabila administrator akan melakukan edit data maka akan
ditampilkan antarmuka Edit PABX Line, sedangkan apabila administrator akan
menghapus data maka akan ditampilkan halaman konfirmasi hapus, misalkan
administrator akan menghapus data PABX Line dengan username 8 , maka
tampilannya adalah sebagai berikut :
} else{ Kode program untuk Menampilkan pesan insert data gagal } } } ?>
127
Pada gambar 4.20 diatas, ditampilkan konfirmasi untuk menghapus data
account PABX dengan username 8, apabila administrator yakin akan menghapus
account yang dimaksud, maka administrator dapat menekan tombol YA, maka
data account PABX yang berada pada tabel sip_buddies, tabel extensions_table
dan tabel pabx_tables akan terhapus. Sedangkan jika administrator tidak jadi
menghapus data account PABX tersebut maka dapat memilih tombol TIDAK,
maka akan kembali ke antarmuka sebelumnya yaitu antarmuka PABX Line. Kode
program untuk menghapus data account PABX adalah sebagai berikut :
Gambar 4.20 Antarmuka Konfirmasi Hapus Data PABX Line
<?php $del_pabx = "delete from pabx_tables where username ='$_GET[user_pabx]'"; $db_del_pabx = mysql_query($del_pabx); $del_DialPlan = "delete from extensions_table where exten ='$_POST[prefix]'"; $db_del_DialPlan = mysql_query($del_DialPlan); $del_sip_pabx = "delete from sip_buddies where name = '$_GET[user_pabx]'"; $db_del_sip_pabx = mysql_query($del_sip_pabx); ?>
128
l. Implementasi Antarmuka Edit PABX Line
Halaman ini digunakan untuk menampilkan detail data account PABX yang
akan diedit oleh administrator. Pada masing – masing form ditampilkan detail
data account tersebut. Misalkan administrator akan mengedit data PABX Line
dengan nama PABX USD, maka tampilannya adalah sebagai berikut :
Pada gambar 4.21 diatas, ditampilkan detail konfigurasi dari account PABX
USD. Parameter yang dapat diubah antara lain : PABX Name, Display Name,
password, NAT ( apabila perangkat VoIP Gateway berada dibelakang NAT ), dan
codec ( teknik kompresi / codec yang digunakan oleh perangkat VoIP Gateway ).
Setelah administrator selesai melakukan edit data dan menekan tombol submit
maka akan dilakukan proses update data account PABX pada tabel sip_buddies,
dan tabel pabx_tables. Kode programnya adalah sebagai berikut :
Gambar 4.21 Implementasi Antarmuka Edit PABX Line
129
Setelah proses update data selesai maka akan ditampilkan informasi proses
update data tersebut, apakah berhasil atau gagal. Tampilannya adalah sebagai
berikut :
<?php $up_pabx = "update pabx_tables set callerID = '$_POST[txt_displayPABX]', name = '$_POST[txt_namePABX]', password = '$_POST[txt_passPABX]' where username ='$_POST[txt_userPABX]'"; $db_up_pabx = mysql_query($up_pabx) or die ('Update pabx_tables gagal'); $up_sip_pabx = "update sip_buddies set callerid = '$_POST[txt_displayPABX]', host ='$_POST[txt_hostPABX]',secret ='$_POST[txt_passPABX]', nat = '$_POST[nat]', allow ='$_POST[codec]' where name ='$_POST[txt_userPABX]'"; $db_up_sip_pabx = mysql_query($up_sip_pabx) or die ('Update sip_buddies gagal'); ?>
Gambar 4.22 Antarmuka Informasi Proses Edit PABX Line
130
m. Implementasi Antarmuka Trunking Server Line
Halaman ini digunakan untuk meregistrasikan VoIP Server yang sedang
menggunakan aplikasi ini menjadi client dari VoIP Server lain ( proses Trunking
Server ). Untuk tujuan ini maka begitu administrator membutuhkan sebuah
account Extensions Type Trunk dari VoIP server lain yang akan dijadikan
Trunking Server. Setelah administrator mendapatkan data account tersebut, maka
data tersebut dapat diinputkan melalui antarmuka ini. Data yang diinputkan
melalui antarmuka ini adalah sebagai berikut :
1. Trunking Name : sembarang nama yang dijadikan identitas dari proses
Trunking Server.
2. Username : data Telephone Number yang berasal dari Extensions
Type Trunk dari VoIP Server lain.
Gambar 4.23 Implementasi Antarmuka Trunking Server Line
131
3. Password : data password yang berasal dari data account
Extensions dari VoIP Server lain.
4. SIP Proxy : alamat IP dari VoIP Server yang akan dijadikan
Trunking Server.
5. Dialing Prefix : nomor awal ( prefix ) yang harus ditambahkan
untuk melakukan panggilan ke extensions dari VoIP Server yang dijadikan
Trunking Server. (dikenal sebagai kode area pada jaringan telepon PSTN).
Setelah administrator selesai menginputkan data account Trunking Server
pada masing – masing form, dan tombol submit ditekan maka akan terjadi proses
insert data ke tabel sip_buddies, tabel extensions_table dan tabel trunking_tables.
Selain insert data pada tabel, setiap kali melakukan proses trunking server
diperlukan konfigurasi pada file register.conf, dengan menambahkan baris
konfigurasi pada file tersebut dengan mengikuti format sebagai berikut :
Proses konfigurasi file register.conf dilakukan oleh kode program sebagai
berikut :
register=>username:password@sipproxy
<?php $file_register = $dir_asterisk."register.conf"; $register = "register=>".$_POST['txt_username'].":".$_POST['txt_password']. "@".$_POST['txt_domain']."\n"; system("sudo -u root chmod 777 /etc/asterisk/register.conf"); $filepointer = fopen($file_register, "a+"); $contents = fread($filepointer, filesize($file_register)); fputs($filepointer,$register); ?>
132
Setelah proses konfigurasi pada file register.conf dilakukan, proses
selanjutnya adalah insert data account trunking ke tabel – tabel yang digunakan.
Proses insert data ke tabel dilakukan oleh kode program sebagai berikut :
Setelah proses insert data, maka akan ditampilkan informasi proses insert
tersebut. Tampilannya adalah sebagai berikut :
<?php if(fputs){ $_POST["appdata_Dial"] = "SIP/$"."{".$_POST["txt_prefix"]."}$". "{EXTEN:".$_POST["pjg_prefix"]."}"."@".$_POST["txt_domain"]; $Ringing = "insert into extensions_table(context,exten, priority,app,appdata)values('$_POST[context]','$_POST[Number]', '1','Ringing','')"; $Dial = "insert into extensions_table(context,exten,priority, app,appdata) values('$_POST[context]','$_POST[Number]','2','Dial', '$_POST[appdata_Dial]')"; $Hangup = "insert into extensions_table(context,exten,priority,app, appdata) values('outbound-trunk','$_POST[Number]','3','Hangup','')"; $insert_trunking= "insert into trunking_tables (name,username, password,domain,prefix) values('$_POST[txt_namepeering]', '$_POST[txt_username]','$_POST[txt_password]','$_POST[txt_domain]', '$_POST[txt_prefix]')"; $sip_trunking = "insert into sip_buddies(name,status,context,host, secret,username,insecure,allow,fromuser,fromdomain) values('$_POST[txt_username]','$_POST[status]','$_POST[context]', '$_POST[txt_domain]','$_POST[txt_password]','$_POST[txt_username]', 'very','$allow','$_POST[txt_username]','$_POST[txt_domain]')"; $db_sip_trunking = mysql_query($sip_trunking); if($db_sip_trunking){ $db_insert_trunking = mysql_query($insert_trunking); $db_Ringing = mysql_query($Ringing); $db_Dial = mysql_query($Dial); $db_Hangup = mysql_query($Hangup); if($db_Ringing && $db_Dial && $db_Hangup){ if(system($restart)){ kode program untuk menampilkan pesan trunking server berhasil } else{ kode program untuk menampilkan pesan trunking server gagal } } else{ kode program untuk menampilkan pesan trunking server gagal } } ?>
133
Setelah data Trunking Server berhasil ditambah maka, data tersebut akan
ditampilkan pada sebuah tabel Data Account Trunking Server Line yang berada
pada antarmuka Antarmuka Trunking Server Line, tampilannya adalah sebagai
berikut :
Gambar 4.25 Antarmuka Hasil Penambahan Trunking Server Line
Pada gambar 4.25, ditampilkan data hasil penambahan Trunking Server Line
pada tabel Data Account Trunking Server Line. Melalui tabel ini, administrator
dapat mengubah atau menghapus data tersebut. Proses ini dapat dilakukan dengan
cara memilih salah satu record dari link gambar edit ( ) atau delete ( ) yang
berada pada kolom Action. Apabila administrator akan melakukan edit data maka
akan ditampilkan antarmuka Edit Trunking Server Line, sedangkan apabila
administrator akan menghapus data maka akan ditampilkan halaman konfirmasi
Gambar 4.24 Antarmuka Informasi Hasil Penambahan Trunking Server Line
134
hapus, misalkan administrator akan menghapus data Trunking Server dengan
WAN voiprakyat yang memiliki alamat IP 172.21.206.92, maka tampilannya
adalah sebagai berikut :
Pada gambar 4.26 diatas, ditampilkan konfirmasi untuk menghapus data
Trunking Server dengan VoIP Server WAN voiprakyat yang memiliki alamat IP
172.21.206.92, apabila administrator yakin akan menghapus data yang dimaksud,
maka administrator dapat menekan tombol YA, dan kemudian data Trunking
Server tersebut akan terhapus. Tetapi jika administrator tidak jadi menghapus data
Trunking Server tersebut maka dapat memilih tombol TIDAK, dan kemudian
akan kembali ke antarmuka sebelumnya yaitu antarmuka Trunking Server Line.
Pada proses hapus data Trunking Server terjadi dua proses yaitu pertama
proses menghapus data Trunking Server pada tabel sip_buddies, tabel
extensions_table, dan tabel trunking_tables, dan kedua proses menghapus baris
Gambar 4.26 Antarmuka Konfirmasi Hapus data Trunking Server Line
135
register pada file register.conf. Proses hapus data Trunking Server pada ketiga
buah tabel dilakukan oleh kode program sebagai berikut :
Sedangkan proses menghapus baris register pada file register.conf, dilakukan
oleh kode program sebagai berikut :
<?php $del_trunking = "delete from trunking_tables where username ='$_GET[username]'"; $db_del_trunking = mysql_query($del_trunking); $del_DialPlan = "delete from extensions_table where exten ='$_POST[prefix]'"; $db_del_DialPlan = mysql_query($del_DialPlan); $del_sip = "delete from sip_buddies where name = '$_GET[username]'"; $db_del_sip = mysql_query($del_sip); if($db_del_trunking && $db_del_DialPlan && $db_del_sip){ Kode program untuk menampilkan pesan sukses menghapus data Trunking Server } else{ Kode program untuk menampilkan pesan gagal menghapus data Trunking Server } ?> ?>
<?php $string = "register=>".$username.":".$password."@".$domain; system("chmod 777 /etc/asterisk/register.conf"); system("sed '/$string/d' /etc/asterisk/register.conf > /tmp/delpeers"); system("cp -f /tmp/delpeers /etc/asterisk/register.conf"); system("rm /tmp/delpeers"); ?>
136
n. Implementasi Antarmuka Edit Trunking Server Line
Halaman ini digunakan untuk menampilkan detail data Trunking Server yang
akan diedit oleh administrator. Pada form sudah tertampil detail data Trunking
Server sesuai dengan nama form yang tersedia. Pada gambar 4.27 diberikan
contoh ketika administrator akan mengedit data Trunking Server dengan WAN
voiprakyat. Pada antarmuka ini, administrator hanya diperbolehkan untuk
mengedit data Trunking Name, password, nat, codec dan SIP Proxy dari data
Trunking Server. Setelah selesai mengubah data, administrator dapat menekan
tombol submit, kemudian akan terjadi dua proses yaitu pertama mengupdate data
Trunking Server pada tabel sip_buddies, tabel extensions_table, dan tabel
trunking_tables. Proses kedua yaitu mengupdate baris register Trunking Server
pada file register.conf. Kode programnya adalah sebagai berikut :
<?php $string_del_peers = "register=>".$username.":".$password."@".$domain; system("chmod 777 /etc/asterisk/register.conf");
Gambar 4.27 Implementasi Antarmuka Edit Trunking Server Line
137
o. Implementasi Antarmuka Trunking Registration Status
system("sed '/$string_del_peers/d' /etc/asterisk/register.conf > /tmp/delpeers"); system("cp -f /tmp/delpeers /etc/asterisk/register.conf"); system("rm /tmp/delpeers"); $file_register = "/etc/asterisk/register.conf"; $string_up_peers = "register=>".$username.":".$password."@".$domain."\n\n"; $filepointer = fopen($file_register, "a+"); $contents = fread($filepointer, filesize($file_register)); fputs($filepointer,$string_up_peers); $up_peering = "Update trunking_tables set name ='$_POST[txt_namepeering]',password='$_POST[txt_password]', domain = '$_POST[txt_domain]',prefix = '$_POST[txt_prefix]' where username ='$_GET[username]'"; $db_up_peering = mysql_query($up_peering) or die("Error proses update trunking_tables"); $up_sip = "Update sip_buddies set host = '$_POST[txt_domain]', nat='$_POST[nat]',allow ='$_POST[codec]', secret ='$_POST[txt_password]' where name ='$_GET[username]'"; $db_up_sip = mysql_query($up_sip) or die ("Error proses update sip_buddies"); $up_extensions = "Update extensions_table set appData = '$_POST[appdata_Dial]' where exten = '$_POST[Number]' and app = 'Dial' "; $db_up_extensions = mysql_query($up_extensions) or die ("Error Update extensions"); ?>
Gambar 4.28 Implementasi Antarmuka Trunking Registration Status
138
Antarmuka pada gambar 4.28 digunakan untuk menampilkan informasi
mengenai status registrasi dari VoIP Server yang sedang menggunakan aplikasi
ini ke VoIP Server yang dijadikan Trunking Server. Pada gambar 4.27, diberikan
contoh status registrasi trunking dengan VoIP Server yang mempunyai alamat IP
172.21.206.92 ( WAN voiprakyat ) adalah Request Sent, hal ini berarti registrasi
VoIP Server ini sedang meminta ( request ) untuk melakukan Trunking dengan
VoIP server tersebut. Proses request ini merupakan proses pencocokan data
account Trunking Server dengan data account extensions yang berada pada VoIP
Server tujuan Trunking. Jika data yang dimaksudkan ditemukan, maka status
registrasi akan berubah menjadi Registered, hal ini berarti bahwa VoIP Server
yang sedang menggunakan aplikasi ini sudah teregister ke VoIP Server tersebut,
selanjutnya extensions dari VoIP Server ini dapat melakukan panggilan ke
extensions yang berada pada jaringan WAN voiprakyat. Proses untuk
menampilkan status registrasi Trunking Server ini merupakan proses membaca
menampilkan isi file show_registry yang terletak pada direktori /var/log/asterisk/.
Kode programnya adalah sebagai berikut :
<?php $sippeers = "/var/log/asterisk/show_registry"; $fp = fopen ( $sippeers,"r"); while ($data = fgetcsv ($fp, 1000, ",")) { $num = count($data); for ($c=0; $c<$num; $c++) { if($data[$c] == "nnection"){ } else if($data[$c] == "Host Username Refresh State"){ } else if ($data[$c] == "Verbosity is at least 3"){ } else{ echo "<tr> <td align=\"left\"> $data[$c]</td> </tr>"; } } ?>
139
p. Implementasi Antarmuka Call Detail Record
Antarmuka ini berfungsi untuk mencari, kemudian menampilkan data
informasi percakapan yang terjadi pada Asterisk VoIP Server. Pencarian dimulai
dengan memasukkan tanggal awal pencarian ( from ) dan tanggal akhir pencarian
( To ) melalui menu calendar yang ada disebelah textfiled masing – masing form.
Setelah itu tekan tombol submit. Jika data ditemukan maka akan ditampilkan pada
tabel Call Detail Record, selain itu juga administrator dapat menampilkan data
tersebut dalam format PDF dengan cara menekan icon gambar PDF ( ). Kode
program untuk mencari data call detail record pada dasarnya merupakan perintah
select pada tabel cdr. Kode programnya adalah sebagai berikut :
Gambar 4.29 Implementasi Antarmuka Call Detail Record
<?php $cdr_row = "Select * from cdr where calldate between '$_POST[startDate]' and '$_POST[endDate]' order by calldate limit $_POST[offset],$_POST[rowsPerPage]"; $db_cdr_row = mysql_query($cdr_row); ?>
140
q. Implementasi Antarmuka Change Password Administrator
Antarmuka ini digunakan untuk mengganti password administrator yang
sedang aktif login, administrator dapat memasukkan passwod lama ( old
password ), kemudian menggantinya dengan password baru ( new password )
pada form yang telah disediakan. Setelah administrator selesai memasukkan
kedua buah data tadi, maka administrator dapat menekan tombol submit, maka
akan terjadi proses update data password pada tabel admin. Kode programnya
adalah sebagai berikut :
Gambar 4.30 Implementasi Antarmuka Change Password Administrator
<?php $update = "update admin set user_password = md5('$_POST[new_pass]') where username = '$_POST[username]'"; if(mysql_query($update)){ echo "<div style=\"color:#FF0000\"> Data password $_SESSION[user] berhasil di edit </div>"; } else{ echo "<div style=\"color:#FF0000\"> Data password $_SESSION[user] gagal di edit </div>"; } ?>
141
4.4. Implementasi File Antarmuka dan File Action
Pada bagian ini akan diberikan daftar implementasi file Antarmuka yang
digunakan untuk menampilkan halaman antarmuka dan file Action yang
digunakan untuk menangani proses inputan yang terjadi dari masing – masing
menu pada aplikasi manajemen Asterisk VoIP Server ini.
Tabel 4.1 Daftar File Antarmuka dan File Action
Antarmuka File Antarmuka File Action Login Administrator index.php ceklogin.php
Phonebook phonebook.php phonebook.php
Index Configuration index.php -
Asterisk File asterisk_conf.php -
Edit Asterisk File edit_asterisk_conf.php func_asterisk_conf.php
Service Asterisk services.php services.php
Extensions Line Type Local add_extensions.php func_extensions.php
Extensions Line Type Trunk add_extensions.php func_extensions.php
Edit Extensions Line Type Local edit_extensions.php func_extensions.php
Edit Extensions Line Type Trunk edit_extensions.php func_extensions.php
PABX Line add_pabx.php func_pabx.php
Edit PABX Line edit_pabx.php func_pabx.php
Trunking Server Line add_peeringserver.php func_peering.php
Edit Trunking Server Line edit_peeringserver.php func_peering.php
Trunking Registrasion Status status_peers.php -
Call Detail Record call_detail_record.php func_viewCDR.php
Change Password Administrator edit_administrator.php edit_administrator.php
4.5. Implementasi Skenario Pengujian Sistem
Pada bagian ini akan membahas mengenai bagaimana implementasi
skenario jaringan yang telah dirancang pada bab sebelumnya. Pada penelitian ini
menggunakan tiga macam skenario jaringan, antara lain :
a. Skenario Komunikasi VoIP menggunakan sebuah VoIP Server
Bentuk skenario jaringan ini merupakan bentuk skenario paling sederhana
dari komunikasi VoIP menggunakan Asterisk. Pada skenario ini menggunakan
142
beberapa perangkat antara lain : sebuah komputer yang berfungsi sebagai VoIP
Server, sebuah perangkat IP Phone dan sebuah komputer lagi yang berfungsi
sebagai client dari VoIP Server. Masing – masing perangkat tersebut saling
terhubung dalam sebuah jaringan yang memiliki network id 192.168.0.1/24.
Detail konfigurasi masing – masing kartu jaringan dapat dilihat dari gambar
berikut :
Gambar 4.31 Skenario Komunikasi VoIP Menggunakan Sebuah VoIP Server
Pada bentuk skenario jaringan ini, administrator dengan menggunakan web
browser ( misalkan dari komputer client ) dapat mengakses aplikasi manajemen
asterisk berbasis web dengan alamat URL http://192.168.0.1/asterisk/,
setelah administrator berhasil login, maka administrator dapat menggunakan
menu Extensions Line yang disediakan oleh aplikasi ini untuk mengkonfigurasi
asterisk. Dikarenakan pada skenario ini menggunakan dua buah client, maka
pada skenario ini hanya membutuhkan dua buah data account register
Extensions yang nantinya dapat digunakan oleh perangkat client untuk login
menjadi client dari VoIP server. Contoh proses penambahan data melalui menu
143
Extensions Line dapat dilihat pada gambar 4.9. Data account register yang
ditambahkan adalah sebagai berikut :
Tabel 4.2 Data Register Client Skenario Jaringan I
Perangkat Telepon VoIP ( client ) Data Registrasi PC ( X-Lite ) IP Phone
Type Extensions Local Local
Telephone Number 1000 1001
Display Name 1000 1001
Password abc1000 abc1001
Voicemail Number 21000 21001
Voicemail Password 2345 2356
Time Before Send To Voicemail 10 10
Pada data registrasi pada tabel 4.1, berarti bahwa X-Lite akan mempunyai
nomor telepon 1000 dan IP Phone akan mempunyai nomor telepon 1001.
Setelah data registrasi pada tabel 4.1 ditambahkan, maka akan ditampilkan pada
tabel Data account Extensions Local dengan tampilan sebagai berikut :
Gambar 4.32 Tabel Data Account Extensions Local Skenario Jaringan I
b. Skenario Komunikasi VoIP PC to Phone dan Phone to PC
Bentuk skenario jaringan ini dibuat untuk menggambarkan bagaimana jika
jaringan VoIP digabungkan dengan jaringan PABX. Sehingga masing – masing
client dari kedua jaringan tersebut dapat saling berkomunikasi. Perangkat yang
dibutuhkan pada implementasi skenario ini antara lain : sebuah komputer yang
berfungsi sebagai VoIP server, sebuah perangkat VoIP Gateway yang
digunakan sebagai media untuk menghubungkan jaringan VoIP dengan jaringan
144
PABX, sebuah IP Phone dan sebuah komputer yang berfungsi sebagai client
dari jaringan VoIP, serta dua buah pesawat telepon analog. Selain itu juga
dibutuhkan sebuah line extensions PABX ( CO-Line ) yang dihubungkan
melalui port FXO pada perangkat VoIP Gateway, dengan adanya line ini maka
jaringan VoIP dapat terhubung dengan jaringan PABX. Detail konfigurasi untuk
skenario jaringan ini dapat digambarkan sebagai berikut :
Gambar 4.33 Skenario Komunikasi VoIP PC to Phone dan Phone to PC
Pada komputer VoIP server dipasangkan dua buah kartu jaringan yang
masing – masing memiliki alamat IP 192.168.0.1/24 untuk eth0, dan
172.21.206.80/24 untuk eth1. Pada eth0 terhubung dengan jaringan yang
memiliki network id 192.168.0.1/24 jaringan ini digunakan untuk mewakili
bentuk jaringan VoIP, dengan menggunakan network id ini maka komputer
VoIP server dapat terhubung dengan perangkat komputer dan IP Phone yang
merupakan client dari VoIP server tersebut. Sedangkan pada kartu eth1
terhubung dengan perangkat VoIP Gateway yang memiliki alamat IP
145
172.21.206.81 dalam sebuah jaringan yang memiliki network id
172.21.206.80/24.
Pada bentuk jaringan yang kedua ini, administrator membutuhkan menu
Extensions Line dan PABX / PSTN Line, untuk mengkonfigurasi asterisk
dengan menggunakan aplikasi manajemen asterisk berbasis web. Konfigurasi
dilakukan dengan cara menambahkan data register bagi perangkat IP Phone,
komputer ( X-Lite ), Telepon Analog (A) melalui menu Extensions Line ( contoh
proses penambahan data lihat gambar 4.9 ), dan menambahkan data account
PABX bagi perangkat VoIP Gateway melalui menu PABX / PSTN Line ( untuk
contoh proses penambahan data lihat gambar 4.18 ). Administrator dapat
melakukan hal tersebut dengan menggunakan web browser untuk mengakses
aplikasi manajemen asterisk berbasis web dengan mengetikkan URL http://IP-
AddressVoIPServer/ asterisk/ pada web browser. Data account register yang
ditambahkan adalah sebagai berikut:
1. Data account register yang ditambahkan melalui menu Extensions Line
Tabel 4.3 Data Registrasi Client Skenario Jaringan II
Client Data Registrasi
PC ( X-Lite ) IP Phone Telepon Analog (A)
Type Extensions Local Local Local
Telephone Number 1000 1001 1002
Display Name 1000 1001 1002
Password abc1000 abc1001 abc1002
Voicemail Number 21000 21001 21002
Voicemail Password 123456 23456 12345
Time Before Send To Voicemail 10 10 10
Pada data registrasi pada tabel 4.2, berarti bahwa X-Lite akan mempunyai
nomor telepon 1000, IP Phone akan mempunyai nomor telepon 1001 dan
146
Telepon Analog A akan mempunyai nomor telepon 1002. Setelah data
registrasi pada tabel 4.2 ditambahkan, maka akan ditampilkan pada tabel Data
account Extensions Local dengan tampilan sebagai berikut :
Gambar 4.34 Tabel Data Account Extensions Local Skenario Jaringan II
2. Data account register PABX yang ditambahkan melalui menu PABX /
PSTN Line
Tabel 4.4 Data Registrasi Perangkat VoIP Gateway Skenario Jaringan II
Perangkat VoIP Gateway Data Registrasi VoIP Gateway
PABX Name PABX USD
Display Name PABX USD
Username 8
Password abc8
Dialing Prefix 8
Dengan data account register PABX dari tabel 4.3 perangkat VoIP
Gateway dapat meregistrasikan port FXO yang digunakan untuk menjadi client
dari VoIP Server sehingga dengan demikian jaringan PABX dapat berhubungan
dengan jaringan VoIP. Dengan data nomor Dialing Prefix maka, apabila ada
client dari jaringan VoIP akan mendial extensions pada jaringan PABX
menggunakan format nomor Dialing Prefix + nomor extensions. Setelah data
registrasi pada tabel 4.3 ditambahkan, maka akan ditampilkan pada tabel Data
Account PABX Line, dengan tampilan sebagai berikut :
147
Gambar 4.35 Tabel Data Account PABX Line Skenario Jaringan II
c. Skenario Komunikasi VoIP menggunakan dua buah VoIP Server ( proses
Trunking Server )
Pada skenario jaringan ini, merupakan gambaran penggabungan dua buah
VoIP Server atau yang lebih dikenal dengan istilah Trunking Server. Untuk
dapat menjalankan Trunking, maka sebuah VoIP server harus registrasi menjadi
client dari VoIP Server yang akan dijadikan Trunking Server. Dengan adanya
proses ini, maka nantinya client dari masing – masing VoIP Server dapat
melakukan komunikasi lintas server. Detail konfigurasi kartu jaringan yang
digunakan adalah sebagai berikut :
Gambar 4.36 Skenario Komunikasi VoIP menggunakan dua buah VoIP Server
( proses Trunking Server )
148
Pada skenario jaringan gambar 4.36, menggunakan dua buah komputer yang
berfungsi sebagai VoIP server, konfigurasinya adalah sebagai berikut :
Komputer VoIP Server I
VoIP Server ini memiliki client berupa sebuah IP Phone dan sebuah
komputer ( A ). Pada komputer VoIP server ini terpasang dua buah kartu
jaringan yang memilili alamat IP :
a. Kartu jaringan pertama ( eth0 ) : 192.168.0.1/24, terhubung dengan
sebuah jaringan yang memiliki network id 192.168.0.1/24. Dengan
menggunakan kartu jaringan ini maka VoIP server I dapat terhubung
dengan IP Phone, dan komputer A.
b. Kartu jaringan kedua ( eth1 ) :172.21.206.80/24,terhubung dengan
jaringan sebuah yang memiliki network id 172.21.206.80/24. kartu
jaringan ini terhubung dengan VoIP Server II.
Komputer VoIP Server II
VoIP Server ini memiliki client berupa sebuah komputer ( B ). Pada
komputer VoIP server ini terpasang dua buah kartu jaringan yang memilili
alamat IP :
a. Kartu jaringan pertama ( eth0 ) : 172.21.206.81/24, terhubung dengan
sebuah jaringan yang memiliki network id 172.21.206.80/24.Kartu
jaringan ini terhubung dengan VoIP Server I.
b. Kartu jaringan kedua ( eth1 ) :130.130.130.130/24, terhubung dengan
sebuah jaringan yang memiliki network id 130.130.130.0/24. Kartu
jaringan ini terhubung dengan komputer B.
149
Setelah semua perangkat terhubung dengan baik, maka administrator dapat
mengakses aplikasi manajemen Asterisk berbasis web menggunakan web
browser dengan mengetikkan URL http://IP-Address-VoIPServerI/asterisk/ atau
http://IP-Address-VoIPServerII/asterisk/ tergantung dari VoIP server mana
yang akan dikonfigurasi terlebih dahulu. Untuk skenario jaringan ini
Administrator membutuhkan menu Extensions Line dan menu Trunking Server
Line. Melalui menu - menu tersebut administrator dapat menambahkan data
account register untuk mengkonfigurasi asterisk. Misalkan saja data account
register yang ditambahkan adalah sebagai berikut :
1. Data account register yang ditambahkan melalui menu Extensions Line
Untuk contoh proses penambahan data melalui menu Extensions Line pada
aplikasi manajemen asterisk berbasis web dapat dilihat pada gambar 4.9. Data
yang ditambahkan adalah sebagai berikut :
a. Pada VoIP Server I
Tabel 4.5 Data Registrasi Client Pada VoIP Server I Skenario Jaringan III
Client Data Registrasi PC ( X-Lite ) IP Phone VoIP Server II
Type Extensions Local Local Trunk
Telephone Number 1000 1001 100
Display Name 1000 1001 -
Password abc1000 abc1001 abc100
Voicemail Number 21000 21001 -
Voicemail Password 1234 1234 -
Time Before Send To Voicemail 10 10 -
Pada data registrasi pada tabel 4.4, berarti bahwa X-Lite akan
mempunyai nomor telepon 1000, IP Phone akan mempunyai nomor telepon
1001. Sedangkan untuk data registrasi dengan Type Extensions = Trunk akan
digunakan oleh VoIP Server II untuk registrasi menjadi client dari VoIP
150
Server I ( proses Trunking Server ). Setelah data registrasi dari tabel 4.4
ditambahkan akan ditampilkan pada tabel dengan tampilan sebagai berikut :
Gambar 4.37 Tabel Data Account Extensions Local dan Trunk
Pada VoIP Server I Skenario Jaringan III
b. Pada VoIP Server II
Tabel 4.6 Data Registrasi Client Pada VoIP Server II Skenario Jaringan III
Client Data Registrasi PC ( X-Lite ) VoIP Server I
Type Extensions Local Trunk
Telephone Number 2000 200
Display Name 2000 -
Password abc2000 abc200
Voicemail Number 22000 -
Voicemail Password 1234 -
Time Before Send To Voicemail 10 -
Pada data registrasi pada tabel 4.5, berarti bahwa X-Lite akan mempunyai
nomor telepon 2000. Sedangkan untuk data registrasi dengan Type Extensions
= Trunk akan digunakan oleh VoIP Server I untuk registrasi menjadi client
dari VoIP Server II ( proses Trunking Server ). Setelah data registrasi dari
tabel 4.5 ditambahkan akan ditampilkan pada tabel dengan tampilan sebagai
berikut :
151
Gambar 4.38 Tabel Data Account Extensions Local dan Trunk
Pada VoIP Server II Skenario Jaringan III
2. Data account register yang ditambahkan melalui menu Trunking Server
Line
Untuk contoh proses penambahan data melalui menu Trunking Server Line
pada aplikasi manajemen asterisk berbasis web dapat dilihat pada gambar 4.23.
Data yang ditambahkan adalah sebagai berikut :
a. Pada VoIP Server I
Tabel 4.7 Data Registrasi Trunking VoIP Server I ke VoIP Server II
Trunking Server Data Registrasi VoIP Server II
Trunking Name Trunking Dengan VoIP Server II
Username 200
Password abc200
Sip Proxy 172.21.206.81
Dialing Prefix 021
Dengan data yang ada pada tabel 4.6, berarti bahwa apabila ada client
( extensions ) dari VoIP Server I akan melakukan Dial ke client (extensions)
VoIP Server II format nomornya adalah nomor Dialing prefix + nomor
telepon client yang dituju. Setelah data pada tabel 4.6 ditambahkan maka
akan ditampilkan pada tabel data account Trunking Server Line dengan
tampilan sebagai berikut :
152
Gambar 4.39 Tabel Data Account Trunking Server Line
Pada VoIP Server I Skenario Jaringan III
b. Pada VoIP Server II
Tabel 4.8 Data Registrasi Trunking VoIP Server II ke VoIP Server I
Trunking Server Data Registrasi VoIP Server I
Trunking Name Trunking Dengan VoIP Server I
Username 100
Password abc100
Sip Proxy 172.21.206.80
Dialing Prefix 022
Dengan data yang ada pada tabel 4.7, berarti bahwa apabila ada client
(extensions) dari VoIP Server II akan melakukan Dial ke client (extensions)
VoIP Server I format nomornya adalah nomor Dialing prefix + nomor
telepon client yang dituju. Setelah data pada tabel 4.7 ditambahkan maka
akan ditampilkan pada tabel data account Trunking Server Line dengan
tampilan sebagai berikut :
Gambar 4.40 Tabel Data Account Trunking Server Line Pada
VoIP Server II Skenario Jaringan III
153
4.6 Implementasi IP Phone sebagai client Asterisk VoIP Server
Pada hardware IP Phone dilengkapi dengan aplikasi berbasis web yang
dapat digunakan untuk mengkonfigurasi IP Phone tersebut. Untuk membuka
aplikasi konfigurasi berbasis web pada IP Phone ini membutuhkan web browser
( Internet Explorer versi 6.0 ) dengan mengetikkan alamat URL
http://AlamatIP-IPPhone/ pada web browser. Langkah yang perlu dilakukan
untuk konfigurasi IPPhone sebagai client dari Asterisk adalah sebagai berikut :
Konfigurasikan alamat IP IP Phone
Registrasikan IP Phone ke Asterisk dengan menggunakan data konfigurasi
dari menu Extensions Line Type Local.
Sedangkan konfigurasi yang lainnya dapat mengikuti nilai default yang
sudah ada pada masing – masing menu konfigurasi. Langkah – langkah
konfigurasi IP Phone adalah sebagai berikut :
a. Tampilan awal aplikasi berbasis web pada IP Phone. Masukkan Default
username = root tanpa password , kemudian tekan tombol Login.
Gambar 4.41 Halaman Login Admin pada Perangkat IP Phone
154
b. Setelah berhasil Login, maka akan muncul halaman ini. Halaman ini
digunakan untuk menampilkan informasi alamat IP, Default Gateway,dan
DNS Server yang digunakan oleh IP Phone tersebut.
c. Untuk mengkonfigurasi Alamat IP, dilakukan pada menu Network
Configuration. Jika akan menggunakan IP dinamis, cukup dengan
mencentang checkbox Dynamic IP ( menu 1 ), tetapi jika akan
menggunakan IP statis isikan alamat IP, Netmask, Default Router
(Gateway) dan DNS server sesuai dengan textfield masing – masing.
Setelah selesai tekan tombol DONE. Tampilannya adalah sebagai berikut :
Gambar 4.42 Halaman Informasi Perangkat IP Phone
155
d. Untuk meregistrasikan IP Phone sebagai client dari Asterisk dilakukan
pada menu SIP Configuration,. Ada beberapa parameter konfigurasi yang
disesuaikan dengan data konfigurasi yang diperoleh dari VoIP server
( menu Extensions Line Type Local ), antara lain :
Username : diisi dengan data Telephone Number
Telephone Number : diisi dengan data Telephone Number
Password : diisi dengan password
Proxy Server Address : diisi dengan alamat IP dari VoIP Server.
SIP Domain Name : diisi dengan alamat IP dari VoIP Server.
Untuk parameter konfigurasi yang lain tidak perlu dirubah ( mengikuti
nilai default yang ada pada IP Phone ). Setelah selesai tekan tombol
DONE. Tampilannya adalah sebagai berikut :
Gambar 4.43 Menu Network Configuration pada Perangkat IP Phone
156
e. Setelah selesai meregistrasikan IP Phone ke Asterisk, maka IP Phone akan
menampilkan status registrasi tersebut pada layar. Tampilannya adalah
sebagai berikut :
f. Jika registrasi berhasil maka pada layar IP Phone akan menampilkan
nomor extensions, tetapi jika registrasi gagal maka pada layar akan
Gambar 4.45 Tampilan Proses Registering IP Phone
Gambar 4.44 Menu SIP Configuration pada Perangkat IP Phone
157
menampilkan pesan error. Tampilan apabila registrasi berhasil adalah
sebagai berikut :
Pada gambar 4.46, berarti bahwa IP Phone memiliki nomor Telepon 1001.
4.7 Implementasi X-Lite sebagai client Asterisk VoIP Server
X-Lite merupakan sebuah program aplikasi yang diinstalkan pada komputer.
Dengan menggunakan program ini ( X-Lite ), maka sebuah komputer dengan
tambahan headset dan mikrofon dapat berfungsi seperti pesawat telepon biasa.
Sebelum dapat digunakan, pastikan bahwa komputer dengan X-Lite yang sudah
terinstall terhubung dalam jaringan dengan Asterisk VoIP Server. Setelah itu
registrasikan X-Lite menjadi client dari VoIP server. Langkah – langkah
konfigurasinya adalah sebagai berikut :
a. Tampilan awal X-Lite 3.0 ketika pertama kali dijalankan adalah sebagai
berikut :
Gambar 4.46 Tampilan Status IP Phone siap digunakan
158
b. Setelah tampilan X-Lite muncul, maka klik kanan tampilan X-Lite tersebut,
untuk membuka jendela menu konfigurasi. Kemudian pilih SIP Account
Settings untuk memasukkan user account.
Gambar 4.47 Tampilan Awal Program X-Lite
Gambar 4.48 Jendela Menu Konfigurasi pada X-Lite
159
c. Setelah muncul menu SIP Account Setting, maka tekan tombol Add.
d. Langkah selanjutnya adalah mengisikan data Telephone Number pada
kolom username dan Display Name, Password pada kolom password,
bagian domain diisi dengan Alamat IP dari VoIP server. Setelah itu tekan
tombol OK, untuk mengakhiri proses input data pada X-Lite.
Gambar 4.49 Menu SIP Account Pada X-Lite
Gambar 4.50 Konfigurasi SIP Account Pada X-Lite
160
e. Setelah tombol OK pada langkah d ditekan, maka akan muncul tampilan
dibawah ini, setelah tampilan ini muncul, tekan tombol Close untuk
mengakhiri proses registrasi X-Lite pada Asterisk. Pastikan account
dalam keadaan enable sebelum menekan tombol Close.
f. Setelah langkah a s/d langkah e dilakukan, maka X-Lite akan menampilkan
status proses registeringnya ke VoIP server. Tampilan adalah sebagai
berikut :
Gambar 4.51 Aktifasi X-Lite
Gambar 4.52 Tampilan Proses Registering Pada X-Lite
161
g. Apabila registrasi X-Lite berhasil maka akan menampilkan data username
yang sekaligus akan menjadi identitas ( nomor telepon ) dari X-Lite,
kemudian X-Lite siap digunakan untuk berkomunikasi, tetapi jika
registrasi gagal X-Lite akan menampilkan pesan error dan X-Lite tidak
dapat digunakan untuk berkomunikasi. Tampilan registrasi X-Lite yang
siap digunakan untuk berkomunikasi VoIP adalah sebagai berikut :
4.8 Implementasi VoIP Gateway ( ITG ) sebagai media penghubung antara
jaringan VoIP dengan jaringan PABX
Pada penelitian ini ITG digunakan untuk menghubungkan antara jaringan
VoIP dengan jaringan PABX dan pesawat telepon biasa. Untuk dapat terhubung
dengan jaringan PABX maka membutuhkan sebuah line extensions ( CO-Line )
yang dipasangkan pada port FXO, sedangkan agar terhubung ke pesawat telepon
biasa maka kabel dari pesawat telepon tersebut langsung dipasangkan pada port
FXS. Pada ITG yang digunakan dilengkapi dengan aplikasi berbasis web yang
Gambar 4.53 Tampilan X-Lite Siap Digunakan
162
dapat digunakan untuk mengkonfigurasi ITG tersebut, untuk membuka aplikasi
ketikkan URL http://AlamatIP-ITG/ pada web browser. Pada dasarnya
langkah yang perlu dilakukan untuk konfigurasi ITG ini adalah sebagai berikut :
1. Konfigurasi Alamat IP dari ITG.
2. Konfigurasi account ITG untuk port FXO dengan menggunakan menu
PABX / PSTN Line pada aplikasi manajemen Asterisk berbasis web.
3. Konfigurasi account ITG untuk port FXS dengan menggunakan menu
Extensions Line Type Local pada aplikasi manajemen Asterisk berbasis
web.
4. Registrasikan perangkat ITG ini menjadi client Asterisk menggunakan
data konfigurasi yang sesuai dari langkah 2 dan 3 diatas.
Sedangkan konfigurasi yang lainnya dapat mengikuti nilai default yang
sudah ada pada ITG tersebut. Detail langkah – langkah konfigurasinya adalah
sebagai berikut :
a. Tampilan Awal aplikasi berbasis web pada ITG, masukkan default
username = admin, dan default password = 123.
Gambar 4.54 Tampilan Login Admin Perangkat ITG
163
b. Setelah berhasil login, maka akan muncul tampilan seperti gambar
dibawah ini :
c. Konfigurasi alamat IP dapat dilakukan pada menu Advanced Setup ->
WAN Setting. Sesuaikan alamat IP dari ITG dengan alamat IP yang
digunakan pada jaringan VoIP. Tampilannya adalah sebagai berikut :
Gambar 4.55 Tampilan awal menu Konfigurasi ITG
Gambar 4.56 Menu WAN Setting pada Perangkat ITG
164
Setelah selesai menyesuaikan alamat IP dengan alamat IP pada jaringan
tekan tombol Apply, kemudian pilih Save Configuration dan Reboot
( untuk merestart perangkat ITG ) sehingga konfigurasi Alamat IP dapat
dikenali.
d. Pasangkan kabel pada masing – masing port, sesuai dengan fungsinya.
Untuk kabel dengan port RJ11 digunakan pada port FXS ( sambungankan
langsung ke pesawat telepon analog ) dan port FXO ( sambungkan
langsung ke sebuah CO-Line / line extensions pada jaringan PABX ).
Sedangkan untuk kabel dengan port RJ45 digunakan pada port WAN
( digunakan untuk sambungan ke jaringan VoIP ). Gambarnya adalah
sebagai berikut :
e. Setelah masing – masing kabel terpasang, maka langkah selanjutnya
adalah meregistrasikan ITG tersebut ke Asterisk VoIP Server sesuai
dengan jumlah dan berada pada nomor berapakah port FXS dan port FXO
Gambar 4.57 Pemasangan Kabel Pada ITG
Ujung Kabel RJ11 ini dihubungkan langsung ke pesawat telepon analog
Ujung Kabel RJ11 ini dihubungkan langsung ke CO-Line ( Line extensions ) jaringan PABX.
Kabel LAN untuk koneksi ITG ke jaringan VoIP
165
tersebut digunakan ( contohnya pada gambar 4.56, port FXS dan port
FXO yang digunakan berada pada nomor 3 dan nomor 4 ). Registrasi
dilakukan melalui menu Advanced Setup -> VoIP Basic. Pada menu ini
ada beberapa parameter konfigurasi yang harus diisikan antara lain :
1. Pada bagian VoIP Protocol Setting : pilih SIP, kemudian tekan
tombol Select.
2. Pada bagian Port Number / password setting :
2.1 Untuk port FXO ( Line 2 atau Line 4 tergantung dari Line mana yang
sudah terpasang kabel RJ11 ), isikan :
Number : diisi dengan username
Account : diisi dengan username
Password : diisi dengan password
2.2 Untuk port FXS ( Line 1 atau Line 3, tergantung dari Line mana yang
sudah terpasang kabel RJ11 ), isikan :
Number : diisi dengan Telephone Number
Account : diisi dengan Telephone Number
Password : diisi dengan password
Pada langkah 1 dan 2, tampilannya adalah sebagai berikut :
Gambar 4.58 Tampilan Form Input Data Registrasi Pada ITG
166
3. Pada bagian SIP Proxy Setting :
Domain / Realm : diisi dengan Alamat IP Asterisk VoIP Server.
SIP Proxy Server : diisi dengan Alamat IP Asterisk VoIP Server
dan nomor port ( default port = 5060 ).
SIP Authentication : pilih Enabled.
Pada bagian SIP Proxy Setting memiliki tampilan sebagai berikut :
Setelah semua data diinputkan sesuai dengan fungsinya masing – masing,
maka pilih Save Configuration, kemudian pilih Reboot untuk merestart
perangkat ITG agar konfigurasi yang dilakukan dapat dikenali. Tampilan
pada menu VoIP Basic apabila perangkat ITG berhasil meregistrasikan
diri dengan baik ke Asterisk VoIP Server adalah sebagai berikut :
Gambar 4.60 Tampilan Status registrasi Perangkat ITG ke Asterisk VoIP Server
Gambar 4.59 Setting Data SIP Proxy Pada ITG
BAB V
ANALISA HASIL IMPLEMENTASI
5.1 Hasil Uji Coba Progam
Dari hasil implementasi program aplikasi manajemen Asterisk berbasis web
pada masing – masing skenario jaringan yang digunakan, secara umum progam
dapat berjalan dengan baik dan dapat memberikan hasil yang diharapkan yaitu
komunikasi VoIP antar perangkat client yang digunakan. Komunikasi VoIP disini
ditekankan pada komunikasi suara seperti layaknya komunikasi suara pada
jaringan telepon biasa ( PSTN ).
Progam aplikasi manajemen Asterisk berbasis web ini diharapkan dapat
membantu administrator untuk mengkonfigurasi Asterisk, khususnya pada proses
konfigurasi otentikasi user, konfigurasi pengaturan DialPlan, dan konfigurasi
pengaturan voicemail system secara berbasis GUI ( Graphical User Interface )
serta dapat diakses jarak jauh ( remote ).
5.2 Analisa Konfigurasi Asterisk sebagai VoIP Server Berbasis Protokol SIP
Konfigurasi Asterisk sebagai sebuah VoIP Server pada dasarnya dibagi
menjadi dua proses antara lain :
1. Proses Konfigurasi Otentikasi User ( dengan username dan password ),
proses ini kemudian dapat disebut sebagai proses pendaftaran nomor
telepon pada Asterisk VoIP Server.
2. Proses Konfigurasi Pengaturan DialPlan.
167
168
Selain kedua konfigurasi diatas, proses konfigurasi pada Asterisk diperlukan
hanya apabila akan menambahkan features tertentu pada Asterisk. Salah satu
features yang dapat ditambahkan adalah voicemail system. Proses konfigurasi
pada Asterisk ini dapat dilakukan secara berbasis text ( text based ) dan juga dapat
dilakukan dengan menggunakan teknik Asterisk Realtime. Konfigurasi Asterisk
berbasis text dilakukan dengan cara mengetikkan ( mengedit ) parameter pada file
konfigurasi mengikuti pola aturan tertentu, sedangkan konfigurasi Asterisk
berbasis teknik Asterisk Realtime dilakukan dengan cara mengentrykan data pada
tabel yang ada di database, dimana struktur tabel yang dibuat merupakan struktur
tabel standard yang dapat dikenali oleh Asterisk.
File konfigurasi maupun tabel konfigurasi yang digunakan pada masing –
masing cara konfigurasi tersebut bergantung dari jenis protokol VoIP yang
digunakan ( khususnya file atau tabel untuk konfigurasi otentikasi user ). Pada
penelitian ini menggunakan protokol SIP, maka dari itu file dan tabel konfigurasi
yang digunakan dapat dilihat pada tabel sebagai berikut :
Tabel 5.1 Kebutuhan Konfigurasi Asterisk Berdasarkan Cara Konfigurasi
Cara Konfigurasi Asterisk
Text Based Asterisk Realtime Keterangan
File sip.conf Tabel sip_buddies Untuk proses Konfigurasi otentikasi user
File extensions.conf Tabel extensions_table Untuk Proses Konfigurasi Pengaturan DialPlan
File voicemail.conf Tabel voicemail_users Untuk Konfigurasi voicemail system
Dari tabel 5.1 diatas dapat dilihat bahwa apabila akan mengkonfigurasi
Asterisk berbasis protokol SIP dengan cara berbasis text maka membutuhkan file
sip.conf, file extensions.conf, serta file voicemail.conf, sedangkan untuk cara
169
konfigurasi Asterisk dengan menggunakan teknik Asterisk Realtime membutuhkan
tabel sip_buddies, tabel extensions_table dan tabel voicemail_users. Berikut
perbandingan konfigurasi Asterisk berbasis text dengan konfigurasi Asterisk
berbasis Asterisk Realtime yang dilakukan pada file atau tabel konfigurasi
berdasarkan dari tabel 5.1 :
1. Konfigurasi pada file sip.conf dan tabel sip_buddies
Konfigurasi yang dilakukan pada file sip.conf misalkan saja sebagai berikut :
[ 1000 ]
type = friend
host = dynamic
username = 1000
secret = abc
context = home
callerid = 1000 <”albert”>
Gambar 5.1 Konfigurasi otentikasi user pada file sip.conf
Konfigurasi pada gambar 5.1 dapat disimpan dalam sebuah record ( baris )
pada tabel sip_buddies menjadi sebagai berikut :
Tabel 5.2 Konfigurasi otentikasi user pada tabel sip_buddies
name type host username secret context callerid 1000 friend dynamic 1000 abc home albert
Dari hasil perbandingan antara konfigurasi pada file sip.conf dengan
konfigurasi pada tabel sip_buddies, tampak bahwa setiap parameter yang
digunakan pada file sip.conf digunakan sebagai nama field ( kolom ) pada tabel
sip_buddies dan setiap pendefinisian user pada file sip.conf dapat disimpan
menjadi sebuah record pada tabel sip_buddies ( seperti tampak pada tabel 5.1 ).
170
2. Konfigurasi pada file extensions.conf dan tabel extensions_table
Konfigurasi yang dilakukan pada file extensions.conf berhubungan
konfigurasi yang dilakukan pada file sip.conf. Misalkan saja dari konfigurasi
pada gambar 5.1, dilakukan konfigurasi pada file extensions.conf sebagai
berikut:
[ home ]
exten => 1000,1,Ringing
exten => 1000,2,Dial(SIP/${EXTEN}|20)
exten => 1000,3,VoiceMail(2100@home)
exten => 1000,4,PlayBack(vm-goodbye)
exten => 1000,5,Hangup
exten => 2100,1,VoiceMailMain(2200@home)
Gambar 5.2 Konfigurasi DialPlan pada file extensions.conf
Hubungan dari konfigurasi file extensions.conf dengan konfigurasi file
sip.conf terletak pada bagian context = home pada file sip.conf harus sama
dengan [ home ] pada file extensions.conf, setiap baris pada konfigurasi
gambar 5.2 akan disimpan dalam record – record dalam tabel extensions_table,
maka akan menjadi sebagai berikut :
Tabel 5.3 Konfigurasi DialPlan pada Tabel extensions_table
context exten priority app Appdata home 1000 1 Ringing
home 1000 2 Dial SIP/${EXTEN}|20
home 1000 3 Voicemail 2100@home
home 1000 4 Playback Vm-goodbye
home 1000 5 Hangup
home 2100 1 VoiceMailMain 2200@home
Dari hasil perbandingan konfigurasi pada file extensions.conf dengan
konfigurasi pada tabel extensions_table, tampak bahwa setiap baris konfigurasi
171
DialPlan pada file extensions.conf disimpan dalam sebuah record pada tabel
extensions_table. Seperti tampak pada gambar 5.2, ada 5 ( lima ) baris
konfigurasi pada file extensions.conf, maka dalam tabel extensions_table
konfigurasi tersebut disimpan menjadi 5 ( lima ) buah record.
3. Konfigurasi pada file voicemail.conf dan tabel voicemail_users
Konfigurasi yang dilakukan pada file voicemail.conf, misalkan saja sebagai
berikut :
[ home ]
2100 => 12345,1000,[email protected]
Gambar 5.3 Konfigurasi voicemailbox pada file voicemail.conf
Konfigurasi pada gambar 5.3, dapat disimpan dalam sebuah record pada
tabel voicemail_users menjadi sebagai berikut :
Tabel 5.4 Konfigurasi Voicemail pada Tabel voicemail_users
context mailbox password fullname Email home 2100 12345 1000 [email protected]
Dari hasil perbandingan pada konfigurasi file voicemail.conf dengan
konfigurasi yang dilakukan pada tabel voicemail_users, tampak bahwa
voicemail user yang didefinisikan pada file voicemail.conf dapat disimpan dalam
sebuah record dalam tabel voicemail_users.
172
5.3 Kelebihan dan Kekurangan Program
Program aplikasi yang dihasilkan ini memiliki kelebihan dan kekurangan.
Kelebihan dan kekurangan aplikasi manajemen Asterisk berbasis web adalah
sebagai berikut :
5.3.1 Kelebihan Program
Kelebihan yang dimiliki program adalah sebagai berikut :
1. Web didesain dengan tampilan yang user friendly sehingga memberikan
kemudahan bagi pengguna ( administrator ) untuk melakukan
konfigurasi Asterisk berbasis web, khususnya untuk proses otentikasi
user, pengaturan DialPlan dan pengaturan voicemail system.
2. Proses konfigurasi pengaturan DialPlan dan pengaturan voicemail
system terjadi otomatis bersamaan dengan proses konfigurasi otentikasi
user.
3. Program aplikasi manajemen Asterisk berbasis web yang dibuat
menyediakan fasilitas untuk mengakses file konfigurasi Asterisk lainnya,
sehingga administrator dapat menambahkan features lain pada Asterisk
secara manual dengan cara mengedit file – file konfigurasi tersebut.
4. Program aplikasi manajemen Asterisk berbasis web yang dibuat
menggunakan software open source yang gratis.
173
5.3.2 Kekurangan Program
Kekurangan yang dimiliki program adalah sebagai berikut :
1. Program aplikasi manajemen Asterisk berbasis web yang dibuat sangat
sederhana, karena hanya menyediakan beberapa konfigurasi features
Asterisk saja.
2. Program aplikasi manajemen Asterisk berbasis web ini kurang fleksibel,
karena hanya dapat digunakan untuk konfigurasi Asterisk berbasis
protokol SIP ( Session Initiation Protocol ) saja.
BAB VI
PENUTUP
Pada bagian akhir penulisan ini akan dicantumkan beberapa kesimpulan dan
saran mengenai hal – hal yang terkait dengan pembuatan aplikasi manajemen
asterisk VoIP server berbasis web sebagai sarana program bantu untuk melakukan
konfigurasi dan manajemen pada Asterisk VoIP Server.
6.1 Kesimpulan
Berdasarkan hasil analisis, desain dan implementasi konfigurasi Asterisk
dalam penelitian ini dapat disimpulkan bahwa :
1. Setting konfigurasi Asterisk berbasis protokol SIP dapat diterapkan
dengan baik dengan menggunakan teknik Asterisk Realtime, khususnya
pada proses otentikasi user ( dengan username dan password ), proses
pengaturan DialPlan, dan pengaturan DialPlan.
2. Teknologi berbasis web dapat diterapkan dengan baik untuk membuat
sebuah program aplikasi manajemen Asterisk berbasis GUI ( Graphical
User Interface ) serta dapat diakses jarak jauh ( remote ).
174
175
6.2 Saran
Saran yang diberikan penulis untuk pengembangan program aplikasi lebih
lanjut adalah sebagai berikut :
1. Penambahan fasilitas konfigurasi Asterisk untuk protokol selain SIP,
misalkan saja konfigurasi untuk protokol IAX2, protokol H.323.
Sehingga aplikasi akan menjadi lebih fleksibel dengan dukungan
konfigurasi beberapa protokol VoIP.
2. Menyediakan konfigurasi Asterisk untuk features – features Asterisk
yang lainnya, misalkan saja untuk setting video call.
DAFTAR PUSTAKA
Tharom, Tabratas, Buku Pintar Internet Teknis dan Bisnis VoIP. Jakarta : PT
Media Elex Komputindo Kelompok Gramedia, Anggota IKAPI, 2002.
W. Purbo, Onno, VoIP Cikal Bakal ” Telkom Rakyat ”. Jakarta : PT Prima
Infosarana Media Kelompok Gramedia, 2007.
Daftar alamat web site yang dijadikan sumber penulisan :
http://www.asterisk.orgSumber download software yang diperlukan untuk membangun VoIP Server dengan menggunakan Asterisk http://developer.voiprakyat.or.idForum tanya jawab seputar troubleshooting tentang VoIP http://www.voiprakyat.or.id/?inc=files&file=materi-voip-fundamental.pdfFile yang berisi tentang tutorial instalasi Asterisk dari Anton Rahardja http://www.forumphp.web.idMemperdalam bahasa pemrograman PHP http://www.voip-info.orgMemperdalam teknik konfigurasi Asterisk
LAMPIRAN
LAMPIRAN 1
INSTALASI ASTERISK VoIP SERVER
Seseorang ( pengguna ) yang akan membangun sebuah jaringan VoIP
menggunakan Asterisk sebagai VoIP Server, minimal harus memiliki kemampuan
dasar sebagai berikut :
1. Mengerti dasar menggunakan Sistem Operasi Linux, seperti menginstal
Sistem Operasi Linux, dapat menjalankan beberapa perintah dasar
Linux, dapat membaca manual dan menjalankan perintah dasar
berdasarkan manual, dapat melakukan edit file dengan editor seperti
mcedit, vi, atau editor yang lainnya.
2. Mengerti dasar membangun jaringan komputer, seperti bagaimana
mengkonfigurasi dan mengatur IP address, menghubungkan beberapa
komputer dalam sebuah jaringan agar dapat berkomunikasi dengan baik.
3. Mengerti dan dapat menggunakan perangkat hardware phone
( contohnya IP Phone ) maupun softphone ( contohnya x-lite ).
Untuk menginstal Asterisk sebagai VoIP Server pada sistem operasi Linux,
diperlukan beberapa aplikasi Linux beserta depedency nya, yaitu antara lain :
1. C Compiler ( gcc )
2. make
3. bison
4. ncurses-devel
5. openssl-devel
6. zlib-devel
LAMPIRAN 2
Langkah – langkah untuk menginstal Asterisk VoIP Server pada sistem operasi
Linux adalah sebagai berikut :
1. Instalasi asterisk
Sebelum diinstal, maka Asterisk perlu diextract terlebih dahulu dengan
menggunakan perintah :
Setelah dilakukan proses extract, maka selanjutnya dilakukan proses
instalasi dengan menggunakan perintah berikut secara berurutan :
2. Instalasi asterisk-sounds
Sebelum diinstal, maka asterisk-sounds perlu diextract terlebih dahulu
dengan menggunakan perintah :
Setelah dilakukan proses extract, maka selanjutnya dilakukan proses
instalasi dengan menggunakan perintah berikut secara berurutan :
3. Instalasi asterisk-addons
Sebelum diinstal, maka asterisk-addons perlu diextract terlebih dahulu
dengan menggunakan perintah :
# tar -zxvf asterisk-1.2.14.tar.gz
# cd asterisk-1.2.14 # make # make install # make samples
# tar -zxvf asterisk-sounds-1.2.1.tar.gz
# cd asterisk-sounds-1.2.1 # make # make install
# tar -zxvf asterisk-addons-1.2.5.tar.gz
LAMPIRAN 3
Setelah dilakukan proses extract, maka selanjutnya dilakukan proses
instalasi dengan menggunakan perintah berikut secara berurutan :
Setelah langkah 1 s/d langkah 3 dilakukan, maka selanjutnya adalah
menjalankan service asterisk dengan menggunakan perintah sebagai berikut :
Kemudian setelah service asterisk dalam posisi running ( start ), maka
selanjutnya lakukan pengecekan module mysql ( berasal dari asterisk-addons )
apakah sudah berhasil diinstal atau belum dengan menggunakan perintah sebagai
berikut :
Jika module mysql sudah berhasil diinstal, maka akan ditampilkan 3 ( tiga )
buah module yaitu res_config_mysql.so, cdr_addons_mysql.so, dan
app_addon_sql_mysql.so.
#/etc/init.d/asterisk start
Starting asterisk: [ OK ]
#asterisk –rx ”show modules like mysql ”
res_config_mysql.so
cdr_addon_mysql.so
app_addon_sql_mysql.so
# cd asterisk-addons-1.2.5 # make # make install
LAMPIRAN 4
INSTALASI APLIKASI MANAJEMEN ASTERISK VoIP SERVER
BERBASIS WEB
Sebelum dapat menjalankan program aplikasi manajemen Asterisk VoIP
Server, ada beberapa komponen yang dibutuhkan antara lain :
1. Httpd ( atau Apache )
2. MySQL-Server
3. MySQL-devel
4. PHP
5. PHP-MySQL
Komponen tersebut diatas, dapat ditambahkan melalui opsi – opsi pada saat
kita melakukan proses instalasi Sistem Operasi Linux.
Sebelum melakukan proses instalasi aplikasi manajemen asterisk ini, pastikan
bahwa web server, dan database server ( MySQL ) sudah dalam keadaan aktif.
Langkah – langkah untuk menginstal aplikasi manajemen Asterisk ini, adalah
sebagai berikut :
1. Copy-kan seluruh file pada direktori /conf ke direktori /etc/asterisk
Perintahnya :
2. Buat file dengan nama show_registry pada direktori /var/spool/asterisk
dan set permissionnya dengan nilai 777
Perintahnya :
# cp /conf/*.conf /etc/asterisk/
# cd /var/spool/asterisk # touch show_registry # chmod 777 show_registry
LAMPIRAN 5
3. Konfigurasikan crontab,dengan perintah sebagai berikut :
Kemudian tambahkan baris berikut :
4. Buat sebuah database dengan nama voip, kemudian jalankan file
database.sql yang berada pada folder /asterisk/database.
5. Copy-kan folder asterisk ke Document Root dari web Server.
Kemudian setelah langkah 1 s/d langkah 5 dilakukan maka aplikasi
manajemen Asterisk VoIP Server dapat dijalankan dengan menggunakan web
browser dengan mengetikkan alamat URL : http://alamat-ip-VoIP-server/asterisk,
kemudian masukkan username dan password default yaitu username = admin dan
password = admin.
# crontab -e
# * * * * * root asterisk -rx "sip show registry">/var/lib/asterisk/show_registry
LAMPIRAN 6
MANUAL APLIKASI MANAJEMEN ASTERISK VoIP SERVER
BERBASIS WEB
1. PHONEBOOK
Halaman ini berisi informasi tentang nomor – nomor extensions, nomor prefix
untuk Dial ke jaringan PABX, dan nomor prefix untuk Dial ke Trunking Server.
Pada halaman ini juga terdapat fasilitas untuk mencari nomor – nomor extensions
yang ada di VoIP Server tersebut.
2. LOGIN ADMINISTRATOR
Isikan username dan password default yang telah disediakan yaitu username =
admin, dan password = admin, kemudian tekan tombol Login.
Isi dengan nomor extensions yang akan dicari, kemudian tekan tombol search
Informasi nomor prefix Trunking Server
Informasi nomor prefix PABX
LAMPIRAN 7
Apabila berhasil login, maka akan tampil halaman sebagai berikut :
3. MENU ASTERISK FILE
Menu ini digunakan untuk menampilkan isi file yang berada pada direktori
/etc/asterisk, yang merupakan direktori konfigurasi asterisk pada sistem operasi
linux.
Menu yang disediakan oleh aplikasi manajemen Asterisk berbasis web
Klik nama file untuk mengedit isi file
LAMPIRAN 8
Apabila nama file yang akan di edit sudah diklik, maka akan tampil halaman
sebagai berikut :
4. MENU SERVICE ASTERISK
Menu ini digunakan untuk menampilkan status Service Asterisk, apakah
running ( siap beroperasi ) atau sedang stopped ( tidak dapat beroperasi ).
Ketikkan editan yang akan dilakukan pada textarea, kemudian tekan tombol Save
Status Service Asterisk sedang running
Tekan tombol salah satu Start, Restart atau Stop untuk menjalankan, merestart atau menghentikan Service Asterisk
LAMPIRAN 9
5. MENU EXTENSIONS LINE
5.1 MENU EXTENSIONS LINE TYPE LOCAL
Menu Extensions Line Type Local digunakan untuk menambahkan data
registrasi Extensions yang berada satu jaringan dengan VoIP Server,
5.2 MENU EXTENSIONS LINE TYPE TRUNK
Menu Extensions Line Type Trunk nantinya digunakan oleh VoIP Server lain
untuk registrasi menjadi client dari VoIP Server yang sedang menggunakan
aplikasi ini ( proses Trunking Server ).
Pilih Type Extensions Local
Setelah semua textfield diisi, kemudian tekan tombol Submit
Pilih Type Extensions Trunk
Setelah semua textfield diisi, kemudian tekan tombol Submit
LAMPIRAN 10
6. MENU PABX / PSTN LINE
Menu ini digunakan untuk menambah data account registrasi bagi perangkat
VoIP Gateway sehingga dapat digunakan untuk registrasi menjadi client dari
VoIP Server. Dengan adanya proses ini maka jaringan VoIP yang dioperasikan
dapat dihubungkan dengan jaringan PABX maupun jaringan telepon tradisional
(PSTN).
7. MENU TRUNKING SERVER LINE
Menu ini digunakan untuk meregistrasikan VoIP Server yang sedang
menggunakan aplikasi ini menjadi client dari VoIP Server lain ( proses Trunking
Server ). Untuk tujuan ini maka begitu administrator membutuhkan sebuah
account Extensions Type Trunk dari VoIP server lain yang akan dijadikan
Trunking Server.
Isikan dengan karakter nama
Isikan dengan Angka (min 1 digit)
Setelah selesai, tekan tombol submit
LAMPIRAN 11
7.1 REGISTRATION STATUS
Setelah sebuah VoIP Server melakukan Trunking dengan VoIP Server lainnya,
maka harus dicek status registrasi dari VoIP Server yang melakukan Trunking
tersebut. Halaman ini dapat ditampilkan dengan cara mengklik link [ Registration
Status ] pada menu Trunking Server Line.
Dari gambar diatas, terlihat bahwa status registrasi Trunking ke VoIP Server
172.21.206 adalah Request Sent, ini berarti bahwa VoIP Server ini sedang
melakukan request untuk Trunking dengan VoIP Server dengan alamat IP
172.21.206.
Isi dengan sembarang karakter nama
Isi dengan telephone number dan password dari extensions Type Trunk
Alamat IP VoIP Server tujuan Trunking Isikan dengan Angka ( min 1
digit ) Setelah selesai tekan tombol Submit
Status registrasi harus Registered
LAMPIRAN 12
8. MENU CALL DETAIL RECORD
Menu ini digunakan untuk mencari, kemudian menampilkan data Call History
( Call Detail Record ).
9. MENU CHANGE PASSWORD ADMINISTRATOR
Menu ini digunakan untuk mengganti password admin yang sedang aktif
login.
Isikan textfield From dan To dengan melalui tanggal pada Date Selector, kemudian tekan tombol Search
Klik ini untuk menampilkan date selector
Date Selector
Klik untuk menghapus data Call Detail Record
Klik untuk menampilkan data Call Detail Record dalam format PDF
Isi dengan password lama
Isi dengan password baru kemudian tekan tombol submit
Setelah selesai tekan tombol Submit