LINUX.ORG.RU
ФорумAdmin

Настройка IVR в FreePBX

 ,


0

1

Уважаемые пользователи! В freepbx создал транк согласно данным провайдера. Inbound route указал чтобы входящий звонок с этого номера попадал в ring group. Проблем с этим возникло.После создал ivr и в inbound routes указал, чтобы звонок с транка шел на него, опять же все нормально работает, однако когда в настройках ivr в параматре «Timeout Destination» указываю чтобы после недействия пользователя звонок шел на ring group звонок не идет. Не могу понять в чем ошибка, что не так делаю. Помогите пожалуйста

Ответ на: комментарий от upcFrost

pbx.c: Executing [s@ivr-1:12] WaitExten(«SIP/420-00000001», «10,») in new stack

pbx_builtins.c: Timeout on SIP/420-00000001, going to 't'

pbx.c: Executing [t@ivr-1:1] Set(«SIP/420-00000001», «TIMEOUT_LOOPCOUNT=1») in new stack

pbx.c: Executing [t@ivr-1:2] GotoIf(«SIP/420-00000001», «0?final») in new stack

pbx.c: Executing [t@ivr-1:3] Set(«SIP/420-00000001», «IVR_MSG=no-valid-responce-pls-try-again») in new stack

pbx.c: Executing [t@ivr-1:4] Goto(«SIP/420-00000001», «s,start») in new stack

pbx_builtins.c: Goto (ivr-1,s,10)

pbx.c: Executing [s@ivr-1:10] Set(«SIP/420-00000001»,

«TIMEOUT(digit)=3») in new stack

func_timeout.c: Digit timeout set to 3.000

pbx.c: Executing [s@ivr-1:11] ExecIf(«SIP/420-00000001», «1?

Background(no-valid-responce-pls-try-again)») in new stack file.c: <SIP/420-00000001> Playing 'no-valid-responce-pls-try-again.slin' (language 'en')

pbx.c: Spawn extension (ivr-1, s, 11) exited non-zero on 'SIP/420-00000001'

pbx.c: Executing [h@ivr-1:1] Hangup(«SIP/420-00000001», "") in new stack pbx.c: Spawn extension (ivr-1, h, 1) exited non-zero on 'SIP/420-00000001'

okamigo ()
Ответ на: комментарий от okamigo

ну по логу он даже из IVR не выходит. Timeout destination точно показывает на группу? и все изменения сохранены и применены? сам конфиг (текстовый в плане) сейчас правильный?

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

во freepbx установил в параметре Timeout Destination номер экстешна

вот конфиг из файла extensions_additional.conf

[ivr-1] ;

include => ivr-1-custom

exten => s,1,Set(TIMEOUT_LOOPCOUNT=0)

exten => s,n,Set(INVALID_LOOPCOUNT=0)

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

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

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

exten => s,n,GotoIf($[«${CHANNEL(state)}» = «Up»]?skip)

exten => s,n,Answer

exten => s,n,Wait(1)

exten => s,n(skip),Set(IVR_MSG=custom/-_-_-_-_-_-_-_-_-_-_-_-_)

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

exten => s,n,ExecIf($[«${IVR_MSG}» != «„]?

Background(${IVR_MSG}))

exten => s,n,WaitExten(10,)

exten => 403,1,GotoIf($[„x${IVR_CONTEXT_${CONTEXT}}“ = „x“]?

from-did-direct,403,1:${IVR_CONTEXT_${CONTEXT}},return,1)

exten => i,1,Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1])

exten => i,n,GotoIf($[${INVALID_LOOPCOUNT} > 3]?final)

exten => i,n,Set(IVR_MSG=no-valid-responce-pls-try-again)

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

exten => i,n(final),Playback(no-valid-responce-transfering)

exten => i,n,Goto()

exten => t,1,Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1])

exten => t,n,GotoIf($[${TIMEOUT_LOOPCOUNT} > 3]?final)

