@GiGaBy

Как в Asterisk extesions.lua подключиться к базе mysql на удаленном хосте?

В общем суть вопроса в чем, хочу переписать extensions.conf в extensions.lua. В целом все понятно, и все работает, пока я не попробовал подключиться к mysql базе.
Ниже приведен тестовый диалплан:

extensions = {
        deskphone = {
                ["_1XX"] = function (c,e)
                        app.NoOp("Extension "..e)
                        app.NoOp("Context "..c)
                        conn_mysql()
                end;
                ["102"] = function(context, extension)
                        app.NoOp("Hello World")
                end;

                ["101"] = function(c, e)
                        app.dial("PJSIP/"..e, 60)
                end;
        }
}

function conn_mysql()

        package.cpath = package.cpath .. ";/usr/lib/x86_64-linux-gnu/lua/5.2/luasql/?.so"

        env = assert (require"luasql.mysql".mysql())
        con = assert (env:connect("asteriskdb","root","asterisk","asterisk-db"))
        cur = assert (con:execute("SHOW TABLES"))

        row = cur:fetch ()
        while row do
          print(row)
          row = cur:fetch (row)
        end

        app.NoOp(" "..env)
        env:close()
end


Вываливается ошибка:

17ab9d83b293462e9faa4357c1314ac4.png

Хотя если выпонить этот скрипт просто из lua (чисто функцию подключения к базе и выбору таблиц) он отрабатывает без каких либо проблем.
Ubuntu 14.04, Asterisk 13, LUA 5.2
  • Вопрос задан
  • 1025 просмотров
Пригласить эксперта
Ответы на вопрос 3
@silverjoe
Он же вам пишет, что "Out of memory"
Ответ написан
Комментировать
@GiGaBy Автор вопроса
Чтото мне это ни о чем не говорит. Я конечно в lua не очень, но мемори там достаточно, и скрипт нормально отрабатывает, если его без привязки к астеру запускать. То есть список таблиц в базе он выводит, а когда я эту функцию запускаю из диалплана появляется эта ошибка.
Ответ написан
Комментировать
@BoDRbI
VoIP Developer
Вот тут есть пример использования lua и mysql из плана набора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы