با سلام
گروه VoIP-IRAN، برای آن دسته از دوستانی که آموزش مقدماتی برنامه نویسی روی asterisk را درخواست کرده بودند، مقالاتی را آماده کرده است، امیدواریم این مقالات برای شما مفید واقع شود.
[size=3][color=navy]فصل اول - تعاریف مقدماتی dialplan[/color][/size]
Dialplan ، قلب هر استریسک است .در dialplan مشخص می شود استریسک چگونه تماس های ورودی و تماس های ارسالی را اداره کند.
Dialplan استریسک در فایل [color=black]extensions.conf[/color] قرار دارد (extensions.conf معمولاً در مسیر [color=black]/etc/asterisk[/color] قرار دارد.
مسیر های معمول دیگر این فایل در [color=black]/usr/local/asterisk/etc/ [/color] و [color=black]/opt/asterisk/etc/[/color] است.)
Dialplan از چهار مفهوم اصلی تشکیل شده : [color=black]context[/color] ها، [color=black]extension[/color] ها، [color=black]priority[/color] ها و [color=black]application[/color] ها.
[size=3][color=navy]:Contexts[/color][/size]
Dialplan ها به بخش هایی که contexts نامیده می شود، تقسیم شدند.
Contexts گروهیextensions را نام گذاری می کند و قسمت های مختلف dialplan را از ارتباط متقابل با یکدیگر متمایز می کند. extension ی که در یک context مشخص شده، از extension های context دیگر ، کاملاً مجزا است، مگر اینکه ارتباط متقابل اجازه داده شود.
یک مثال ساده زمانی است که بخواهیم دو کمپانی از یک سرور استریسک استفاده کنند. اگر منوی صوتی هر کمپانی را در context مربوط به خودش قرار بدهیم، در واقع آنها را از هم جدا کردیم.ما می توانیم مشخص کنیم، اگر extension صفر شماره گذاری شود چه اتفاقی رخ دهد: تماس گیرندگانی که عدد صفر را در منوی صوتی کمپانی A شماره گیری کنند،پاسخ کمپانی A را دریافت کنند و تماس گیرندگانی که عدد صفر را در منوی صوتی کمپانی B وارد می کنند ، پاسخ کمپانی B را دریافت کنند. این مثال نشان می دهد، ما به استریسک می گوییم، وقتی تماس گیرندگان عدد صفر را شماره گیری می کنند تماس را به سمت اپراتور بفرست.
Context ها با قرار گرفتن در براکت ([]) از هم تفکیک می شوند. نام آنها می تواند از حروف A تا Z (حروف کوچک و بزرگ) –اعداد بین 0 تا 9 و hyphen و underscore ، تشکیل بشود.(نام context ماکزیمم 79 کاراکتر می تواند داشته باشد)
مثلاً Context برای تماس های ورودی می تواند شبیه این باشد :
[left][color=black][incoming][/color][/left]
تمام دستورالعمل بعد از context قرار می گیرد. در ابتدای dialplan دو context خاص به نام های [general] و [globals] قرار دارد. [general] شامل لیست تنظیمات کلی dialplan است و [globals] درباره ی متعییر هایی است که آنها را تعریف می کنید و در dialplan از آن متغییر ها استفاده می کنید، مانند زیر :
[left][color=black][globals][/color][/left]
[left][color=black]BAGHERI=ZAP/1[/color][/left]
به غیر از این دو context خاص، شما context هاتون را هر چیزی که دوست دارید نام گذاری می کنید.
وقتی شما channel ها را مشخص می کنید( channel، مشخص می کند چگونه ارتباط ها را به سیستم اتصال دهید)،
یکی از پارامترهایی که باید در channel مشخص کنید، context است.در واقع context نقطه ی شروع در dialplan ، برای اتصالی که از آن channel آغاز می شود، است .
[size=3][color=navy]:Extensions[/color][/size]
در دنیای ارتباط از راه دور، کلمه extension معمولاً به شناسه عددی داده شده به خطی که به تلفن خاصی زنگ می زند، ارجاء داده می شود. در استریسک، extension سری مراحل منحصر بفردی را مشخص می کند.در داخل هر context می توانیم چندین extension بنا به نیازمان تعریف کنیم، زمانیکه یک extension خاص از طریق تماس وارد شده یا رقمی که در channel شماره گیری شده، صدا زده می شود، استریسک مراحل تعیین شده در آن extension را طی می کند.
دستورالعمل برای تعریف extension ، کلمه exten است . بعد از کلمه exten ، فاصله و بعد مساوی ، علامت بزرگ تر قرار می گیرد، مانند زیر :
[left][color=black]<= exten[/color] [/left]
و به دنیال آن شماره extension قرار می گیرد. نام یک extension می تواند از ترکیب عدد و حروف باشد، ولی برای ارتباط با سیستم های قدیمی تلفنی بهتر است از اعداد برای نام گذاری extension استفاده شود.
یک extension کامل از 3 قسمت تشکیل شده:
1- نام یا شماره extension
2- اولویت (هر extension می تواند شامل چند مرحله باشد، شماره مرحله “priority” نام دارد.
3- Application ، یا دستور که عملی را برای آن تماس انجام می دهد.
این 3 قسمت توسط ویرگول از هم جدا می شوند.
[left][color=black]exten => name,priority,application[/color][/left]
یک مثال ساده از تعریف یک extension واقعی در زیر آمده است:
[left][color=black]exten => 123,1,Answer[/color][/left]
در مثال بالا، نام extension ، 123 است و اولویت آن 1 و عمل تعریف شده برای آن Answer است .
در فصل دوم ، priority و application توضیح داده می شود.