IP-телефония на базе Asterisk
Введите свой номер телефона
и мы перезвоним вам
Решаем Ваши бизнес-задачи с помощью IT-технологий. Знаем, как сделать лучше, быстрее и дешевле. Наш опыт – на службе Вашего бизнеса.
Не все герои носят плащи. Сотни техических статей, написанных инженерами нашей компании. Делимся опытом и своими знаниями со всем сообществом.
Сотни функций и возможностей Asterisk помогут вывести коммуникации в Вашей компании на принципиально новый уровень. Технические ограничения – фантазия Заказчика.
Вы платите за систему, которая будет полностью соответствовать Вашим ожиданиям, требованиям и будет драйвером роста Вашего бизнеса
Идти в ногу со временем или оставаться на старых технологиях? Такой вопрос не стоит перед нашими клиентами. Решаем самые смелые задачи для Колл-Центров. Строим с нуля или работаем с существующими.
Поместите свой бизнес в эпицентр продаж. Интеграция IP-телефонии и CRM даст новый и мощный импульс Вашему Отделу Продаж и выведет компанию на три шага впереди конкурентов.
Подбираем для клиентов такие тарифы, которые ему редко получится найти на рынке самостоятельно. Работаем с 100+ операторов связи в интересах клиента.
Разработки, созданные нашей командой под запросы клиентов. Не отказывайтесь от инноваций. Мы поможем идти с ногу со временем.
Умные всю жизнь учатся, а остальные всегда все и так знают. Мы проводим обучение более 8 лет и выпустили более 1000 специалистов по Asterisk и Mikrotik. Проводим ежегодную конференцию Asterisk.
Купить наш опыт дешевле, чем набивать свои шишки. Мы реализовали более 800 проектов и накопили экспертизу для того, чтобы идеально выполнить Ваш проект.
Правильный выбор оборудования позволяет сэкономить от 20 до 50% бюджета телефонии. Мы предельно внимательно подойдем к выбору «железа» в Ваш проект.
Наши цены доступны не только для Москвы, но и для регионов. А вложения в нашу экспертизу обычно окупаются за несколько месяцев.
Работаем с 2011 года. Собрали отличную команду реальных фанатов своего дела. Подходим к работе с душой и ответственностью.
Asterisk – мощная программная платформа для организации IP-телефонии, но работа с диалпланом через стандартный extensions.conf
часто вызывает сложности. Одним из альтернативных решений является использование скриптового языка Lua, который был внедрен в Asterisk в 2008 году. Lua позволяет упростить работу с диалпланами, обеспечивая более удобный и гибкий синтаксис.
Автор статьи имеет опыт работы с Asterisk с 2011 года и использует Lua в Asterisk с 2016 года, применяя его также в OpenRESTy (сборке Nginx с поддержкой Lua). В данном материале рассмотрены особенности работы Lua в Asterisk, его преимущества и основные принципы написания диалпланов.
Работа с extensions.conf
Многие пользователи Asterisk начинают знакомство с платформой через web-интерфейсы, такие как FreePBX или Elastix. Однако в конечном итоге работа сводится к редактированию файла extensions.conf
, который обладает рядом недостатков:
В 2005 году была предложена альтернатива — AEL (Asterisk Extension Language). Он улучшил читаемость кода, но не решил проблему гибкости. В 2008 году был представлен модуль PBX Lua, который открыл новые возможности для работы с диалпланами.
Lua – это легковесный скриптовый язык, созданный для обработки данных в различных средах. В контексте Asterisk его применение позволяет:
Документация по Lua для Asterisk представлена на WikiAsterisk, а сам PBX Lua разрабатывался для более удобного конфигурирования PBX и автоматизации процессов обработки вызовов.
При запуске Asterisk загружает модуль Lua и проверяет наличие глобальной таблицы Extensions. В случае ошибки она регистрируется в логе, но работа PBX продолжается с предыдущим сценарием.
Принципы работы:
require
.Lua поддерживает два типа переменных:
channel()
.Приложения диалплана доступны через таблицу app()
, что позволяет гибко управлять вызовами.
extensions.conf
vs extensions.lua
В extensions.conf
используется GotoIf()
, что делает код сложночитаемым. В Lua аналогичное условие записывается в стандартном формате if-then-else
, что значительно упрощает восприятие.
В extensions.conf
доступен только While
, из-за чего код становится перегруженным. В Lua можно использовать:
While
– аналогично Asterisk.For
– удобен для итерации с четко определенным числом шагов.For
(ключ-значение) – используется для перебора таблиц.В extensions.conf
практически отсутствуют типы данных, а в Lua их восемь, что расширяет возможности работы с переменными.
Применение Lua позволяет оптимизировать Asterisk за счет:
extensions.lua
и extensions.conf
– позволяет переходить между ними через Gosub
.LuaRocks – пакетный менеджер, аналог NPM и PIP. Позволяет легко подключать сторонние библиотеки, например:
Подключение к базе через Lua не оптимизировано и выполняется при каждом создании канала, что подходит только для низкой нагрузки. Для масштабируемости рекомендуется использовать:
func_odbc
– поддерживает постоянные соединения и управляется ядром Asterisk.Lua позволяет выполнять команды операционной системы через io.popen()
, что может использоваться для:
hostname
).В отличие от Shell-скриптов, Lua надежнее в условиях высокой нагрузки.
Lua позволяет обрабатывать ввод пользователя через:
Read()
– запрос ввода (например, PIN-кода).Background() + WaitExten()
– проигрывание звукового файла с возможностью прерывания.Для изменения контекста используется DialPlan()
, что делает IVR-меню более гибким.
Важно: при использовании Read()
необходимо проверять статус вызова (checkHangup
), чтобы избежать зацикливания при разрыве соединения.
Так как встроенные инструменты отладки отсутствуют, используются два метода:
App
и Channel
.extensions.lua
– примеры реальных диалпланов.Использование Lua в Asterisk значительно упрощает работу с диалпланами, делая их более гибкими, читаемыми и функциональными. Поддержка функций, циклов, переменных и интеграция с внешними сервисами позволяют создавать сложные сценарии обработки вызовов с высокой производительностью.
Для начинающих рекомендуется ознакомиться с основами Lua, а затем переходить к построению диалпланов. Lua в Asterisk – это мощный инструмент, позволяющий расширить возможности IP-телефонии и автоматизировать многие процессы.
Билеты уже в продаже!
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
Быстро узнать мобильного или городского оператора. Впишите номер