Asterisk + IVR
Добавлено: 19 июн 2015, 06:57
Ребят в общем такая ситуация в Asterisk не очень силен, имеется 2 сервера телефонии - Asterisk и CUCM, на Asterisk настроено интерактивное голосовое меню:
extensions.ael
вызов поступает на внешний номер голосового шлюза и переадресовывается на 04959999 по h323, далее проигрывается приветствие с предложением нажать 1 для перехода в office_1 или 2 для перехода в office_2 ес переводом в office_1 и дальнейшим переводом с office_1 на внутренние номера office_1 и office_2 все отлично, если же нажимать 2 то происходит перевод по h323 на номер 9999 на CUCM и с него на группу номеров после снятие трубки и просьбе перевести на номера office_2 происходит сброс вызова (набранный Вами номер не доступен) если звонить с мегафона, с билайна все нормально работает (хотя может это разовые случаи), если звонить с мегафона и просто ждать окончания приветствия голосового меню должен произойти автоматический перевод на номер 9999 который на CUCM но он иногда нормально переводит, а иногда по прошествии секунд 5-10 отвечает "набранный Вами номер не доступен" как найти где косяк?
в голосовом меню 2 цифры, цифра 1 переадресация в office_1, цифра 2 переадрессация в office_2, если ничего не жать то вызов уходит в office_2
extensions.ael
Код: Выделить всё
context incoming {
_! => {
Hangup(21);
};
};
context f_scs {
_! => {
Ringing();
Wait(1);
Read(DTMF_INPUT,/usr/local/asterisk/data/sounds/ru/welcome-1-2,1,,1,5);
switch (${DTMF_INPUT}) {
case 1:
goto office_1,1;
case 9:
goto test,1;
default:
goto office_2,1;
};
};
office_1 => {
Set(CALLERID(name)=${CALLERID(num)});
Dial(H323/7000@scs1,,rt);
if ("${DIALSTATUS}" = "CHANUNAVAIL")
Dial(H323/3000@scs2,,rt);
Hangup();
};
test => {
Set(CALLERID(name)=${CALLERID(num)});
Dial(H323/04951355@scs1,,rt);
if ("${DIALSTATUS}" = "CHANUNAVAIL")
Dial(H323/03431304@scs2,,rt);
Hangup();
};
office_2 => {
Dial(H323/9999@office_2,,rt);
if ("${DIALSTATUS}" = "CHANUNAVAIL" || "${DIALSTATUS}" = "BUSY" || "${DIALSTATUS}" = "NOANSWER")
goto office_1,1;
Hangup();
};
в голосовом меню 2 цифры, цифра 1 переадресация в office_1, цифра 2 переадрессация в office_2, если ничего не жать то вызов уходит в office_2