Skip to main content

Временные условия для исходящих звонков Asterisk

By 2010-09-13Asterisk, CentOS, Kadmin

Возникла необходимость отключения офисного факса в нерабочие время, да так чтобы факсы он принимал а вот позвонить с него было бы нельзя.  Стандартный модуль для FreePBX, называющийся Time Condition, мне не помог, но используя его можно узнать о функции GotoIfTime. Решил я проблему добавив в extensions_custom.conf (добовлять в extensions_aditional.conf не имеет смысла ибо он перезаписывается FreePBXом при каждом применении конфигурации) следующие строки:

[time] exten => _X.,1,GotoIfTime(18:00-9:30|mon-fri|*|*?after,${EXTEN},1)
exten => _X.,2,Dial(ZAP/g0/${EXTEN})
exten => _X.,3,Congestion()

[after] exten => _X.,1,GotoIf($["${CALLERID(num)}" = "110"]?block,${EXTEN},1)
exten => _X.,2,Dial(ZAP/g0/${EXTEN})
exten => _X.,3,Congestion()

[block] exten => _X.,1,Congestion()

и в гуе FreePBX поставил факс в контент [time]. При исходящем звонке в этом контексте сначала проверяется время звонка и если оно выходит за рамки рабочего (18.00-9.30) то звонок переходит в контекст [after] где проверяется его номер и если он совпадает с номером факса звонок переходит в контекст [block], при не соблюдении этих двух условий звонок направляется в ZAP/g0 и благополучно уходит через ивана.

Leave a Reply

*