Страница 1 из 1

Обработка неверных добавочных номеров

СообщениеДобавлено: 10 окт 2022, 16:10
AlexeyFatnev
Здравствуйте, коллеги.

Не могу разобраться с обработкой неверных добавочных номеров, как при донаборе через IVR и просто исходящих вызовах.

Везде написано, что для IVR должен работать контекст "i", но у меня не работает и он, вернее работает только при донаборе менее и более четырех цифр, а при наборе 4-х цифр любые (правильные и неверные) номера попадают в контекст _XXXX.

Способ отсюда также не помог, да я и не понял механизма его работы. http://www.planetwayne.com/forums/viewtopic.php?t=217

Смог временно решить проблему запрашивая статус PIR и перенаправляя звонок в зависимости от статуса, но хотелось бы настроить это правильным способом.

Подскажите, как правильно обрабатывать неверный набор через IVR и при исходящих внутренних вызовах.

Код: выделить все
exten =>6,1,NoOp("6" is Pressed)
same => n,Dial(SIP/1071,260)
same => n,Hangup

exten =>t,1,NoOp(nothing is Pressed)
same => n,Dial(SIP/1051,260)
same => n,Hangup

exten =>i,1,NoOp(Invalid Ext is Pressed)
same => n,Dial(SIP/1051,260)
same => n,Hangup

exten =>_XXXX,1,NoOp( VALID number is Pressed)
same => n,Dial(SIP/${EXTEN},120)
same => n,Hangup

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 10 окт 2022, 17:18
ded
Судя по куску диал-плана - у вас возможность выбора в ИВР от 1 до 6, а также донабора 4-х знгачных номеров
Код: выделить все
exten =>_XXXX,1,NoOp( VALID number is Pressed)

Неверно нажатые 7, 8, 9, 0 можно закодировать вот так:

Код: выделить все
exten =>_[7890],1,NoOp( INVALID number is Pressed)
exten =>_[7890],n.Goto(i,1)

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 10 окт 2022, 17:35
AlexeyFatnev
Ded,

Спасибо, это учту. Но больше интересует обработка введенных 4-х значных номеров, которых нет в плане нумерации.

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 10 окт 2022, 20:39
Wapo
Код: выделить все
ExecIf($["${DEVICE_STATE(SIP/${EXTEN})}" = "NOT_INUSE"]?Dial(SIP/${EXTEN})

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 10 окт 2022, 21:07
ded
Набор существующих номеров можно также сделать через проверку наличия их в astdb
Код: выделить все
ExecIf($["{DB($(DEVICE/${EXTEN}/user/${EXTEN}))}"!= ""]?Dial(SIP/${EXTEN})) 


или перенаправлять Goto(i,1) по отлупу на несуществующий набранный номер
Код: выделить все
same => n,Dial(SIP/${EXTEN},120,t)  ; t нужна, вы же трансферить хотите?
same => n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Playback(абонент занят)
exten => s-CHANUNAVAIL,1,Goto(i,1)       ; вот тут пойдёт на invalid
exten => _s-.,1,NoOp(${DIALSTATUS} ???)

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 14 окт 2022, 18:59
AlexeyFatnev
Ded, Wapo,

Спасибо за ответы, попробую отпишусь.

Непонятно только, почему не работают стандартные средства (контекст i). Или он так и должен работать, по задумке разработчика?

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 14 окт 2022, 21:17
Wapo
Спросите себя ЧТО есть НЕВЕРНЫЙ номер???? Для _ХХХХ - все четырехзначные номера РАЗРЕШЕНЫ и потому:
exten => 7,.....
exten => _XXXX,....
Одинаковы!!!!

Вы или используете в ИВР одну цифру или ....
Попобуйте вариант:
1. или набираем только цифру 2
2. или набираем номер 2314

Поясните системе разницу!!!!

Re: Обработка неверных добавочных номеров

СообщениеДобавлено: 16 ноя 2022, 19:54
AlexeyFatnev
Здравствуйте, Wapo.

Для меня неверный это несуществующий.

Предполагалось, что для контекста '"i" "неверный" это несуществующий, теперь понимаю, что "неверный", это не подпадающий под шаблон.

Благодарю за объяснение.