Я хочу ограничить количество одновременных вызовов для каждого внутреннего номера в 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)