Коллеги, есть такая вот интересная задачка:
Имеется сеть из n мини-АТС на базе FreePBX, соединенных каждая с каждой по sip.
Требуется запретить трансфер на внутренние номера касс, кассы эти есть почти на всех АТС.
Задумка такая - завести таблицу в MySQL на одном из серверов с запретными номерами, настроить репликацию ее раз в сутки на все остальные станции (чтобы связь не ломалась при обрыве связи АТС-АТС).
Пробовал на основе статьи
http://atsip.ru/pomoshch/nastrojka-asterisk/351-zapret-transfera-na-opredelennye-napravleniya сделать. А именно создал отдельный контекст from-internal-xfer2.
[from-internal-xfer2]
include => ext-local-exclude-cash
exten => h,1,Macro(hangupcall)
Во вложенном [ext-local-exclude-cash] скопировал содержимое [ext-local] без блока с номерами из черного списка (без тех, на которые нельзя переводить), это как черновой вариант работает, но не решает проблему запрета трансфера на номера других станций через SIP\otherATS\ext.
Плюс удобства править эти контексты руками при дальнейших изменениях никакого, т.е. поддерживать такое устанешь.
Куда дальше копнуть? В варианте с таблицей в БД проверять есть ли номер в списке планирую функцией через func_odbc.