parskomak

استریسک به عنوان سیستم سلسله مراتبی صوتی - Asterisk As IVR Server

1 ارسال در این موضوع قرار دارد

 

IVR یاinteractive voice response یکی از قابلیت های پرکاربرد سیستم های تلفنی است که تاحالا حتما شما هم یک بار به اون برخوردید . منوهای صوتی که شرکت های مختلف برای معرفی بخش های مختلف و ارتباط با اپراتور و ... استفاده می کنند . یا مرکز های اطلاع رسانی تلفنی که به صورت خودکار پیام های خاص منظوره را پخش می کنند . امکان برقراری ارتباط با پایگاه داده ها قابلیت های مفیدی را در اختیار کاربر قرار می دهد که مراکز چک کردن حساب های بانکی به صورت تلفنی یا مراکز مشاوره ای و... نمونه ای از این نوع سیستم ها هستند . 
اگرچه مکانیزم ها و راه حال های مختلفی برای راه اندازی این نوع منوهای صوتی داریم ولی مطمئنا Asterisk یکی از پرقدرت مند ترین آنهاست . شاید 
امکان برقراری با پایگاه داده های مختلف از جمله MYSQL ، Oracle ، MSSQL و ... 
امکان بهره گیری از واسط های مختلف ارتباطی با خطوط PSTN ، GSM و ... و عدم وابستگی به برند خاص
امکان پیاده سازی High Redundancy در راه حل های حرفه ای و در نتیجه قابلیت اطمینان بالا
امکان بهره گیری از امکانات یک IP PBX و Call Center در کنار قابلیت IVR 
پشتیبانی از فرمت های مختلف صوتی 
را بتوان مهمترین علت های برشمردن Asterisk در زمره پرقدرترین های ارائه دهنده سرویس IVR دانست . در این پست با نحوه تعریف یک IVR نسبتا حرفه ای دز سیستم تلفنی Asterisk آشنا میشیم.

 

ph_or_35947_f360460.png
 
[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()

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری