اطلاعیه

بستن
No announcement yet.

Extension چیست؟

بستن
این موضوع بسته شده است.
X
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

  • Extension چیست؟

    چگونه یک Extension بنویسیم، در ابتدا با ساختار نوشتن آن آشنا می شویم.
    exten => extension_name, priority, application
    خوب در ابتدای خط exten => را می بینیم که همیشه به همین شکل تکرار می شود ! خوب پس یعنی خیلی نکته مهمی در خصوص این بخش نداریم البته در قسمت های بعمی میبینیم می توانید همین را هم یکم خلاصه تر کنیم، اما می رسیم به 3 بخش اصلی یک Extension
    • [*=right] Extension_name:

    نام یک Extension و همان چیزی که برای دسترسی به این Extension آن را صدا باید بزنیم، اگر بخواهم یکم ساده تر بگم این همان شماره داخلی (Extension) ما است، ولی خوب در واقع نام Extension فقط عدد نیست و می تواند شامل کاراکتر های دیگر نیز باشد.
    نکته: Extension ما هر چند خط که دارد در تمای آنها نام آن باید یکسان تکرار شده باشد.
    نکته: برای نام یک Extension می توانید از DialPattern ها نیز استفاده کنیم، مطمئنا با آنها آشنایی دارید اما اگر برای اولین بار است همچین چیزی را می شنوید توصیه می کنم حتما به سراغ کتاب Elastix Easy بروید و DialPattern ها را خوب یاد بگیرید. همچنین فراموش نکنید وقتی جای نام از DialPattern استفاده می کنید باید اول آن یک زیر خط (_) قرار دهید، اما اگر می خواهید بدانید چرا، باید بگم چون نام داخلی می تواند کاراکتر هم داشته باشد پس برای اینکه مشخص کنیم این نام داخلی است یا DialPattern با قرار دادن _ اول آن این تمایز را قایل می شویم.
    $1v مثال:
    [test-pattern]
    exten => _2xx,1,Answer()
    exten => _2xx,n,NoOP(line2)
    exten => _2xx,n,NoOp(line3)
    exten => _2xx,n,Hangup()
    در این مثال Extension ما دیگر یک نام مشخص ندارد بلکه به وسیله DialPattern یک گروهی از نام ها را شامل می شود، _2xx شامل تمامی اعداد بین 200 الی 299 می شود و هر کس عددی ار بین آنها را شماره گیری کند این Extension اجرا خواهد شد.
    • [*=right] Priority:

    اولویت تکرار خطوط، ترتیب تکرار خطوط، همانطور که از تعریف مشخص است برای وقتی است که Extension ما چند خطی است و این پارامتر به Asterisk کمک می کند تا بفهمد بعد از هر خط چه خطی باید اجرا شود، نکته مهم اینجاست که priority حتما از عدد 1 شروع می شود و خط 2 به بعد می توانند اعداد دیگری را بگیرند، در مثال ها بهتر با کاربرد آن آشنا خواهید شد.
    نکته: اگر Extension ما یک خطی است، باز هم priority باید نوشته شود و مقدار 1 را خواهد داشت.
    • [*=right] Application:

    مهمترین و جذاب ترین بخش یک خط از Extension، در این بخش باید نام یک Application از Asterisk اینجا نوشته شود و همچنین می توانیم پارامتر هایی را به آن App پاس بدهیم، در بخش بعدی با مهمترین و پرکاربرد ترین Application های Asterisk آشنا خواهید شد.

  • #2
    Dialplan خط به خط اجرا می شود و در هر خط یک کاری انجام می پذیرد، به هر یک یا چند خط از Dialplan که دارای نام یکسان هستند extension گفته می شود، یک context می تواند شامل یک یا چند extension باشد. همانطور که می بینید مفهوم extension در asterisk بسیار جامع تر از آن چیزی است که قبلا در منوی PBX Configuration دیده بودید و از آن فقط برای رجیستر شدن و زنگ زدن استفاده می کردید.
    Extension در asterisk یعنی یک یا چند برنامه که پشت سر هم که با یک نام واحد فراخوانی و اجرا می شوند. پس Dialplan به چند context تقسیم بندی می شود و هر context می تواند شامل یک یا چند extension باشد.
    Asterisk در هنگام آغاز هر تماس (initiated call) به جستجوی شماره Extension گرفته شده در فایل extension.conf و یا فایل های وابسته می کند تا بیتبد که برای این Extension چه مسیر تماسی تعریف شده است. اما دقت داشته باشید فایل extension.conf و یا فایل های وابسته همانند extension_additional.conf و یا extension_custom.conf یک بار و آن هم هنگام شرع به کار Asterisk بارگزاری (load) می شوند و اگر هنگامی که Asterisk بالا است ما تغییری در این فایل ها بدهیم Asterisk متوجه آنها نمی شود و ما باید دوباره آنها را بارگزاری (load) کنیم، این کار با دستور زیر امکان پذیر است.
    asterisk –rx "reload"
    البته این دستور تمامی فایل های Config مربوط به Asterisk را بارگزاری (load) می کند و اگر منظور ما فقط بخش Dialplan یعنی فایل extension.conf و فایل های وابسته است می توانیم از دستور زیر استفاده کنیم.
    asterisk –rx"dialplanreload"

    کامنت


    • #3
      مثال 1:

      exten => 123,1,Answer()
      ساده ترین مثال، در اینجا یک Extension یک خطی داریم و همانطور که می بینید شماره آن یا بهتر است بگویم نام آن 123 است، همانطور که قبلا گفتم priority نیز با عدد 1 شروع می شود که البته اینجا یک خط بیشتر نداریم، همچنین Application به کار رفته Answer() نام دارد که وظیفه پاسخگویی به کانال را دارد.

      کامنت

      در حال انجام ...
      X