فایل 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

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

Share
Published by
حامد کوه فلاح

Recent Posts

بهبود کیفیت پیام‌های صوتی در VoIP: معرفی ابزارهای Adobe Podcast و AI-Coustics برای صدای حرفه‌ای

کیفیت پیام‌های صوتی در سیستم‌های تلفنی VoIP و اهمیت آن در دنیای ارتباطات، کیفیت پیام‌های…

3 روز ago

ارتباط دو سیستم تلفنی Issabel با یکدیگر و شماره‌گیری داخلی‌ها به‌صورت مستقیم

در بسیاری از شرکت‌ها و سازمان‌ها، نیاز به ارتباط دو سیستم تلفنی مختلف یا دو…

6 روز ago

مانیتورینگ پیشرفته سرویس‌های VoIP و IT با Uptime Kuma روی Issabel 5 و Rocky 8

مانیتورینگ سرورها و سرویس‌های VoIP یکی از مهم‌ترین کارهایی است که برای تضمین پایداری شبکه…

2 هفته ago

بررسی کامل بهترین برندهای سخت‌افزاری VoIP: Yealink، Cisco، Grandstream و دیگر برندهای معتبر

بررسی برندهای سخت‌افزاری VoIP: انتخاب بهترین گزینه برای متخصصین و کسب‌وکارها سیستم‌های تلفنی VoIP (Voice…

2 هفته ago

راه‌اندازی سیستم مرکز تماس OMniLeads با داکر روی Rocky Linux 8 و Issabel 5

OMniLeads یک سیستم مرکز تماس کدباز است که با قابلیت‌های پیشرفته برای مدیریت تماس‌ها و…

2 هفته ago

حذف فایل‌های ضبط مکالمات قدیمی برای مدیریت فضای هارد دیسک در سیستم‌های تلفنی ایزابل (Issabel) و فری پی بی اکس (FreePBX)

در سیستم‌های تلفنی تحت ویپ مانند ایزابل (Issabel)، الستیکس (Elastix) و فری پی بی اکس…

3 هفته ago