1. Главная страница » Компьютеры » Asterisk cdr viewer mod установка

Asterisk cdr viewer mod установка

Автор: | 16.12.2019

Форматы записей разговоров

Используется HTML5 плеер для воспроизведения записей разговоров. Доступные форматы аудио: MP3, WAV, OGG, AAC.

Проверенные форматы аудио. Проверялось в Internet Explorer 11, Chrome 56, Firefox 52:

  • MP3. Поддерживаются все браузеры
  • WAV. Не работает в Internet Explorer
  • OGG. Не работает в Internet Explorer

Формат GSM не поддерживается для воспроизведения ни одним браузером.

Начиная с версии 2.3 доступна проверка обновлений. Чтобы проверить доступность новой версии, нужно щелкнуть на стрелочку в самом низу веб-интерфейса (подвал), рядом с надписью "Asterisk CDR Viewer Mod v[версия]".

Проверяется только доступность новой версии, но автоматического обновления не происходит. Обновлять необходимо вручную. Автоматическое обновление, возможно, будет реализовано в будущих версиях.

Если доступна новая версия, то будут отображены: текущая версия, новая версия, изменения в последнем релизе.

Применение нового конфиг-файла

После скачивания новой версии, для того, чтобы заново не настраивать конфиг-файл, можно сравнить старый файл "config.php" и новый "config.php.sample" в текстовом редакторе "Notepad++".

Для сравнения файлов нужно, чтобы в редакторе Notepad++ был установлен плагин "Compare". Чтобы установить этот плагин, в Notepad++ нужно зайти в меню Плагины -> Plugin Manager -> Show Plugin Manager -> Available . В открытом окне галочкой отметить "Compare" и нажать Install.

После этого открыть оба файла "config.php" и "config.php.sample" в Notepad++. Перейти в меню Плагины -> Compare -> Compare . Цветом будут выделены изменения в файлах.

Редактирование базы данных

С базой данных MySQL удобнее всего работать через PHPMYADMIN. Официальный сайт: https://www.phpmyadmin.net/

Если у вас используется не база данных MySQL (а например PostgreSQL), или PHPMYADMIN не установлен, то следует использовать ADMINER. Официальный сайт: https://www.adminer.org/

Создание таблицы в базе

Имя файла записи разговора будет храниться в базе MySQL (можно также выбрать, например, PostgreSQL).

Для MySQL можно использовать файл импорта mysql_cdr.sql , можно найти в папке docs. Если импортировать этот файл в базу, то в базе будет создана таблица "cdr" со всем необходимыми для Asterisk полями.

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

В дополнение ко всему, файл импорта создаст новые колонки в базе для Asterisk 12+.

Если имя таблицы "cdr" (или имя колонки для файла записи звонка) не устраивает, после импорта сами сможете переименовать. Например, с помощью PHPMYADMIN или ADMINER.

Если НЕ использовали файл импорта в базу

