Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 PERANCANGAN PIRANTI ANTAR MUKA PENJAWAB TELPON OTOMATIS DENGAN BAHASA C Fuad Djauhari Jurusan Teknik Informatika, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Raya Sawo Manila, Pejaten No. 61, Jakarta 12520 Abstract Telephone as a communication device has been familiar to be used by people. Now it’s a need to response a phone call with a machine, especially for precise information based on database. For example when a phone caller ask an information about how much his phone pulse remaining in pulse database. If somebody have to answer to this phone call he has to querying the database first with the suitable query then he answer his client. It will make service lag, because the client has to wait people who answer his phone type some word in his computer. It can be bypassed with building an answering machine that will automaticelly query the database then answer the question based on the key that he stroke. For the purpose it’s need to build an interface between a phone and a computer, then a program to decode the keystoke and then program for respons the keystoke decoded. Key Words : Automatic answering machine, Phone Interfacing, DTMF Decoder Abstrak Dalam makalah ini kami mendesain suatu perekam otomatis pada pesawat telepon rumah dengan memanfaatkan fasilitas DTMF. Piranti perekam ini menggunakan fasilitas antar muka dengan komputer melalui terminal RS32. Sedangkan pemrograman yang digunakan adalah bahasa C.Dari hasil pengujian piranti diperoleh bahwa piranti bekerja secara reliabel dan realtime. Kata kunci: Penjawab telepon otomatis, antar muka, dekoder DTMF I. PENDAHULUAN Penggunaan telepon sebagai media komunikasi sudah umum dijumpai dalam masyarakat kita. Sebagai salah satu peranti elektronika telepon menggunakan sinyal dengan frekwensi tertentu untuk berkirim pesan. Pada saat melakukan dial (menekan nomor tujuan) dan pada saat terjadi komunikasi maka sinyal di lewatkan media kabel telapon untukberkomunikasi antara dua pihak yang sedang berhubungan. Selain dapat digunakan untuk berkomunikasi antar manusia, telepon juga dapat digunakan untuk berkomunikasi antara manusia dengan alat elektronik. Salah satu contohnya adalah komunikasi jarak jauh antara manusia dengan peranti komputer. Atau komunikasi jarak jauh antara manusia dengan perangkat elektronik pengaman rumah. Bagimana hal ini menjadi mungkin dilakukan? Pertanyaan ini akan terjawab dengan mempelajari bagaimana telapon menggunakan frekwensi untuk mengkodekan setiap tombol yang ditekan dari pesawat telpon yang digunakan. Sistem pengkodean menggunakan frekwensi yang saat ini diacu sebagai standar disebut DTMF (Dual Tone Multiple Freqwencies). Sebanarnya ada dua bahasan pokok yang bisa dikupas dari materi ini yaitu pembangkitan sinyal untuk melakukan dial secara elektronik dan pendekodean sinyal untuk menanggapi panggilan telapon secara elektronik. Dalam makalah ini penulis akan membatasi bahasan pada materi yang kedua yaitu mendekodekan 53 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 sinyal yang diterima untuk menanggapi pangglan secara elektronik. Aplikasi yang bisa dibangun dari bahasan ini adalah memberikan respon terhadap panggilan telepon menggunakan aplikasi komputer dengan menyediakan jawaban berdasarkan data yang tersedia di komputer misalnya querying terhadap basis data. Dalam pembahasan di sini penulis membatasi diri pada menyediakan interfacing dari Saluran telepon menjadi bilangan biner yang bisa di tangkap dari sebuah program saja. Langkah selanjutnya setelah modul interface ini dibuat adalah membuat program untuk menanggapi hasil pembacaan interface dan mengeluarkan sinyal suara berdasarkan hasil querying terhadap basis data akan di bahas pada makalah selanjutnya. II. DTMF (DUAL TONE MULTIPLE FREQUENCYS) Telpon PSTN maupun handphone saat ini menggunakan sistem yang dikenal secara umum disebut DTMF yaitu dual tone multiple frequencys. Telephon PSTN pada umumnya memiliki 10 buah tombol ditambah * dan # jadi jumlahnya adalah 12. sebenarnya disamping 12 angka dan simbol tersebut masih ada 4 huruf yang bisa kita letakan disana katakanlah A, B, C dan D. Jadi semuanya terdapat 16 tombol. Di dalam komunikasi ke enambelas tombol tersebut dikirimkan dengan 2 frekwensi yang berbeda. Satu frekwensi masuk ke dalam grup frekwensi tinggi dan satu frekwensi lagi masuk ke dalam grup frekwensi rendah. Masing masing grup memiliki 4 macam variasi (nilai frekwensi) sinyal sehingga dengan 2 grup fekwensi tadi dapat di kodekan 16 (4 pangkat 2) macam simbol. Untuk lebih jelas dapat dilihat pada tabel dibawah ini: Tabel 1. Frekwensi dan simbol yang di wakili Frekwensi Tinggi (High Frequencies) Frekwensi Rendah (Low Frequencies) 1209 Hz 1336 Hz 1477 Hz 1633 Hz 679 Hz 1 2 3 A 770 Hz 4 5 6 B 852 Hz 7 8 9 C 941 Hz * 0 # D Dari tabel 1 dapat di baca bahwa setiap penekanan tombol di pesawat telepon, telpon akan membangkitkan dua nada (tone) yaitu nada berfrekwensi tinggi dan satu nada berfrekwensi rendah. Kedua sinyal tersebut dikirimkan ke penerima. Dengan cara melakukan penguraian (decoding) terhadap kedua sinyal tadi maka penerima dapat mendeteksi tombol tombol apa saja yang ditekan oleh lawan bicaranya. Sifat inilah yang akan digunakan untuk membangun aplikasi perespon telepon menggunakan peranti elektronik, yaitu interface dan komputer. III.PERANCANGAN RANGKAIAN DTMF DECODER Untuk menangkap tombol apa yang ditekan oleh penelepon maka peranti pertama yang harus disediakan adalah peranti yang bertugas mendeteksi sinyal apa yang dikirimkan. Jika sinyal yang dikirimkan bukan sinyal bicara melainkan sinyal yang dikarenakan penekanan 54 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 tombol telepon maka dapat digunakan tabel 1 untuk melakukan pendekode-an. Untuk itu diperlukan sebuah rangkaian elektronik yang mendapat masukan dari kabel telepon dan keluaran bilangan hasil pendekodean sinyal tersebut. Jika dilihat tombol tombol yang di kodekan ada 16 buah, digunakan 2 buah nada dengan variasi nilai masing masing nada 4 nilai. Keluaran dari rangkaian ini yang diharapkan adalah bilangan biner 4 digit. Dari tabel 1 dapat di buat tabel 2 dibawah ini yang menunjukan konversi masukan menjadi keluaran. Karena ada 16 buah keluaran sebetulnya keluran ini jika dilambangkan dengan bilangan biner dapat diwakili dengan 4 bit bilangan biner dari 0000 sampai dengan 1111. Tabel 3.1 Fungsi Transfer dari input menjadi output. Frekwensi Frekwensi Tombol rendah Tinggi yang ditekan 679 Hz 1209 Hz 1 679 Hz 1366 Hz 2 679 Hz 1477 Hz 3 679 Hz 1633 Hz A 770 Hz 1209 Hz 4 770 Hz 1366 Hz 5 770 Hz 1477 Hz 6 770 Hz 1633 Hz B 852 Hz 1209 Hz 7 852 Hz 1366 Hz 8 852 Hz 1477 Hz 9 852 Hz 1633 Hz C 941 Hz 1209 Hz * 941 Hz 1366 Hz 0 941 Hz 1477 Hz # 941 Hz 1633 Hz D Untuk keperluan mendekode masukan tersebut diperlukan sebuah peranti elektronika dengan masukan sinyal telepon dan keluaran logika 4 bit. Untuk keperluan ini dapat digunakan salah satu produk IC Dual Tone Multiple Frquencies Dekoder yaitu MT8770 produk MITEL 55 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 Gambar 3.2 Diagram blok IC MT8770. Tabel 3 Daftar Keluaran Hasil Dekode sinyal IC MT8770 : Digit TOE NH ES1 Q4 Q3 Q2 Q1 ANY L X H Z Z Z Z 1 H X H 0 0 0 1 2 H X H 0 0 1 0 3 H X H 0 0 1 1 4 H X H 0 1 0 0 5 H X H 0 1 0 1 6 H X H 0 1 1 0 7 H X H 0 1 1 1 8 H X H 1 0 0 0 9 H X H 1 0 0 1 0 H X H 1 0 1 0 * H X H 1 0 1 1 # H X H 1 1 0 0 A H L H 1 1 0 1 B H L H 1 1 1 0 C H L H 1 1 1 1 D H L H 0 0 0 0 A H H L B H H L Output Tidak Terdeteksi C H H L D H H L H = Logika High L = Logika Low 56 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 X = tidak diperhatikan Z = Impedansi Tinggi 1 = Logika 1 standar TTL 0 = Logika 0 Standar TTL IV. INTERFACING RANGKAIAN DTMF DECODER DENGAN KOMPUTER Untuk membuat interface ke komputer agar dapat dibuat sebuah aplikasi mesin penjawab telepon digunakan rangkaian dengan komponen utama IC MT8770. Keluaran dari IC MT8770 akan diablil empat digit dari Q1 sampai Q3 di alirkan melalui port paralel. Masukan melalui port paralel ini akan ditangkap sebagai bilangan biner 0000 sampai dengan 1111. Jeda masukan melalui port paralel satu ke berikutnya diberikan jeda (delay) minimal. Masukan dari port paralel kemudian ditangkap oleh sebuah program untuk mengartikan tombol yang ditekan. Contoh program untuk mendekodekan dalam bahasa C adalah sebagai berikut : Program 1 DTMF Decoder #include <stdio.h> #include <ctype.h> #include <math.h> #include <conio.h> #define BITS 0xFF00 #define NOISE 0 /* enable noise shaper */ #define TON 0.100 /* tone duration */ #define TOFF 0.100 /* silence duration */ #define RAMP 0.002 /* tone rise and fall time */ #define RATE 11025.0 /* sample rate */ #define numberof(n) (sizeof(n)/sizeof(*n)) struct { char letter; double f1, f2; } button[] = { {'1', 697, 1209}, {'2', 697, 1336}, {'3', 697, 1477}, {'A', 697, 1633}, {'4', 770, 1209}, {'5', 770, 1336}, {'6', 770, 1477}, {'B', 770, 1633}, {'7', 852, 1209}, {'8', 852, 1336}, {'9', 852, 1477}, {'C', 852, 1633}, {'*', 941, 1209}, {'0', 941, 1336}, 57 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 {'#', 941, 1477}, {'D', 941, 1633}, {'X', 20, 20}, {'Y', 100, 100}, {'Z', 500, 500}, }; int main(void) { double t, v=0; char c; int value=0, n; FILE *fout; puts("Press 123A456B789C*0#D to digitize DTMF-tones to file. Fs=11025. ESC quits."); fout = fopen("x", "wb"); while (1) { c = toupper(getch()); if (c == 0x1B) break; for (n=0; n<numberof(button); n++) { if (c==button[n].letter) { putchar(c); for (t=0.0; t<TON; t+=1/RATE) { v = sin(2*M_PI*button[n].f1*t) + sin(2*M_PI*button[n].f2*t); if (t<RAMP) /* See Note Below */ v *= t/RAMP; /* See Note Below */ if (t>TON-RAMP) /* See Note Below */ v *= (TON-t)/RAMP; /* See Note Below */ #if NOISE value = floor(v*(BITS/4)+BITS/2) + (value&~BITS); #else value = floor(v*16383+32768.5); #endif fputc((value&BITS)>>8, fout); } for (t=0.0; t<TOFF; t+=1/RATE) fputc(0x80, fout); } } } putchar('\n'); fclose(fout); return 0; } v *= (TON-t)/RAMP; 58 Jurnal Artificial, ICT Research Center UNAS Vol.2 No.1 Januari 2008 ISSN 1978-9491 #if NOISE value = floor(v*(BITS/4)+BITS/2) + (value&~BITS); #else value = floor(v*16383+32768.5); #endif fputc((value&BITS)>>8, fout); } for (t=0.0; t<TOFF; t+=1/RATE) fputc(0x80, fout); } } } putchar('\n'); fclose(fout); return 0; } V. KESIMPULAN Berdasarkan teori operasi yang digunakan oleh sistem telepon khususnya PSTN yang menggunakan sistem Dua suara dengan beberapa frekwensi (Dual Tone Multiple Frequencies ), dengan standar yang persinyalan yang dapat dilihat pada tabel 1 dapat dibuat sebuah rangkaian untuk mendekode tombol yang ditekan. Untuk mendekode dapat digunakan salah satu produk IC yaitu IC MT8770 yang mampu mendekode sinyal masukan menjadi sinyal keluaran dalam bentuk bilangan biner 4 digit. Bilangan biner 4 digit ini dapat ditangkap oleh port paralel dan dimanfaatkan oleh komputer untuk membuat aplikasi selanjutnya yaitu mesin penjawab. Contoh program sederhana dalam bahasa C diatas dapat dijadikan contoh untuk pengambangan aplikasi yang dimaksud. Aplikasi mesin penjawab telpon otomatis berdasarkan sebuah isi basis data saat ini aplikasinya banyak sekali dibutuhkan oleh masyarakat untuk keperluan otomatisasi pelayanan. Sebagai contoh aplikasi yang biasa dilakukan adalah pada saat pengisian pulsa handphone. Selain untuk keperluan itu dapat pula dibuat aplikasi untuk memberikan informasi tentang jumlah tagihan, batas waktu pembayaran pajak di kantor pajak kendaraan bermotor. Oleh karena itu pengembangan penelitian penerapan aplikasi ini masih sangat terbuka. DAFTAR PUSTAKA [1] [2] [3] [4] [5] [6] Topic 7, “Digital Telepony”, Siemens AG, Munich, June, 1983. Clark M.P., “Network and Telecommunications”, John Wiley & Sons Ltd, England, 1991 Depati, G., “Saluran Transmisi Gelombang dan Teorema Jaringan”, Erlangga, 1987. PT. Radio Frequency Communication, “Sistem Komunikasi Satelit”, Bandung, 1981. Tolsma, R. and Pc Den Heijer, “Komunikasi Data”, Erlangga, 1988. Siemens, “Basic of Digital Switching and Transmission with Pulse Code Modulation”, Munich, 1982. 59