...

آموزش دستور Dial در Dialplan استریسک – برقراری تماس

استریسک dial

فهرست مطالب

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

دستور Dial() یکی از حیاتی‌ترین و پرکاربردترین دستورات در استریسک است. این دستور وظیفه‌ی برقراری تماس با یک مقصد مشخص را دارد. اما چیزی که این دستور را بسیار قدرتمند می‌کند، وجود آپشن‌ها (Options) است.

در این مقاله، علاوه بر آموزش اولیه، به بررسی مهم‌ترین گزینه‌های پرکاربرد مانند g, L, A, tT, r, و m خواهیم پرداخت.


ساختار پایه‌ی دستور Dial در استریسک

Dial(Technology/Endpoint[,timeout][,options])
  • Technology/Endpoint: مانند SIP/200 یا PJSIP/200 یا SIP/trunk-name/09121234567

  • timeout: مدت‌زمان زنگ خوردن (مثلاً ۲۰ ثانیه)

  • options: دستورات خاص برای کنترل رفتار تماس


مثال ساده اولیه:

exten => 101,1,Answer()
exten => 101,2,Dial(SIP/200,20)
exten => 101,3,Hangup()

استفاده در کانتکست [voipiran]

[voipiran]
exten => 101,1,Answer()
exten => 101,2,Dial(SIP/200,20)
exten => 101,3,Hangup()

گزینه‌های پرکاربرد در دستور Dial

۱. گزینه g — اجرای استپ‌های بعدی حتی پس از قطع تماس مقصد

به‌صورت پیش‌فرض، اگر مقصد تماس قطع کند، تماس اصلی هم قطع می‌شود و استپ‌های بعدی اجرا نمی‌شوند. با گزینه g، استپ‌های بعد از Dial() حتی پس از قطع تماس ادامه می‌یابند.

مثال:

exten => 102,1,Answer()
exten => 102,2,Dial(SIP/200,20,g)
exten => 102,3,Playback(goodbye)
exten => 102,4,Hangup()

۲. گزینه L(x[:y][:z]) — محدود کردن زمان تماس

با L می‌توانید مدت تماس را محدود کنید.

فرمت:

L(max_duration[:warning_time][:repeat_warning])
  • max_duration: حداکثر زمان تماس (به میلی‌ثانیه)

  • warning_time: زمان هشدار اولیه قبل از قطع

  • repeat_warning: فاصله بین هشدارها

مثال: تماس حداکثر ۶۰ ثانیه با هشدار در ثانیه ۴۵

exten => 103,1,Answer()
exten => 103,2,Dial(SIP/200,60,L(60000:45000:5000))

۳. گزینه A(x) — اجرای صوت در مقصد هنگام پاسخ

با این گزینه، هنگام پاسخ مقصد، فایل صوتی مشخصی پخش می‌شود (برای مخاطب مقصد، نه تماس‌گیرنده).

مثال:

exten => 104,1,Answer()
exten => 104,2,Dial(SIP/200,,A(welcome))

توجه: فایل صوتی باید در /var/lib/asterisk/sounds موجود باشد و پسوند لازم نیست.


۴. گزینه tT — اجازه انتقال تماس (Call Transfer)

  • t: اجازه به تماس‌گیرنده برای انتقال تماس با فشردن #

  • T: اجازه به پاسخ‌دهنده برای انتقال تماس با فشردن #

مثال:

exten => 105,1,Answer()
exten => 105,2,Dial(SIP/200,,tT)

۵. گزینه r — تولید صدای زنگ برای تماس‌گیرنده حتی اگر تماس هنوز وصل نشده باشد

مثال:

exten => 106,1,Answer()
exten => 106,2,Dial(SIP/200,,r)

در صورت عدم استفاده از r، ممکن است تماس‌گیرنده سکوت بشنود تا زمانی که مقصد پاسخ دهد.


۶. گزینه m(x) — پخش موزیک در حالت انتظار (Music On Hold)

با این گزینه، هنگام انتظار (قبل از پاسخ مقصد)، تماس‌گیرنده به جای بوق زنگ، موزیک خاصی را می‌شنود.

مثال:

exten => 107,1,Answer()
exten => 107,2,Dial(SIP/200,,m(classical))

نکته: باید یک کلاس موزیک آن‌هولد به نام classical در musiconhold.conf تعریف شده باشد.


مثال ترکیبی و حرفه‌ای

[voipiran]
exten => 200,1,Answer()
same => n,Dial(SIP/300,60,gtrL(60000:45000:10000)A(welcome)m(default))
same => n,Playback(goodbye)
same => n,Hangup()

در این مثال:

  • تماس به داخلی ۳۰۰ می‌رود

  • زمان تماس محدود به ۶۰ ثانیه است

  • انتقال تماس مجاز است

  • بعد از پاسخ، فایل welcome برای مقصد پخش می‌شود

  • تماس‌گیرنده در حالت انتظار، موزیک default را می‌شنود

  • پس از قطع تماس، پیام خداحافظی پخش می‌شود


لینک‌های داخلی برای یادگیری بهتر

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

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