Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:optimization

Это старая версия документа!


Оптимизация взаимодействия панели телефонии и АТС

Оптимизация запросов GetVar

Устанавливаем 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
astpanel/optimization.1564753781.txt.gz · Последние изменения: 2019/08/02 13:49 — apor