Quantcast
Channel: IP АТС Asterisk
Viewing all articles
Browse latest Browse all 1052

Asterisk-cdr-viewer

$
0
0

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

Простейшая настройка

..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)

Запись вызовов в 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


Viewing all articles
Browse latest Browse all 1052

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>