exten => t,n,Set(IVR_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(from-did-direct,403,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/-_-_-_-_-_-_-_-_-_-_-_-_)

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

exten => h,1,Hangup

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

;--== end of [ivr-1] ==--;

может проблема в inbount routes либо в транке

okamigo ()
Ответ на: комментарий от okamigo

По идее должно после перехода на final попадать на t,n,Goto(from-did-direct,403,1)

а в ринг-группе кто-то есть? и еще - в каком контексте ринг-группа? на нее с from-did-direct попасть вообще можно?

upcFrost ★★★★★ ()
Ответ на: комментарий от okamigo

в ринг группе добавлял номера

а из этих номеров хоть один подключен в момент вызова?

по поводу контекста - чую он наследуется от контекста транка. проверь в том же файле в каком контексте у тебя на ринг-группу вызов идет (чую это from-internal)

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

да конечно подключен, проверял ну в транке я контекст вообще не указывал, вот настройки

outgoing settings:

type=friend

host=sip_address

fromdomain=sip_address

dtmfmode=rfc2833

disallow=all

allow=alaw&ulaw

insecure=port,invite

qualify=no

defaultuser=user

fromuser=user

secret=password

directmedia=no

nat=force_rport,comedia

тоже само в incoming

okamigo ()
Ответ на: комментарий от okamigo

incoming user context
user:password@host:5060/420

«incoming user context»? это строка регистрации транка? или это просто имя транка?

можешь в extensions_additional.conf грепнуть ,403,1 (403 - это номер ринг-группы как я понял)? ну или вообще ,403,

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 2)

Вот по этой ссылке настройки IVR, сделанные по описанной тобой логике. Звонящему проигрывается запись приветствия, после чего 3 секунды идет ожидание выбора меню/набора добавочного и в итоге звонок уходит на группу вызова. Сверь с тем, что и как настроено у тебя.

BOOBLIK ()
Ответ на: комментарий от okamigo

Надо проверить из какого контекста третья строка берется. Ну и заодно найти все остальные настройки этой ринг-группы в файлах конфига.

Вообще есть один тупой способ проверить действительно ли проблема в контексте. Вернее два способа. Первый - перетащить транк в тот контекст, где у тебя висят экстеншены/ринг-группа (раньше был from-internal, может поменяли), это делается директивой context в настройках транка. Второй вариант - позвонить на ринг-группу с экстеншена, для которого родным контекстом стоит from-did-direct. Если не прозвонил - значит оно.

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

настройки по ходу берет из ext-local

exten => 403,1,Set(__RINGTIMER=${IF($[«${DB(AMPUSER/403/ringtimer)}» > «0»]?${DB(AMPUSER/403/ringtimer)}:${RINGTIMER_DEFAULT})})

exten => 403,n,Macro(exten-vm,novm,403,0,0,0)

exten => 403,n(dest),Set(__PICKUPMARK=)

exten => 403,n,Goto(${IVR_CONTEXT},return,1)

exten => 403,hint,SIP/403,CustomPresence:403

okamigo ()
Ответ на: комментарий от upcFrost

для точной информации перенаправил звонки на другой экстеншн, который находится в контексте from-internal

а нельзя ли в extensions_custom.conf добавить записи такого рода для проверки

[from-internal] exten => _1XX,1,Dial(SIP/${EXTEN}@oktell)

include => ext-local

include => from-did-direct

include => from-trunk

include =>ivr-2-custom

[ivr-2-custom]

include => ext-local

include => from-did-direct

include => from-trunk

[from-did-direct]

include => ext-local

include => from-did-direct

include => from-trunk

okamigo ()
Ответ на: комментарий от okamigo

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

это оригинально. хз если честно что в этом случае произойдет

после этой настройки у меня все время проигрывается голосовое меню и звонок не переводится

это после перенаправления просто на экстеншен или после добавления того что выше в диалплан?

и все-таки - первый лог точно полный? если полный не влез в пост - можно на pastebin скинуть например. а то там вроде как retry указан 3, а в логе всего одна попытка

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от upcFrost

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

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

okamigo ()
Ответ на: комментарий от upcFrost

еще один вопросик, если можно в этой ветке сделаю.

Во время установки freepbx кроме версии php 5.6 установил также версию 7. После этого когда в ivr entries создаю запись и на вкладке «return"выбираю „No“ появляется ошибка.

Exception /­var/­www/­html/­admin/­libraries/­utility.functions.php207

SQLSTATE[HY000]: General error: 1366 Incorrect integer value: " for column 'ivr_ret' at row 1

может знаете это как то связано с версией php

okamigo ()
Ответ на: комментарий от okamigo

Вполне может быть. Код freepbx это адовая помойка куда лучше лишний раз не соваться. Судя по ошибке он отдает пустую строку если выбрано No, а колонка в базе имеет тип Integer. Может быть старый пых неявно конвертил пустую строку к нулю, хз

upcFrost ★★★★★ ()
Ответ на: комментарий от okamigo

и еще возможно ли удалить только версию php 7 не влияя на работу системы?

ну если она больше не нужна нигде - да, можно. лучше разумеется это делать когда в офисе больше никого нет, и про бэкап не забыть :)

upcFrost ★★★★★ ()