Сделал следующее:
1. В /var/lib/asterisk/agi-bin/ создал два файла:
em-mode.sh - для аварийного режима работы (изменяется дефолтный контекст транка "37002" с from-trunk-sip-37002 на incoming-em-mode)
Код: Выделить всё
#!/bin/bash
sed -i 's/context=from-trunk-sip-37002/context=incoming-em-mode/g' /etc/asterisk/sip_additional.conf
/usr/sbin/asterisk -rx "core reload"
Код: Выделить всё
#!/bin/bash
sed -i 's/context=incoming-em-mode/context=from-trunk-sip-37002/g' /etc/asterisk/sip_additional.conf
/usr/sbin/asterisk -rx "core reload"
chmod +x filename
3. Создать контексты в extension_custom.conf:
Код: Выделить всё
[incoming-em-mode] ;вх на транк 37002 при аварийном режиме
exten => 37002,1,Goto(ivr-main,s,1)
[ivr-main]
exten => s,1,Answer()
exten => s,n,Background(hello-world)
exten => s,n,Queue(q-em-mode,t)
;exten => s,n,Hangup()
[employees] ;контекст для вн номеров
include => em-nor-mode
include => internal
include => outbound-gorod
[em-nor-mode]
exten => #100,1,AGI(em-mode.sh)
exten => #100,n,Background(digits/1) ;Тут будет голосовое сообщение "Аварийный режим активирован"
exten => #100,n,Hangup()
exten => #100*,1,AGI(nor-mode.sh)
exten => #100*,n,Background(digits/2);Тут будет голосовое сообщение "Аварийный режим деактивирован"
exten => #100*,n,Hangup()
[internal] ;вн вызовы
exten => _1XX,1,Dial(SIP/${EXTEN})
[outbound-gorod] ;исх на город
exten => _9XXXXX,1,Dial(SIP/37002/${EXTEN:1})
exten => _9XXXXX,n,Congestion()
exten => _9XXXXX,n,Hangup()
В принципе все работает как я хотел.
Но все таки хотел спросить:
Правильно ли я сделал, может где-то можно было по другому сделать?
Спасибо.