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

Занятый абонент после группового вызова

Добавлено: 30 апр 2014, 13:12
denchick2704
Всем трям.

В incoming я определяю занят абонент или нет, для внутренних вызовов.

[incoming]
exten => _XXX,1,Set(GROUP()=${CALLERID(number)})
exten => _XXX,n,Set(GROUP()=${EXTEN})
exten => _XXX,n,GotoIf($[${GROUP_COUNT(${EXTEN})} > 1]?busy)
exten => _XXX,n,Dial(SIP/${EXTEN},120,tT)
exten => _XXX,n,Hangup
exten => _XXX,n(busy),Busy

Для внешних вызовов занятость принимающего абонента, я не определяю.
[internal]
exten => s,1,Set(GROUP()=201)
exten => s,n,Set(GROUP()=202)
exten => s,n,Dial(SIP/201&SIP/202,120,tT)
exten => s,n,Hangup

а если идет групповой внешний вызов, как узнать какой абонент из группы принял вызов?

будет ли правильно работать incoming или пока не закончится вызов, incoming, будет выдавать занято при звонке на 201 и 202?

Re: Занятый абонент после группового вызова

Добавлено: 30 апр 2014, 13:25
ded
Исполнение строчки exten => s,n,Dial(SIP/201&SIP/202,120,tT)
никак не зависит от
[incoming]
exten => _XXX,1,Set(GROUP()=${CALLERID(number)})
exten => _XXX,n,Set(GROUP()=${EXTEN})
exten => _XXX,n,GotoIf($[${GROUP_COUNT(${EXTEN})} > 1]?busy)
exten => _XXX,n,Dial(SIP/${EXTEN},120,tT)

Re: Занятый абонент после группового вызова

Добавлено: 30 апр 2014, 13:35
denchick2704
это я понимаю, допустим что ответил на вызов абонент 201, и в этот момент абонент 203 звонит абоненту 202, так что выдаст GROUP_COUNT(202), так как в контексте internal сделано Set(GROUP()=202)

Re: Занятый абонент после группового вызова

Добавлено: 30 апр 2014, 16:54
denchick2704
РЕШИЛ

переписал контекст
[internal]
exten => s,n,Dial(SIP/201&SIP/202,120,tTM(answering))
exten => s,n,Hangup

добавил макро
[macro-answering]
exten => s,1,NoOp()
exten => s,n,Set(GROUP()=${DIALEDPEERNUMBER})
exten => s,n,MacroExit()