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

Elastix 2.4.0, проблема с IVR

Добавлено: 10 апр 2014, 11:16
2life
Настроил IVR, всё работает, кроме сообщения об ошибке набора. Нет ни повтора, не сообщения об ошибке((

Изображение

В самом конфиге, как то всё грустно:

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

[ivr-3]
include => ivr-3-custom
include => from-did-direct-ivr
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => h,1,Hangup
exten => s,1,Set(MSG=custom/Welcome)
exten => s,n,Set(LOOPCOUNT=0)
exten => s,n,Set(__DIR-CONTEXT=)
exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=3)
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,ExecIf($["${MSG}" != ""]?Background(${MSG}))
exten => s,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 1,n,Set(__NODEST=)
exten => 1,n,Goto(ext-group,10,1)
exten => 2,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 2,n,Set(__NODEST=)
exten => 2,n,Goto(ext-group,20,1)
exten => 9,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 9,n,Set(__NODEST=)
exten => 9,n,Goto(from-did-direct,501,1)
exten => i,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
exten => i,n,Set(MSG=custom/InvalidDigit)
exten => i,n,GotoIf($[${LOOPCOUNT} <= 1]?s,begin)
exten => i,n,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => i,n,Set(__NODEST=)
exten => i,n,Goto(ext-group,10,1)
exten => t,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => t,n,Set(__NODEST=)
exten => t,n,Goto(ext-group,10,1)

; end of [ivr-3]
Много раз настраивал IVR через FreePBX, там всё ок.

Re: Elastix 2.4.0, проблема с IVR

Добавлено: 10 апр 2014, 11:23
ded
Вы лучше не в конфиг смотрите, а в консоль, когда нажимаете неверные цифры, ожидая услышать Invalid Digit

Re: Elastix 2.4.0, проблема с IVR

Добавлено: 10 апр 2014, 16:09
2life
Сразу сваливает в Invalid Destination, безо всякого объявления.

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

-- <SIP/phonecom_peer0-000001c2> Playing 'custom/Welcome.slin' (language 'ru')
    -- Invalid extension '85' in context 'ivr-3' on SIP/phonecom_peer0-000001c2
  == CDR updated on SIP/phonecom_peer0-000001c2
    -- Executing [i@ivr-3:1] NoOp("SIP/phonecom_peer0-000001c2", "Deleting:  ") in new stack
    -- Executing [i@ivr-3:2] Set("SIP/phonecom_peer0-000001c2", "__NODEST=") in new stack
    -- Executing [i@ivr-3:3] Goto("SIP/phonecom_peer0-000001c2", "ext-group,10,1") in new stack
    -- Goto (ext-group,10,1)
Пробовал "Повтор перед i-dest" тоже отключить, результата нет.

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

[ivr-3]
include => ivr-3-custom
include => from-did-direct-ivr
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => h,1,Hangup
exten => s,1,Set(MSG=custom/Welcome)
exten => s,n,Set(LOOPCOUNT=0)
exten => s,n,Set(__DIR-CONTEXT=)
exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=3)
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,ExecIf($["${MSG}" != ""]?Background(${MSG}))
exten => s,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 1,n,Set(__NODEST=)
exten => 1,n,Goto(ext-group,10,1)
exten => 2,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 2,n,Set(__NODEST=)
exten => 2,n,Goto(ext-group,20,1)
exten => 9,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 9,n,Set(__NODEST=)
exten => 9,n,Goto(from-did-direct,501,1)
exten => i,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => i,n,Set(__NODEST=)
exten => i,n,Goto(ext-group,10,1)
exten => t,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => t,n,Set(__NODEST=)
exten => t,n,Goto(ext-group,10,1)

; end of [ivr-3]

Re: Elastix 2.4.0, проблема с IVR

Добавлено: 10 апр 2014, 22:45
2life
Предполагаю не хватает этого в /etc/asterisk/extensions_custom.conf, подправьте, пожалуйста:

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

exten => i,1,Set(LOOPCOUNT=$[${LOOPCOUNT}+1])
exten => i,n,GotoIf($[${LOOPCOUNT} > 1]?final)
exten => i,n,Set(MSG=custom/InvalidDigit)
exten => i,n,Goto(s,start)
exten => i,n(final),Playback(custom/InvalidDigit)
exten => i,n,Goto(ext-group,10,1)

exten => t,1,Set(TIMEOUT=$[${TIMEOUT}+1])
exten => t,n,GotoIf($[${TIMEOUT} > 3]?final)
exten => t,n,Set(MSG=no-valid-responce-pls-try-again)
exten => t,n,Goto(s,start)
exten => t,n(final),Playback(no-valid-responce-transfering)
exten => t,n,Goto(ext-group,10,1))

Re: Elastix 2.4.0, проблема с IVR

Добавлено: 11 апр 2014, 00:16
ded
Нужно разобраться почему не отрабатывает стандартно, а не _custom.conf сразу сооружать.
Видно, что по таймауту
exten => t,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => t,n,Set(__NODEST=)
exten => t,n,Goto(ext-group,10,1)
и при неправильном наборе
exten => i,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => i,n,Set(__NODEST=)
exten => i,n,Goto(ext-group,10,1)
уходит в ext-group, на экстен 10, 1-й шаг.

Вот и посмотрите
dialplan show ext-group
что там есть на тему
exten => 10,1

Re: Elastix 2.4.0, проблема с IVR

Добавлено: 11 апр 2014, 10:28
2life
Ну по таймауту, и по неправильному набору звонок идёт куда нужно.
Просто проигрыш сообщения, о неправильном наборе отсутствует ...

Вот, вывод части диалплана, где увидел 10.

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

[root@ippbx ~]# asterisk -rx 'dialplan show ext-group'
Privilege escalation protection disabled!
See https://wiki.asterisk.org/wiki/x/1gKfAQ for more details.
[ Context 'ext-group' created by 'pbx_config' ]
  '10' =>           1. Macro(user-callerid,)                      [pbx_config]
                    2. GotoIf($["foo${BLKVM_OVERRIDE}" = "foo"]?skipdb) [pbx_config]
                    3. GotoIf($["${DB(${BLKVM_OVERRIDE})}" = "TRUE"]?skipov) [pbx_config]

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

                    17. Set(__NODEST=)                            [pbx_config]
                    18. Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})}) [pbx_config]
                    19. Goto(ext-group,10,1)                      [pbx_config]
     [nodest]       20. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  Include =>        'ext-group-custom'                            [pbx_config]