Назад | Перейти на главную страницу

Ограничить одновременный вызов одного пользователя в Asterisk

Я хочу ограничить количество одновременных вызовов для каждого внутреннего номера в Asterisk по соображениям безопасности. Например, когда пользователь участвует в вызове, никто другой не сможет позвонить по этому добавочному номеру.

Как я могу этого добиться?

На этот вопрос нет простого ответа, но некоторые люди предложили решения. В основном вам нужно самостоятельно подсчитывать исходящие каналы, как предлагается здесь:

http://www.remiphilippe.fr/2010/05/29/simpting-call-limitation-on-asterisk/

Скрипт выглядит так, после того как группы были включены как макрос:

[globals]
MAXCALLS=2

[macro-voipcall]
; Limit the number of outgoing calls
; Set Group
exten => s,1,Set(GROUP()=OUTBOUND_GROUP)
; Are we exceeding the limit?
exten => s,2,GotoIf($[${GROUP_COUNT()} > ${MAXCALLS}]?999)
; No? Then dial
exten => s,3,Dial(${ARG1})
; Yes? Then deny
exten => s,999,Set(DIALSTATUS=CHANUNAVAIL)
  • Это взято с сайта выше; Я не могу поверить в это и не тестировал сценарий, но он кажется правильным!