Допустим мы настроили Asterisk для работы с базой и уже создали таблицу, например "cdr". Теперь нам необходимо добавить с нашу таблицу новую колонку, например "filename", в которой будет имя файла с записью, удобнее это сделать через PHPMYADMIN или ADMINER (смотреть здесь: https://www.adminer.org). Название колонки можно задать в конфиге.

Более подробно о том, как настроить Asterisk для работы с MySQL можно найти в интернете.

Для того, чтобы Asterisk смог взаимодействовать с новыми столбцами в таблице, необходимо в файле cdr_mysql.conf создать их алиасы.

Добавим в конец этого файла ( секция [columns] ) строчки:

Вместо "название_столбца" вставьте название столбца, в котором хранится название записи звонка, например "filename". Алиас "remoteip" нужен для записи IP адреса клиента Asterisk. Это НЕОБЯЗАТЕЛЬНО.

Создание алиаса alias start => calldate и наличие в базе колонки "calldate" обязательно для правильной работы CDR Viewer.

Все изменения производим в extensions.ael , либо в extensions.conf . В зависимости от того, в какой файле у нас написан диалплан.

Если название столбца, в котором хранится название записи звонка у вас отличается от "filename", то необходимо внести соответствующие изменения в диалплан. Необходимо изменить строку Set(CDR(filename)=$.mp3); на Set(CDR(название_столбца)=$.mp3);

Читайте также:  Jbl playlist 150 отзывы

Для extensions.ael, extensions.conf

В "globals" добавим пару переменных:

Сразу уточним, что в этом макросе, если RECORDING=1 запись прямо во время разговора конвертируется в MP3. т.е. существует некоторая нагрузка на сервер.

Если же RECORDING=2, то нагрузка на сервер минимальная, т.к. запись выполняется в родной формат Asterisk — WAV. Конвертирование в MP3 должно быть выполнено с помощью скрипта proc_records.sh , который можно найти в папке docs. В скрипте написаны подробные комментарии по его настройке

Пример вызова макроса:

Пример вызова макроса:

Дополнительно (необязательно). Если НЕ использовали файл импорта в базу "cdr_mysql.sql"

В Asterisk если используется макрос, то звонок совершается с экстеншеном s.

Чтобы Номер назначения был действительным, а не s или s , то сделаем следующее:

  • Через PHPMYADMIN или ADMINER (смотреть здесь: https://www.adminer.org). В таблицу нужно добавить новое поле realdst с типом "varchar" и размером "80".
  • Теперь нужно добавить триггер на таблицу.

Для этого зайдем в Триггеры — Добавить триггер. Назначаем имя триггеру, остальное оставляем без изменений. В поле "Определение" вставляем текст ниже:

Для того, чтобы в поле realdst записывался правильный Номер назначения, нужно отредактировать диалплан. Макрос выше в редактировании не нуждается. В используемом у вас макросе необходимо добавить строчку, это только пример. Задайте правильные имена параметров ($, $).

Настройка папки со звонками

Записи разговоров будут складываться в папку /home/calls/ из примера выше.

Есть два варианта хранения файлов записей:

  1. Все записи разговоров хранятся в одной папке.
  2. Записи разговоров должны распределяться по папкам в соответствии с датой.

Также есть возможность настройки "отложенной конвертации записей разговоров".

Когда днем выполняется запись в формат WAV, а ночью необходимо по CRON запустить скрипт для преобразования файлов из WAV в MP3. "Отложенную конвертацию записей разговоров" и распределение по папкам в соответствии с датой можно использовать вместе, а можно что-то одно.

За распределение файлов записей по папкам, преобразование файлов из WAV в MP3 отвечает скрипт proc_records.sh из папки docs.

Каждый день в 00.01 часов записи из папки /home/calls/ по CRON должны распределяться по дате в соответствующие папки.

Для распределения файлов по папкам в соответствии с датой нужно использовать скрипт proc_records.sh из папки docs.

Формат хранения записей (пример):

Настройки скрипта proc_records.sh для соответствующего формата:

Настройки скрипта proc_records.sh для преобразования файлов из WAV в MP3:

За включение преобразования файлов из WAV в MP3 в скрипте отвечает переменная CONV_TO_MP3 . Необходимо установить ее значение в true или false.

Можно настроить МИНИМАЛЬНЫЙ РАЗМЕР ФАЙЛА для преобразования файлов из WAV в MP3, задается в переменной REMOVE_MIN_SIZE , размер указывается в КилоБайтах. Если размер файла меньше REMOVE_MIN_SIZE , то этот файл будет удален, и не будет преобразован из WAV в MP3.

Также можно настроить уровень вложенности поиска WAV файлов для их преобразования в переменной "DEPTH".

Примеры значений для переменной

Для вариантов, когда Asterisk сам распределяет записи по папкам в соответствии с датой.

Если у вас Asterisk сам распределяет записи звонков по папкам в соответствии с датой, тогда необходимости запуска скрипта по CRON нет. Если только у вас не настроена "отложенная конвертация записей разговоров"

Возможные форматы хранения записей:

  1. /home/calls/2014/2014-09/2014-09-29
  2. /home/calls/2014/09/29

Полный/Частичный путь к файлам звонков хранится в базе данных

Если у вас полный или частичный путь к файлам звонков хранится в базе данных, допустим в столбце "column_name". Например: ./calls/2015/2015-01/2015-01-01/in/filename.mp3 , 2015/2015-01/2015-01-01/in/filename.mp3 , /home/calls/2015/2015-01/2015-01-01/in/filename.mp3 .

В этом случае можно использовать как полный путь к файлу, так и относительный. Также в пути можно использовать имя файла как с расширением, так и без расширения файла.

Если у вас используется полный путь к файлу (от корня диска), то в конфиг-файле необходимо задать: ‘monitor_dir’ => » .

Читайте также:  Gta 5 в стиме не запускается

Если у вас используется частичный путь к файлу, допустим 2015/2015-01/2015-01-01/in/filename.mp3 , то в конфиг-файле необходимо задать первую часть пути, например: ‘monitor_dir’ => ‘/home/calls’ . БЕЗ слеша на конце. Таким образом получим полный путь: /home/calls/2015/2015-01/2015-01-01/in/filename.mp3 .

Если у вас используется относительный путь к файлу, допустим ./calls/2015/2015-01/2015-01-01/in/filename.mp3 , то в конфиг-файле необходимо задать первую часть пути, например: ‘monitor_dir’ => ‘/home’ . БЕЗ слеша на конце. Таким образом получим полный путь: /home/./calls/2015/2015-01/2015-01-01/in/filename.mp3 .

Аналогично для файлов без расширения.

Примеры путей к файлам при их хранении в базе данных (содержимое колонки "filename"):

  1. /home/calls/2015/2015-01/2015-01-01/in/filename.mp3
  2. ./calls/2015/2015-01/2015-01-01/in/filename.mp3
  3. 2015/2015-01/2015-01-01/in/filename.mp3
  4. /home/calls/2015/2015-01/2015-01-01/in/filename
  5. ./calls/2015/2015-01/2015-01-01/in/filename
  6. 2015/2015-01/2015-01-01/in/filename

Удаление старых записей звонков

Для удаления старых записей звонков нужно использовать скрипт proc_records.sh из папки docs. В нем есть подробные комментарии по настройке.

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

Чтобы включить удаление старых записей звонков, в скрипте следует задать:

В переменной CLEAN_OLD_AFTER задается количество дней хранения файлов записей звонков. Например: Если задано CLEAN_OLD_AFTER=365 , то все файлы, старше 365 дней будут удалены. Берется время изменения файла, расширение файла при удалении НЕ учитывается. Т.е. если в папке, например, есть "*.txt" файл старше этого срока, он также будет удален.

В переменной CLEAN_OLD_MIN_SIZE задается минимальный размер файлов хранения записей звонков. Если размер файла меньше этого значения, то он будет удален. Размер задается в КилоБайтах. Если задано CLEAN_OLD_MIN_SIZE=0 , то эта функция отключена. Например: Если задано CLEAN_OLD_MIN_SIZE=30 , то файлы, размер которых меньше 30 КБ будут удалены.

В переменной CLEAN_OLD_EMPTYDIR можно включить удаление пустых папок. Чтобы это включить, в скрипте следует задать:

Настройка CDR Viewer

Пример конфиг файла находится в inc/config/config.php.sample .

Перед началом использования этот файл нужно переименовать в config.php .

Все настройки находятся в файле inc/config/config.php с подробными комментариями, тут не должно возникнуть сложностей.

Можно использовать "пользовательский" конфиг. Это значит, что будет использоваться альтернативный конфиг файл с настройками. Для этого нужно создать еще один файл с конфигом, например: inc/config/config-anotherconfig.php .

Формат имени файла конфига: config-[уникальное_имя_конфига].php

Для имени [уникальное_имя_конфига] можно использовать латинские буквы, цифры, тире и нижнее подчеркивание.

Чтобы использовать созданный "пользовательский" конфиг — config-anotherconfig.php , нужно к адресу сайта с установленным скриптом (Например: http://example.com/cdr/index.php) добавить параметр ?config=anotherconfig .

  1. Скачать ZIP архив с GitHub или выполнить git clone https://github.com/prog-it/Asterisk-CDR-Viewer-Mod.git
  2. Распаковать или Перенести файлы в нужную папку на сервере
  3. Переименовать файл inc/config/config.php.sample в config.php . Т.е. будет файл inc/config/config.php
  4. Настроить параметры в inc/config/config.php
  5. Почти готово. Если необходим доступ только для определенных пользователей, то необходимо создать файл .htpasswd .

Создание .htpasswd файла

Пример конфига для Nginx:

Пример конфига для Apache:

  1. Прописать в конфиге скрипта имена пользователей в виде массива, которым разрешен доступ

Если массив пустой, то разрешен доступ всем пользователям

Выбор режима работы сервера телефонной платформы

В конфиг-файле файле можно выбрать режим работы сервера телефонной платформы (Asterisk или FreeSWITCH). Это нужно для выборочного отображения функциональности, которая поддерживается конкретным видом сервера телефонии.

Например, если выбрано Asterisk: В фильтре поиска "Статус звонка" будут показаны значения только для Asterisk, но будут скрыты значения для "FreeSWITCH". Если выбран режим "Asterisk + FreeSWITCH", то в фильтре поиска "Статус звонка" будут показаны значения и для Asterisk, и для FreeSWITCH.

Выбрать режим "Asterisk + FreeSWITCH": ‘server_mode’ => 0

Выбрать режим "Asterisk": ‘server_mode’ => 1

Выбрать режим "FreeSWITCH": ‘server_mode’ => 2

Настройка тарифов на звонки

Тарифы на звонки задаются в файле my_callrates.csv ( inc/plugins/my_callrates.csv ). Путь к этому файлу можно изменить в конфиге.

Формат задания тарифы в CSV файле:

То, что в фигурных скобках — необязательно

Пример для Мегафона, с поминутной тарификацией, стоимость первой минуты 90 коп., после первой минуты 10 коп (доп. тариф).

Читайте также:  Play market не скачивает игры

Функциональность CDR Viewer можно расширять в помощью плагинов.

  • Имя файла плагина должно иметь следующий формат: [имя_плагина].php (например: my_plugin.php )
  • Плагин должен включать в себя функцию [имя_плагина] (например: my_plugin )
  • Файлы плагинов должны располагаться в папке inc/plugins

Добавление нового плагина

  • Скопировать файла плагина в папку inc/plugins
  • В конфиг-файле (например: inc/config/config.php ) добавить загрузку плагина. Для этого в массив plugins добавить новое значение (см. комментарии в конфиг-файле)

Как пример для создания нового плагина, можно использовать плагин inc/plugins/my_callrates.php

Работа с БД PostgreSQL

Для использования CDR Viewer с базой данных PostgreSQL, в базу необходимо добавить следующую функцию:

Использование CDR Viewer

В фильтрах поиска: "Кто звонил", "Куда звонили", "DID (если есть)" можно использовать регулярные выражения Asterisk.

Если значение в одном из этих полей начинается на символ _ , то это интерпретируется как шаблон поиска.

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

  • X — любая цифра от 0 до 9
  • Z — любая цифра от 1 до 9
  • N — любая цифра от 2 до 9
  • [1235-9] — любая цифра в скобках (в этом примере: 1,2,3,5,6,7,8,9)
  • . — соответствует любому символу. (например: _9011. совпадает со любым номером, который начинается с 9011, исключая сам номер 9011)
  • _ZXXXXXX — соответствует семизначному городскому номеру
  • _79XXXXXXXXX — соответствует Российскому мобильному номеру

В одно поле поиска (например: "Кто звонил") можно ввести несколько регулярных выражений, разделенных запятой. Благодаря этому можно осуществить поиск сразу по нескольким номерам (например в поле "Кто звонил")

Simple and fast viewer for Asterisk CDRs and Recordings

Web-интерфейс для просмотра и прослушивания записей звонков Asterisk

За основу взят одноименный проект на английском языке, который можно найти в интернете. Это его значительно переработанная версия, Asterisk CDR Viewer Mod. Также использовался материал статьи на Хабрахабре, автор которой FessAectan. За что ему большое спасибо.

Ниже можно прочитать об основных особенностях и посмотреть скриншоты. Подробную информацию о том, как все установить и настроить можно найти в файле Readme, который находится в папке docs.

Если нашлись какие-либо баги или недоработки, то оставляйте свои заявки на GitHub. Историю изменений можно посмотреть здесь.

Скрипт распространяется под лицензией GNU GPL v3

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

Установка Asterisk Cdr Veiwer

Страница программы на Google Code или На Github

Скачайте исходный код в директорию веб сервера:

Скопируйте конфиг в директорию настроек веб вервера:

Настройте алиас acdr для директории asterisk-cdr-veiwer:

Если аутентификация не требуется, можно пропустить этот пункт.

Вернитесь в директорию программы:

При помощи команды htpasswd задайте имя пользователя и пароль для аутентификации в интерфейсе.

config.inc.php

Настройка подключения к базе данных и настройки веб интерфейса производятся в файле /var/www/asterisk-cdr-viewer/include/config.inc.php

Откройте интерфейс в вашем любимом браузере:
http://your_ip/acdr/index.php

Asterisk CDR MySQL

Создание таблицы MySQL для данных и конфигурация Asterisk.

Создайте файл, например:

И скопируйте структуру таблицы БД:

Создайте базу данных:

Создайте таблицу cdr при помощи файла asteriskcdrdb:

Задайте привилегии для БД, где dbuser — ваш пользователь, а DB_PASSWORD — пароль.

Настройка Asterisk cdr_mysql.conf

Нативный драйвер MySQL в Asterisk. Также вы можете использовать ODBC. или adaptive ODBC.

Отредактируйте файл /etc/asterisk/cdr_mysql.conf в соответствии с заданным логином и паролем бд.

Убедитесь что модули cdr_mysql загружены:

Настройка записи разговоров

Чтобы ссылки на файлы отображались в интерфейсе, укажите директорию записи и формат файла в конфиге config.inc.php

В диалплане Asterisk, запись производится при помощи команды MixMonitor

Проверка. Выберете 5 последних строк из таблицы cdr:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *