Возникла необходимость отключения офисного факса в нерабочие время, да так чтобы факсы он принимал а вот позвонить с него было бы нельзя. Стандартный модуль для 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 и благополучно уходит через ивана.