Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

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

0

Приветствую всех! В нашей компании девять филиалов. В каждом из них работает офисная АТС на FreePBX. Одна из них (в главном офисе) является условно "центральной" АТС, остальные соединены с ней по iax2-транкам. Внутренние локальные номера везде трехзначные. Для звонков в филиалы используются двузначные префиксы 01,02,...09. Т.е. для звонка на номер 555 филиала №2 набирается 02555. На "центральном" Freepbx настроено IVR, в котором включен прямой донабор внутреннего номера (Direct Dial). Донабор успешно работал и для номеров других филиалов, т.е. дозвонившись на IVR центрального офиса, можно было донабрать, например, номер 02555 и звонок переводился на номер 555 филиала №2. Сейчас в связи с открытием еще одного филиала появилась необходимость добавить 10-тый префикс. Внутренние звонки на 10XXX работают нормально, однако с IVR и начались проблемы, т.к. при попытке набора в IVR, например, 10555, астериск сразу отправляет звонок на локальный 105 (экстеншен центрального офиса), игнорируя последние две цифры. Подскажите, как установить таймаут ожидания ввода последней цифры при донаборе?

Контекст этого IVR: [ivr-3] ; Menu

include => from-did-direct-ivr

exten => s,1,Set(IVRCONTEXT${CONTEXT}=${IVRCONTEXT})

exten => s,n,Set(IVRCONTEXT=${CONTEXT})

exten => s,n,Set(_IVRRETVM=)

exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?skip)

exten => s,n,Answer

exten => s,n,Wait(1)

exten => s,n(skip),Set(IVRMSG=custom/menurobot)

exten => s,n(start),Set(TIMEOUT(digit)=3)

exten => s,n,ExecIf($["${IVRMSG}" != ""]?Background(${IVRMSG}))

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(IVRCONTEXT=${CONTEXT})

exten => return,n,Set(IVRCONTEXT${CONTEXT}=${IVRCONTEXT_${CONTEXT}})

exten => return,n,Set(IVRMSG=custom/menurobot)

exten => return,n,Goto(s,start)

exten => h,1,Hangup

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

exten => hang,n,Hangup

По идее, Set(TIMEOUT(digit)=3) уже дает время ожидания любой цифры (в т.ч. последней) 3 секунды. Однако, при наборе 10555 переключение на 105 происходит почти мгновенно. В чем дело, почему не срабатывает ожидание ?

спросил Dec 26 '17

leitalex Gravatar leitalex
1 1 2

обновил Dec 26 '17

Comments

Переписать на Read ?

