Блог bitmanager

Осторожней с break=on-false

Недавно исследовал странную проблему. Дело в том, что у нас есть нерабочее время, когда звонки на IP-телефонию должны завершаться соответствующим сообщением. И вот недавно узнаю, что они таки ни разу не завершаются, а очень даже проходят дальше и беспокоят сотрудников. Странно, подумал я и полез смотреть в чем дело.

Extension управления рабочим временем у меня устроен просто. Если сейчас рабочее время — кидаем запись в лог и передаем звонок дальше. Если время нерабочее, то отправляем запись в лог, произносим соответствующую фразу и звонок завершаем.

Точнее, именно так должно работать, и я считал, что там все ок. А Freeswitch думал иначе.
Оказалось, что данный extension в нерабочее время вообще не проявляет себя в процессе звонка. А все потому, что у меня при проверке является ли текущее время рабочим, стояло условие break=on-false. Оно вообще отменяет обработку данного extension при невыполнении условий extension-а. В итоге, даже в нерабочее время звонок проходил дальше, заставляя напрягаться техническую поддержку.

Подстановка в условия break=never зарубила данную проблему на корню.
Записки сисадмина ip-телефония