...

برنامه GotoIf در Dialplan استریسک — شرطی‌سازی مسیر تماس

استریسک gotoif

فهرست مطالب

زمان مطالعه: < 1 دقیقه

در طراحی دیال‌پلن‌های حرفه‌ای، گاهی لازم است بسته به شرایط مختلف تماس، مسیر اجرای تماس را تغییر دهیم. اینجاست که دستور GotoIf() در استریسک وارد عمل می‌شود.

GotoIf(condition?[labeliftrue:[labeliffalse]])

دستور GotoIf چگونه کار می‌کند؟

ساختار کلی دستور به‌صورت زیر است:

exten => ۱۰۰,۱,Set(myVar=۱)
exten => ۱۰۰,۲,GotoIf($["${myVar}" = "۱"]?voipiran,special,۱:voipiran,normal,۱)

در این مثال اگر مقدار متغیر myVar برابر ۱ باشد، تماس به اکستنشن special در کانتکست voipiran هدایت می‌شود. در غیر این صورت به normal.

پارامترها:

  • شرط: هر شرطی که با $[...] نوشته شود.

  • true-branch: مقصدی که در صورت برقرار بودن شرط تماس به آن برود.

  • false-branch: مقصدی که در صورت برقرار نبودن شرط تماس به آن برود.

🔗 اگر هنوز با متغیرها در استریسک آشنا نیستید، پیشنهاد می‌کنم مقاله آموزش متغیرها در Dialplan استریسک (Asterisk Variables) را بخوانید.


مثال: بررسی شماره تماس‌گیرنده (CallerID)

[voipiran]
exten => 2000,1,NoOp(شروع پردازش تماس

exten => 2000,2,GotoIf($["${CALLERID(num)}" = "09121234567"]?vip,1:normal,1)

exten => vip,1,Playback(welcome-vip)

exten => vip,2,Dial(SIP/1001)

exten => normal,1,Playback(welcome)
exten => normal,2,Dial(SIP/1002)

در این مثال اگر تماس از شماره خاصی گرفته شود، تماس به داخلی VIP منتقل می‌شود و برای دیگران مسیر عادی اجرا می‌شود.


استفاده از from-internal-additional

اگر بخواهید از داخل ایزابل تماس را به دیال‌پلنی که نوشته‌اید منتقل کنید (مثلاً از یک صف یا IVR)، حتماً باید کانتکست شما در from-internal-additional شامل شود:

[from-internal-additional]
include => voipiran
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از

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