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

Как изменить таймаут ожидания последней цифры при донаборе

СообщениеДобавлено: 14 ноя 2017, 15:36
leitalex
Приветствую вас, коллеги!
Имеется офисная АТС на FreePBX. На ней настроено IVR, в котором включен прямой донабор внутреннего номера (Direct Dial). Организация распределенная, в удаленных филиалах также работают FreePBX-ы, соединенные с "центральной" АТС по iax2-транкам. Внутренние локальные номера везде трехзначные. Для звонков в филиалы используются двузначные префиксы 01,02,...09. Это вполне успешно работало и при донаборе с IVR, т.е. дозвонившись на IVR центрального офиса, можно было донабрать, например, номер 03555 и звонок переводился на номер 555 филиала №3. Сейчас в связи с открытием еще одного филиала появилась необходимость добавить 10-тый префикс, и начались проблемы, т.к. при наборе в IVR 10555 астериск сразу отправляет звонок на локальный 105, игнорируя последние две цифры. Подскажите, как установить таймаут ожидания ввода последней цифры при донаборе?

Re: Как изменить таймаут ожидания последней цифры при донабо

СообщениеДобавлено: 14 ноя 2017, 16:43
awsswa
там 10 секунд по умолчанию - Timeout
Но надо менять - TIMEOUT(digit)=3

ну или написать IVR в ручную

Re: Как изменить таймаут ожидания последней цифры при донабо

СообщениеДобавлено: 14 ноя 2017, 17:14
Wapo
Для начала проверить нет ли в вашем IVR короткого набора 105 например.
Если везде стоят конструкции типа
exten => _[01]XXX - все должно быть нормально

Re: Как изменить таймаут ожидания последней цифры при донабо

СообщениеДобавлено: 15 ноя 2017, 10:46
virus_net
Wapo писал(а):короткого набора 105

да 100% что есть или это или шаблон XXX
ТС стоило бы в логи заглянуть и dialplan

Re: Как изменить таймаут ожидания последней цифры при донабо

СообщениеДобавлено: 27 ноя 2017, 17:44
leitalex
Диалплан сгенерирован freepbx-ом.
Контекст этого IVR:
[ivr-3] ; Menu
include => from-did-direct-ivr
exten => s,1,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?skip)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(skip),Set(IVR_MSG=custom/menu_robot)
exten => s,n(start),Set(TIMEOUT(digit)=3)
exten => s,n,ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG}))
exten => s,n,WaitExten(20,)

exten => t,1(ivrsel-t),Goto(from-did-direct,137,1)
exten => t,n,Playback(sorry-youre-having-problems)
exten => t,n,Goto(hang,1)

exten => 0,1(ivrsel-0),Goto(ext-fax,500,1)

exten => i,1,Playback(sorry-youre-having-problems)
exten => i,n,Goto(hang,1)

exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
exten => return,n,Set(IVR_MSG=custom/menu_robot)
exten => return,n,Goto(s,start)

exten => h,1,Hangup

exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup

В контексте [from-did-direct-ivr] прописаны экстеншены "центральной" АТС:
exten => 101,1,Macro(blkvm-clr,)
exten => 101,n,Set(__NODEST=)
exten => 101,n,Goto(from-did-direct,101,1)

exten => 102,1,Macro(blkvm-clr,)
exten => 102,n,Set(__NODEST=)
exten => 102,n,Goto(from-did-direct,102,1)
..... и т.д.

[from-did-direct]
include => ext-local

[ext-local]
exten => 101,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/101/ringtimer)} > 0]?${DB(AMPUSER/101/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 101,n,Macro(exten-vm,novm,101,0,0,0)
exten => 101,n(dest),Set(__PICKUPMARK=)
exten => 101,n,Goto(${IVR_CONTEXT},return,1)
exten => 101,hint,SIP/101&Custom:DND101,CustomPresence:101

exten => 102,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/102/ringtimer)} > 0]?${DB(AMPUSER/102/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 102,n,Macro(exten-vm,novm,102,0,0,0)
exten => 102,n(dest),Set(__PICKUPMARK=)
exten => 102,n,Goto(${IVR_CONTEXT},return,1)
exten => 102,hint,SIP/102&Custom:DND102,CustomPresence:102
....


При попытке донабора 10101 в логах всё выглядит так, будто просто набран номер 101 , а не 10101 , т.е. 10111 там нигде не отображается.