VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

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

Сообщение 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
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение 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)
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

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

Сообщение AlexeyFatnev »

Ded,

Спасибо, это учту. Но больше интересует обработка введенных 4-х значных номеров, которых нет в плане нумерации.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

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

Сообщение Wapo »

Код: Выделить всё

ExecIf($["${DEVICE_STATE(SIP/${EXTEN})}" = "NOT_INUSE"]?Dial(SIP/${EXTEN})
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение 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} ???)
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

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

Сообщение AlexeyFatnev »

Ded, Wapo,

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

Непонятно только, почему не работают стандартные средства (контекст i). Или он так и должен работать, по задумке разработчика?
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

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

Сообщение Wapo »

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

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

Поясните системе разницу!!!!
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

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

Сообщение AlexeyFatnev »

Здравствуйте, Wapo.

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

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

Благодарю за объяснение.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH