Sexti Erianto
NRP.7203.030.005
Dosen Pembimbing:
Ir Prima Kristalina, MT
NIP. 131 843 904
Arifin , ST, MT
NIP. 131 793 754
JURUSAN TELEKOMUNIKASI
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA 2006
APLIKASI IVR (INTERACTIVE VOICE RESPONSE)
SEBAGAI OPERATOR TELEPON
OTOMATIS
Oleh:
SEXTI ERIANTO
7203.030.005
Disetujui oleh
Tim Penguji Proyek Akhir: Dosen Pembimbing:
Mengetahui:
Ketua Jurusan Telekomunikasi
ii
ABSTRAK
iii
ABSTRACT
iv
KATA PENGANTAR
Assalamu’alaikum WR.Wb.
Alhamdulillah! Saya panjatkan puji syukur kehadhirat Allah SWT
atas rahmat dan hidayah-Nya hingga selesainya kegiatan proyek akhir
ini dengan judul “Aplikasi IVR (Interactive Voice Response) sebagai
Operator Telepon Otomatis ”.
Proyek Akhir ini disusun sebagai salah satu syarat untuk
memperoleh gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri
Surabaya, Institut Teknologi Sepuluh Nopember Surabaya (ITS).
Pada kesempatan ini saya sampaikan terima kasih yang sebesar-
besarnya kepada :
1. Orang tuaku yang telah membiayai kuliah ku
2. Ir. Prima Kristalina, MT dan Arifin ST, MT selaku dosen
pembimbing.
3. Semua dosen Politeknik Elektronika Nageri Surabaya - ITS,
bidang keahlian Telekomunikasi Multimedia atas dorongannya
4. Buat Miu miu tercinta, atas dukungan dan perhatiannya selama
ini
5. Teman-teman 3 Telkom A Politeknik Elektronika Negeri
Surabaya , atas dukungannya
6. Teman-teman bidang keahlian Telekomunikasi Multimedia
angkatan tahun 2003, atas kekompakannya
7. Dan semua pihak yang telah mendukungku.
Akhir kata, segala kritik dan saran sangat saya harapkan untuk
pengembangan penelitian selanjutnya.
Wassalamu’alaikum WR.Wb.
Penulis
v
DAFTAR ISI
JUDUL……………………………………………………………... i
PENGESAHAN…………………………………………………..... ii
ABSTRAK…………………………………………………………. iii
ABSTRACT………………………………………………………... iv
KATA PENGANTAR……………………………………………... v
DAFTAR ISI……………………………………………………….. vi
DAFTAR GAMBAR………………………………………………. vii
DAFTAR TABEL………………………………………………….. ix
BAB 1. PENDAHULUAN………………………………………… 1
1.1. LATAR BELAKANG…………………………………. 1
1.2. TUJUAN……………………………………………….. 1
1.3. BATASAN MASALAH……………………………….. 2
1.4. METODOLOGI………………………………………... 2
1.5. SISTEMATIKA PEMBAHASAN.................................. 3
vi
3.3 INSTALASI DIALOGIC CARD……………………….. 21
3.2.1 Konfigurasi Card …………………………………... 21
3.4 PERENCANAAN PROGRAM………………………… 22
3.4.1 Perekaman file suara menggunakan.
Multi Thread Program.................................................. 25
3.5 ALGORITMA PROGRAM…………………………….. 28
3.5.1 Memainkan file suara………………………………. 28
3.5.2 Pendeteksian Digit DTMF………………………….. 29
3.5.3 Transfer panggilan…………………………………. 29
3.6 FLOWCHART…………………………………………. 30
3.6.1 Memainkan file suara………………………………. 30
3.6.2 Pendeteksian Digit DTMF………………………….. 31
3.6.3 Transfer panggilan………………………………….. 32
3.7 SYNTAX-SYNTAX DIALOGIC………………………. 33
3.7.1 dx_open…………………………………………….. 34
3.7.2 dx_close…………………………………………….. 34
3.7.3 dx_sethook………………………………………….. 35
3.7.4 dx_wtring…………………………………………… 35
3.7.5 dx_dial……………………………………………… 35
3.7.6 dx_playiottdata……………………………………... 36
3.7.7 dx_getdig.................................................................... 36
3.8 DATA FILE SUARA…………………………………… 37
DAFTAR PUSTAKA……………………………………………… 49
LAMPIRAN………………………………………………………... 51
vii
DAFTAR GAMBAR
Gambar 2.1 PIM (Port Interface Module)........................... 12
Gambar 2.2 Dialogic Card D/41 JCT-LS………………... 17
Gambar 3.1 Diagram Kerja Sistem………………………. 19
Gambar 3.2 Flowchart Aplikasi………………………….. 22
Gambar 3.3 Jendela Dialogic Configuration Manager
setelah start..................................................... 22
Gambar 3.4 Jendela pembuatan project baru...................... 23
Gambar 3.5 Jendela link library.......................................... 23
Gambar 3.6 Menambahkan Include untuk Include
files milik dialogic........................................... 24
Gambar 3.7 Menambahkan Library untuk Library
Files milik dialogic......................................... 25
Gambar 3.8 Tampilan Voice Sample Program................... 25
Gambar 3.9 Tampilan Select Channel................................. 26
Gambar 3.10 Jendela set offhook........................................... 26
Gambar 3.11 Jendela record wav.......................................... 27
Gambar 3.12 Jendela select a file.......................................... 27
Gambar 3.13 Jendela record wav file.................................... 28
Gambar 3.14 Flowchart play suara....................................... 30
Gambar 3.15 Flowchart deteksi digit.................................... 31
Gambar 3.16 Flowchart transfer panggilan.......................... 32
Gambar 3.17 Jendela Microsoft Visual C++ sebelum
ditambahkan header........................................ 33
Gambar 3.18 Jendela Microsoft Visual C++ sesudah
ditambahkan header........................................ 34
Gambar 4.1 Tampilan deteksi digit…………………………. 40
Gambar 4.2 Sinyal suara 6KHz ADPCM.wav.................... 41
Gambar 4.3 Sinyal suara ADPCM8KHz.wav..................... 42
Gambar 4.4 Sinyal suara 8KHz LINEAR.wav................... 42
viii
DAFTAR TABEL
ix
BAB 1
PENDAHULUAN
1.2 TUJUAN
1
2
1.4 METODOLOGI
1. Perancangan Sistem
2.1 TELEPON
5
6
2.1.4 Alerting
• Dial Tone(DT)
Yaitu nada – nada yang berfungsi sebagai tanda bahwa
pelanggan telah terhubung dengan sentral (local loop
exchange closed). Nada ini terdengar saat pelanggan
mengangkat handset. Dial Tone adalah kombinasi nada
yang diperoleh dengan menambahkan dua nada dengan
frekuensi yang sedikit berbeda dan amplitudonya sama
yaitu 350 Hz dan 440 Hz.
.
• enganged tone (ET)
Nada ini terdengar sebagai tanda bahwa pemanggil tidak
berhasil untuk menghubungi tujuan. Hal ini disebabkan
antara lain oleh pesawat yang dihubungi sedang terpakai/
rusak atau lalu lintas pembicaraan terlalu padat (overload).
Ciri – ciri dari nada ini yakni bergantian antara ada dan
tidak ada selama 0.3 detik.
• Ringing Tone(RT)
Nada ini memberitahukan bahwa hubungan yang
diinginkan belum tersambung dan diharapkan kepada
penelpon untuk menunggu pengangkatan handset telepon.
Nada ini terdengar secara terputus-putus dengan tiga
periode 3 detik, yaitu 1 detik ada dan 2 detik tidak ada
nada.
• Number unobtainable(NU)
Yaitu nada sebagai tanda bahwa nomor yang dituju belum
terdaftar. Number Unobtainable mempunyai sinyal
kontinyu murni.
• Nada pulsa
Nada ini tidak begitu terdengar karena dikirim dengan
frekuensi 16 KHz dari sentral telepon dengan selang waktu
100 mili detik untuk setiap pulsa yang dikirim. Nada ini
mulai saat pertama lawan bicara mengangkat handset dan
diulang secara periodik untuk menghitung pulsa pada
sentral telepon.
9
Perangkat Modul PABX (NEAX 2000 IPS) terdiri dari PIM dan
rumah kabel yang saling terhubung. PIM (Port Interface Modul)
memiliki kapasitas fisik 64 port dengan dilengkapi tempat battery
back up internal. Dalam konfigurasi satu sistem maksimal terdiri dari
delapan
Keterangan :
LT00-LT11 Line/Trunk card mounting slot
AP00-AP11 Application Processor card mounting slot
MP PN-CP14 mounting slot
FP PN-CP15 mounting slot
VM PZ-VM00-M Mounting Slot
PFT PZ-8PFTB Mounting Slot
AC/DC PWR PZ-PW121/PW126 Mounting Slot
DC/DC PWR PZ-PW122 Mounting Slot
Keterangan :
• Conf : menyimpan data (save)
• Answer : membatalkan
• Redial : kembali ke command
• Speaker : menaikkan data
• Feature : menurunkan data
2.2.3 Program Penomoran
Pengesetan nomor ekstensi terdiri dari :
1. untuk telepon digital
Command 10 recall 000 recall F100 conf
Command 10 recall 001 recall F200 conf
Command 10 recall 002 recall F300 conf
Keterangan :
Command 10 : command untuk pengesetan ekstensi
000 : nomor jalur digital pada MDF
14
3.1 PENDAHULUAN
Program-program yang dibutuhkan untuk mewujudkan tugas
akhir ini meliputi beberapa hal pokok yaitu : Instalasi Dialogic
Card, play file suara , Pendeteksian Digit DTMF, dan transfer
Panggilan. Program-program yang dibuat memanfaatkan fitur-fitur
yang tersedia pada Dialogic Card
USER A PC + DIALOGIC
USER B
USER C
USER D
PABX NEAX 2000 IPS
19
20
Mulai
Menu pilihan:
• 100 = nomor lab. Komunikasi
digital.
• 200 = nomor lab. Optik
• 202 = Nomor lab. Radiowave dan
Propagasi.
• 204 = Nomor lab.multimedia.
Deteksi digit
yang ditekan
Tidak
Nomor ada
di pilihan?
Ya
Rekam suara
Ya
Sibuk?
Transfer
Tidak
Tidak No Ya
Sambung
Answer
Set on hook
Selesai
Prinsip kerja dari Proyek akhir ini sebagai berikut saat user A
(misal: nomor 100) ingin menghubungi user B (misal:nomor 200),
maka user A harus terlebih dahulu men-dial nomor dari dialogic
(server (101 atau 103)). Setelah tersambung akan ada menu pilihan
nomor telepon yang dipandu dengan suara dan akan dideteksi digit
yang ditekan oleh user A. Sebelum disambungkan ke nomor tujuan,
akan di-check apakah nomor yang ditekan terdapat dalam menu
pilihan, jika nomor yang ditekan tidak terdapat pada menu pilihan
maka program akan me-looping kembali ke menu awal dan meminta
user A untuk memasukkan kembali nomor yang ingin dihubungi
setelah nomor yang ditekan benar maka akan disambungkan ke
nomor tujuan. Setelah penyambungan ke jalur keluar server akan
mengecek status nomor yang dipanggil, dalam proyek ini terdapat
tiga buah kondisi yaitu kodisi dimana nomor yang dipanggil sedang
sibuk, no answer dan kondisi dimana transfer berhasil.
C:\Program Files\Dialogic\INC
C:\Program Files\Dialogic\LIB
mulai
Inisialisasi
Buka kanal
Ya
Error buka
kanal?
tidak
Buka file suara
Ya
Error buka
file suara?
tidak
Play suara
selesai
Mulai
Inisialisasi
Buka Channel
Ya
Error buka
kanal?
tidak
selesai
Mulai
Buka channel
Eror Ya
Tidak
Deteksi adanya
nada
Dial
Ya
Sibuk
Tidak
sambung
Set on hook
selesai
3.7.1 dx_open
Fungsi untuk membuka channel pada card tersebut,
fungsi yang lain baru dapat dijalankan setelah channel dibuka.
Int dx_open(namep.oflags)
3.7.2 dx_close
Fungsi untuk menutup channel setelah sebelumnya
dibuka dengan fungsi dx_open( ). Int dx_close (chdev). Setelah
channel ditutup dengan fungsi tersebut kita tidak dapat
menjalankan fungsi lainnya.
35
3.7.3 dx_sethook
Fungsi yang mengontrol status kondisi hook dari
channel tertentu,
Int dx_sethook(chdev, hookstate, mode)
Parameter Penjelasan
Chdev : menunjukkan channel yang sudah dibuka.
Hookstate : menunjukkan kondisi hook.
• DX_ONHOOK untuk kondisi onhook
• DX_OFFHOOK untuk kondisi offhook
Mode :
• EV_SYNC untuk menjalankan secara
sinkron
• EV_ASYNC untuk menjalankan secara
Asinkron.
3.7.4 dx_wtring
Fungsi yang menunggu banyaknya jumlah ring tone dan
merubah kondisi channel menjadi ON Hook atau Off Hook.
Int dx_wtring(chdev,nrings,hstate,timeout)
Parameter Penjelasan
Chdev : menunjukkan channel yang sudah
dibuka dx_open
Rings : banyaknya rings yang ditunggu
sebelum setting hookstate
hstate : hookstate
timeout : lamanya waktu untuk melaksanakan
fungsi tersebut.
3.7.5 dx_dial
Fungsi untuk men-dial dari ASCII string dari channel
open, idle dan memungkinkan untuk call Analysis untuk
mengetahui keterangan dari panggilan baik itu gagal (engaged)
atau berhasil (connect).
int dx_dial (chdev, dialstrap, capp, mode)
catatan :
• Dx_dial ( ) tidak berpengaruh pada hook state
• Dx_dial ( ) tidak menunggu dial tone sebelum men-dial.
3.7.6 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 yang telah dibuka dx_open
Iottp : menunjukkan nama file
Tptp : menunjukkan ke struktur DX_TPT
Xpbp : menujukkan ke struktur DX_XPB
Mode : menujukkan mode yang digunakan
• EV_SYNC : mode sinkron
• RM_RONE : mengirimkan sebuah tone
merekam file
• PM_TONE :menjalankan 200 ms audible
tone
3.7.7 dx_getdig
Fungsi ini digunakan untuk menerima digit dari penelpon.
Int dx_getdig (chdev,tptp, digitp, mode)
39
40
Delay sampai
No Jumlah waitring
off hook (detik)
1 1 3.20
2 1 3.70
3 1 2.23
4 1 2.35
5 2 3.80
6 1 3.36
7 1 3.32
8 2 3.75
9 1 3.07
10 1 3.20
⎛
Rata − rata = ⎜
∑ waktu ⎞
⎟
⎜
⎝ ∑ jumlah sample ⎟⎠
5.1 KESIMPULAN
Setelah dilakukan pengujian alat, maka diperoleh kesimpulan
dan yang diharapkan berguna untuk perbendaharaan ilmu dan
teknologi serta bagi kelanjutan dalam penyempurnaan alat ini.
Dari hasil pengujian dan analisa diperoleh beberapa kesimpulan
sebagai berikut :
• Dalam Transfer panggilan diperlukan minimal dua buah jalur
agar dapat terlaksana, dua jalur tersebut digunakan sebagai jalur
input dan output dialogic.
• Sistem informasi ini tidak menggunakan sistem hunting
sehingga ada dua jalur yang digunakan sebagai server yaitu
nomor 101 dan nomor 103, sedangkan dua jalur yang lain
digunakan untuk jalur transfer panggilan.
• Fungsi pendeteksian digit berakhir sesudah pemasukan
sejumlah digit maksimum yang telah di-set, sehingga digit
yang melebihi batas maksimum dianggap sebagai karakter
kosong. Delay maksimum untuk memasukkan 3 digit adalah 15
detik dan delay maksimum untuk setiap digit adalah 5 detik.
• Waktu rata-rata yang diperlukan untuk transfer sebesar 1,465
detik.
5.2 SARAN-SARAN
Saran untuk pengembangan pada proyek akhir di masa
mendatang :
• Sistem informasi yang menggunakan sistem hunting sehingga
hanya perlu satu nomor server.
• Sistem tidak hanya untuk penyambungan tetapi dapat dibuat
untuk percakapan.
47
48
DAFTAR PUSTAKA
49
LAMPIRAN
Algoritma Program
51
52
Dialogic D/41JCT-LS
Applications
• Voice messaging
• Interactive voice response
• Call center
• Audiotex
• Operator services
• Dictation
• Auto dialers
• Notification systems
• Online data entry/query
Configurations
Software Support
Functional Description
Each of four analog loop start telephone line interfaces on the D/41JCT-
LS board receives analog voice and telephony signaling information
from the telephone network (see block diagram). Each telephone line
interface uses reliable, solid-state hook switches (no mechanical
contacts) and FCC-part 68 class B ring detection circuitry. This FCC-
approved ring detector is less susceptible to spurious rings created by
random voltage fluctuations on the network. Each interface also
incorporates circuitry that protects against high-voltage spikes and
56
The audio voice signal from the network is bandpass filtered and
conditioned by the line interface and then applied to a CODEC
(COder/DECoder) circuit. The CODEC filters, samples, and digitizes
the inbound analog audio signal and passes this signal to a Motorola
56303* DSP.
The D/41JCT-LS board also supports optional Global DPD software that
recognizes dial pulse digits even in the most difficult telephony
environments.
When recording speech, the DSP can use different digitizing rates from
24 to 64 Kb/s as selected by the application for the best speech quality
and most efficient storage. The digitizing rate is selected on a channel-
by-channel basis and can be changed each time a record or play function
is initiated. The DSP processed speech is transmitted via the control
processor to the host PC for disk storage. When replaying a stored file,
the processor retrieves the voice information from the host PC and
passes it to the DSP, which converts the file into digitized voice. The
DSP sends digitized voice and appropriate signaling responses to the
CODEC to be converted into analog format for transmission to the
telephone network.
When using the D/41JCT-LS board and the CT Bus, digital voice and
signaling information from a network board or other resource enter the
board via the H.100 connector and CT Bus interface. A CT612 chip
manages these signals and acts as the traffic coordinator and matrix
switch to buffer the high-speed digital data from the bus until the data
for each channel can be transmitted to the DSP.
The CT612 chip transmits several lower speed data streams over the CT
Bus high-speed channel. The bus configuration is set when the firmware
58
With the rotary switch on the D/41JCT-LS board set to 0, the D/41JCT-
LS board is Plug and Play enabled. Configuration is handled exclusively
by software. Alternatively, you can set the rotary switch to another value
to manually control board location for ease of cabling or backwards
compatibility with Dialogic Board Locator Technology (BLT)
installation.
Technical Specifications**
Number of ports 4
Maximum 8
boards/system
59
MF SIGNALING:
MF digits 0 to 9, KP, ST, ST1, ST2, ST3 per Bellcore
LSSGR Sec 6, TR-NWT-000506 and CCITT
Q.321
Transmit level Complies with Bellcore LSSGR Sec 6, TR-NWT-
000506
Signaling Complies with Bellcore LSSGR Sec 6, TR-NWT-
mechanism 000506
Dynamic range for -25 dBm to +3 dBm per tone
detection
Acceptable twist 6 dB
Acceptable Less than ±1 Hz
frequency variation
CALL PROGRESS ANALYSIS:
Busy tone Default setting designed to detect 74 out of 76
detection unique busy/congestion tones used in 97 countries
as specified by CCITT Rec E., Suppl #2. Default
utilizes both frequency and cadence detection.
Application can select frequency only for faster
detection in specific environments.
Ring back Default setting designed to detect 83 out of 87
64
PULSE DIALING:
10 digits 0 to 9
65
Additional Components
‡
Analog levels: 0 dBm0 corresponds to a level of +3 dBm at tip-ring
analog point. Values vary depending on country requirements; contact
your Dialogic Technical Sales Representative.
1
Average speech mandates +16 dB peaks above average and preserves -
13 dB valleys below average.
LISTING PROGRAM
#include "stdafx.h"
#include "TA_taz02.h"
#include "TA_taz02Dlg.h"
#include <windows.h>
#include <fcntl.h>
#include <srllib.h>
#include <dxxxlib.h>
#include <stdio.h>
#include <string.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); //
DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
67
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTA_taz02Dlg dialog
//{{AFX_DATA_MAP(CTA_taz02Dlg)
// NOTE: the ClassWizard will add DDX and DDV
calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTA_taz02Dlg, CDialog)
//{{AFX_MSG_MAP(CTA_taz02Dlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnStart)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTA_taz02Dlg message handlers
BOOL CTA_taz02Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this
automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
void CTA_taz02Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND,
(WPARAM) dc.GetSafeHdc(), 0);
// The system calls this to obtain the cursor to display while the user
drags
// the minimized window.
HCURSOR CTA_taz02Dlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CTA_taz02Dlg::OnStart()
{
int chdev;
char number[4];
do
{
// buka kanal B1C1
if((chdev = dx_open("dxxxB1C1",NULL))==-1)
{
MessageBox("Error open channel");
exit(1);
}
SetDlgItemText(IDC_CHANNEL1,"Open channel success");
// Set on hook
if(dx_sethook(chdev,DX_ONHOOK,EV_SYNC)==-1)
{
71
MessageBox("Error on hook");
exit(1);
}
SetDlgItemText(IDC_HOOK1,"On hook success");
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;
{
MessageBox("Error get digit");
exit(4);
}
SetDlgItemText(IDC_DIGIT2,"Get digit success");
for(cnt=0;cnt<numdigs;cnt++){
digit[cnt]=digp.dg_value[cnt];
}
return(digp.dg_value[0]);
}
// Set up DX_IOTT
iott.io_fhandle = fd;
iott.io_bufp = 0;
iott.io_offset = 0;
iott.io_length = -1;
iott.io_type = IO_DEV | IO_EOT;
73
// Start playback
if (dx_playiottdata(chdev,&iott,&tpt,&xpb,EV_SYNC)==-1) {
printf("Error playing");
exit(1);
}
}
dx_clrcap(&capp);
capp.ca_nbrdna = 5;
if ((cares =
dx_dial(chdev,number,&capp,DX_CALLP|EV_SYNC)) == -1)
{
MessageBox("error on dial");
}
switch (cares)
{
case CR_BUSY:
MessageBox("nomor tujuan sedang sibuk");
74
SetDlgItemText(IDC_STATUS1,"Nomor
sibuk");
//playSuara(chdev,"sibuk.WAV");
break;
case CR_NOANS:
MessageBox("tidak ada jawaban");
SetDlgItemText(IDC_STATUS1,"tidak ada
jawaban");
//playSuara(chdev,"noAnswer.WAV");
break;
case CR_CNCT: // Call Connected, get some
additional info
//MessageBox("panggilan berhasil");
SetDlgItemText(IDC_STATUS1,"panggilan
berhasil");
playSuara(chdev,"MESSAGE.WAV");
break;
}
if((dx_sethook (chdev, DX_ONHOOK,
EV_SYNC))==-1)
{
MessageBox("set on hook error");
}
}
number[3]=getDigit(chdev,digit,1);
number[4]='\0';
SetDlgItemText(IDC_DIGIT1,number);
/* Start recording */
if
(dx_reciottdata(chdev,&iott,&tpt,&xpb,PM_TONE|EV_SYNC) == -1)
{
MessageBox("Error recording file");
exit(4);
}
}
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CTA_taz02Dlg dialog
// Dialog Data
//{{AFX_DATA(CTA_taz02Dlg)
enum { IDD = IDD_TA_TAZ02_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Implementation
protected:
HICON m_hIcon;
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately
before the previous line.
#endif //
!defined(AFX_TA_TAZ02DLG_H__760869F4_85E4_4459_8CB0_65
BE06E884BB__INCLUDED_)
...::: BIODATA :::..