Tutorial Asterisk X
28/07/08 11:50
Interactive Voice Response (IVR)
Sebuah sistem interactive voice response atau penjawab suara interaktif membuat sistem komputer berinteraksi dengan penelepon, yang dapat menyediakan masukan ke sistem dengan cara menekan keypad pada pesawat telepon (DTMF, “dual-tone multi-frequency” , atau disebut Touch-Tone®) atau dengan mengatakan sesuatu (dengan pengenal suara alami). Kebanyakan sistem IVR menyediakan menu pilihan untuk mengalihkan panggilan tanpa campur tangan operator, tetapi sistem IVR modern dapat juga berupa aplikasi komplek yang menangani informasi atau mengendalikan peralatan.
Prinsip dasar dari semua sistem IVR secara umum yaitu, penelepon mendengarkan sebuah menu dan memilih pilihan dari menu untuk melaksanakan perintah, atau, alternatifnya, memasukkan informasi (dalam format nomor, dengan menekan keypad). IVR dapat digunakan untuk mendapatkan infromasi saham, jadwal kereta, atau prakiraan cuaca.; juga dapat digunakan untuk sistem pembayaran otomatis, seperti tiket konser. Aplikasi IVR hanya dibatasi oleh imajinasi Anda sendiri.
Kompleksitas sistem bervariasi. Sistem yang lebih canggih dapat menghasilkan suara dari text secara langsung menggunakan sistem text-to-speech dan menerima masukan suara pengguna dengan pengenal suara. Ketika diimplementasikan dengan benar, IVR dapat memberikan sebuah kenyamanan tingkat tinggi, tetapi karena implementasinya sangat komplek sehingga jarang digunakan kecuali dalam organisasi yang besar.
Bentuk IVR paling sederhana adalah seperti yang ada pada layanan informasi. Pesan direkam sebelumnya dan diputarkan ke penelepon; Penelepon menjawab dengan menekan keypad DTMF, dan selanjutnya Asterisk dapat mengenalinya secara mudah.
Pendapat umum pada IVR berbeda-beda. Beberapa orang menganggap bentuk otomasi sangat membantu, dan pendapat lain mengatakan dapat menyebabkan frustasi. Biasanya karena hasil dari perancangan menu yang jelek atau pengenalan suara dengan rata-rata kesalahan yang tinggi. Sebuah IVR yang berfungsi baik dapat menyenangkan pengguna, tetapi implementasi yang jelek dapat menyebabkan pengguna pergi. Maka dari itu, hati-hati ketika merencanakan sebuah sistem IVR. Beri perhatian pada rancangan menu dan beri waktu untuk pengembangan dan penerapan yang baik. Ujicoba terus menerus dan pengawasan setelah penerapan, terutama pada kasus penutupan telepon lebih awal harus menjadi bagian dari rutinitas. Ingat bahwa sistem IVR bukan akhir segalanya, atau solusi segala masalah. Pikirkan pengguna anda!
Sebuah IVR sederhana
Asterisk menyertakan file suara standard (biasanya ada dalam asterisk-sound) termasuk file marryme.gsm, berisi ucapan “Will you marry me? Press 1 for yes or 2 for no.” Untuk membuat aplikasi “lamaran pernikahan”, dialplan berikut sudah cukup:
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) exten => 2,2,Hangup()
Jika penelpon menekan ekstensi 30, Asterisk menjawab dan memutar file marryme.gsm. Selama penggunaan aplikasi Background(), pengguna dapat memasukkan pilihan kapanpun selama diputar. Masukan akan diterjemahkan sebagai sebuah extension dan panggilana panggilan akan diteruskan ke ekstension tersebut. Jika penelepon menekan 1, dia akan mendengar “Thank you for your cooperation,” Setelah itu Asterisk putus.
Perbedaan antara Playback() dan Background()
Playback() hanya memainkan file suara; masukkan diabaikan. Background() memainkan file suara sambil menerima masukan dari penelpon, yang diterjemahkan sebagai extension dan masukan akan dijadikan extension tersendiri.
Perbedaan antara 10 dan 1000
Untuk melihat extension yang dimulai dengan angka yang sama, mari kita perhatikan contoh 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 => 10,1,NoOp(Test mit 10) exten => 10,2,Hangup() exten => 100,1,NoOp(Test mit 100) exten => 100,2,Hangup() exten => 2,1,Playback(sorry) exten => 2,2,Hangup()
Background() menunggu beberapa waktu setiap nomor yang dimasukkan untuk membedakan antara 1, 10 and 100. Sekali waktu (TIMEOUT) telah habis, Masukan dianggap selesai.
Tip: TIMEOUT untuk mengatur batas waktu. Untuk informasi, masukkan fungsi TIMEOUT dalam Asterisk CLI
TIMEOUT ditentukan dalam satuan detik dan dapat diatur dalam dialplan.
exten => 123,1,Set(TIMEOUT=3)
“Pengaturan waktu yang pintar”
Pada dialplan di atas, Asterisk akan memproses secara langsung ketika nomor 2 ditekan, tetapi setelah waktu habis ketika 1 ditekan. Asterisk secara pintar menentukan sebuah nomor yang dimasukkan apakah cocok dengan beberapa extension atau tidak dan bertindak sesuai ada tidaknya.
Invalid input (extension i)
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 => 2,1,Playback(sorry) exten => 2,2,Hangup() exten => i,1,Background(sorry) exten => i,2,Hangup()
Pauses/Jeda
Cara yang mudah untuk menghentikan sementara adalah dengan memainkan file kosong/diam. Beberapa file diam antara 1 sampai 9 detik terdapat pada /var/lib/asterisk/sounds/silence/. Jika kita akan memeberikan jeda 5 detik, maka dapat memainkan file diam dengan lama 5 detik. Contoh:
exten => 30,1,Answer() exten => 30,2,Background(marryme) exten => 30,3,Background(silence/5) exten => 30,4,Hangup() exten => 1,1,Playback(thank-you-cooperation) exten => 1,2,Hangup() exten => 2,1,Playback(sorry) exten => 2,2,Hangup() exten => i,1,Background(marryme) exten => i,2,Hangup()
Multilevel IVR systems
Masalah pada IVR multilevel adalah penelpon harus memasukkan digit tunggal beberapa kali (sering juga digit yang sama), tetapi menghasilkan jawaban yang berbeda tergantung pada tingkat menu. Karena nomor hanya bisa dipakai seklai pada context tertentu, penelpon akan terhenti pada menu tingkat pertama. Jika kita memerlukan menu bertingkat yang menyediakan jawaban berbeda untuk angka yang sama, kita harus menempatkan submenu pada context yang berbeda ([kantin] pada contoh kita). Kita melompat antar context dengan menggunakan aplikasi Goto(). Mari kita asumsikan anda memiliki file suara yang tersimpan di /var/lib/asterisk/sounds/:
mainmenu.gsm
“Tekan 1 untuk penjualan, 2 untuk layanan, atau 3 untuk kantin.”
kantin.gsm
“Tekan 1 untuk mendengar menu minggu ini atau 2 untuk mendengar menu minggu depan.”
kantin-menu-minggu-ini.gsm
“Senin: Bakmi Goreng. Selasa: Ayam bakar…”
kantin-menu-minggu-depan.gsm
“Senin: Nasi goreng, telur ceplok..”
Jika penjualan di extensi 100 dan divisi layanan ada di 150, dialplan untuk IVR akan seperti berikut:
[contoh-ivr] ; Menu akan diulang sampai penelepon memasukkan pilihan. ; exten => 30,1,Answer() exten => 30,2,Background(mainmenu) exten => 30,3,Background(silence/3) exten => 30,4,Goto(2) exten => 1,1,Dial(SIP/100) exten => 2,1,Dial(SIP/150) ; Goto() pergi ke context lain ([kantin]) ; exten => 3,1,Goto(kantin,100,1) exten => i,1,Goto(30,2) [kantin] exten => 100,1,Background(kantin) exten => 100,2,Background(silence/3) exten => 100,3,Goto(1) exten => 1,1,Playback(kantin-menu-minggu-ini) exten => 1,2,Wait(2) exten => 1,3,Goto(1) exten => 2,1,Playback(kantin-menu-minggu-depan) exten => 2,2,Wait(2) exten => 2,3,Goto(1) ; Invalid input kembali ke menu utama exten => i,1,Goto(contoh-ivr,30,2)
Kedalaman IVR
Meskipun secara teori memungkinkan untuk mendukung tingkat menu IVR tanpa batas, pada prakteknya disarankan untuk menjaga agar maksimal tingkat menunya adalah 3. Kebanyakan penelpon menutup panggilannya setelah tingkat menu ketiga.
Selamat membuat IVR
dikirim oleh: M. Zudha Ghofur
Artikel Terkait
Tutorial Asterisk VIIMembuat Conference Call di Asterisk
Tutorial Asterisk IX
Komentar
« Tutorial Asterisk IX Memanfaatkan Paging dan Intercom IPPhone Linksys menggunakan Asterisk »
Om…aku dah bangun asterisk disatu server. nah rencananya server ini untuk menghubungkan 6 kantor cabang. Disetiap cabang terdiri atas 3-5 PC yang menggunakan softphone. Apa ini memungkinkan ? Sebab saya pernah coba untuk 2 pc dari 1 kantor cabang…hanya 1 yang bisa terhubung ke server.
Terima kasih.
— Rudi · 05/08/08 23:25 · #
Bisa saja. Tergantung topologi jaringannya, untuk lebih amannya, kalau pake SIP, aktifkan NAT=yes dan qualify=yes.
Perhatikan juga jenis softphonenya, kadang tidak bisa menggunakan port selain 5060. sehingga kalau ada dua softphone dengan IP yg sama (misal NAT), yang aktif hanya salah satu.
— zudha · 06/08/08 08:50 · #
Om…mo nanya lagi nih…
aku dah bangun asterisk server. Untuk LAN gak ada masalah. Aku pake softphone X-Lite. Laptopku waktu dalam LAN bisa tlp ke PC laen & bisa bicara. Nah kemaren aku coba labtopku pake koneksi Fren, waktu aku coba telp ke PC laen…bisa berdering…tp waktu ngomong…gak muncul suranya. Kira2 masalahnya dimana ya ?
— Rudi · 10/08/08 06:19 · #
Coba diaktifkan debug modenya dan ditambah verbosity levelnya. Nanti akan kelihatan masalahnya dimana.
Biasanya masalah NAT, mengingat fren itu pake IP lokal yang di NAT ke ip publik. Selain opsi yang saya berikan di atas, coba tambahkan canreinvite=no
— zudha · 11/08/08 08:22 · #
pak saya minta bantuannya donk, saya sedang membuat tugas akhir saya tentang voip, saya punya masalah ketika saya ingin menyabungkan dua buah server astersik,diman yang 1 asterisk win32 dan yang 1 lagi astersik fedora(pada linux),saya menyambungkannya secara peer to peer dengan menggunakan dua buah router saja saya sudah coba registrasi masing2 server
Coba periksa dahulu konfigurasi client, apakah sudah sesuai dengan sip.conf? Silahkan baca tutorial di awal.tetapi pada CLI tertulis registrari failed
apa yang harus saya buat pada sip.conf dan extention.conf?
mohon bantuannya yah pak
tolong banget yah pak
— ronald · 01/09/08 09:45 · #
saya rasa clientnya sudah benar soalnya kalau dia dalam satu LAN dia sudah bekerja sesuai keinginan, akan tetapi ketika saya menghubungkan 2 buah server dalam LAN yang berbeda ada masalah bahwa server lain tidak dapat dikenali
bisa tolong bantuannya
— ronald · 04/09/08 10:29 · #
Apakah pake NAT atau tidak? coba periksa konfigurasinya. Kalau pakai nat, sesuaikan konfigurasi asterisknya. Kemungkinan lainnya, asterisk dicompile tidak dengan nat.
Kalau masih tidak bisa, coba periksa firewallnya. Biasanya masalah port tertutup atau port yang dipakai oleh s/w lain. biasanya menjalankan asterisk dengan softphone sekaligus.
— zudha · 04/09/08 12:00 · #
mohon maaf balasnya lama
sama saja pak, Kalau dua-duanya pake asterisk atau support IAX lebih baik pake iax.conf sajahmmm saya kemaren tidak bisa arna yang satu memakai windows dan server yang satu memakai linux fedora
saya tidak memakai nat
kalo koneksi 2 server lebih bagus pakai IAX.conf apa sip.conf yah?
— ronald · 15/09/08 10:56 · #
pak bisa bantu saya untuk membuat conference call pada asterisk??
saya coba kok gagal melulu yah?padahal sudah mengikuti sesuai pedomannya
bisa minta email atau YM ?
saya sedang skripsi mengenai voip dengan server asterisk
bisa minta bantuan atau bimbingan dari bapak?
Coba ikuti petunjuknya dengan sabar, saya akan tuliskan tutorial tentang confrence lebih lengkap nantinya.
— ronald · 13/10/08 11:54 · #
Pak,saya sudah berhasil membangun server asterisk di Linux Open Suse 10.3. Sudah bisa voice dan video call ke client dengan OS WinXP. Saya coba test ke client dengan menggunakan OS Linux, dan softphone Xlite yang untuk Linux selalu tidak nyambung.Bagaimana solusinya Pak?
coba cek portnya. Biasanya sudah terdapat port open 5060, sehingga tidak dapat dipakai xlitenya.
— octa · 16/12/08 15:55 · #
pak, tolong kirim ke e-mail saya dong tutorial mengenai pembangunan VoIP server menggunakan asterisk dan X-Lite pada 1 gedung,apa saja yang dibuthkan dan bagaimana cara membangunnya cz saya ada tugas untuk ujian,secepatnya ya pak…trims
Tutorial sudah ada semua di web ini, yang dibutuhkan hanya server untuk asterisk dan client untuk x-lite
— fikri · 16/01/09 10:20 · #
Mak nyos, terang benderang, cocok untuk saya yang pemula di voip. salam hangat
Salam hangat juga.
— ari · 23/01/09 11:13 · #
Pak saya mau tanya ..,,saya sedang membuat video conferece menggunakan trixbox sebagai server dan softphone X-lite di client. Cm untuk masalah video tidak muncul di softphone lawan bicara.
Padahal di sip.conf-nya ud sy konfigurasi spt:
[general]
videosupport=yes
allow=h263
alow=h264
Mohon bimbingannya ap masih ada yg harus di setting lagi.trims.
Coba cek tulisannya, apakah benar demikian? Cek juga clientnya, apakah support codec tersebut.
— Prima · 20/01/10 20:06 · #
Permisi pak, saya ingin bertanya hardware2 yang diperlukan untuk membangun IVR di server Cent OS apa saja ya kalau boleh tau? :D
Jika berbasis SIP, cukup sediakan server yang cukup. tidak perlu H/W tambahan, kecuali jika akan digunakan menerima panggilan dari PSTN perlu koneksi fxo atau E1
— Ronny Tanzil · 26/11/10 09:56 · #
pak saya mau tanya cara menhubungkan dial user ,IVR,dan voice mail gimanaya?
Semua sudah ada di contoh yang saya berikan di web ini.
— dedy · 17/06/11 04:50 · #
mas, mw nanya. saya udh bikin ivr setting nya kaya gni:
exten => 300,1,Answer()
exten => 300,2,Wait(2)
exten => 300,3,Playback(/var/lib/asterisk/sounds/ivr/wel)
knp ya pas di call ke no 300,, keterangannya not found??
Coba dicek contextnya, masukkan saya ext 300 ke context default.
— Dany · 13/09/11 01:30 · #
om ada alamat YM ngak mungkin saya bisa sharing2 nih heee
id saya zudha, atau bisa lewat xmmp, pakai gtalk. add saja id saya
— Nal · 18/09/11 00:13 · #
Mas zudha saya mau tanya.. saya sedang membangun ivr.. dngan phpagi dan client xlite.. phpaginya sudah mau jalan tapi pas get data nya tidak mau input dari xlite nya.. result -1 gitu kalo biasanya result timeout kl gda masukan.. mohon sarannya supaya bisa input ato get data dari xlite.. terimakasih
Pastikan dtmf dari xlite dapat terkirim terlebih dahulu.
— Ita · 07/07/15 10:18 · #