وقتی بر روی Elastix می خواهید Dialplan نویسی کنید باید یکسری نکات را بدانیم، ما در این بخش یاد خواهیم گرفت که کجا وچگونه Dialplan نویسی کنیم.
همانطور که در بخش های قبلی عرض کردم برنامه Freepbx اجازه اعمال تغییر در فایل extension.conf را نمی دهد، اما برای نوشتن Dialplan یک فایل دیگری برای دیگران در نظر گرفته به نام extension_custom.conf که از این به بعد تمامی Dialplan های خود را داخل این فایل می نویسیم.
این نکته هم لازم است که بدانید خود Freepbx هم برای نوشتن Dialplan از فایل extension.conf استفاده نمی کند و به جای آن کد های خود را در extension_additional.conf می نویسید، مثلا وقتی بر روی محیط گرافیکی یک IVR می سازید کد های ایجاد شده توسط Freepbx در این فایل قرار می گیرند.
مثال زیر را ببینید، داخلی ۱۲۳ با ۴ خط و همچنین Context ی به نام test1
همانطور که می بینید یک Context به نامtest1 ساختیم و Dialplan خود را در داخلش قرار دادیم، حالا نوبت reload کردن Asterisk است.
Asterisk –rx “reload”
الان Extension 123 من آماده است اما فکر می کنید اگر من از روی یک داخلی که بر روی محیط گرافیکی ساختم و روی مثلا IPPhone خودم رجیستر کردم می توانم این ۱۲۳ را شماره گیری کنم؟ خوب نه ! همانطور که قبلا گفتم وقتی از طریق منوی گرافیکی Elastix یا همان Freepbx یک داخلی می سازید برنامه Freepbx در پشت ماجرا Context مر بوط به آن Extension را عبارت from-internal قرار می دهد و با توجه به اینکه در تعریف و ویژگی های Context داشتیم که آنها نسبت به یکدیگر ایزوله هستند پس Extension با Context ساخته شده from-internal نمی تواند به این Extensionی که الان ماساختیم دسترسی داشته باشد، مگر آنکه این امکان را به Context آن بدهیم، برای این منظور می توان از دستور include برای دسترسی به یک Context از Context دیگر استفاده نمود.
Freepbx برای اینکه ما براحتی بتوانیم Context هایی را که می سازیم در from-internal ، Include کنیم در فایل extension_custom.conf یک Context با نام from-internal-custom برای این منظور قرار داده است، پس مثال قبلی ما با اضافه کردن یک خط کامل تر می شود.
استریسک را دوباره reload می کنیم
Asterisk –rx “reload”
حالا اگر از روی داخلی رجیستر شده خود ۱۲۳ را شماره گیری کنید این Extension اجرا خواهد شد.