Сообщений: 4
|
Re: Ночной режим IP-PBX
Привет всем !
Да жалко, что никто не ответил - пришлось самому разбираться. Вот что у меня получилось:
1. Создал файл /etc/asterisk/globals_custom.conf с двумя строками:
NIGHT=2
STORAGE=SIP/200
где, NIGHT - показатель ночного режима, 0 - безусловно выключен, 1 - безусловно включен, 2 - в зависимости от переменных REGTIME, REGDAYS.
STORAGE - телефон охраны.
Для переключения переменной NIGHT написал следующий dialplan:
[from-internal-operator]
include => from-internal
exten => 770,1,SetGlobalVar(NIGHT=0)
exten => 770,2,Playback(offnight)
exten => 770,3,Hangup
exten => 771,1,SetGlobalVar(NIGHT=1)
exten => 771,2,Playback(setnight)
exten => 771,3,Hangup
exten => 772,1,SetGlobalVar(NIGHT=2)
exten => 772,2,Playback(timenight)
exten => 772,3,Hangup
где offnight, setnight и timenight - соотвествующие сообщения.
контекст from-internal-operator присвоил секретарю, все остальные сидят в контексте from-internal.
В обработке исходящих звонков добавил строки:
exten => _98.,1,GotoIf($[${NIGHT}=1]?2:4) ; 9 - префикс выхода в город
exten => _98.,2,Playback(rest) ; rest - сообщение, что междугородние звонки запрещены
exten => _98.,3,Hangup
exten => _98.,4,GotoIf($[${NIGHT}=0]?8:5)
exten => _98.,5,GotoIfTime(${REGTIME},${REGDAYS},*,*?8)
exten => _98.,6,Playback(rest)
exten => _98.,7,Hangup
exten => _98.,8,Dial(SIP/2623828,,D(${EXTEN:1}))
; далее перебор всех исходящих линий
exten => _98.,n,Macro(outisbusy,)
Обработка входящих звонков реализована следующим образом:
[from-external]
exten => 800,1,Answer()
exten => 800,2,GotoIf($[${NIGHT}=1]?3:5)
exten => 800,3,Dial(${STORAGE})
exten => 800,4,Hangup
exten => 800,5,GotoIf($[${NIGHT}=0]?9:6)
exten => 800,6,GotoIfTime(${REGTIME},${REGDAYS},*,*?9)
exten => 800,7,Dial(${STORAGE})
exten => 800,8,Hangup
exten => 800,9,BackGround(welcome)
; дальнейшая обработка входящих звонков
С уважением, Алимов Игорь.
|