Tutorial Asterisk V
10/07/08 15:52
Dasar-dasar Dialplan
Dialplan adalah inti dari Asterisk, dan segala sesuatu bermula dari sini.
Untuk membuat dialplan dibutuhkan dua file penting di /etc/asterisk. Pertama adalah extensions.conf (menggunakan model asli dan prioritas),yang kedua adalah extensions.ael (menggunakan bahasa ekstensi Asterisk yang baru);
Kita akan menggunakan model prioritas tradisional, meskipun pada versi 1.4, extension.ael telah diubah dalam format prioritas dan ditambahkan ke extensions.conf ketika Asterisk dijalankan.
Context
Asterisk dialplan dibagi dalam dua bagian, dan masing-masing bagian disebut sebagai context. Setiap dialplan harus dimulai dari sebuah context [general]
tempat untuk memasukkan konfigurasi global, tetapi context selanjutnya dapat memiliki nama apa saja. Contexts dapat berarti peralatan fisik (biasanya telephone, atau lainnya; sebagai contoh, SIP atau ZAP) yang dihubungkan terhadapnya. Konfigurasi untuk setiap peralatan, bisa softphone, hardphone atau outgoing trunk, harus ditentukan context defaultnya. Berikut contoh dari sip.conf:
[2000] type=friend context=intra-telpun secret=1234 host=dynamic
Peralatan SIP yaitu 2000 selalu memulai panggilan dalam context intra-telpun. Maksudnya, jika penelepon menggunakan telepon ini untuk melakukan panggilan, Asterisk akan melihat pada context intra-telpun untuk sebuah extensi yang cocok dengan nomor panggilan. Jika tidak ada yang cocok, tidak akan dilakukan apa-apa.
Penulisan
Contexts dibuat dengan sebuah nama dalam kurung siku (”[” dan “]”). Idealnya, namanya harus sesuai dan membantu penggunaan dari context itu. Nama ini juga akan digunakan untuk mengacu pada context lainnya, mungkin dalam context lain atau di file konfigurasi Asterisk lain. Semua baris sesudah nama context adalah bagian dari context itu, sampai terdapat context berikutnya:
[general] [intra-telpun] Aturan, perintah, dsb. [fitur] Aturan, perintah, dsb.
Extension
Setiap isian di extensions.conf disebut extensions. Extensions diterjemahkan oleh Asterisk setiap panggilan dibuat, tetapi extensions.conf hanya dibaca oleh Asterisk pada waktu pertama dijalankan. Anda juga dapat memperbarui dialplan selama beroperasi melalui CLI (Command Line Interface) dengan memasukkan perintah reload now
(yang akan memanggil kembali semua konfigurasi) atau extensions reload
(yang hanya akan memanggil kembali dialplan).
Penulisan
Sebuah extension terdiri dari beberapa bagian:
- Extension (Nama atau nomor)
- Prioritas (semacam nomor baris program)
- Applikasi – sebuah aplikasi yang memberitahukan Asterisk apa yang harus dilakukan dengan panggilan.
exten => Extension,Prioritas,Aplikasi
contoh:
exten => 123,1,Answer()
Aplikasi-aplikasi penting
Untuk membuat contoh dialplan pada bahasan ini, kita perlu aplikasi-aplikasi dasar berikut:
- Answer()
Aplikasi Answer() bertugas untuk menjawab sebuah panggilan. Ketika sebuah kanal berbunyi, Answer() memberitahu Asterisk untuk “menerima secara maya.” - Hangup()
Hangup() kebalikan dari Answer(). Sebuah koneksi aktif dihentikan, dan Asterisk “menutup” penerimaan maya. - Playback(Filesuara)
Aplikasi ini memberitahu Asterisk untuk memainkan file suara tertentu. Secara default, akan memainkan file suara yang terdapat dalam /var/lib/asterisk/sounds/, tetapi anda dapat juga menentukan directory lainnya. Tidak ada extension file yang diberikan karena directory mungkin berisi suara yang sama dalam format yang berbeda. Asterisk akan memilih format yang paling sesuai. - Wait(angka)
Wait() bisa diartikan sebagai jeda/pause; Angka mengindikasikan berapa detik untuk jeda. - NoOp(string)
Aplikasi ini tidak melakukan apa-apa. “NoOp” berarti “no operation.” Aplikasi ini berguna ketika anda mencoba mengatasi permasalahan dengan dialplan anda. Ketika NoOp(string) dijalankan, Asterisk mencetak string pada CLI, hanya kelihatan jika tingkat verbosity diatur ke 3 (anda dapat melakukan dengan mudah dengan memasukkan perintah set verbose 3 pada CLI). - VoiceMail(mailbox,u)
Memungkinkan pemanggil meninggalkan pesan suara dalam mailbox yang dibuat. - VoiceMailMain()
Menyediakan akses ke sistem voicemail. Pemilik mailbox akan menggunakannya untuk mengambil pesannya.
Prioritas
Ekstensi pada umumnya terbentuk dari beberapa baris. Masing-masing baris mempunyai prioritas, jadi Asterisk tahu urutan dalam menjalankan perintah-perintah itu. Jika anda pernah mengenal versi pertama dari BASIC, anda mungkin sudah biasa dengan nomor baris; prioritas bekerja dengan cara yang sama, tetapi dengan satu perbedaan penting. Aplikasi dijalankan dengan urut nomor dari yang kecil ke besar, tetapi tidak ada selisih! Jika Asterisk menjalankan isian dengan prioritas n, maka akan dilihat isi selanjutnya pada n+1. Jika tidak dapat menemukan pada n+1, maka akan berhenti menjalankan tanpa menampilkan kesalahan pada CLI.
prioritas n
Untuk membuat kerja dengan prioritas menjadi mudah, mulai dari Asterisk versi 1.2 ke atas telah mendukung prioritas n. Prioritas n seperti penomoran otomatis; ketika Asterisk menjalankan dialplan dan mendapatkan isian dengan prioritas n, langsung saja dijalankan karena sama juga dengan prioritas sebelumnya ditambah 1. Hal ini berguna ketika anda memiliki ekstensi dengan banyak isian dan anda perlu menambah atau menghilangkan sebuah isian, karena menghemat tenaga daripada menulis ulang nomor-nomor pada extension. Contoh berikut mengilustrasikan apa yang kami maksud. Sebuah standar extensi akan kelihatan seperti berikut:
exten => 1234,1,Answer() exten => 1234,2,Wait(2) exten => 1234,3,Playback(hello-world) exten => 1234,4,Wait(2) exten => 1234,5,Hangup()
Anda dapat membuat extension yang sama dengan prioritas n:
exten => 1234,1,Answer() exten => 1234,n,Wait(2) exten => 1234,n,Play(hello-world) exten => 1234,n,Wait(2) exten => 1234,n,Hangup()
Anda dapat memulai menggunakan prioritas n di sembarang baris pada ekstensi, selama semua isian menggunakannya:
exten => 1234,1,Answer() exten => 1234,2,Wait(2) exten => 1234,3,Play(hello-world) exten => 1234,n,Wait(2) exten => 1234,n,Hangup()
dikirim oleh: M. Zudha Ghofur
Artikel Terkait
Membuat Conference Call di AsteriskMembuat Ring Back Tone lebih menarik dengan Asterisk
Tutorial Asterisk III