Asterisk-cdr-viewer
Веб интерфейс статистики вызовов Asterisk (Call Detail Recordings). Используется, также, в модуле статистики FreePBX. Прекрасное приложение, для просмотра статистики и прослушивания записей.
Установка Asterisk Cdr Veiwer
Страница программы на Google Code или На Github
Скачайте исходный код в директорию веб сервера:
cd /var/www/html wget https://github.com/g613/asterisk-cdr-viewer/raw/master/asterisk-cdr-viewer-latest.tgz
Распакуйте архив:
tar -xzvf asterisk-cdr-viewer-*.tgz
Скопируйте конфиг в директорию настроек веб вервера:
cp asterisk-cdr-viewer/contrib/httpd/asterisk-cdr-viewer.conf /etc/httpd/conf.d/ //asterisk-cdr-viewer.conf//
Настройте алиас acdr для директории asterisk-cdr-veiwer:
Если аутентификация не требуется, можно пропустить этот пункт.
Alias /acdr/ "/var/www/html/asterisk-cdr-viewer/" <Location "/acdr/"> AuthName "Asterisk-CDR-Stat" AuthType Basic AuthUserFile /var/www/html/asterisk-cdr-viewer/.htpasswd AuthGroupFile /dev/null require valid-user </Location>
Вернитесь в директорию программы:
cd /var/www/html/asterisk-cdr-viewer
При помощи команды htpasswd задайте имя пользователя и пароль для аутентификации в интерфейсе.
htpasswd -b .htpasswd user password
Перезапустите httpd:
service restart httpd
config.inc.php
Настройка подключения к базе данных и настройки веб интерфейса производятся в файле /var/www/asterisk-cdr-viewer/include/config.inc.php
Откройте интерфейс в вашем любимом браузере:
http://your_ip/acdr/index.php
Asterisk CDR MySQL
Создание таблицы MySQL для данных и конфигурация Asterisk.
Создайте файл, например:
touch asteriskcdrdb.sql
И скопируйте структуру таблицы БД:
CREATE TABLE cdr ( calldate datetime NOT NULL default '0000-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 '', 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 '', KEY `calldate` (`calldate`), KEY `dst` (`dst`), KEY `accountcode` (`accountcode`), KEY `uniqueid` (`uniqueid`) );
Создайте базу данных:
mysqladmin create asteriskcdrdb
Создайте таблицу cdr при помощи файла asteriskcdrdb:
mysql asteriskcdrdb < asteriskcdrdb.sql
Задайте привилегии для БД, где dbuser - ваш пользователь, а DB_PASSWORD - пароль.
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO dbuser@localhost IDENTIFIED BY 'DB_PASSWORD'; flush privileges; \q
Настройка Asterisk cdr_mysql.conf
Нативный драйвер MySQL в Asterisk. Также вы можете использовать ODBC. или adaptive ODBC.
Подробнее о настройке cdr в Asterisk.
Отредактируйте файл /etc/asterisk/cdr_mysql.conf в соответствии с заданным логином и паролем бд.
[global] hostname=localhost dbname=asteriskcdrdb table=cdr password=DB_PASSWORD user=dbuser ;port=3306 ;sock=/tmp/mysql.sock ;timezone=UTC ; Previously called usegmtime
Убедитесь что модули cdr_mysql загружены:
localhost*CLI> module show like mysql Module Description Use Count cdr_mysql.so MySQL CDR Backend 0 res_config_mysql.so MySQL RealTime Configuration Driver 0 app_mysql.so Simple Mysql Interface 0 3 modules loaded
Настройка записи разговоров
Чтобы ссылки на файлы отображались в интерфейсе, укажите директорию записи и формат файла в конфиге config.inc.php
- $system_monitor_dir = '/var/spool/asterisk/monitor'
- $system_audio_format = 'wav'
В диалплане Asterisk, запись производится при помощи команды MixMonitor
[macro-monitor] exten => s,1,Set(MONITOR_FILE=/var/spool/asterisk/monitor/${UNIQUEID}) exten => s,n,MixMonitor(${MONITOR_FILE}.wav,b)
Проверка. Выберете 5 последних строк из таблицы cdr:
select * from cdr ORDER BY calldate DESC LIMIT 5;
Модификация Asterisk-CDR-Viewer
Asterisk CDR Viewer Mod v2.2.5
Руссифицированный и немного переделанный интерфейс на основе asterisk-cdr-viewer.
Простейшая настройка
..viewer/inc/config.inc.php
$system_column_name = 'recordingfile';
$system_storage_format = 0;
$system_monitor_dir = '/var/spool/asterisk/monitor/mp3';
Asterisk запись разговоров в mp3
[from-om] exten => _X.,1,GoSub(sub-monitor,s,1(${EXTEN})) exten => _X.,n,Dial(PJSIP/${EXTEN}@sip_trunk,,) [sub-monitor] exten => s,1,Set(WAV=/var/spool/asterisk/monitor/${UNIQUEID}) exten => s,n,Set(MP3=/var/spool/asterisk/monitor/mp3/${UNIQUEID}) exten => s,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 32 --silent "${WAV}.wav" "${MP3}.mp3" && rm -f "${WAV}.wav" && chmod o+r "${MP3}.mp3") exten => s,n,Set(CDR(recordingfile)=${UNIQUEID}.mp3) exten => s,n,Set(CDR(userfield)=${ARG1}) exten => s,n,MixMonitor(${WAV}.wav,b,${monopt}) exten => s,n,return
директория /var/spool/asterisk/monitor/mp3 должна быть создана.
Установлен ли Lame? Проверить:
which lame /usr/local/bin/lame
Tips&Tricks
Чтобы начать запись, только когда абонент поднял трубку, используйте опцию U( ) команды Dial
Dial(PJSIP/${EXTEN},,trU(sub-monitor^s^1))
Страницы с тегом cdr:
Asterisk CDR - Статистика звонков
Установка Asterisk 15/16 и FreePBX 14 на Centos 7
FreePBX Call Recordings + Asternic CDR Reports 1.5.1