Asterisk: queue_log в MySQL через unixODBC
Realtime лог очереди в нативную базу данных Asterisk.
SQL таблица лога очереди
Создадим таблицу в БД asterisk.
CREATE TABLE IF NOT EXISTS `queue_log` ( `time` varchar(32) DEFAULT NULL, `callid` char(64) DEFAULT NULL, `queuename` char(64) DEFAULT NULL, `agent` char(64) DEFAULT NULL, `event` char(32) DEFAULT NULL, `data` char(64) DEFAULT NULL, `data1` char(64) DEFAULT NULL, `data2` char(64) DEFAULT NULL, `data3` char(64) DEFAULT NULL, `data4` char(64) DEFAULT NULL, `data5` char(64) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Выключение текстового лога
Если используется стандартное имя queue_logреалтайм семейства (realtime family)
и настроено соединение с базой данных, Asterisk сам создаст таблицу queue_log,
при отключении текстового лога и перезагрузке модуля logger:
*CLI> module reload logger Module 'logger' reloaded successfully. Asterisk Queue Logger restarted
в файле /etc/asterisk/logger.conf выключите лог в файл:
queue_log_to_file = no
в файле /etc/asterisk/asterisk.conf*
[options] queue_adaptive_realtime = yes
* - спорная опция
Конфигурация realtime family
в файле /etc/asterisk/extconfig.conf
queue_log => odbc,asterisk,queue_log
где 'asterisk' ваш db конфиг в /etc/asterisk/res_odbc.conf:
[asterisk] enabled => yes dsn => asterisk username => dbuser password => dbpass pre-connect => yes
Расшифровка событий очереди (queue) в логе.
event | data1 | data2 | data3 |
---|---|---|---|
ABANDON | position | origposition | waittime |
AGENTDUMP | |||
AGENTLOGIN | channel | ||
AGENTCALLBACKLOGIN | exten@context | ||
AGENTLOGOFF | channel | logintime | |
AGENTCALLBACKLOGOFF | exten@context | logintime | reason |
COMPLETEAGENT | holdtime | calltime | origposition |
COMPLETECALLER | holdtime | calltime | origposition |
CONFIGRELOAD | |||
CONNECT | holdtime | uniqueid | |
ENTERQUEUE | url | callerid | enterposition |
EXITWITHKEY | key | position | |
EXITWITHTIMEOUT | position | ||
QUEUESTART | |||
SYSCOMPAT | |||
TRANSFER | extension,context |