Зомби-каналы при постановке на удержание
Добавлено: 14 янв 2013, 14:30
Добрый день!
Возникла необходимость ставить абонента на удержание и снимать с него не средствами самого телефона, а с помощью DTMF. Мне казалось что это легко сделать макросами и features.conf. Допустим по нажатию "11" отправляем абонента в контекст, где он ставится на удержание. Почему-то оказалось, что при этом появляются зомби-каналы. У меня какие-то неверные настройки? Зомби меня не беспокоили бы, но после того как их накапливается штук 7 dtmf перестают восприниматься и в CLI-консоли выдается ошибка: ERROR[14769]: app_macro.c:292 _macro_exec: Macro(): possible infinite loop detected. Returning early.
Заранее спасибо
extensions.conf:
[from-inside]
exten => _XXX,1,NoOp("Start")
exten => _XXX,n,Set(DYNAMIC_FEATURES=test_start)
exten => _XXX,n,Dial(SIP/${EXTEN},20)
exten => _XXX,n,HangUp()
[macro-test-start]
exten => s,1,NoOp("Macro test-start")
exten => s,n,Set(hold_channel=${BRIDGEPEER})
exten => s,n,ChannelRedirect(${hold_channel},test-hold,s,1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,GotoIf($["${DEST}" = "0"] ?rehold:do_call)
exten => s,n(rehold),Bridge(${hold_channel})
exten => s,n,HangUp()
exten => s,n(do_call),Dial(Local/${DEST}@from-inside,,g)
[test-hold]
exten => s,1,NoOp("Test-hold")
exten => s,n,Answer()
exten => s,n,MusicOnHold(,3600)
exten => s,n,HangUp()
features.conf:
[applicationmap]
test_start => 11,self,Macro,test-start
Возникла необходимость ставить абонента на удержание и снимать с него не средствами самого телефона, а с помощью DTMF. Мне казалось что это легко сделать макросами и features.conf. Допустим по нажатию "11" отправляем абонента в контекст, где он ставится на удержание. Почему-то оказалось, что при этом появляются зомби-каналы. У меня какие-то неверные настройки? Зомби меня не беспокоили бы, но после того как их накапливается штук 7 dtmf перестают восприниматься и в CLI-консоли выдается ошибка: ERROR[14769]: app_macro.c:292 _macro_exec: Macro(): possible infinite loop detected. Returning early.
Заранее спасибо
extensions.conf:
[from-inside]
exten => _XXX,1,NoOp("Start")
exten => _XXX,n,Set(DYNAMIC_FEATURES=test_start)
exten => _XXX,n,Dial(SIP/${EXTEN},20)
exten => _XXX,n,HangUp()
[macro-test-start]
exten => s,1,NoOp("Macro test-start")
exten => s,n,Set(hold_channel=${BRIDGEPEER})
exten => s,n,ChannelRedirect(${hold_channel},test-hold,s,1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,GotoIf($["${DEST}" = "0"] ?rehold:do_call)
exten => s,n(rehold),Bridge(${hold_channel})
exten => s,n,HangUp()
exten => s,n(do_call),Dial(Local/${DEST}@from-inside,,g)
[test-hold]
exten => s,1,NoOp("Test-hold")
exten => s,n,Answer()
exten => s,n,MusicOnHold(,3600)
exten => s,n,HangUp()
features.conf:
[applicationmap]
test_start => 11,self,Macro,test-start