Добрый день! Имеются фиксированные комнаты конференции с 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})
Непонятно зачем такие сложности.
Обычно делается либо один код на nway с внешним oroginate - чтоб сбросить ждете пока called выключается.
Либо два кода, один выйти и позвонить, второй redirect.
Задан: 2014-05-06 16:08:27 +0400
Просмотрен: 259 раз
Обновлен: May 07 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Спасибо за ответ, но не хотелось бы разделять внешние и внутренние звонки, если я правильно понимаю... Подскажите пожалуйста, что нужно дописать чтобы была возможность сброса во время дозвона? Я не такой спец по астериску чтоб схватывать все на лету :)
ibit ( 2014-05-07 08:11:54 +0400 )редактироватьвсе оказалось куда проще, нужно было просто поставить таймаут вызова...
ibit ( 2014-05-14 08:28:45 +0400 )редактироватьможно еще добавить параметр H в команду Dial и сбрасывать звонок нажатием *
nana_MeDBeD ( 2014-06-06 05:05:45 +0400 )редактировать