Asterisk CDR

Мне понравился этот — http://prog-it.github.io/Asterisk-CDR-Viewer-Mod/

Apache или Mysql — проверить/настроить локаль.

Скачиваем
wget https://github.com/prog-it/Asterisk-CDR-Viewer-Mod/tarball/master/prog-it-Asterisk-CDR-Viewer-Mod-2.3.4-0-g6369e8b.tar.gz
Распаковываем
tar -xzvf prog-it-Asterisk-CDR-Viewer-Mod*.tar.gz
Копируем
cp -R prog-it-Asterisk-CDR-Viewer-Mod-6369e8b /var/www/html/asterisk/cdr

Создаём базу данных в mysql
CREATE DATABASE asteriskcdrdb;
Создаём пользователя с полными привилегиями на эту базу.
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO  asteriskcdr@localhost  IDENTIFIED BY ‘ваш пароль’;
flush privileges;
Создаём таблицу в базе данных
CREATE TABLE cdr (
calldate datetime NULL,
clid varchar(80) NOT NULL default »,
src varchar(80) NOT NULL default »,
dst varchar(80) NOT NULL default »,
dcontext varchar(80) NOT NULL default »,
channel varchar(80) NOT NULL default »,
dstchannel varchar(80) NOT NULL default »,
lastapp varchar(80) NOT NULL default »,
lastdata varchar(80) NOT NULL default »,
duration int(11) NOT NULL default ‘0’,
billsec int(11) NOT NULL default ‘0’,
disposition varchar(45) NOT NULL default »,
amaflags int(11) NOT NULL default ‘0’,
accountcode varchar(20) NOT NULL default »,
uniqueid varchar(32) NOT NULL default »,
userfield varchar(255) NOT NULL default »,
did varchar(50) NOT NULL default »,
recordingfile varchar(255) NOT NULL default »,
realdst varchar(80) NOT NULL default »,
KEY `calldate` (`calldate`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`),
KEY `uniqueid` (`uniqueid`)
);
/etc/asterisk/cdr_mysql.conf — вносим изменения:
[global]
hostname=localhost
dbname=asteriskcdrdb
table=cdr
password=pass
user=user
Добавить в конец файла в секцию [columns]
alias recordingfile => recordingfile
alias realdst => realdst
Для включения записи разговоров и распределения по папкам редактируем extensions.conf
exten => _X.,n,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M)}-${CALLERID(number)}-${EXTEN})
exten => _X.,n,Set(CDR(recordingfile)=${fname}.wav)
exten => _X,n,Set(CDR(realdst)=${called})
exten => _X.,n,MixMonitor(/dir/to/records/${STRFTIME(${EPOCH},,%Y/%m/%d/)}${fname}.wav)
Переходим в консоль Asterisk. Перечитываем конфиги Asterisk — core reload
Выгружаем модуль и загружаем модуль
module unload cdr_mysql.so
module load cdr_mysql.so
Убедимся, что модуль загружен и работает с поддержкой mysql
module show like cdr_mysql.so
Делаем вызов, смотрим MySql. Запись должна появится
Проверяем, есть ли файл записи.

Настраиваем web интерфейс.
nano /var/www/html/asterisk/cdr/inc/config.inc.php
# Пользователь
$db_user = ‘user’;
# Пароль
$db_pass = ‘pass’;
# Имя базы
$db_name = ‘asteriskcdrdb’;
# Название таблицы
$db_table_name = ‘cdr’;
Поправить
$system_column_name = ‘recordingfile’;
Поправить
$system_storage_format = 4;
Поправить
$system_monitor_dir = ‘/dir/to/records’;
Поправить
$system_audio_format = ‘wav’;

 

 

 

 

Повторная сборка asterisk для работы с MySQL

Перейдите в папку с исходными кодами (откуда устанавливался asterisk) и запустите команду конфигурирования:
cd /usr/src/asterisk-11.4.0/
./configure
make menuselect

В открывшемся меню включите использование следующих компонентов:

  • Add-ons => res_config_mysql
  • Add-ons => cdr_mysql

После выхода (с сохранением) из меню выбора компонентов выполните сборку и повторную установку asterisk:
make
make install

Команду make samples не делать ни в коем случае, это сотрет имеющиеся конфигурационные файлы! Команду make config также выполнять не нужно, поскольку [предполагается, что] asterisk уже установлен и настроен в Вашей системе.

Теперь необходимо перезапустить сервис астериска для того, чтобы свежеустановленный asterisk начал свою работу.