Конференция Asterisk Confbridge. Как избежать подслушивающих?

Общая информация: я пытаюсь реализовать функцию управления конференц-связью на моем сервере Elastix. Первоначальная проблема заключалась в невозможности Elastix пригласить всех участников конференции через веб-интерфейс. Я обнаружил, что могу использовать основанное на Python веб-приложение под названием Asterisk Conference Manager, которое в основном представляет собой инструмент, который создает несколько файлов выноски и помещает их в исходящую папку Asterisk для создания конференции Confbridge.
Проблема состоит в том, что, когда пара пользователей, имеющих вызов и приглашение на конференцию, выдается одному из пользователей - исходный набор вызовов удерживается. Но затем присоединенный пользователь может добавить еще одного нежелательного гостя, нажав кнопку "Conf" на своем SIP-телефоне, тихо включив прослушиватель в конференцию. Есть ли способ ограничить такую ​​функциональность? Может быть, есть диалплан или контекстная настройка? Я пытался найти документы, но там не было необходимой мне информации.

Вот пример моего файла выноски:

CALLOUT_TEMPLATE = """Channel: SIP/%(number)s
Context: confman-bridge
Extension: %(confnum)s
Priority: 1
MaxRetries: 0
RetryTime: 300
WaitTime: 300
Set: participant_name=%(name)s
Set: participant_number=%(number)s
Set: conf_number=%(confnum)s
"""

Вот как выглядит мой контекст:

[confman-bridge]
load => func_groupcount.so ; function GroupCount - Requires N/A
exten => _X.,1,Verbose(Bridging ${participant_name} ${participant_number}) 
;Limit the number of outgoing calls 
;Set Group

same  =>     n,Set(CALLERID(all)=${participant_name} <${participant_number}>)
same  =>     n,Set(ret=${CURL(${CONFMAN_HOST}/asterisk/enter_conference/${conf_number}/${participant_number})})
same  =>     n,Answer
same  =>     n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN)
same  =>     n,Answer
same  =>     n,Wait(1)
same  =>     n,Set(PINCOUNT=0)
same  =>     n(READPIN),Read(PIN,enter-conf-pin-number,,,,)
same  =>     n,GotoIf($[x${PIN} = x22]?USER)
same  =>     n,Set(PINCOUNT=$[${PINCOUNT}+1])
same  =>     n,Playback(conf-invalidpin)
same  =>     n,GotoIf($[${PINCOUNT}>3]?h,1)
same  =>     n,Goto(READPIN)
same  =>     n,1,Set(ret=${CURL(${CONFMAN_HOST}/asterisk/leave_conference/${conf_number}/${participant_number})})
same  =>     n(USER),ConfBridge(${EXTEN},,,user_menu)

exten =>     h,1,Hangup

PS: я довольно новичок в Asterisk и Elastix, поэтому я не уверен, как именно эта функциональность называется.

0 ответов

Другие вопросы по тегам