Легковесный, оптимизированный и безопасный диалплан для Asterisk 22, написанный на Lua 5.1 (модуль pbx_lua). Проект разработан с упором на стабильность, высокую производительность и использование современных возможностей PJSIP.
- Нативная поддержка PJSIP: Использование функции
PJSIP_DIAL_CONTACTSдля корректной маршрутизации вызовов на абонентов с несколькими зарегистрированными устройствами (Max Contacts > 1). - Отказоустойчивость: Безопасная загрузка конфигурационных списков через
pcall. Ошибка синтаксиса или отсутствие файла со списками не приведет к падению диалплана — АТС продолжит работу с пустыми правилами. - Фильтрация вызовов (Blacklists): Встроенная проверка входящих номеров по черному списку, а также ограничение исходящих вызовов на определенные направления.
- Быстрая нормализация номеров: Эффективная обработка номеров (преобразование 8 -> 7, добавление кода города для локальных 6-значных номеров).
- Корректные SIP-ответы: Использование правильных ISDN Hangup кодов (например,
1- Unallocated,20- Subscriber absent,21- Call rejected) для прозрачного взаимодействия с провайдерами связи. - Автоматические BLF-хинты: Динамическая генерация хинтов состояния линий для корректной работы индикаторов на IP-телефонах.
extensions.lua— Основной скрипт маршрутизации (содержит контекстыinternalиexternal).lists.lua— Модуль данных. Содержит таблицыblacklist(заблокированные входящие) иforbidden_outbound(запрещенные исходящие).
- Код использует идиоматичные конструкции Lua, такие как Guard clauses (
if (var or "") == "" then), что делает проверки наnilи пустые строки надежными и легко читаемыми. - Транки и внутренние номера ожидаются в формате
7XXXXXXXXXX. - Дизайн диалплана сознательно минимизирует использование избыточных модулей, оставляя только самое необходимое для АТС на ~20 абонентов.