Asterisk-cdr-viewer

Веб интерфейс статистики вызовов Asterisk (Call Detail Recordings). Используется, также, в модуле статистики FreePBX. Прекрасное приложение, для просмотра статистики и прослушивания записей.

Страница программы на 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';
 

recordingfile

recordingfile

mysql> select recordingfile  from cdr ORDER BY calldate DESC LIMIT 1;
+--------------------+
| recordingfile      |
+--------------------+
| 1466591784.246.mp3 |
+--------------------+
1 rows in set (0.00 sec)

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 app: ForkCDR

Asterisk app: NoCDR

Asterisk app: ResetCDR

Настройка Asterisk

Asterisk CDR - Статистика звонков

Asterisk: cdr.conf

cdr_adaptive_odbc.conf

Asterisk:cdr_custom.conf

cdr_manager.conf

Asterisk: cdr_mysql.conf

cdr_odbc.conf

cdr_pgsql.conf

cdr_sqlite3_custom.conf

Asterisk: cdr_tds.conf

Dynamic Clip Routing

function 'CDR'

function 'CDR_PROP'

Установка Asterisk 15/16 и FreePBX 14 на Centos 7

FreePBX Call Recordings + Asternic CDR Reports 1.5.1

FreeSwitch CDR ODBC Postgesql

Freeswitch CDR NAtive Postgresql

Freeswitch CDR in SQLite

Freeswitch CDR ODBC MySQL

Приложения

  • artikle/cdr_viewer.txt
  • Последние изменения: 2018/09/22