dynamic n-way - проблема сброса дозвона
Добавлено: 12 май 2014, 15:22
Добрый день! Имеются фиксированные комнаты конференции с dynamic features, каждый участник конференции может нажать 0 (находясь в конференции, после чего пойдет длинный гудок), набрать номер и после ответа с этого номера пригласить его в конференции по нажатию * или отменить по нажатию #. Проблема в том, что звонок невозможно отменить и вернуться в конференцию нажатием # непосредственно во время дозвона (т.е когда идут гудки; до начала дозвона и после дозвона проблем с возвращением в конференц-комнату нет), получается что сбросить неотвечающего абонента можно только нажатием кнопки сброса на телефоне и соответственно выходом из конференц-комнаты... Как сделать (как изменить именно этот код, что дописать) возможность сброса звонка и возврата конференцию во время дозвона?
Код: Выделить всё
[applicationmap]
nway-inv => *,caller,Macro,nway-ok
nway-noinv => #,caller,Macro,nway-notok
;конференция 1
exten => 1111,1,NoOp()
same => n,Answer
same => n,Set(CONFNO=1111)
same => n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
same => n,Set(DYNAMIC_FEATURES=)
same => n,MeetMe(${CONFNO},1MpX)
same => n,Hangup
[dynamic-nway-invite]
;Когда мы находимся в конференции и нажимаем "0" появляется гудок в линии.
;После чего набираем номер нового участника конференции и "#"
exten => 0,1,NoOp()
same => n,Read(DEST,dial,,i)
same => n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
same => n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
same => n,Set(DYNAMIC_FEATURES=)
same => n,Goto(Local,${CONFNO},1)
exten => i,1,Goto(Local,${CONFNO},1)
[dynamic-nway-dest]
exten => _99XXXXXXXXXXX!,1,Dial(SIP/MTT/${EXTEN:2})
exten => _8XXXXXXXXXX!,1,Dial(SIP/MTT/7${EXTEN:1})
[macro-nway-ok]
;Сюда попадаем, если нажмём "*" для добавления нового участника в конференцию
exten => s,1,NoOp()
same => n,ChannelRedirect(${BRIDGEPEER},Local,${CONFNO},1)
[macro-nway-notok]
;Тут мы окажемся, если не захотим добавлять нового участника в конференцию
exten => s,1,NoOp()
same => n,SoftHangup(${BRIDGEPEER})