awsswa (Dec 26 '17)edit
1

может потому, что вы нарушили принцип пострения атс? freepbx расчитана на фиксированную длину екстеншена. и не расчитана на просмотр внешних роутов в ivr. наймите експерта или перепишите номреной план.

meral (Dec 26 '17)edit

Вот что происходит, когда программирует сеть АТС не инженер связи или специалист по атс а администратор или еще кто то... непонимающий принципы построения сети АТС.

Вы можете с этой IVR АТС направить на IVR других АТС, там они до наберут другие номера.. Ну а каким способом думаю разберетесь.

.

По крайней мере я бы так делал, если бы мне пришлось исправлять эту непонятку, и мне не разрешили переделывать номерной план под что то нормальное.

Out (Dec 26 '17)edit

Так он так и делает. если срабатывае 115 вместо 1155, это говорит о том, что там есть транк с префиксом 115. но это бредово на самом деле, надо непересекающийся диаплан(удалить нафик 115 екст).

meral (Dec 27 '17)edit

Нет, не сразу с этой IVR отправлять на абонентов другой АТС, а делать абонента на этой АТС, на нем пере адресацию на номер с префиксом c направлением на нужную АТС, а там этот номер на IVR.

Или к примеру сделать чтобы при нажатии на 7 (к примеру) улетал на IVR другой АТС.

Понятно, что кривой костыль... Пусть дважды набирают... или менять весь диалплан на всех АТС.

Out (Dec 27 '17)edit

чтото у вас сильно сложно. можно просто в from-did-direct-ivr добавить одну простую строчку 105XX. но это фигня. надо фиксить диалплан, иначе будет bad experience.

meral (Dec 27 '17)edit

meral, каким именно образом предлагаете "фиксить диалплан" ?

leitalex (Dec 27 '17)edit

Никаких "транков с префиксом 115" нет. На центральной АТС есть около пятисот экстеншенов 101,102 и т.д. Они и срабатывают при донаборе 10XXX. Удалить|поменять их не представляется возможным.

Отправлять на IVR других АТС считаю неудобным для абонентов. Нужно, чтобы человек мог сразу донабрать пятизначный номер, который ему известен, не задумываясь о том, в каком филиале этот номер. И это прекрасно работает с префиксами 01-09.
А "делать абонента на этой АТС, на нем пере адресацию на номер с префиксом" - это очень неудобно в администрировании, да просто нереально для большого количества номеров.

leitalex (Dec 27 '17)edit

"freepbx расчитана на фиксированную длину екстеншена" - а данное утверждение вообще меня изрядно певеселило )) Экстеншены в asterisk, и в частности во freepbx, вполне могут быть разной длины, в них могут использоваться буквы и.т.д., на то он и астериск. Кстати, для внутренних номеров, например 507 и 5071, донабор в IVR работает как надо: успешно переключает на 5071, а при вводе 507 ждет те самые 3 секунды и потом только переводит на 507.

leitalex (Dec 27 '17)edit

Ну и? Расскажите нам... еще что нибудь...

Out (Dec 27 '17)edit

Конкретные ответы по существу вопроса будут?

leitalex (Dec 28 '17)edit

"freepbx расчитана на фиксированную длину екстеншена" - а данное утверждение вообще меня изрядно певеселило )) " Так и ответьте. IVR рассчитано срабатывать как только набранный номер совпал с "внутренним" номером системы.

.

Недаром в параметре "Direct Dial" вы выставляете "Extensions"... т.е. не транк.. не фантомная или не другая IP PBX...

.

И "TIMEOUT" служит не для набора 105 или 1051 а для того, чтобы абонент успел набрать номер "ЭТОЙ СИСТЕМЫ" или другой, если в этой системе нет такого номера...

Странно что у вас нет номера на этой системе 1, а на других 1Х, 1ХХ, 1ХХХ, 1ХХХХ и т.д.... Было бы еще веселей....

Вы не пробовали сделать в адресном пространстве 192.168.1.* сделать gateway c IP 192.168.1.* на котором указать что IP 192.168.1.* находится в другой подсети? Где то там за этим шлюзом...

У вас это должно работать...

Out (Dec 28 '17)edit

а так и есть. если вас чтото веселит, то почитайте диалплан from-did-direct-ivr

meral (Dec 28 '17)edit

самый простой вариант пофиксить - перенести номер 105. использовать то вы можете все что угодно, но по сути работать будет плохо с точки зрения пользователя. да работать можно заставить. но пользователи не понимают задержки больше 1 секунды. причем эта секунда включает еще и комутацию с другой атс.

meral (Dec 28 '17)edit

Я уже написал выше, что изменение номеров не представляется возможным. При вводе в строй префикса 10 мне придется удалить экстеншены 101-109, при вводе 11 - со 110 по 119 и т.д., а все эти номера используются юзерами и у многих занесены в контакты

leitalex (Dec 28 '17)edit

1 Ответ

0

Таймаут последней - никак.

Вы можете поменять такие таймауты.

TIMEOUT(timeouttype)

Gets or sets various channel timeouts. The timeouts that can be manipulated are:

absolute: The absolute maximum amount of time permitted for a call. A
setting of
0 disables the timeout.

digit
: The maximum amount of time permitted between digits when the
user
is typing in an extension. When this timeout expires,
after the user has started to type
in an extension, the
extension will be considered complete
, and will be
interpreted
. Note that if an extension typed in is valid,
it will
not have to timeout to be tested, so typically at
the expiry of
this timeout, the extension will be considered
invalid
(and thus control would be passed to the 'i'
extension
, or if it doesn't exist the call would be
terminated). The default timeout is 5 seconds.

response: The maximum amount of time permitted after falling through a
series of priorities for a channel in which the user may
begin typing an extension. If the user does not begin typing an
extension in this amount of time, control will pass to the
'
t' extension if it exists, and if not the call would be
terminated. Once the user begins to type an extension Asterisk
will wait for digit timeout to be reached and response timeout has
no effect. The default timeout is 10 seconds.

Тоесть либо между всеми, либо никак.

ссылка удалить спам редактировать

ответил Dec 26 '17

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Dec 26 '17

Просмотрен: 1,627 раз

Обновлен: Dec 26 '17

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.