زمان لازم جهت مطالعه این مقاله: 2 دقیقه (396 words)

Context چیست؟

فایل extension.conf به بخش هایی به نام context تقسیم بندی می شود و در دل این contextها است که کدهای DialPlan ما نوشته می شود. مهمترین خصوصیت contextها این است که کامل ایزوله هستند و به همدیگر دسترسی ندارند مگر آنکه خودمان لینک ارتباطی را بین آنها برقرار کنیم، برای درک بهتر context می توانیم بگوییم که آنها برای گروه بندی ساخته می شوند.

مثلا وقتی از روی منوی PBX Configuration یک داخلی می سازید به طور پیش فرض در یک context به نام from-internal قرار می گیرند و به همین دلیل هم است که داخلی ها می توانند همدیگر را شماره گیری نمایند حال فر کنیم می خواهیم یک الستیکس راه اندازی کنیم که 2 گروه داخلی روی آن تعریف شده اند که به هم دسترسی ندارند، برای این منظور باید یک context دیگر بسازیم و گروه 2 را در آن قرار دهیم در این صورت داخلی های 2 گروه دیگر به همدیگر دسترسی نخواهند داشت.

برای تعریف یک context نیاز به یک نام یکتا (unique) و بدنه داریم، نام context را در بین 2 کروشه [] قرار ی دهیم و بدنه را زیر آن می نویسیم که با نحوه نوشتن بدنه که همانextension ما هستن در بخش بعد آشنا خواهیم شد.

[sample1]

exten => 123,1,Answer()

exten => 123,3,Hangup()

در مثال بالا sample1 نام context ما است و 2 خط زیرین آن همان بدنه یا extension ما است که در بخش بعد با آن نیز آشنا خواهید شد، اما نکته در خصوص نام context این است که این نام را نباید از بین 2 کلمه general، globals انتخاب نمایید چون این نام ها رزرو شده هستند.

نکته: همانطور که قبلا عرض کردن context ها به یکدیگر دسترسی ندارند و ایزوله هستند، اما اگر بخواهید 2 تا context را در دسترس یکدیگر قرار دهید انگار که در یک گروه قرار دارند باید یکی را در دیگری include نمایید.

[sample1]

exten => 123,1,Answer()

exten => 123,3,Hangup()

[sample2]

include => sample1

exten => 123,1,Answer()

exten => 123,n,NoOp(This is a Test)

exten => 123,n,Hangup()

نکته: اصطلاح context فقط مربوط به فایل extension.conf نیست و ما این مفهوم را در فایل های دیگر استریسک نیز داریم همانند sip.conf که داخلی های در آن در قالی یک context تعریف می شوند، اما به دلیل تمرکز بر روی آموزش ساخت Dialplan به فایل های دیگر نمی پردازیم. مثال زیر یک نمونه از context در فایل sip_additional.conf است:

[2000]

type=friend

context=internal-phones

secret=1234

host=dynamic

DialPlan چیست؟
WebRTC چیست؟

محبوب ترین مقالات

همانطور که می دانید لاگ فایل استریسک در مسیر /var/log/asterisk و به نام full قرار دارد، به ظور پیش ف...
10 قابلیتی که در مورد استریسک نمی دانید.استریسک (Asterisk) یک موتور تلفنی بسیار قدرتمند و بی رقیب اس...
وارد قلب استریسک می شویم، یکی از جذاب ترین قسمت های استریسک جایی که جریان تماس ساخته می شود، هر تماس...
Dialplan خط به خط اجرا می شود و در هر خط یک کاری انجام می پذیرد، به هر یک یا چند خط از Dialplan که د...
فایل extension.conf به بخش هایی به نام context تقسیم بندی می شود و در دل این contextها است که کدهای ...
وقتی بر روی Elastix می خواهید Dialplan نویسی کنید باید یکسری نکات را بدانیم، ما در این بخش یاد خواهی...
استریسک سیستم پیچیده و بزرگی است، هر زیر قسمت از این سیستم بزرگ با برخی فایل ها سرو کار دارد، این فا...