Синтаксически
- Переменные диалплана? Структуры lua: строки, таблицы.
- макросы, gosub’ы? нет, спасибо. Используем функции.
- GotoIf? Нормальные циклы и условия вместо скачков по приоритетам и контекстам.
- ODBC? Нет, спасибо, наелся. Используем прямое подключение к mysql, mongo, redis.
- Чего-то не хватает? Используем пакеты luarocks.
- Отладка, ошибки? Да, хоть в астериск, хоть в kibana-logstash-graylog и еще куда-то там.
- Бонус: тесты. Покрытие кода диалплана тестами.
Методологически
- Удобное написание – более красивое и качественное оформление кода.
- Более логичные блоки и более полная обработка различных вариантов.
- Большее количество вариантов обработки.
- Вся логика в одном месте: нет такого – запросы в одном месте, логика диалплана в другом.
Минусы
- мы в рамках астериска. lua – это более удобный обработчик звонка. Но не более.
- Нет взаимодействия между каналами. Требуется придумывать свои схемы для обмена данными.
- Нет удобного доступа к встроенной БД, нет удобного доступа к разделяемому пространству с разных каналов.
Вывод: все тоже самое. Мировая скорбь. Но чем больше проект, чем гибче функциональность требуется от астериска, от телефонной системы, тем более гибкий инструмент хочется использовать. И lua гибче раза в полтора стандартного диалплана.*
*по оценкам британских ученых-фундаменталистов
Что хочется?
Скрестить tarantool И asterisk. : )
> Нет взаимодействия между каналами. Требуется придумывать свои схемы для обмена данными.
А вот это поясните, в чем разница между extensions.conf и lua ?
LikeLiked by 1 person
extensions.conf – конфигурационный файл , где диалплан пишется синтаксисом установленным астериском, а extensions.lua – пишется на lua языке программирования, получается скрипт, который должен провести звонок как диалплан, но по пути он может и еще много полезного сделать. Еще немного есть здесь: https://habrahabr.ru/post/271939/ Извини, что не сразу ответил. Тут какая-то интересная система комментариев : )
LikeLike
Да, это я читал, спасибо.
Я имел ввиду: в чем именно выражается отсутствие взаимодействия между каналами, если мы переходим на lua
LikeLike
Здесь не столько “если мы переходим на lua”, а в целом по астериску мы не можем каким-то простым образом рулить одним каналом из другого : ) вот как. Или вот например есть концепция Local канала, я не могу в Lua написать сценарий для него и на этапе Dial закинуть этот сценарий для этого канала, он должен быть заранее написан. Но это, вероятно, из области “кабы не было зимы”..
LikeLike
Вот оно что, спасибо !
У нас необходимости в таких манипуляциях пока нет. Видимо не доросли -)
LikeLike
два asterisk 1.8
на slackware14
соединяю по IAX2
если extensions.conf или extensions.ael – все работает
если же диалплан начинаю писать в extensions.lua – беда…
при звонке с одного сервера на второй – второй молча падает. (и наоборот)
вопрос: Slackware14? Asterisk1.8? или LUA?
LikeLike
Без логов можно только гадать.
LikeLike