extensions.conf dosyasındaki Dialplan, Context adı verilen bölümler halinde organize edilir. Context'ler, Dialplan içindeki temel organizasyon birimleridir ve bu sayede Dialplan'ın farklı bölümlerini birbirinden bağımsız tutarlar.
1. Dialplan Context'leri
Bir Context'in sözdizimi (syntax), yapılandırma dosyalarındaki diğer herhangi bir bölüm başlığıyla tamamen aynıdır. Context adını köşeli parantez içine yerleştirmeniz yeterlidir.
[users]
2. Dialplan Extension'ları
Her Context içinde bir veya daha fazla Extension tanımlayabiliriz. Bir Extension, basitçe isimlendirilmiş bir eylemler kümesidir. Bir Extension'ın sözdizimi şöyledir:
exten => number,priority,application(parameter1,parameter2...)
Örnek:
exten => 6001,1,Dial(PJSIP/demo-alice,20)
3. Dialplan Priority'leri
Her Extension içinde bir veya daha fazla Priority bulunmalıdır. Bir Priority, basitçe bir sıra numarasıdır. Bir Extension üzerindeki ilk Priority önce yürütülür, ardından sıradaki gelir.
Priority Harfi 'n'
Priority numaraları, birden büyük olanlar için n (next) harfi kullanılarak basitleştirilebilir. Bu, Asterisk'in bir önceki numaranın bir fazlasını otomatik olarak atamasını sağlar.
exten => 6123,1,NoOp()
exten => 6123,n,Verbose("İlk adım bitti")
exten => 6123,n,Verbose("Sıradaki adım")
4. Priority Etiketleri (Labels)
Belirli bir Priority numarasına etiket atayarak, Dialplan içinde o noktaya geri dönmeyi (jump) kolaylaştırabilirsiniz.
exten => 6123,1,NoOp()
same => n(repeat),Verbose("Döngü noktası")
same => n,Goto(repeat)
5. Dialplan Arama Sırası
- Açık (Explicit) Extension'lar
- Desen eşleşmeli (Pattern match) Extension'lar
- Include'lar
- Switch'ler