استریسک به عنوان سیستم سلسله مراتبی صوتی - Asterisk As IVR Server
IVRیا i nteractive v oice r esponse یکی از قابلیت های پرکاربرد سیستم های تلفنی است که تاحالا حتما شما هم یک بار به اون برخوردید . منوهای صوتی که شرکت های مختلف برای معرفی بخش های مختلف و ارتباط با اپراتور و ... استفاده می کنند . یا مرکز های اطلاع رسانی تلفنی که به صورت خودکار پیام های خاص منظوره را پخش می کنند . امکان برقراری ارتباط با پایگاه داده ها قابلیت های مفیدی را در اختیار کاربر قرار می دهد که مراکز چک کردن حساب های بانکی به صورت تلفنی یا مراکز مشاوره ای و... نمونه ای از این نوع سیستم ها هستند .
اگرچه مکانیزم ها و راه حال های مختلفی برای راه اندازی این نوع منوهای صوتی داریم ولی مطمئنا Asterisk یکی از پرقدرت مند ترین آنهاست . شاید
امکان برقراری با پایگاه داده های مختلف از جمله MYSQL ، Oracle ، MSSQL و ...
امکان بهره گیری از واسط های مختلف ارتباطی با خطوط PSTN ، GSM و ... و عدم وابستگی به برند خاص
امکان پیاده سازی High Redundancy در راه حل های حرفه ای و در نتیجه قابلیت اطمینان بالا
امکان بهره گیری از امکانات یک IP PBX و Call Center در کنار قابلیت IVR
پشتیبانی از فرمت های مختلف صوتی
را بتوان مهمترین علت های برشمردن Asterisk در زمره پرقدرترین های ارائه دهنده سرویس IVR دانست . در این پست با نحوه تعریف یک IVR نسبتا حرفه ای دز سیستم تلفنی Asterisk آشنا میشیم.
[AutomaticAttendantDemo]
exten => _X.,1,Answer
exten => _X.,n,Wait(2) ; Perform a simple 2 seconds delay
exten => _X.,n,Playback(welcome)
exten => _X.,n,Set(Loop=0)
exten => _X.,n,While($[${Loop} < 3])
exten => _X.,n,Background(menu)
exten => _X.,n,WaitExten(5) ; Wait 5 seconds for user to enter input
exten => _X.,n,Set(Loop=$[${Loop}+1])
exten => _X.,n(LoopEnd),EndWhile()
exten => _X.,n,Hangup() ; No input from user, so hangup
exten => 1,1,Playback(msg1)
exten => 1,n,Dial(SIP/301,60,rg)
exten => 1,n,Hangup()
exten => 2,1,Playback(msg2)
exten => 2,n,Dial(SIP/302,60,rg)
exten => 2,n,Hangup()
exten => 9,n,Hangup()
exten => i,1,Set(Loop=$[${Loop}+1])
exten => i,n,Goto(LoopEnd)
exten => t,1,Set(Loop=$[${Loop}+1])
exten => t,n,Goto(LoopEnd)
بخش اصلی منوی صوتی ما با context ای به نام AutomaticAttendantDemo آغاز میشه که
exten => _X.,1,Answer
که شماره های دو شماره ای را پاسخ می دهد .
exten => _X.,n,Wait(2)
دو دقیقه منتظر منتظر می ماند تا اگر در ارتباطات ترانک تاخیری وجود دارد پخش پیام خوش آمد گویی با مشکل مواجه نشود و به صورت کامل پخش شود .
exten => _X.,n,Playback(welcome)
پیام خوش آمد گویی را پخش می کند .
و با استفاده از ساختار While امکان پخش پیام منوی شرکت را در صورتی که کاربر بعد از شنیدن منو در مدت 5 ثانیه عددی را شماره گیری ننماید، برای 3 بار فراهم می کند .
exten => _X.,n,Set(Loop=0)
exten => _X.,n,While($[${Loop} < 3])
exten => _X.,n,Background(menu)
exten => _X.,n,WaitExten(5) ; 5 ثانیه منتظر میماند تا کاربر شماره گیری نماید
exten => _X.,n,Set(Loop=$[${Loop}+1])
exten => _X.,n(LoopEnd),EndWhile()
و همچنین اگر کاربر در مدت زمان time out ( که با متغیر t مشخص می شود ) عددی را شماره گیری ننماید یا شماره ای نا معتبر ( i = invalid ) را شماره گیری نمیاد نیز سه بار به کاربر امکان انتخاب مجدد در بین منوی صوتی داده خواهد شد .
exten => i,1,Set(Loop=$[${Loop}+1])
exten => i,n,Goto(LoopEnd)
exten => t,1,Set(Loop=$[${Loop}+1])
exten => t,n,Goto(LoopEnd)
در صورتی که کاربر عدد 1 را شماره گیری نماید به داخلی آی پی ( از نوع SIP ) به شماره 301 متصل شده و با شماره گیری عدد 2 به داخلی شماره 302 متصل می شود .
exten => 1,1,Playback(msg1)
exten => 1,n,Dial(SIP/301,60,rg)
exten => 1,n,Hangup()
exten => 2,1,Playback(msg2)
exten => 2,n,Dial(SIP/302,60,rg)
exten => 2,n,Hangup()
امید مهاجرانی
یک نظر اضافه کنید
شماره موبایل شما منتشر نخواهد شد.زمینه های مورد نیاز هستند علامت گذاری شده *
امتیاز شما