...

آموزش متغیرها در Dialplan استریسک (Asterisk Variables)

فهرست مطالب

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

آشنایی با متغیرها در Dialplan استریسک (Asterisk Variables)

متغیرها (Variables) در استریسک ابزار قدرتمندی برای ذخیره‌سازی و پردازش اطلاعات حین اجرای تماس هستند. این متغیرها در واقع به شما اجازه می‌دهند اطلاعات تماس را بخوانید، بنویسید و بر اساس آن تصمیم‌گیری کنید. یادگیری کار با Variableها، یکی از گام‌های ضروری در مسیر برنامه‌نویسی Dialplan است.


Variable چیست؟

متغیر در استریسک، مثل یک ظرف برای نگه‌داری داده‌هاست. مثلاً ممکنه بخواهید شماره تماس‌گیرنده، زمان تماس، یا یک مقدار سفارشی را در طول اجرای تماس ذخیره کنید.

متغیرها در استریسک به دو صورت اصلی وجود دارند:

  • Built-in Variables: متغیرهای پیش‌فرض که استریسک خودش تولید می‌کنه، مثل CALLERID(num) یا EXTEN

  • User-defined Variables: متغیرهایی که شما با دستور Set() تعریف می‌کنید، مثلاً Set(myvar=123)


دسته‌بندی مهم‌ترین Variableها

دسته مثال توضیح
شناسایی تماس‌گیرنده ${CALLERID(num)} شماره تماس‌گیرنده
شماره داخلی شماره‌گیری شده ${EXTEN} عدد داخلی‌ای که کاربر گرفته
اطلاعات کانال ${CHANNEL} نام کانال SIP یا DAHDI
تاریخ و زمان ${STRFTIME(...)} فرمت دلخواه تاریخ و زمان
متغیر سفارشی ${myvar} متغیری که خودتان تعریف می‌کنید

نحوه تعریف و استفاده از Variable

برای تعریف یک متغیر از دستور Set() استفاده می‌کنیم. مثال:

[voipiran]
exten => 200,1,Answer()
exten => 200,2,Set(myvar=this is voipiran)
exten => 200,3,NoOp(My Var: ${myvar})
exten => 200,4,Playback(hello-world)
exten => 200,5,Hangup()

در این مثال:

  • در خط ۲، یک متغیر به نام myvar تعریف شده

  • در خط ۳، با NoOp مقدارش در لاگ نمایش داده می‌شه (موقع دیباگ خیلی مفیده)

  • سپس پیام خوش‌آمدگویی پخش و تماس قطع می‌شه

در سیستم Issabel 5 حتماً این کانتکست (voipiran) باید در فایل extensions_custom.conf تعریف شده باشه و در [from-internal-custom] include بشه.


کاربردهای عملی Variableها

  • ذخیره مقدار انتخابی کاربر در IVR

  • نگه‌داری نام داخلی تماس‌گیرنده

  • پردازش تاریخ و زمان تماس

  • گرفتن تصمیم شرطی بر اساس مقدار متغیرها (در مقاله‌های بعدی مثل GotoIf می‌بینیم)


نکات مهم

  • برای استفاده از مقدار متغیر، همیشه از ${} استفاده کنید

  • متغیرها در استریسک Case Sensitive هستند

  • می‌تونید متغیر رو در یک تماس ست کنید و در تماس بعدی استفاده نکنید (بومی هر تماس هستند مگر Global)

در این مقاله، نحوه استفاده از متغیرها در Dialplan استریسک بررسی شد. اگر می‌خواهید بیشتر در مورد الگوهای شماره‌گیری (Extension Pattern Matching) و نحوه استفاده از آن‌ها برای مطابقت با شماره‌ها بیاموزید، پیشنهاد می‌کنم مقاله آموزش Extension Pattern Matching در Dialplan استریسک را مطالعه کنید.

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

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