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

(ivr) распознавание неверного номера

0

Проблема такова. IVR слишком быстро распознает неверный номер - после введения первой цифры и сразу выполняет действие. Если человек вводит неверный номер целиком, то сообщение о неверном номере в трубке проигрывается несколько раз с наложением.

Как отрегулировать таймаут ожидания набора номера перед собственно началом его распознавания?

    [ Context 'ivr-1' created by 'pbx_config' ]
  '600' =>          1. Goto(ext-group,600,1)                      [pbx_config]
  '620' =>          1. Goto(ext-group,620,1)                      [pbx_config]
  'h' =>            1. Hangup()                                   [pbx_config]
  'hang' =>         1. Playback(vm-goodbye)                       [pbx_config]
                    2. Hangup()                                   [pbx_config]
  'i' =>            1. Goto(from-did-direct,104,1)                [pbx_config]
  'return' =>       1. Set(_IVR_CONTEXT=${CONTEXT})               [pbx_config]
                    2. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}}) [pbx_config]
                    3. Set(IVR_MSG=ivr_welcome_message)           [pbx_config]
                    4. Goto(s,start)                              [pbx_config]
  's' =>            1. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT}) [pbx_config]
                    2. Set(_IVR_CONTEXT=${CONTEXT})               [pbx_config]
                    3. Set(__IVR_RETVM=)                          [pbx_config]
                    4. GotoIf($["${CDR(disposition)}" = "ANSWERED"]?skip) [pbx_config]
                    5. Answer()                                   [pbx_config]
                    6. Wait(1)                                    [pbx_config]
     [skip]         7. Set(IVR_MSG=ivr_welcome_message)           [pbx_config]
     [start]        8. Set(TIMEOUT(digit)=3)                      [pbx_config]
                    9. ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG})) [pbx_config]
                    10. WaitExten(10,)                            [pbx_config]
  't' =>            1. Goto(from-did-direct,104,1)                [pbx_config]
  Include =>        'ivr-1-custom'                                [pbx_config]
  Include =>        'from-did-direct-ivr'                         [pbx_config]
удалить закрыть спам изменить тег редактировать

спросил 2012-09-21 16:09:30 +0400

PaWeLL Gravatar PaWeLL
45 5 1 9

обновил 2012-09-21 17:22:55 +0400

1 Ответ

0

вот

WaitExten(10,) 

WaitExten([seconds][,options])

тоесть время ожидания до 10 секунд.

также у вас стоит

TIMEOUT(digit)=3

тоесть 3 секунды если все остальные контексты типа ivr-custom отсутвуют, то будет ждят до 3-х цифр. если не ждет - значит у вас dtmf неправильно определются.

зы. и вообще вроде бы это freepbx. если так, то все таймауты в вебе выставляются.

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

ответил 2012-09-21 16:29:45 +0400

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

обновил 2012-09-21 20:21:34 +0400

Comments

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

PaWeLL ( 2012-09-21 16:35:42 +0400 )редактировать

контрол K. и вообще в ответ выложить.

meral ( 2012-09-21 16:53:50 +0400 )редактировать

покажите from-did-direct-ivr и лог звонка...

asteriskguru ( 2012-09-21 18:14:37 +0400 )редактировать
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: -- Invalid extension '4' in context 'ivr-1' on SIP/rtel5_out-00000088
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: == CDR updated on SIP/rtel5_out-00000088
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: -- Executing [i@ivr-1:1] Set("SIP/rtel5_out-00000088", "INVALID_LOOPCOUNT=3") in new stack
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: -- Executing [i@ivr-1:2] GotoIf("SIP/rtel5_out-00000088", "1?final") in new stack
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: -- Goto (ivr-1,i,5)
[2012-09-24 16:07:15] VERBOSE[304] pbx.c: -- Executing [i@ivr-1:5] Goto("SIP/rtel5_out-00000088", "from-did-direct,104,1") in new stack

Собственно вот вся проблема. Как только астериск увидел, что первая цифра не соответствует, он сразу торопится об этом сообщить, не дожидаясь, пока номер будет набран полностью. А так как цифр в номере три, то астериск считает что было 3 неверных попытки и перекидываает звонок секретарю сразу. Хотелось бы это исправить.

PaWeLL ( 2012-09-24 16:17:52 +0400 )редактировать

ну так логично. у вас НЕТ вариантов чегото начинающегося с 4. смысл ждать?)

meral ( 2012-09-24 16:46:23 +0400 )редактировать

а.исправить.. добавьте туда 299 499 599 699 799 и тд(это с веба) или дбавьте _XXX,1,Goto(from-did-direct,104,1)

meral ( 2012-09-24 16:47:45 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: 2012-09-21 16:09:30 +0400

Просмотрен: 678 раз

Обновлен: Sep 21 '12

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