Skip to content

About

Asterisk 22 + Lua 5.1

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Asterisk 22 Lua Dialplan

Легковесный, оптимизированный и безопасный диалплан для 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 абонентов.

About

Asterisk 22 + Lua 5.1

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages