در این بخش می خواهیم اولین Dialplan خود را بسازیم .با یک مثال بسیار ساده شروع می کنیم.
می خواهیم در استریسک پاسخ به تماس، پخش فایل صوتی و قطع تماس را ایجاد کنیم. فرض می کنیم یک کانال
(Zap یا SIP یا IAX2 ) ساخته و پیکربندی شده و تمام تماسها از طریق آن Channel وارد dialplan و واردcontext
[color=black][incoming] [/color]می شوند.
قبل از شروع، لازم است extension ، s توضیح داده شود. وقتی تماسی بدون مقصد مشخصی وارد extension می شود. برای مثال زنگ زدن خط FXO ، آن تماس به extension ، S فرستاده می شود.(S، مخفف Start ، است)
S ، جایی است که تماس شروع می شود برای زمانیکه extension خاصی با تماس ارسال نشده باشد .
ما برای تماس وارد شده، سه action قرار می دهیم(پاسخ به تماس، پخش یک پیام، و قطع تماس).
پس برای extension ، S سه اولویت قرار می دهیم.
برای اینکه تمام تماس های ورودی با این context شروع شوند، این سه اولویت را زیر [incoming] قرار می دهیم،.
[left][color=black][incoming][/color][/left]
[left][color=black]()exten => s,1,application[/color][/left]
[left][color=black]()exten => s,2,application[/color][/left]
[left][color=black]()exten => s,3,application[/color][/left]
کاری که باید انجام بدهیم، قرار دادن application های مورد نیاز است.
[color=navy]Application های ()Answer(),Playback, و Hangup()
[/color]
Answe() ، application برای پاسخ به channel ی است که زنگ می زند.این مرحله ابتدایی برای کانالی است که تماس ورودی را دریافت می کند. بعضی از application ها نیاز به answer کردن نیاز ندارند ولی بهتر است کانال قبل از انجام action های دیگر answer شود.
نکته این که application ها حتماً با حرف بزرگ شروع می شوند.
Application Playback ، برای پخش فایل صوتی است که از قبل ضبط شده، در طی پخش پیام، تماس گیرنده، هیچ داده ای نمی تواند وارد کند.
(استریسک فایل های صوتی ضبط شده خودش را در دایرکتوری زیر قرار می دهد)
[left][color=black]var/lib/asterisk/sounds/[/color][/left]
برای استفاده از Playback ، فایل مورد نظر را بدون پسوند فایل مشخص می کنید.مثلاً (نام فایل) Playback
آن، فایل را که با پسوند gsm در دایرکتوری مشخص شده قرار دارد، پخش می کند.
شما می توانید مسیرکامل فایل مورد نظر خودتان را برای پخش بدهید.
[left][color=black](Playback/home/bagheri/sounds/(filename[/color][/left]
مثال بالا فایلی که در آن مسیر و با پسوند .gsm قرار دارد، پخش می کند.
شما می توانید از یک مسیر نسبی، از دایرکتوری استریسک استفاده کنید.
[left][color=black](Playback(custom/(filename[/color][/left]
مثال بالا فایلی که در مسیر /var/lib/asterisk/sounds/custom/filename.gsm قرار دارد را پخش می کند.
اگر فایلی با این نام، با پسوندهای مختلف وجود داشته باشد، استریسک به طور اتوماتیک بهترین فایل را از لحاظ کیفیت پخش می کند.
Application Hangup() ، کانال فعال را Hangup می کند، شما باید از این application در انتهای context ، جاییکه می خواهید تماس جاری را قطع کنید، استفاده کنید.
اولین مثال را با پخش پیام خوشامدگویی آغاز می کنیم.در اولویت اول extension ، به تماس پاسخ داده می شود، در دومی فایل صوتی به نام hello-world.gsm پخش می شود و در سومی تماس قطع می شود:
[left][color=black][incoming][/color][/left]
[left][color=black]()exten => s,1,Answer[/color][/left]
[left][color=black](exten => s,n,Playback(hello-world[/color][/left]
[left][color=black]()exten => s,n,Hangup[/color][/left]
فایلی به نام extensions.conf در مسیر /etc/asterisk بسازید و چهار خط بالا را در آن قرار دهید، در صورتیکه کار نکرد، از کنسول استریسک پیغام خطا استریسک را بررسی کنید و مطمئن شوید کانال شما به context ، [incoming] ، ارجاء داده شده.
این مثال بسیار ساده، مفهوم context , extension , priorities را بیان می کند . اگر مثال بالا را پیاده سازی کردید، دانش مقدماتی اینکه چگونه dialplan ها ساخته می شوند را فرا گرفته اید.
لطفاً نظرات و انتقادات خودتان را مطرح کنید، ممنون.
