Это старая версия документа!
Устанавливаем nginx с поддержкой lua:
sudo yum install -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm sudo sed -i -e 's@/packages/@/packages/mainline/@' /etc/yum.repos.d/nginx.repo sudo curl -L https://copr.fedorainfracloud.org/coprs/khara/nginx-module-ndk-lua/repo/epel-7/khara-nginx-module-ndk-lua-epel-7.repo -o /etc/yum.repos.d/nginx-module-ndk-lua.repo sudo yum install -y nginx-1.15.7 nginx-module-lua
Правим порт в конфиг /etc/nginx/nginx.conf. Параметр «listen».
user nginx; worker_processes 1; pid /var/run/nginx.pid; load_module modules/ndk_http_module.so; load_module modules/ngx_http_lua_module.so; events { worker_connections 1024; } http { include /etc/nginx/mime.types; lua_shared_dict asterisk_vars 20m; sendfile on; keepalive_timeout 65; server { listen 89; server_name localhost; location /pbxcore/api/miko_ajam/getvar { default_type 'text/plain'; content_by_lua_file /etc/nginx/http_get_variables.lua; keepalive_timeout 0; } } }
Заливаем файл на сервер /etc/nginx/http_get_variables.lua Устанавливаем права доступа к файлу
chown nginx:nginx /etc/nginx/http_get_variables.lua chmod +x /etc/nginx/http_get_variables.lua
В начале скрипта правим переменные на свои значения:
local ami_user = "admin"; local ami_pass = "eC98m6LONAAL"; local http_user= "admin:secret";
Перезапускаем nginx:
sudo systemctl restart nginx
Смотрим статус сервера:
systemctl status nginx.service
Из локальной консоли выполните команду:
curl -u admin:secret 'http://127.0.0.1:89/pbxcore/api/miko_ajam/getvar?event=Ping'
Должен вернуть:
true
Или при ошибке авторизации:
The user isn't authenticated.
Дополнительная проверка получения переменных канала:
curl -u admin:secret 'http://127.0.0.1:89/pbxcore/api/miko_ajam/getvar?channel=SIP/201-00000009&variables=CDR(linkedid),EXTEN'
Должен венуть:
New Structure("Result", true)
Или
New Structure("Result,Msg", false, "AMI auth failed...")
Не забудьте открыть на фаерволе порт 89.
Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 89 -j ACCEPT