INTERACTIVE VOICE RESPONSE
(IVR)
Prima K - PENS
OBJECTIVES ¾What is IVR ? ¾General Benefits ¾How IVR works ? ¾IVR infrastructure ¾IVR services ¾IVR Applications ¾Voice Processing Board ¾IVR Programming Prima K - PENS
What is IVR ? Definisi : IVR adalah teknologi teleponi dimana sebuah komputer bisa mendeteksi suara (voice) dan penekanan tombol pesawat telepon dengan menggunakan panggilan telepon normal Sistim IVR dapat me-respon panggilan menggunakan suara yang telah direkam terlebih dahulu, kepada pemanggil untuk pemrosesan berikutnya.
Definisi Lain : IVR adalah sistem teleponi otomatis yang berinteraksi dengan pemanggil, menghasilkan informasi dan me-rute kan panggilan ke tujuan yang tepat. Sistim IVR menerima kombinasi input suara dan pemilihan berdasarkan penekanan keypad telepon dan menghasilkan respons dalam bentuk suara, fax, callback, email atau media yang lain.
IVR adalah salah satu aplikasi dari teknologi CTI Mengapa memilih IVR ? 1. IVR bisa diaplikasikan untuk berbagai jenis layanan yang tidak memerlukan proses diskusi antara user dengan penyedia jasa layanan (misal : telephone-banking, layanan tagihan pulsa telepon, layanan prakiraan cuaca, validasi credit card dsb) 2. IVR hanya berbasis input dari keypad pesawat telepon user (12 tombol yang tersedia : 1,2,3,4,5,6,7,8,9,*,0,#) dan jalur PSTN 3. Speech recognition bisa diaplikasikan pada sistim IVR untuk menggantikan fungsi keypad. Pada intinya, IVR mendukung tiga ‘A’ :
Anyone, Anywhere, Anytime Prima K - PENS
General Benefits 1. Membatasi / mengurangi waktu agent / operator. 2. Membatasi kelelahan agent terhadap pertanyaan yang berulangulang. 3. Nilai tambah untuk waktu tunggu. 4. Kemampuan mem-broadcast message yang berulang-ulang. 5. Menguntungkan bagi user lepas, yang tidak ingin mengunjungi website karena tidak memiliki PC, atau merasa membuang waktu untuk memboot-up PC mereka hanya untuk menjalankan transaksi yang sederhana. 6. Penyediaan supply informasi ter-update secara konstan via voice. 7. Bisa diakses selama 24 jam perhari, 365 hari dalam setahun. 8. Menyimpan informasi dari pemanggil / customer. 9. Menyediakan operasi-operasi streamline Prima K - PENS
Apa saja yang bisa dilakukan oleh IVR ? 9 Pengenalan DNIS (Dialed Number Identification Service) 9 Kemampuan konversi Text-to-Speech 9 Arsitektur dari skala kecil sampai besar 9 Multiple Development Platform 9 Dilengkapi dengan Graphical Design sesuai selera 9 Punya kemampuan Speech Recognition 9 Dapat dikoneksikan dengan bermacam-macam jenis jalur (twisted-pair, T1, E1, IP maupun ISDN) 9 Punya konektifitas Database 9 Memiliki kemampuan monitoring 9 Kemampuan call transfer ke ekstensi lain 9 Punya konektifitas web site 9 de-el-el…
Contoh Graphical User Interface untuk IVR
Dibuat oleh Voxtron-Telebutler
How IVR works ? 1. Pemanggil mendial nomor server IVR, sampai terkoneksi dengan diberikannya jawaban dari server IVR (biasanya berupa greeting). 2. Sistim IVR mengeksekusi aplikasi yang dipilih berdasarkan DNIS (Dialed Number Identification Service). 3. Di dalam aplikasi tersebut akan dimainkan suara yang sudah direkam sebelumnya kepada pemanggil. 4. Pemanggil memilih opsi-opsi yang disediakan dalam aplikasi dengan cara menekan tombol-tombol keypad pesawat teleponnya (menggunakan sistim DTMF) atau membunyikan kata (Speech recognition).
Prima K - PENS
IVR Infrastructure Hardware : 1. PC + Accessories (detailed on Voice Processing Board Explanation) 2. Voice Processing Board 3. Phone Terminal
Software : 1. Application Programming (Visual Basic, C++, Java, etc) 2. Database Programming (MySQL, MS Access, Oracle) 3. Voice Processing Board Driver Tambahan : •Jalur telepon (analog, digital, E1, T1) •Alarm eksternal •Signal Processor •Interface IP atau PBX •Host (IP Server) •Video
Flow Chart Pengaksesan IVR (Inbound) START A
B
Dial Server No. 1 N
Y
Database Menu 1
N
Connected ?
2
Y
Database Menu 2
Y N
..
Opening Greeting B Choose Menu : 1.. 2.. . # Out of System A
#
Closing Greeting
STOP
Jenis Layanan IVR
INBOUND SERVICE Æ Jenis layanan yang akan dijalankan setelah user / customer mendial nomor IVR server
OUTBOUND SERVICE
Æ Jenis layanan yang bersifat delivering messaging, pemberitahuan atau pengingat suatu event Æ Disampaikan pada waktu tertentu dengan membroadcast suara yang telah direkam sebelumnya ke telepon customer, karyawan atau khalayak umum
Prima K - PENS
IVR Applications :
Inbound Service
1. Business Applications Phone Banking Credit card validation Human Resources Inventory queries and stock availability Survey automation Employee Scheduler Tax information
2. Educational Applications Transcripts Grades Course registration Special events Prima K - PENS
3. Service Applications Health care Medical Lab test results Physician selection Hotel reservation and information
4. Entertainment Applications Voting in TV game shows such as Pop Idol Take orders for mobile content, such as ringtones Weather forecasts Political or commercial purpose
Prima K - PENS
IVR Applications :
Outbound Service
¾ Hotel wake up calls ¾ Medication reminder untuk pasien ¾ Pemberitahuan darurat untuk bisnis atau sekolah (misal : pemadaman listrik, atau issue keamanan) ¾ Pemberitahuan Event khusus (misal : pertandingan olahraga, musik dll) ¾ Iklan Politik atau komersial ¾ Patient Appointment ¾ Payment Reminder
Prima K - PENS
IVR Illustration Outdial Patient Reminder Dokter Agus 5947288
Wayan 8712345
Butet 3942215 Perangkat IVR Sentral Telepon
Prima K - PENS
IVR Customer’s Profile
"For ten of the last twelve years, Pizza Hut® was named Best Pizza Chain in America in the "Choice in Chains" national consumer survey published annually by Restaurants & Institutions Magazine. In 1997 Consumer Reports named Pizza Hut the best pizza chain in America and in 2000 and 2003, The Dallas Business Journal named Pizza Hut "The Best Company to Work For" in Dallas/Fort Worth. This is our mission. Everything we do reflects this mission and the values that make it possible" www.pizzahut.com Pizza Hut utilizes phone answering services at Database Systems Corp. to provide announcements and special offers to its existing clients. As a special promotion to customers who have previously placed orders, Pizza Hut offers discounts and free specials with new orders. Pizza Hut has realized significant returns on this novel marketing program.
VOICE PROCESSING BOARD Fungsi-fungsi : - Digital Signal Processing, - Telephone Signaling System Handling - Voice processing and recognizing - DTMF (Dual Tone Multi Frequency) Recognizing.
Manufacturer : • • • • •
Intel Æ Dialogic Brooktrout Æ Rhetorex Altigen Æ TRITON Natural Microsystem Toshiba
Types of Dialogic Cards
Minimum System Requirements IBM PC/AT based on Pentium I 233MHz (or higher) processor. 64 Megabytes RAM 1.44 MB Floppy Drive. Minimum 4.0 GB Hard Disk (Note: 10 MB. 1 Hour of voice). 56K Hayes Compatible MODEM. (3Com U.S. Robotics Recommended) Æ optional VGA Card. SVGA Monitor Keyboard and Mouse 4-Port Voice Processing Boards. (Up to 12 boards per system) Functional Capacity Number of Ports 4 - 128 Prima K - PENS
Konfigurasi IVR via PBX
Card Card Dialogic
Telepon 11 Telepon
Computer Computer
PBX PBX Telepon 2 2 Telepon
Prima K - PENS
D/41JCT-LS This board contains of 4 analog ports, J series, PCI slot, CT Bus Windows and Linux Operating System Software driver is installed first, followed by hardware installation Features : • Voice mail / messaging • Interactive Voice Response • Contact Center • Audiotext • Operator Service • Dictation • Autodialer • Unified messaging • Online data entry/query
Prima K - PENS
D/4PCIU This board contains of 4 analog port, with PCI slot Windows 2000, NT Operating System Features : •Networked voice messaging •Automated attendant •Interactive voice response •Enhanced messaging Plug & Play Board, implemented for small or medium Enterprise application Prima K - PENS
IVR PROGRAMMING Persiapan-persiapan : 1. 2. 3. 4.
Install Voice Board Driver pada PC Pasang Voice Board pada PC, untuk digunakan sebagai IVR Server Aktifkan Voice Board Siapkan Software Pemrograman (C/C++) untuk membuat program Aplikasi IVR 5. Rekam suara dengan informasi tertentu. SImpan dalam file. 6. Koneksikan port-port analog pada Voice Board dengan jalur telepon analog 7. Jalankan Program Aplikasi IVR
Prima K - PENS
Instalasi Voice Board Driver Untuk tipe D/41JCT-LS Æ Dialogic System Release 5.1 Æ Driver ini juga dilengkapi beberapa fungsi untuk pemrosesan Voice dan fungsi teleponi lainnya oleh Dialogic Card, berbasis C Programming Untuk tipe D/4PCI-U Æ Dialogic System Release 5.1.1 dan Feature Pack Æ idem dengan di atas
Pemasangan Voice Board pada slot PCI
Prima K - PENS
Pengaktifan Voice Board
Prima K - PENS
Pembuatan Software Aplikasi IVR #include <stdio.h>
Preprocessor directive
fungsi_lain();
Prototype fungsi lain
main() { statement; } fungsi_lain() { statement; }
Fungsi utama
Fungsi lain
Struktur Pemrograman C/C++ Prima K - PENS
Beberapa Fungsi Dialogic yang harus disiapkan : 1. dx_open() Fungsi ini untuk membuka channel pada card. Fungsi lain dapat dijalankan setelah channel dibuka. Command yang digunakan adalah : int dx_open(namep, oflags) char *namep=pointer ke channel yang akan dibuka channel B1C1=dxxxB1C1 channel B1C2=dxxxB1C2 channel B1C3=dxxxB1C3 channel B1C4=dxxxB1C4 int oplags=disediakan fungsi selanjutnya oflags=null
Prima K - PENS
2. dx_sethook() Fungsi yang mengontrol status kondisi hook dari channel tertentu. int dex_sethook(chdev, hookstate, mode) Parameter chdev
Menunjukkan channel yang telah dibuka
hookstate
Menunjuk kondisi hook •DX_ONHOOK untuk kondisi onhook •DX_OFFHOOK untuk kondisi off hook
mode
Prima K - PENS
Penjelasan
•EV_SYNC : menjalankan dengan mode sinkron •EV_ASINC : menjalankan dengan mode asinkron
3. dx_wtring() Fungsi yang menunggu banyaknya jumlah ring tone dan merubah kondisi channel menjadi On Hook atau Off Hook. int dx_wtring(chdev, nrings, hookstate, timeout) Parameter
Prima K - PENS
Penjelasan
chdev
menunjukkan channel yang sudah dibuka dx_open
rings
banyaknya rings yang ditunggu sebelum setting hookstate
hookstate
Menunjuk kondisi hook •DX_ONHOOK untuk kondisi onhook •DX_OFFHOOK untuk kondisi off hook
timeout
lamanya waktu untuk melaksanakan fungsi tersebut
4. dx_getdig () Fungsi ini digunakan untuk menerima digit dari penelpon. int dx_getdig(chdev, tptp, digitp, mode) DV_TPT*tpt = menunjuk ke stuktur tabel parameter terminasi DV_DIGIT = menunjuk ke struktur User Digit Buffer Stuktur dari DV_DIGIT : typedef struct dv_digit { char dg_value[DG_MAXDIGS-1]; char dg_type[DG_MAXDIGS-1]; } DV_DIGIT;
Prima K - PENS
5. dx_playiottdata() Fungsi untuk menjalankan rekaman suara (file suara) dari beberapa sumber. short dx_playiottdata (chdev, iottp, tptp, xpbp, mode) Parameter Penjelasan chdev
menunjukkan channel dibuka dx_open
iottp
menunjuk ke struktur DX_IOTT
tptp
menunjuk ke struktur DX_TPT
xpbp
menunjuk ke struktur DX_XPB
mode
menunjukkan mode yang digunakan; •EV_SYNC : mode sinkron •EV_ASYNC : menjalankan dengan mode asinkron •PM_TONE : menjalankan 200 ms audible tone
Prima K - PENS
yang
telah
Program Deteksi Digit
DV_TPT tpt[3]; DV_DIGIT digp; int numdigs,cnt; dx_clrtpt(tpt,3); tpt[0].tp_type=IO_CONT; tpt[0].tp_termno=DX_MAXDTMF; tpt[0].tp_length=x; tpt[0].tp_flags=TF_MAXDTMF; tpt[1].tp_type=IO_CONT; tpt[1].tp_termno=DX_LCOFF; tpt[1].tp_length=10; tpt[1].tp_flags=TF_LCOFF|TF_10MS; tpt[2].tp_type=IO_EOT; tpt[2].tp_termno=DX_MAXTIME; tpt[2].tp_length=50; tpt[2].tp_flags=TF_MAXTIME; //Get digit//
Prima K - PENS
if((numdigs=dx_getdig(chdev,tpt,&digp,EV_SYNC))==1){ MessageBox("Error get digit"); exit(1); } SetDlgItemText(IDC_DIGIT1,"Get digit success"); for(cnt=0;cnt
Program Play Suara
int fd; DX_IOTT iott; DV_TPT tpt; DX_XPB xpb; if((fd=dx_fileopen(fname,O_RDONLY|O_BINARY)) ==-1) { } tpt.tp_type =IO_EOT; tpt.tp_termno =DX_MAXDTMF; tpt.tp_length =1; tpt.tp_flags =TF_MAXDTMF; iott.io_fhandle =fd; iott.io_bufp =0; iott.io_offset =0; iott.io_length =-1; iott.io_type =IO_DEV|IO_EOT; xpb.wFileFormat =FILE_FORMAT_WAVE; xpb.wDataFormat =DATA_FORMAT_DIALOGIC_ADPCM; xpb.nSamplesPerSec =DRT_8KHZ; xpb.wBitsPerSample =4;
Prima K - PENS
if(dx_playiottdata(chdev,&iott,&tpt,&xpb,EV_SYNC)==-1){ MessageBox("Error play wav file"); exit(1); } SetDlgItemText(IDC_PLAY,"Play Wav File Success");
Contoh Informasi yang direkam dan disimpan dalam file suara
Nama File intro.wav pilihan.wav
makanan.wav
spesial.wav diet.wav
kolesterol.wav kalori.wav keluar.wav
Prima K - PENS
Kalimat Selamat datang dalam Layanan Informasi Restoran Cepat Saji Makan Enak Tekan 1 untuk informasi menu makanan Tekan 2 untuk informasi menu spesial hari ini Tekan 3 untuk informasi menu diet Tekan * untuk keluar Ayam saus Inggris Ayam Bakar Mentega Kepiting Saus Asam Manis Udang Cah Jamur Mie goreng spesial Menu spesial hari ini adalah Ikan Bakar Madu Tekan 1 untuk informasi diet rendah kolesterol Tekan 2 untuk informasi diet rendah kalori Tekan # untuk kembali ke menu utama Menu rendah kolesterol yang disarankan adalah nasi putih tumis kangkung tempe bacem Menu rendah kalori yang disarankan adalah kentang stik daging salad buah Terima kasih telah mengakses layanan Informasi Restoran Cepat Saji Makan Enak
START Tekan nomor.serve r N Connect Y intro.wav pilihan.wav Y
‘1’
Flow Chart Aplikasi IVR untuk Layanan Informasi Makanan Restoran
A Makanan.wav
N ‘2’ Y 1’ N Y ‘3’ 1’ N ‘*’
spesial.wav diet.wav
Y
‘1’ N ‘2’ 1’ N ‘ # ’’
keluar.wav musik.wav STOP Prima K - PENS
A
Y
kolesterol.wav kalori.wav
Program Utama void CKenalDigitDlg::OnTombol() { int chdev; char number[4],dig[10]; //Open channel// if((chdev = dx_open("dxxxB1C1",NULL))==-1) { MessageBox("Error open channel"); exit(1); } SetDlgItemText(IDC_CHANNEL,"Open channel success");
//Set on hook// if(dx_sethook(chdev,DX_ONHOOK,EV_SYNC)==-1){ MessageBox("Error on hook"); exit(1); } SetDlgItemText(IDC_HOOK,"On hook success");
Prima K - PENS
//Wait ring tone// if(dx_wtring(chdev,2,DX_OFFHOOK,-1)==-1){ MessageBox("Error off hook"); exit(1); } SetDlgItemText(IDC_WAITRING,"Off hook success");
PlaySuara(chdev,"intro.wav"); awal: PlaySuara(chdev,"pilihan.wav"); number[0]=DetectDigit(chdev,dig,1); number[1]='\0'; if(number[0]=='1') { PlaySuara(chdev,"makanan.wav"); goto awal; } else if(number[0]=='2') { PlaySuara(chdev,"spesial.wav"); goto awal; } Prima K - PENS
else if(number[0]=='3') { PlaySuara(chdev,"diet.wav"); number[0]=DetectDigit(chdev,dig,1); number[1]='\0'; if(number[0]=='1') { PlaySuara(chdev,"kolesterol.wav"); goto keluar; } else if(number[0]=='2') { PlaySuara(chdev,"kalori.wav"); goto keluar; } else if(number[0]=='#') goto awal; } else if(number[0] == '*') { keluar: PlaySuara(chdev,"keluar.wav"); PlaySuara(chdev,"musik.wav"); } }
SELAMAT BERKREASI MEMBUAT PROGRAM LAYANAN BERBASIS IVR
Prima K - PENS
TUGAS-TUGAS INTERACTIVE VOICE RESPONSE….(1) Buat flow chart cara pengaksesan dari beberapa aplikasi IVR berikut ini: 1. BUSSINESS a. b. c. d. e. f.
Employee Management Service Pencarian Lokasi Toko Pelaporan Inventory dan stok Toko Reminder Jadwal Kerja Karyawan Bill Payment by Phone Delivery Order by Phone
TUGAS-TUGAS INTERACTIVE VOICE RESPONSE….(2) 2. EDUCATION a. b. c. d. e. f.
Layanan Akses Informasi Kesiswaan Student Wake Up Call Student Events Reminder Parent Notification Service by Phone School Announcement Service Special Course Registration
TUGAS-TUGAS INTERACTIVE VOICE RESPONSE….(3) 3. SERVICE a. b. c. d. e. f.
Public Service Announcement RSVP Service Clinical Patient Appointment Medication Reminder Hotel Reservation and Information Weather Forecast
TUGAS-TUGAS INTERACTIVE VOICE RESPONSE….(4) 4. MARKETING a. b. c. d. e.
Retail marketing Real Estate Marketing Insurance Marketing Subscription Renewal Sales Support Service (layanan untuk status produk, perencanaan meeting, pembukaan cabang baru)
TUGAS-TUGAS INTERACTIVE VOICE RESPONSE….(5) 5. COMMUNITY a. b. c. d. e. f.
Voting a Reality Show Idol Political Polling Service Security Guard Monitoring Club Member Event Reminder Apartment Residence Broadcast Service Transportation Phone Service