CDR в FreePBX на сервер

naomi

Moderator
Команда форума
В случае, если в вашей компании организован мощный отдел продаж и вы ежедневно обрабатываете большое количество звонков, база данных, в которую добавляются CDR записи (Call Detail Record), начинает переполняться и увеличиваться в объеме. Со временем это может негативно сказаться на производительности сервера, замедлив обработку процессов резервного копирования и обновления системы.

Если вы не хотите удалять старые записи базы данных, элегантным решением этой проблемы будет перемещение базы данных для CDR на отдельный сервер. В этой статье мы расскажем вам, как это сделать.

РАБОЧИЕ УСЛОВИЯ

Предположим, что в нашем корпоративном контуре имеются следующие виртуальные машины:
  • 192.168.1.2 - сервер IP – АТС Asterisk с графической оболочкой FreePBX;
  • 192.168.1.3 - сервер, на котором развернута база данных MySQL;



Предварительно, настройте разрешения на подключения с IP – адреса АТС (файл pg_hba.conf в PostgreSQL и командно через консоль в случае MySQL) и создайте пользователя freepbxuser. Произведем тест на связность. Дадим команду с консоли сервера Asterisk:

mysql --host=192.168.1.3 -ufreepbxuser -p asteriskcdrdb

Введите пароль для подключения. Если все ОК, переходим к настройке FreePBX.

НАСТРОЙКА FREEPBX

Переходим в раздел SettingsAdvanced Settings. Убеждаемся, что параметры Display Readonly Settings и Override Readonly Settings установлены в значение Yes.

1.png

Применяем конфигурацию нажатием Submit и Apply Config. Теперь находим сегмент настройки под названием Remote CDR Database и вносим следующие настройки:

2.png

  • Remote CDR DB Host - IP – адрес хоста, на котором развернута база данных. В нашем примере это 192.168.1.3;
  • Remote CDR DB Name - имя базы данных. Укажите здесь asteriskcdrdb;
  • Remote CDR DB Password - пароль для подключения к MySQL от пользователя freepbxuser;
  • Remote CDR DB Port - порт, на котором база данных на удаленном хосте слушает запросы;
  • Remote CDR DB Table - таблица, внутри БД, с которой мы будет работать. Указываем здесь cdr;
  • Remote CDR DB Type - тип базы данных. Мы указываем MySQL;
  • Remote CDR DB User - имя пользователя, под которым мы производим подключение;

Сохраняем изменения и переходим в консоль сервер АТС. Останавливаем FreePBX:

fwconsole stop

Редактируем файл odbc.ini. Там, в параметре server, нам необходимо указать IP – адрес хоста, на котором у нас развернута внешняя БД:

vim /etc/odbc.ini

[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=192.168.1.3 //замену производим вот тут
database=asteriskcdrdb
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=3
Charset=utf8
Сохраняем изменения в файле и запускаем FreePBX:

fwconsole start

Теперь остается только проверить функционал. Сделайте пару тестовых звонков и проверьте их наличие в БД на удаленном хосте.
 
Верх