Настроек MySQL ODBC (запись информации о звонках)
Настроек MySQL ODBC (запись информации о звонках)
Создадим MySQL базу данных asteriskcdrdb
Создадим таблицу для хранения CEL записей:
Создадим таблицу для хранения CDR записей (в данном примере имя таблицы cdr)
В базе данных должны существовать две таблицы:
> USE asteriskcdrdb;
> SHOW TABLES;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| cdr |
| cel |
+-------------------------+
2 rows in set (0.00 sec)
Настройка ODBC
Для работы логирования CEL записей необходима библиотека:
Если библиотеки нет, ее следует установить
Параметры доступа к драйверам описываются в файле:
Проверить настройки ODBC возможно утилитой isql
«-v» - выводить отладку
«MySQL-asteriskcdrdb» - имя конектора из /etc/odbc.ini
«asteriskuser» - имя пользователя MySQL
«admin» - пароль пользователя MySQL
Настройка конфигурации Asterisk
Опишем ресурс доступа к базе данных: /etc/asterisk/res_odbc.conf
Опишем правило логированиря CEL записей:
/etc/asterisk/cel_odbc.conf
Опишем правило логированиря CDR записей:
/etc/asterisk/cdr_adaptive_odbc.conf
Далее следует перезагрузить asterisk:
Обратно к инструкции...
Контроль
Выполнить в консоли астериск:
Статус CDR
Статус CEL
Должны быть подгружены модули:
Код: Выделить всё
CREATE DATABASE asteriskcdrdb;
Создадим таблицу для хранения CEL записей:
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `asteriskcdrdb`.`cel` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`eventtype` VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL,
`eventtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`userdeftype` VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
`cid_name` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`cid_num` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`cid_ani` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`cid_rdnis` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`cid_dnid` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`exten` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`context` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`channame` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`appname` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`appdata` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
`amaflags` INT(11) NOT NULL,
`accountcode` VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
`peeraccount` VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
`uniqueid` VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
`linkedid` VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
`userfield` VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
`peer` VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Создадим таблицу для хранения CDR записей (в данном примере имя таблицы cdr)
Код: Выделить всё
CREATE TABLE IF NOT EXISTS 'asteriskcdrdb'.'cdr' (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`calldate` DATETIME NOT NULL DEFAULT '2000-00-00 00:00:00',
`clid` VARCHAR(80) NOT NULL DEFAULT '',
`src` VARCHAR(80) NOT NULL DEFAULT '',
`dst` VARCHAR(80) NOT NULL DEFAULT '',
`dcontext` VARCHAR(80) NOT NULL DEFAULT '',
`lastapp` VARCHAR(200) NOT NULL DEFAULT '',
`lastdata` VARCHAR(200) NOT NULL DEFAULT '',
`duration` FLOAT UNSIGNED NULL DEFAULT NULL,
`billsec` FLOAT UNSIGNED NULL DEFAULT NULL,
`disposition` ENUM('ANSWERED','BUSY','FAILED','NO ANSWER','CONGESTION') NULL DEFAULT NULL,
`channel` VARCHAR(50) NULL DEFAULT NULL,
`dstchannel` VARCHAR(50) NULL DEFAULT NULL,
`amaflags` VARCHAR(50) NULL DEFAULT NULL,
`accountcode` VARCHAR(20) NULL DEFAULT NULL,
`uniqueid` VARCHAR(32) NOT NULL DEFAULT '',
`userfield` VARCHAR(200) NOT NULL DEFAULT '',
`did` VARCHAR(200) NOT NULL DEFAULT '',
`answer` DATETIME NOT NULL,
`end` DATETIME NOT NULL,
`recordingfile` varchar(255) NOT NULL default '',
`peeraccount` varchar(20) NOT NULL default '',
`linkedid` varchar(32) NOT NULL default '',
`sequence` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
INDEX `calldate` (`calldate`),
INDEX `dst` (`dst`),
INDEX `src` (`src`),
INDEX `dcontext` (`dcontext`),
INDEX `clid` (`clid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
В базе данных должны существовать две таблицы:
> USE asteriskcdrdb;
> SHOW TABLES;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| cdr |
| cel |
+-------------------------+
2 rows in set (0.00 sec)
Настройка ODBC
Для работы логирования CEL записей необходима библиотека:
Код: Выделить всё
ls -l /usr/lib/libmyodbc3_r.so
Если библиотеки нет, ее следует установить
Код: Выделить всё
yum install mysql-connector-odbc
Параметры доступа к драйверам описываются в файле:
Код: Выделить всё
/etc/odbcinst.ini
Код: Выделить всё
; настройка драйвера
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc3_r.so ; имя драйвера и местоположение могут отличаться для разных ОС
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so ; имя драйвера и местоположение могут отличаться для разных ОС
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
UsageCount = 5
Все возможные соединения («коннекторы») описываются в файле:
/etc/odbc.ini
Код: Выделить всё
; настройка соединения
[MySQL-asteriskcdrdb]
Driver = MySQL
Description = MySQL connection to 'asteriskcdrdb' database
Server = localhost
Port = 3306
Database = asteriskcdrdb
Option = 3
Проверить настройки ODBC возможно утилитой isql
Код: Выделить всё
isql -v MySQL-asteriskcdrdb asteriskuser admin
«-v» - выводить отладку
«MySQL-asteriskcdrdb» - имя конектора из /etc/odbc.ini
«asteriskuser» - имя пользователя MySQL
«admin» - пароль пользователя MySQL
Настройка конфигурации Asterisk
Опишем ресурс доступа к базе данных: /etc/asterisk/res_odbc.conf
Код: Выделить всё
; настройка соединения
[asteriskcdrdb]
enabled=>yes
dsn=>MySQL-asteriskcdrdb
pooling=>no
limit=>1
pre-connect=>yes
username=>asteriskuser; имя пользователя базы данных
password=>admin ; пароль пользователя базы данных
Опишем правило логированиря CEL записей:
/etc/asterisk/cel_odbc.conf
Код: Выделить всё
[cel]
connection=asteriskcdrdb
loguniqueid=yes
table=cel
Опишем правило логированиря CDR записей:
/etc/asterisk/cdr_adaptive_odbc.conf
Код: Выделить всё
[Global]
connection=asteriskcdrdb
table=cdr
alias recordingfile=>recordingfile
alias start=>calldate
Далее следует перезагрузить asterisk:
Код: Выделить всё
CLI> core restart now
Обратно к инструкции...
Контроль
Выполнить в консоли астериск:
Статус CDR
Код: Выделить всё
CLI> cdr show status
Call Detail Record (CDR) settings
----------------------------------
Logging: Enabled
Mode: Simple
Log unanswered calls: No
Log congestion: No
* Registered Backends
-------------------
Adaptive ODBC
Статус CEL
Код: Выделить всё
CLI> cel show status
CEL Logging: Enabled
CEL Tracking Event: ALL
CEL Tracking Event: CHAN_START
CEL Tracking Event: CHAN_END
CEL Tracking Event: HANGUP
CEL Tracking Event: ANSWER
CEL Tracking Event: APP_START
CEL Tracking Event: APP_END
CEL Tracking Event: BRIDGE_START
CEL Tracking Event: BRIDGE_END
CEL Tracking Event: CONF_START
CEL Tracking Event: CONF_END
CEL Tracking Event: PARK_START
CEL Tracking Event: PARK_END
CEL Tracking Event: BLINDTRANSFER
CEL Tracking Event: ATTENDEDTRANSFER
CEL Tracking Event: TRANSFER
CEL Tracking Event: HOOKFLASH
CEL Tracking Event: 3WAY_START
CEL Tracking Event: 3WAY_END
CEL Tracking Event: CONF_ENTER
CEL Tracking Event: CONF_EXIT
CEL Tracking Event: USER_DEFINED
CEL Tracking Event: LINKEDID_END
CEL Tracking Event: BRIDGE_UPDATE
CEL Tracking Event: PICKUP
CEL Tracking Event: FORWARD
CEL Tracking Application: ALL
CEL Event Subscriber: ODBC CEL backend
CEL Event Subscriber: CEL Custom CSV Logging
CEL Event Subscriber: CEL PGSQL backend
CEL Event Subscriber: CEL Radius Logging
Должны быть подгружены модули:
Код: Выделить всё
module show like odbc
Module Description Use Count
cdr_adaptive_odbc.so Adaptive ODBC CDR backend 0
cel_odbc.so ODBC CEL backend 0
func_odbc.so ODBC lookups 0
res_config_odbc.so Realtime ODBC configuration 0
res_odbc.so ODBC resource 0
статус ODBC
pbx*CLI> odbc show
ODBC DSN Settings
-----------------
Name: asteriskcdrdb
DSN: MySQL-asteriskcdrdb
Last connection attempt: 1969-12-31 19:00:00
Pooled: No
Connected: Yes
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя