Context چیست؟

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

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

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

[sample1]

exten => 123,1,Answer()

exten => 123,3,Hangup()

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

نکته: همانطور که قبلا عرض کردن context ها به یکدیگر دسترسی ندارند و ایزوله هستند، اما اگر بخواهید ۲ تا 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 است:

[۲۰۰۰]

type=friend

context=internal-phones

secret=1234

host=dynamic

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest

0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها