Установка и настройка CEL

Настройка CEL в Linux

Перед конфигурацией ODBC в Asterisk необходимо установить необходимые пакеты в систему:
apt-get install unixODBC unixODBC-dev libmyodbc
В случае если у вас Ubuntu и в репозиториях нет коннектора, необходимо скачать актуальную версию с сайта и установить ее:
$ tar xvf ./mysql-connector-odbc*.tar.gz $ cp ./lib/libmyodbc5a.so /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so
Конфигурация для MySQL ODBC драйвера выполняется в файле /etc/odbcinst.ini
Пример конфигурации:
[MySQL] Description = ODBC for MySQ Driver = /usr/lib/odbc/libmyodbc.so Setup = /usr/lib/odbc/libodbcmyS.so FileUsage = 1
Если указанных каталогов по указанным путям нет, то они могут находиться в другом каталоге – их легко найти, выполнив следующие команды:
:~# updatedb :~# locate libmyodbc.so :~# locate libodbcmyS.so
Последние две команды покажут на экране местонахождение библиотек. Пропишем соответствующий путь, например: /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
Следующим шагом будет конфигурация файла /etc/odbc.ini для создания идентификатора, который Asterisk будет использовать для ссылки на эту конфигурацию. Если в будущем решите сменить БД, то следует переконфигурировать это файл.
Вот пример конфигурации:
[asterisk-connector] Description = MySQL connection to 'asterisk' database Driver = MySQL Database = asterisk Server = localhost UserName = user Password = 123456 Port = 3306
Теперь сконфигурируем Asterisk для работы с БД через ODBC, для этого служит файл: /etc/asterisk/res_odbc.conf .
Пример конфигурации данного файла:
[asterisk] enabled => yes dsn => asterisk-connector username => asterisk password => 123456 pooling => no pre-connect => yes
Опция dsn указывает соединение, которое сконфигурировано в /etc/odbc.ini, а опция pre-connect говорит Asterisk’у поднимать соединение с базой, когда загружается модуль res_odbc.so .
Важное замечание: Asterisk должен быть собран с поддержкой ODBC! Для проверки можно выполнить из CLI команду odbc show.
И теперь самое главное – приступаем к конфигурации CEL. Откроем конфигурационный файл /etc/asterisk/cel.conf и внесем в него следующие изменения:
[general] enable=yes apps=all events=all dateformat = %F %T
apps – данная опция указывает, какие приложения следует отслеживать.
events – с помощью этой опции указываем, какие события (из таблицы выше) следует заносить в БД.
Далее необходимо отредактировать файл /etc/asterisk/cel_custom.conf – в нем раскомментируем секцию [mappings].
И последний файл, который следует отредактировать – /etc/asterisk/cel_odbc.conf. Внесем в него следующие изменения:
[first] connection=asterisk table=cel loguniqueid=yes
Опция connection задает имя коннектора из файла res_odbc.conf, а опция table указывает имя таблицы БД для сохранения данных.
Завершающим шагом настройки является создание БД и таблицы.
1
$ mysql –uroot –p
2
mysql> CREATE DATABASE asterisk;
3
mysql> use asterisk;
4
mysql> CREATE TABLE IF NOT EXISTS `cel` (
5
`id` int(11) auto_increment,
6
`eventtype` varchar(30),
7
`eventtime` datetime,
8
`cid_name` varchar(80) DEFAULT '',
9
`cid_num` varchar(80) DEFAULT '',
10
`cid_ani` varchar(80) DEFAULT '',
11
`cid_rdnis` varchar(80) DEFAULT '',
12
`cid_dnid` varchar(80) DEFAULT '',
13
`exten` varchar(80) DEFAULT '',
14
`context` varchar(80) DEFAULT '',
15
`channame` varchar(80) NULL DEFAULT NULL,
16
`src` varchar(80) NULL DEFAULT NULL,
17
`dst` varchar(80) NULL DEFAULT NULL,
18
`channel` varchar(80),
19
`dstchannel` varchar(80) NULL DEFAULT NULL,
20
`appname` varchar(80) NULL DEFAULT NULL,
21
`appdata` varchar(80) NULL DEFAULT NULL,
22
`amaflags` int(11) NULL DEFAULT NULL,
23
`accountcode` varchar(20) NULL DEFAULT NULL,
24
`uniqueid` varchar(32),
25
`linkedid` varchar(32),
26
`peer` varchar(80) NULL DEFAULT NULL,
27
`userdeftype` varchar(255) NULL DEFAULT NULL,
28
`eventextra` varchar(255) NULL DEFAULT NULL,
29
`userfield` varchar(255) NULL DEFAULT NULL,
30
PRIMARY KEY (`id`),
31
KEY `uniqueid_index` (`uniqueid`),
32
KEY `linkedid_index` (`linkedid`)
33
);
Copied!
Перезапустим Asterisk.
# service asterisk restart
Проверка работы осуществляется с помощью команд из CLI Asterisk:
> cel show status > odbc show
Last modified 1yr ago
Copy link