> For the complete documentation index, see [llms.txt](https://itgro-aly.gitbook.io/test-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itgro-aly.gitbook.io/test-docs/ustanovka-i-nastroika-cel.md).

# ustanovka i nastroika cel

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

Перед конфигурацией ODBC в Asterisk необходимо установить необходимые пакеты в систему:

`apt-get install unixODBC unixODBC-dev libmyodbc`

В случае если у вас Ubuntu и в репозиториях нет коннектора, необходимо скачать актуальную версию [с сайта](https://dev.mysql.com/downloads/connector/odbc/) и установить ее:

`$ 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 .

{% hint style="info" %}
Важное замечание: Asterisk должен быть собран с поддержкой ODBC! Для проверки можно выполнить из CLI команду odbc show.
{% endhint %}

И теперь самое главное – приступаем к конфигурации 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 указывает имя таблицы БД для сохранения данных.

Завершающим шагом настройки является создание БД и таблицы.

```
$ mysql –uroot –p
mysql> CREATE DATABASE asterisk;
mysql> use asterisk;
mysql> CREATE TABLE IF NOT EXISTS `cel` (
`id` int(11) auto_increment,
`eventtype` varchar(30),
`eventtime` datetime,
`cid_name` varchar(80) DEFAULT '',
`cid_num` varchar(80) DEFAULT '',
`cid_ani` varchar(80) DEFAULT '',
`cid_rdnis` varchar(80) DEFAULT '',
`cid_dnid` varchar(80) DEFAULT '',
`exten` varchar(80) DEFAULT '',
`context` varchar(80) DEFAULT '',
`channame` varchar(80)  NULL DEFAULT NULL,
`src` varchar(80)  NULL DEFAULT NULL,
`dst` varchar(80)  NULL DEFAULT NULL,
`channel` varchar(80),
`dstchannel` varchar(80)  NULL DEFAULT NULL,
`appname` varchar(80)  NULL DEFAULT NULL,
`appdata` varchar(80)  NULL DEFAULT NULL,
`amaflags` int(11)  NULL DEFAULT NULL,
`accountcode` varchar(20) NULL DEFAULT NULL,
`uniqueid` varchar(32),
`linkedid` varchar(32),
`peer` varchar(80) NULL DEFAULT NULL,
`userdeftype` varchar(255) NULL DEFAULT NULL,
`eventextra` varchar(255) NULL DEFAULT NULL,
`userfield` varchar(255) NULL DEFAULT NULL,
`extra` varchar(512) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `uniqueid_index` (`uniqueid`),
KEY `linkedid_index` (`linkedid`)
);
```

Перезапустим Asterisk.

`# service asterisk restart`

Проверка работы осуществляется с помощью команд из CLI Asterisk:

`> cel show status`\
`> odbc show`
