BAB 3 PERANCANGAN SISTEM 3.1 Sistem SIP-GSM Pada skripsi ini akan dibuat sebuah sistem VoIP beserta konfigurasinya antara SIP dengan GSM Gateway. Sistem yang dibuat memodelkan dua buah kantor di perusahaan yang secara fisik terpisah. Pada masing-masing kantor tersebut terdapat SIP PBX dalam bentuk software yaitu Asterisk. SIP-PBX berfungsi untuk mengatur komunikasi suara yang terdapat pada setiap kantor layaknya PBX tradisional. User agent yang digunakan dapat berupa softphone dan hardphone. Jika ingin menggunakan softphone maka cukup melakukan instalasi softphone yang ingin digunakan ke komputer yang dilengkapi oleh microphone dan loudspeaker. Jika menggunakan hardphone seperti IP Phone dapat langsung menghubungkannya ke jaringan komputer yang tersedia. Masing-masing user agent harus dikonfigurasi terlebih dahulu agar dapat terdaftar ke SIP-PBX. Selain itu agar user agent dikenal oleh SIP-PBX maka pada SIPPBX yang berupa Asterisk perlu disediakan nomor untuk digunakan oleh user agent. Penyediaan nomor pada SIP-PBX dapat dilakukan pada file sip.conf. Setelah menyediakan nomor perlu dilakukan pengaturan juga pada SIP-PBX agar SIP-PBX mangetahui kemana panggilan diteruskan jika ada user agent yang melakukan panggilan. Untuk menghubungkan antara sistem SIP dengan GSM diperlukan sebuah media gateway. Adapun media gateway yang digunakan pada skripsi ini berupa GSM gateway. 65 66 Perancangan sistem dimaksudkan agar user agent pada kantor yang satu dapat berkomunikasi dengan kantor yang lain tanpa biaya (karena menggunakan jaringan internet) atau menelepon ke jaringan GSM dengan biaya yang lebih murah. Hal ini dapat terjadi karena pada setiap perusahaan terdapat SIP PBX yang dapat mengatur komunikasi antar user agent yang tersedia. Masing-masing SIP-PBX harus mendaftarkan dirinya pada SIP-PBX lainnya agar dapat dikenal, sehingga SIP-PBX dapat meneruskan panggilan dari user agent yang terletak pada perusahaan A kepada user agent yang terletak pada perusahaan B. Pada saat user agent di perusahaan A ingin menghubungi user agent di perusahaan B maka panggilan akan melewati SIP PBX di perusahaan A lalu masuk ke SIP PBX perusahaan B, setelah itu panggilan diteruskan ke user agent perusahaan B, sehingga komunikasi interlokal ini dapat dilakukan dengan gratis selama jalur internet tersedia. Jika user agent dari perusahaan A ingin menghubungi GSM lokal di perusahaan B maka jalur komunikasi yang akan terjadi menyerupai contoh di atas, bedanya untuk masuk ke GSM lokal di perusahaan B harus melalui media gateway yang ada di perusahaan B, sehingga komunikasi interlokal ini dapat dilakukan dengan biaya lokal dan dibayar oleh kantor di perusahaan B. 67 Gambar 3.1 Sistem SIP dengan GSM gateway 68 3.2 Diagram alir Sistem Gambar 3.2 Diagram alir Sistem SIP - GSM Gambar 3.2 merupakan diagram alir dari sistem SIP – GSM secara keseluruhan. Pada sistem ini user dapat melakukan komunikasi antar sesama jaringan lokal, jaringan lokal ke PSTN dan GSM network, GSM network ke jaringan lokal. Komunikasi antar jaringan lokal dapat dilakukan dengan cara langsung men-dial nomor extension. Di tiaptiap kantor memiliki marga extension masing-masing, untuk kantor Pusat, extension nya diawali dengan angka 1, sementara di kantor Cabang extension - nya diawali dengan angka 3, hal ini dimaksudkan agar memudahkan dalam pemanggilan sehingga lebih 69 menjadi lebih teratur. Komunikasi jaringan lokal ke GSM/ PSTN dilakukan dengan cara User harus men-dial nomor yang akan dituju dan sebelumnya diawali dengan nomornomor rahasia agar tidak semua pihak bisa menggunakan akses untuk melakukan panggilan ke GSM/ PSTN. Hal ini dilakukan untuk mencegah terjadinya komunikasi yang dilakukan oleh pihak yang tidak berkepentingan, tapi ada beberapa extension yang benar-benar tidak diberi akses untuk menghubungi jaringan GSM/ PSTN meskipun sudah men-dial nomor yang dituju diawali dengan nomor-nomor rahasia. Komunikasi dari GSM/ PSTN ke jaringan lokal dilakukan dengan men-dial nomor GSM kantor, penelepon akan langsung terhubung dengan IVR yang akan memerintahkan untuk mendial extension yang dituju, ivr akan didengarkan dengan waktu tertentu selama belum ada penekanan extension tujuan, jika waktu yang disediakan habis maka panggilan akan langsung dihubungkan dengan extension operator. Fitur-fitur yang tersedia pada sistem ini antara lain adalah call transfer, call parking, voice mail, IVR dan conference call. 3.3 Rancangan Perangkat Keras Adapun perangkat keras yang digunakan dalam sistem SIP PBX dalam skripsi ini mencakup : komputer yang difungsikan sebagai server, SIP user agent, Hub/Switch, Router, GSM gateway dan kabel UTP. 3.3.1 Komputer sebagai server Spesifikasi komputer yang digunakan sebagai server dalam perancangan ini adalah: 70 Tabel 3.1 Spesifikasi server Komponen Server 1 Server 2 Processor Pentium 4 @ 2 GHz Pentium 4 @ 1.8 GHz Memory 256 MB 256 MB Kedua server di atas mampu menangani kebutuhan komunikasi pada small office dengan jumlah pengguna yang diasumsikan tidak lebih dari 20 user. Network Interface Card dibutuhkan untuk menghubungkan komputer server dengan jaringan komputer. 3.3.2 SIP User agent Adapun user agent yang akan digunakan dalam sistem ini ada 2 macam, yaitu dalam bentuk perangkat keras (hardphone) dan perangkat lunak (softphone). Perangkat keras (hardphone) yang digunakan dalam sistem adalah IP Phone. IP Phone adalah sebuah telepon yang memiliki alamat IP. IP Phone yang digunakan pada sistem ini harus mendukung protokol SIP, memiliki koneksi Ethernet dan dapat dikonfigurasi agar dapat berkomunikasi dengan server. Softphone yang digunakan X-Lite, untuk itu perlu dilakukan instalasi XLite terlebih dahulu pada komputer ataupun laptop yang akan menjadi user agent. Pengaturan yang dilakukan pada user agent dalam bentuk hardphone ataupun softphone meliputi pengaturan alamat ip, subnet mask, domain, gateway, SIP server, username dan password pada masing – masing IP Phone yang akan 71 digunakan. Pengaturan username dan password yang digunakan harus sesuai dengan pengaturan yang terdapat dalam file sip.conf agar dapat terdaftar di server yang telah disediakan. 3.3.3 Hub dan Switch Pada skripsi ini perancangan sistemnya menggunakan hub dan switch yang akan digunakan untuk menghubungkan semua komponen sistem dalam satu jaringan. Hub digunakan karena mengirimkan data secara broadcast sehingga memudahkan sistem untuk dianalisa. Pada implementasi sistem lebih baik menggunakan switch karena memiliki nilai throughput lebih tinggi. Saat ini, hub sudah banyak ditinggalkan dan diganti dengan switch karena hub mempunyai kecepatan transfer data yang lebih lambat daripada switch. Konfigurasi ataupun pengaturan khusus tidak diperlukan dalam menggunakan Hub dan Switch. 3.3.4 Router Router adalah sebuah alat jaringan komputer yang mengirimkan paket data melalui sebuah jaringan atau internet menuju tujuannya, melalui sebuah proses yang dikenal sebagai routing. Router berfungsi untuk menghubungkan network yang satu dengan yang lain dan memilih jalur yang terbaik untuk mengirimkan paket data. Router mengirimkan paket data berdasarkan IP address. Pada sistem ini, router dimaksudkan untuk memodelkan dua buah perusahaan yang berbeda. Pengaturan dilakukan agar kedua router dapat meneruskan data dari satu jaringan ke jaringan lainnya. 72 3.3.5 GSM Gateway GSM gateway yang dipilih untuk perancangan adalah SoundWin V100 yang memiliki 4 buah port, yang terdiri dari port phone (FXS), port line (FXO), port WAN dan port untuk power. Selain itu, juga terdapat sebuah slot untuk GSM card dan tombol reset. Pengaturan parameter FXS pada GSM gateway dapat dilakukan melalui web browser dengan memasukkan alamat ip GSM gateway yang ada, untuk melakukan konfigurasi user diharuskan untuk melakukan proses login terlebih dahulu. GSM Gateway yang digunakan pada perancangan skripsi mendukung beberapa codec yang ada, diantaranya G.711(Alaw /μ-law), G.729 AB, G.723 (6.3 Kbps / 5.3Kbps). 3.4 Pemilihan Perangkat Lunak Perangkat lunak yang dapat digunakan dalam sistem ini antara lain: Asterisk, trixbox, AsteriskWin32, Axon, FreeSwitch, MiniServer, sebagai SIP-PBX. Tabel 3.2 Perbandingan SIP – IP PBX SIP- Asterisk AsteriskWin32 Axon FreeSwitch MiniSIPServer TrixBox PBX 1.4.22 Platform Linux Windows Window Linux Windows Linux Source Open Open Closed Closed Closed Closed Cost Free Free Free Free $49 Free 73 Pada penelitian ini, digunakan SIP server Asterisk 1.4.22 dengan platform Linux. Alasan penggunaan tersebut karena fitur pada platform Linux lebih lengkap daripada platform pada Windows. Selain perangkat lunak yang telah disebutkan diatas, terdapat juga perangkat lunak tambahan yang digunakan yaitu : ZTDummy dan X-Lite. 3.4.1 Asterisk 1.4.22 Asterisk 1.4.22 merupakan perangkat lunak gratis yang berfungsi sebagai SIP-PBX. Pemilihan ini dilakukan karena Asterisk 1.4.22 merupakan open source yang menggabungkan fungsi SIP proxy server, SIP registrar server dan SIP Redirect server ke dalam satu server. Pada Asterisk 1.4.22 dilakukan konfigurasi untuk mengatur jalannya komunikasi pada sistem. Konfigurasi ini dilakukan pada file sip.conf, extension.conf, features.conf dan voicemail.conf. dan meetme.conf. 3.4.1.1 SIP.CONF Pada bagian [general] di file sip.conf ada beberapa variabel yang dapat dikonfigurasikan beberapa diantaranya adalah: • allow = <codec> Merupakan perintah untuk mengaktifkan codec yang akan digunakan. • allowexternalinvites = yes | no 74 Mengaktifkan (enable) atau menonaktifkan (disable) pilihan INVITE & REFER ke non-local domain. Pilihan default-nya adalah yes. • allowguest = yes | no Terima atau tolak panggilan dari guest. Pilihan default-nya adalah yes. • allguest = yes | no Terima atau tolak panggilan dari guest. Pilihan default-nya adalah yes. • autocreatepeer = yes | no Jika diatur yes, semua orang dapat dengan mudah login sebagai peer tanpa password (biasanya bermanfaat untuk beroperasi dengan SER). Pilihan default-nya adalah yes. • autodomain = yes | no Mengaktifkan/menonaktifkan kemampuan Asterisk untuk menambah local hostname dan alamat IP lokal (local IP address) ke daftar domain (domain list). Default-nya adalah no. • bindaddr = IP_Address Alamat IP yang di-bind (diikat) sebagai tempat untuk mendengarkan sambungan. Pilihan default-nya adalah 0.0.0.0 yang berarti semua IP bisa terhubung dengan asterisk. • bindport = Number 75 UDP port yang dipakai untuk berkomunikasi. Pilihan default-nya adalah 5060. • callerid = <string> Untuk menampilkan informasi nama dari suatu extension. Pilihan default-nya adalah asterisk. • canreinvite = update | yes | no Jika client mampu mendukung SIP re-invites. Default-nya adalah yes. • checkmwi = number Menentukan interval untuk memeriksa mailbox dalam satuan detik. Pilihan default-nya adalah 10 detik. • compactheaders = yes | no Apakah Asterisk akan mengirim header SIP dalam bentuk kompak (singkatan) atau lengkap. Pilihan default-nya adalah no. • context = <contextname> Ini adalah default context yang akan digunakan bagi pesawat telepon yang tidak memiliki context. Isi context dapat diatur di file extensions.conf. • defaultexpirey = number Lama waktu default (dalam detik) dari registrasi incoming/outgoing. Pilihan default-nya adalah 120 detik. • disallow = all Tidak mengizinkan semua codec untuk digunakan. 76 • dtmfmode = inband | info | rfc2833 (global setting) Pilihan default-nya adalah rfc2833. • domain = domains Daftar domain (ditulis dengan dibatasi oleh koma) dimana asterisk harus bertanggung jawab. • dumphistory = yes | no Mengaktifkan dukungan untuk tidak mencatat transaksi SIP ke LOG_DEBUG. Pilihan default-nya adalah no. • externip = alamat_IP/Hostname Alamat yang akan diletakkan di SIP messages jika berada di belakang NAT. Jika pilihan hostname digunakan, alamat IP yang terkait dengan hostname tersebut akan dibaca sekali pada saat membaca file sip.conf. Jika ingin menggunakan hostname dari alamat IP dinamis (dynamic IP address), gunakan parameter externhost. • externhost = hostname.tld. • externrefresh = number Menentukan berapa sering (dalam detik) pengecekan DNS dilakukan untuk externhost. Pilihan default-nya adalah 10 detik. • ignoreregexpire = yes | no Mengatur apakah tetap menggunakan contact information dari sebuah peer walaupun informasi tersebut telah kadaluarsa. Pilihan default-nya adalah no 77 • language = <string> Bahasa default yang digunakan oleh Playback()/Background(). • localnet = NetAddress/Netmask Alamat IP lokal berikut alamat subnetmask-nya. • fromdomain = <domain> Mengatur isian from: domain default di sip message pada saat beroperasi sebagai sip ua (client). • insecure = very | yes | no | invite | port Mengatur cara menangani sambungan dengan peer. Pilihan default-nya adalah no (validasi semua sambungan). • maxexpirey = Number Durasi (dalam detik) dari registrasi incoming. Pilihan defaultnya adalah 3600 detik. • musicclass = salah satu kelas yang digunakan di musiconhold.conf. • musiconhold = sama dengan musicclass. • nat = yes | no | never | route Pilihan default-nya adalah no (yang berarti menggunakan teknik rfc3581). • notifymimetype = mediatype/subtype Membolehkan tidak dipakainya tipe MIME di MWI NOTIFY yang digunakan di voicemail online message. Pilihan default-nya adalah application/simple-message-summary. 78 • Notifyringing = yes | no Memberitahukan bahwa sistem sedang masuk ketahapan ringing. Pilihan default-nya adalah yes. • tcpenable = yes | no Digunakan untuk mengaktifkan atau menonaktifkan TCP, pilihan default-nya no. • transport = tcp|udp Memilih protokol yang digunakan untuk transport. Pilihan default-nya udp. Varibel berikut dapat digunakan pada setiap definisi peer: • Accountcode = <string> User dapat diasosiasikan ke accountcode. • Allow = <codec> Merupakan perintah untuk mengaktifkan codec yang akan digunakan. • Allowguest = yes | no Terima atau tolak panggilan dari orang yang tidak dikenal. Pilihan default-nya adalah yes, dapat juga diatur ’osp’ jika asterisk dikompilasi untuk mendukung OSP. • Auth = <authname> Isi dari digest username = pada header SIP. • callerid = <string> 79 Caller ID yang digunakan jika tidak ada informasi yang tersedia. Pilihan default-nya adalah asterisk. • call-limit = number Banyaknya sambungan telepon simultan yang dapat dilakukan ke user/peer tertentu. • callgroup = num1,num2-num3 Mendefinisikan calling group yang dapat menelepon ke alamat ini. • callingpress = number | descriptive_text Atur tampilan caller ID terhadap sebuah sambungan/call. Nilai text descriptive yang dapat diisi adalah allowed_not_screened, allowed_passed_screen, allowed_failed_screen, prohib_not_screen, allowed prohib_passed_screen, prohib_failed_screen, prohib dan unavailable. Pilihan default- nya adalah allowed_not_screened. • canreinvite = update | yes | no Jika client mampu mendukung SIP re-invites. Default-nya adalah yes. • context = <context_name> Jika type = user, context merupakan panggilan yang masuk ke definisi user SIP. Jika type = peer, context merupakan dialplan untuk melakukan panggilan ke luar/outbound dari definisi peer 80 SIP. Jika type = friend, context merupakan semua hubungan inbound dan outbound ke definisi entitas SIP. • defaultip = ip.add.res.s Alamat IP default untuk pilihan client host = jika tidak dispensifikasi sebagai dynamic. Pilihan ini dipakai jika client belum pernah terdaftar menggunakan alamat IP yang lain. Pilihan ini hanya berlaku jika isian type = peer. • disallow = all Menolak semua codec untuk peer tersebut atau definisi user. • dtmfmode = inband | info | rfc2833 Bagaimana client menangani signal DTMF. Pilihan default-nya adalah rfc2833. • fromuser = <from_ID> Menentukan user yang diletakkan di isian ”from” selain caller ID (menimpa caller ID) pada saat melakukan calls_to_peer (ke SIP proxy lain) berlaku hanya untuk isian type = peer. • fromdomain = <domain> Pengaturan from: domain default di pesan (message) SIP pada saat melakukan calls_to_peer. Valid hanya di bagian [general] atau type = peer. • fullcontact = <sip:uri_contact> Kontak SIP URI untuk koneksi realtime peer. Berlaku hanya untuk realtime peers. 81 • host = dynamic | hostname | IPAddr Alamat IP client atau hostname. Jika ingin telepon mendaftarkan sendiri, gunakan keyword dynamic jangan menggunakan host IP. • incominglimit dan outgoinglimit = number Batasan jumlah panggilan aktif simultan yang dapat dilakukan oleh client SIP. Berlaku hanya untuk pilhan type = peer. • insecure = very | yes | no | invite | port Menentukan cara menangani sambungan dengan peer. Pilihan default-nya adalah no (otentikasi bagi semua sambungan). • ipaddr = ip.addr.dari.peer Berlaku hanya untuk realtime peer. • language = kode bahasa seperti didefinisikan di indication.conf Mendefinisikan bahasa untuk sapaan. • mailbox = mailbox Extension untuk voicemail. Berlaku hanya untuk type = peer. • name = <name> Nama dari realtime peer. Berlaku hanya untuk realtime peer saja. • nat = yes | no Variabel ini menentukan pola aksi Asterisk untuk client di belakang NAT. Namun masih belum menyelesaikan masalah 82 jika Asterisk ada di belakang NAT. Pilihan default-nya adalah no, yang artinya menggunakan teknik rfc3581. • outboundproxy = IP address atau nama DNS SRV Nama SRV name, hostname, atau IP address dari outbound SIP proxy. Berlaku hanya di bagian [general] dan type = peer. • progressinband = yes | no | never Apakah nada dering di inband akan dibangkitkan. Pilihan default-nya adalah never. • promiscredir = yes| no Mengizinkan dukungan untuk 302 Redirects. Pilhan default-nya adalah no. • qualify = yes | no | milliseconds Periksa apakah client dapat dihubungi. Jika ya, pemeriksaan akan dilakukan setiap 2000 millisecond atau 2 detik. Hanya berlaku dibagian [general] dan type = peer. • rtptimeout dan rtpholdtimeout = seconds Putuskan hubungan jika dalam x detik tidak ada aktifitas RTP atau dalam posisi on hold. Berlaku hanya untuk bagian [general] dan type = peer. • secret = password Jika Asterisk berfungsi sebagai SIP server, client SIP harus login menggunakan password, jika asterisk berfungsi sebagai client SIP ke remote SIP server, dibutuhkan otentikasi SIP invite dan 83 isi secret akan digunakan untuk melakukan otentikasi SIP invite yang dikirim Asterisk ke remote server. • trustrpid = yes | no Jika remote-party-ID SIP header perlu dipercaya. Pilihan default-nya adalah no. • type = user | peer | friend Menetukan hubungan antara client-outbound provider. • username = <username[@realm]> Jika berfungsi sebagai client SIP ke remote SIP server yang membutuhkan otentikasi SIP invite, parameter ini digunakan untuk otentikasi SIP INVITE yang akan dikirim Asterisk ke remote SIP server. Untuk peer yang akan mendaftarkan diri ke Asterisk, username digunakan di INVITE sampai mereka terdaftar. • vmexten = <string> Dialplan extension untuk menghubungi mailbox. Pilihan defaultnya adalah Asterisk. Berlaku hanya di bagian [general] atau type = peer. 3.4.1.2 EXTENSIONS.CONF File extensions.conf adalah file yang digunakan untuk mengatur routing dari sistem IP PBX dan dijalankan berdasarkan pada prioritas yang telah ditentukan. 84 Format penulisan perintah yang digunakan adalah: exten = <nomor_extension>, <prioritas>, <command/parameter>. Tanda “=” (sama dengan) dapat diganti dengan tanda “=>”. File extensions.conf memiliki beberapa bagian, yaitu : • [general] Berada di bagian paling atas dari file extensions.conf. Melalui [general], beberapa konfigurasi umum untuk extension dapat dikonfigurasi. • [globals] Pada bagian [globals], dapat didefiniskan beberapa variable atau konstanta global dan menginisialisasi nilainya. • Dialplan Dialplan berisi kumpulan dari context, di mana setiap context berisi kumpulan dari extension. Komponen yang membangun perintah extension adalah sebagai berikut: • Nomor_extension. Label dari extension dapat berupa sebuah string (angka, huruf, dan simbol yang diizinkan) atau pola yang harus dievaluasi secara dinamis untuk mencocokan pola tersebut dengan banyak kemungkinan nomor telepon. Setiap command line yang menjadi bagian dari extension tertentu harus mempunyai label yang sama. • Prioritas. 85 Prioritas biasanya berupa angka integer yang merupakan urutan dari perintah yang harus dijalankan dalam sebuah extension. Perintah pertama yang akan dijalankan harus dimulai dengan prioritas 1, jika tidak terdapat prioritas 1, asterisk tidak akan menjalankan perintah extension. Setelah prioritas 1 selesai dijalankan, akan dilanjutkan ke prioritas 2 dan seterusnya (dengan asumsi tidak ada perintah yang menentukan prioritas mana yang selanjutnya harus dijalankan). Jika perintah selanjutnya ternyata tidak terdefinisi, asterisk akan menghentikan proses eksekusi perintah (walaupun masih ada perintah dengan prioritas lebih tinggi). • Command Perintah yang akan dikerjakan dan yang akan dijalankan oleh asterisk. • Parameter Parameter harus diberikan kepada sebuah perintah (command). Tidak semua perintah membutuhkan parameter. Beberapa perintah bahkan dapat dijalankan tanpa parameter. Contoh : exten => 123,1,Answer exten => 123,2,Playback(sound1) exten => 123,3,Voicemail(44) exten => 123,4,Hangup 86 Penjelasan : Pada saat terjadi penekanan 123, maka extension 123 akan langsung menjawabnya dan setelah itu akan memainkan file suara dengan nama sound1 setelah file suara tersebut selesai dimainkan maka akan langsung memasukan voicemail ke mailbox 44 dan setelah selesai akan memutuskan. 3.4.1.3 FEATURES.CONF Pada file ini, dapat dilakukan pengaturan untuk fitur call transfer dan call parking. Parameter-parameter terdapat pada bagian [general] dan [featuremap]. • Pada bagian [general] o parkext => <number> <number> diisi dengan nomor yang harus di-dial untuk mendapatkan nomor ruang parking. o parkpos => <number-number> Berisi nomor ruang parking yang disediakan. o context => <string> <string> berisi nama yang digunakan pada extensions.conf sebagai include. o parkingtime => <number> <number> diisi dengan lamanya waktu tunggu parking, satuannya detik. Pilihan default-nya adalah 45 detik. Jika selama waktu yang ditentukan tidak ada yang menghubungi 87 nomor ruang parking yang diberikan, maka panggilan akan dikembalikan kepada penerima semula. o transferdigittimeout => <number> <number> diisi dengan lamanya waktu tunggu antar digit ketika melakukan panggilan transfer. • Pada bagian [featuremap] o blindxfer => 0-9 | * | # Tombol yang ditentukan untuk mengaktifkan fitur call transfer atau call parking. Setelah melakukan transfer atau parking maka pihak yang melakukannya hang-up. o atxfer => 0-9 | * | # Tombol yang ditentukan untuk mengaktifkan fitur call transfer atau call parking. Setelah melakukan transfer atau parking, pihak yang melakukannya tidak hang-up. 3.4.1.4 VOICEMAIL.CONF Pada file ini, dapat dilakukan pengaturan untuk fitur VoiceMail. Pengaturan dapat dilakukan pada bagian [general], [default], ataupun context lainnya. • Bagian [general] o maxmsg => <number> Jumlah maksimum pesan yang dapat disimpan. Maximum pesan yang dapat disimpan adalah 9999 dan default-nya adalah 100 pesan 88 o maxmessage => <number> Berisi waktu maksimum untuk menyimpan pesan (satuan detik). o minmessage => <number> Berisi waktu minimum agar suatu pesan dapat disimpan. Default-nya tidak ada waktu minimum. o maxlogins => <number> Berisi jumlah maksimum percobaan login (memasukkan password). Jika melewati jumlah pada maxlogins, panggilan akan hang-up. • Bagian [default] Pada bagian ini, dapat dibuat mailbox. Mailbox dapat dibuat di context yang lain. Perlu diperhatikan bahwa context di mailbox voicemail dengan context di file extensions.conf tidak saling berhubungan. Perintah untuk membuat mailbox voicemail adalah sebagai berikut: Mailbox_number => password,name,email o Mailbox_number Æ nomor yang digunakan di extensions.conf untuk perintah VoiceMail(). o password Æ password yang akan diminta ketika client akan akses ke nomor voicemail. o name (string) Æ diisi menggunakan fitur voicemail. dengan extension yang 89 o e-mail Æ email yang digunakan untuk memberitahu jika terdapat voicemail yang masuk. Contoh membuat mailbox : [vm] 8101 => 101,101,[email protected] Pada perintah di atas akan dibuat mailbox context dengan nama vm, mailbox dengan nomor 8101, dengan password 101, yang dimiliki oleh user dengan extension 101 dengan e-mail [email protected]. 3.4.1.5 MEETME.CONF Pada file ini kita bisa membuat room untuk conference call . Pengaturan dapat dilakukan pada bagian [general],[room] • Bagian [general] o Audiobuffers=32 Pada bagian ini akan di set audiobuffer untuk conference sehingga bisa menghindari jitter pada saat akan terjadi komunikasi yang bersamaan, nilai terendah untuk audiobuffer adalah 2 dan nilai tertinggi adalah 32. Nilai yang ada di sini menunjukan delay yang terjadi saat terjadi komunikasi bersamaan. • Bagian [room] Pada bagian ini kita menentukan dapat dibuat rooms untuk melakukan conference call dimana perintah untuk membuat conference call adalah sebagai berikut: 90 conf => conference_number[,pin][,administrator_pin] o Conf adalah perintah untuk membuat room conference call. o conference_number adalah nomor yang di sediakan untuk conference call. o [,pin] adalah password yang user gunakan untuk masuk kedalam room conference, pada bagian ini bisa dikosongkan bila tidak ingin menggunakan password. o [,administrator_pin] adalah password yang digunakan oleh administrator dari conference call ini, pada bagian ini bisa dikosongkan bila tidak ingin menggunakan password. Contoh membuat room untuk conference call: [general] Audiobuffers=32 [rooms] Conf => 1111,123456,789 Pada perintah di atas akan dibuat sebuah room untuk conference dengan nomor 1111 dan password untuk masuk sebagai user adalah 123456 dan password sebagai administrator conference call nya adalah 789, dan disediakan 32 milidetik sebagai audiobuffer pada saat pembicaraan untuk menghilangkan jitter pada saat terjadi pembicaraan yang bersamaan,sehingga pembicaraan yang bersamaan akan di delay selama 32 milidetik. 91 3.4.2 ZTDummy Pada skripsi ini agar Asterisk dapat melakukan Conference dengan menggunakan aplikasi MeetMe, diperlukan timer/pewaktu untuk dapat bekerja. Timer ini secara default tidak aktif kecuali memiliki perangkat zaptel. Jika tidak memiliki perangkat zaptel, ZTDummy dapat digunakan sebagai alternatifnya. ZTDummy adalah perangkat zaptel dummy yang hanya menyediakan timer dan tidak menyediakan channel. Zaptel adalah software yang digunakan untuk menetapkan sistem signaling yang digunakan pada FXO dan FXS Module serta tipe negara pemakainya. Sistem telepon tradisional akan berbeda dari satu negara ke negara lainnya sehingga selalu terdapat variasi dari ketentuan baku international. Ketentuan baku tersebut ditentukan oleh ITU dan zaptel mendukung sebagian besar variasi nasionalnya dengan jalan menyesuaikan parameter yang diperlukan saat kompilasi dan instalasi ke kernel. Install ztdummy : Dibutuhkan source code zaptel untuk menginstall ztdummy. Silahkan donwload dari asterisk.org. Langkah-langkah Install ztdummy: • tar -zxvf zaptel-x.y.z.tar.gz • cd zaptel-x.y.z • ./install_prereq test • ./install_prereq install • ./configure 92 • make menuconfig • make • sudo make install Untuk mengecek ztdummy gunakan lsmod $lsmod | grep zt Jika belum muncul ketik $sudo modprobe ztdummy Setelah menginstall ztdummy, selanjutnya perlu meng-compile ulang Asterisk untuk menciptakan aplikasi Meetme. Tetapi sebelumnya coba pastikan dulu bahwa aplikasi meetme belum terpasang, dengan melihat apakah terdapat file app_meetme.so di /usr/lib/asterisk/modules/. Jika tidak ada, maka compile ulang asterisk atau cukup menambahkan aplikasi meetme. Berikut ini langkah – langkah menambahkan aplikasi MeetMe pada asterisk: • cd asterisk • make clean • ./configure • make menuselect ; silahkan pilih aplikasi meetme • make • sudo make install Setelah selesai, kemudian jalankan asterisk kembali. 93 3.4.3 X-Lite Softphone merupakan aplikasi VoIP client yang dapat di install di PC (baik desktop maupun laptop) atau PDA. Konfigurasi yang dilakukan di Softphone kurang lebih sama dengan IP Phone terutama untuk registrasi ke server VoIP. Softphone yang digunakan dalam penelitian ini adalah X-Lite versi 3. Softphone ini bersifat free lisence sehingga dapat diperoleh secara gratis. Fitur yang tedapat dalam X-Lite versi 3 ini antara lain : Fasilitas Phone Book, Call History, Video Conference, Record suara, Ringtone, Fasilitas Do not Disturb, dan memiliki 2 buah line yang berfungsi untuk melakukan panggilan atau menerima panggilan secara bersamaan tanpa harus memutuskan panggilan yang lain. Gambar 3.3 menunjukkan Softphone X-lite. Gambar 3.3 Softphone X-Lite 3.5 Konfigurasi Jaringan Konfigurasi jaringan pada perancangan sistem yang dibuat, meliputi konfigurasi IP address menggunakan static IP terhadap semua perangkat keras yang terhubung ke jaringan seperti server, user agent (IP Phone dan PC client dengan softphone), router dan media gateway. 94 3.6 Fitur pada Sistem Fitur-fitur yang tersedia pada perancangan sistem adalah: call transfer, call parking, voice mail, conference call dan Interactive Voice Response (IVR). 3.6.1 Call Transfer Call transfer merupakan fitur dimana penerima dapat memindahkan saluran ke extension yang lain. Cara kerja call transfer adalah seperti pada gambar 3.4. Gambar 3.4 Diagram alir Call Transfer Pada saat terjadi komunikasi, penerima menekan tombol ’#’ lalu terdengar suara ”transfer” yang berasal dari server kemudian penerima menekan nomor extension yang dituju, setelah itu penerima hang up dan penelepon akan tersambung dengan extension yang di-transfer. Pengaturan fitur call transfer ini dilakukan pada file features.conf dan extensions.conf. Pengaturan tombol untuk melakukan transfer dilakukan pada file features.conf. Pada aplikasi dial yang terdapat di file extensions.conf dapat ditambahkan parameter t atau T dimana t 95 berarti penerima dapat melakukan transfer komunikasi sedangkan T berarti penelepon dapat melakukan transfer komunikasi. Contoh: Exten => 1000,1,Dial(SIP/1000,30,t) 3.6.2 Call Parking Call parking merupakan fitur dimana pengguna dapat berpindah unit telepon ke telepon lain dalam lingkungan SIP PBX tanpa perlu terjadi pemutusan komunikasi. Pada server SIP PBX (Asterisk) terdapat nomor ruang parking yang nantinya diberikan kepada pengguna call parking untuk melanjutkan komunikasi. Cara kerja fitur ini adalah seperti pada gambar 3.5 Gambar 3.5 Diagram alir Call parking Pada saat terjadi komunikasi, penerima menekan tombol ’#’ lalu akan terdengar suara ”transfer” kemudian penerima men-dial nomor yang telah ditetapkan pada file features.conf untuk mendapatkan nomor ruang parking. 96 Penerima akan mendengar nomor ruang parking yang diberikan oleh Asterisk, setelah itu penerima hang up dan user lain melakukan dial ke nomor parking untuk melanjutkan komunikasi. Nomor ruang parking ini dapat diatur pada features.conf. 3.6.3 Voice Mail Voice mail merupakan salah satu fitur pada asterisk yang berfungsi untuk meninggalkan pesan, jika penerima tidak menjawab panggilan dalam waktu tertentu. Setiap user memiliki mailbox masing – masing dimana pada mailbox tersebut akan disimpan pesan dari pihak penelepon. Alur kerja voicemail dapat dilihat pada gambar 3.6 dan gambar 3.7 Gambar 3.6 Diagram alir Penelepon Meninggalkan Pesan Pada saat penelepon men-dial nomor extension penerima, namun tidak di jawab dalam waktu tertentu, maka penelepon akan masuk ke voicemail. Kemudian penelepon akan mendengarkan beberapa instruksi voicemail. Apabila 97 penelepon ingin meninggalkan pesan, proses record akan dilakukan dan disimpan ke dalam mailbox, sebaliknya jika penelepon tidak ingin meninggalkan pesan proses penyimpanan pesan tidak terjadi. Berikut alur diagram untuk mendengarkan voicemail. Gambar 3.7 Diagram alir Mendengarkan Voicemail. 98 Pemilik mailbox dapat mendengarkan pesan suara yang tersimpan pada mailbox dengan cara men-dial angka 8 diikuti nomor extension-nya, setelah itu pemilik mailbox mendengarkan instruksi untuk memasukkan password. Apabila password yang dimasukkan salah, pemilik mailbox hanya diberi kesempatan 3 kali memasukkan password kembali, jika melebihi 3 kali maka sambungan telepon akan terputus. Berbagai menu pada saat pemilik mailbox berhasil mengakses mailbox adalah sebagai berikut: 0 Mailbox options 1 Rekam unavailable message 2 Rekam busy message 3 Rekam nama kita 4 Ubah password kita * Kembali ke menu utama 1 Dengarkan pesan-pesan 2 Ubah folders 3 Advanced options 1 Send reply 2 Call back 3 Envelope 4 Outgoing call 5 Leave message * Kembali ke menu utama 4.Play pesan sebelumnya 5 Repeat pesan 99 6 Play pesan berikutnya 7 Delete pesan ini 8 Forward pesan ke mailbox lain 9 Save pesan di sebuah folder * Help; saat playback pesan:Rewind # Exit; saat playback pesan:Fastforward Pada saat mendengarkan rekaman pesan voicemail, kita dapat menggunakan tombol berikut untuk navigasi, yaitu : Tombol ’*’ ( rewind ) Tombol ’#’ (forward) (catatan : tombol ’*’ dan ’#’ hanya berfungsi pada saat pesan suara sedang berlangsung). Perintah untuk membuat mailbox voicemail pada voicemail.conf sebagai berikut: Mailbox_number =>password, name, email Contoh : [mailbox_tutor] 888=>101,yansen,[email protected] Pada perintah di atas, membuat mailbox dengan nama context mailbox_tutor, mailbox dengan nomor 888 dan password 101, yang dimiliki oleh user bernama Yansen dengan email [email protected]. Perintah di bawah ini digunakan agar user yang menelepon extension 101 dapat meninggalkan pesan ke mailbox yansen. 100 VoiceMail(mailbox_number@context) Perintah di atas dituliskan di file extensions.conf. Contoh pada extensions.conf : exten => 101,1,Dial(SIP/101,30) exten => 101,2,VoiceMail(888@mailbox_tutor) exten => 101,3,HangUp() Pada saat extension di-dial, Asterisk akan mencoba menelepon user dengan extension 101. Jika panggilan tidak diangkat melebihi waktu 30 detik, prioritas selanjutnya yang akan dijalankan Asterisk adalah membuka mailbox 888 pada context mailbox_tutorial. Pada proses ini penelepon dapat meninggalkan pesan suara. Asterisk akan menjalankan prioritas berikutnya yaitu hangUp setelah penelepon meninggalkan pesan. Pesan voicemail tersimpan pada direktori /var/lib/asterisk/sound/voicemail untuk mendengarkan pesan di mailbox masing – masing extension digunakan perintah VoiceMailMain di Asterisk. Pengaturan untuk mendengar pesan dilakukan pada file extensions.conf. Perintah di Asterisk adalah : VoiceMailMain(mailbox@context). Sebagai contoh: exten => 8101,1,VoiceMailMain(888@mailbox_tutorial) Penelepon yang men-dial nomor 8101, akan masuk ke mailbox 888 dan penelepon akan diminta password. Jika password berhasil, maka penelepon tersebut dapat memilih menu untuk mengatur mailbox-nya. 101 3.6.4 Conference Call Conference call merupakan salah satu fitur yang terdapat di Asterisk. Dengan fitur ini, setiap extension dapat terhubung ke dalam suatu ruangan conference yang telah dibuat. Pada dasarnya terdapat dua langkah yang perlu dilakukan untuk mengkonfigurasi conference pada Asterisk, yaitu membuat ruang konferensi (conference room) dan menambahkan ruang konferensi tersebut ke dalam dialplan. Conference room pada Asterisk menggunakan aplikasi MeetMe. Berikut diagram untuk Conference Call: Gambar 3.8 Diagram alir Conference Call 102 Aplikasi MeetMe ini memerlukan timer/pewaktu untuk dapat bekerja. Timer ini secara default tidak aktif kecuali kita memiliki perangkat zaptel. Apabila tidak memiliki perangkat zaptel, dapat menggunakan ztdummy (instalasi ztdummy sudah dijelaskan pada sub bab 3.4.2 ZT Dummy). Konfigurasi ruang konferensi pada meetme.conf terdapat pada direktori /etc/lib/asterisk/meetme.conf. Perintah yang digunakan untuk mengkonfigurasikan ruang konferensi adalah: Conf=>conference_number, PIN Sebagai contoh setup sebuah ruang konferensi dengan nomor 1234 dan PIN 1111 adalah : [rooms] Conf=>1234,1111 Untuk mengkonfigurasi dialplan, perlu meng-edit file extension.conf pada direktori /etc/bin/asterisk/extension.conf. contoh perintah memasukkan ruang konferensi pada dialplan sebagai berikut : [conf] Exten=>300,1,MeetMe,1234(1111) Pada perintah di atas, apabila penelepon men-dial 300 dan memasukan PIN, maka penelepon tersebut akan masuk ke ruang konferensi. MeetMe akan memberitahukan bunyi bel untuk memberitahukan kepada user lain yang sedang berada pada ruang konferensi bahwa ada user lain yang masuk ke ruang konferensi tersebut. Ada beberapa perintah yang dapat di tambahkan pada aplikasi MeetMe ini,seperti : 103 m : penelepon dapat mendengarkan tetapi tidak dapat berbicara. t : penelepon dapat berbicara tetapi tidak dapat mendengar. p : penelepon dapat keluar dari ruang konferensi dengan menekan tombol #. Sebagai contoh apabila ruang konferensi dibuat hanya memberikan kesempatan bagi penelepon untuk mendengarkan pidato dari atasan tanpa bisa memberikan interupsi terhadap pidato tersebut, yang harus dilakukan adalah memasukkan perintah pada extension.conf sebagai berikut: [conf] Exten=>300,1,MeetMe,1234|m|1111 3.6.5 Interactive Voice Response (IVR) Prinsip dasar dari semua sistem IVR secara umum yaitu, penelepon mendengarkan sebuah menu dan memilih pilihan dari menu untuk melaksanakan perintah, memasukkan informasi (dalam format nomor dengan menekan keypad). Dalam Asterisk terdapat fitur IVR. Asterisk menyertakan file suara standart yang dapat digunakan (terdapat di /etc/asterisk/). Contoh dialplan untuk IVR pada extension.conf sebagai berikut: exten => 30,1,Answer() exten => 30,2,Background(marryme) exten => 30,3,Hangup() exten => 1,1,Playback(thank-you-cooperation) exten => 1,2,Hangup() exten => 2,1,Playback(sorry) 104 exten => 2,2,Hangup() Jika penelpon men-dial extension 30, maka Asterisk menjawab dan memutar file marryme.gsm. Penggunaan aplikasi background dimaksudkan agar penelepon dapat memasukkan pilihan selama file marryme.gsm diputar. Jika penelepon menekan 1, penelepon akan mendengar “Thank you for your cooperation”. Setelah itu panggilan terputus. Apabila penelepon menekan 2, penelepon akan mendengar “sorry”, setelah itu panggilan terputus. Perbedaan yang mendasar antara playback() dan background() yaitu playback() hanya memainkan file suara, penekanan tombol diabaikan. Sedangkan background() memainkan file suara dan menerima penekanan tombol dari penelpon, yang diterjemahkan sebagai extension. Apabila penelepon menekan masukan yang salah (sembarang masukan yang tidak terdapat kecocokan extension pada dialplan) dapat ditangani dengan extension i. Contoh: exten => 30,1,Answer() exten => 30,2,Background(marryme) exten => 30,3,Hangup() exten => 1,1,Playback(thank-you-cooperation) exten => 1,2,Hangup() exten => i,1,Background(sorry) exten => i,2,Hangup() 105 Apabila penelepon men-dial 30, kemudian menekan tombol sembarang maka penelepon akan mendengar “sorry”, kemudian panggilan terputus. Berikut diagram alir dari sebuah IVR : Gambar 3.9 Diagram alir IVR 3.6.6 Panggilan ke jaringan GSM Pada sistem yang dirancang dibuat menjadi dua kelompok extension, dimana yang kelompok pertama adalah kelompok yang memiliki akses untuk terhubung ke jaringan GSM dan kelompok yang satu lagi adalah kelompok yang tidak memiliki akses untuk terhubung ke jaringan GSM. Berikut adalah diagram alir sistem komunikasi antara user agent pada jaringan lokal ke jaringan GSM. 106 Gambar 3.10 Diagram alir komunikasi antar user agent dengan GSM Gambar 3.10 merupakan diagram alir sistem komuikasi antara user agent dengan jaringan GSM / PSTN, dimana hanya beberapa extension saja yang bisa melakukan panggilan ke jaringan GSM yaitu 101-104 dan 301-304. Pada sisi server Pusat, penekanan tombol diawali dengan 9888 + nomor tujuan untuk komunikasi dengan durasi tak terbatas dan penekanan tombol dengan 9788 + 107 nomor tujuan untuk komunikasi dengan durasi pembicaraan selama 5 menit dan 1 menit terakhir akan diberi peringatan bahwa durasi panggilan hanya tersisa 1 menit lagi. Pada sisi server Cabang, penekanan tombol diawali dengan 9999 + nomor tujuan untuk komunikasi dengan durasi tak terbatas dan penekanan tombol dengan 9799 + nomor tujuan untuk komunikasi dengan durasi pembicaraan selama 5 menit dan 1 menit terakhir akan diberi peringatan bahwa durasi panggilan hanya tersisa 1 menit lagi. User agent pada kantor pusat juga bisa berkomunikasi dengan jaringan GSM / PSTN yang berada di wilayah kantor cabang dengan menekan nomor rahasia yang ada di server Cabang + nomor tujuan dan begitu juga sebaliknya user agent dari kantor Cabang juga bisa berkomunikasi dengan jaringan GSM / PSTN yang berada di wilayah kantor Pusat. Untuk membuat dialplan seperti ini bisa dibuat pada file extension.conf dengan konfigurasi yaitu: exten=>_9888.,1,Dial(SIP/${EXTEN:4}@110,30,t) Dimana berarti jika men-dial nomor 988 dan beberapa nomor di belakangnya maka 4 angka pertama akan dihilangkan dan hanya akan men-dial angka-angka berikutnya saja untuk dihubungkan ke user agent 110 exten=>_9788.,1,Dial(SIP/${EXTEN:4}@110,30,tL(300000:60000)) 108 Dimana berarti jika mendial nomor 978 dan beberapa nomor di belakangnya maka 4 angka pertama akan dihilangkan dan hanya akan men-dial angka-angka berikutnya saja untuk dihubungkan ke user agent 110 dan fungsi L(300000:60000) berguna untuk membatasi panggilan hanya selama 300.000 detik (5 menit) dan 60000 berarti akan ada peringatan tentang sisa durasi pembicaraan setelah 60.000 detik terakhir (1 menit).