artem
14.05.2018
1063

Ryo CDR интерфейс просмотра статистики звонков.

Неотъемлемой частью любой телефонии является возможность просмотра статистики звонков, с возможностью фильтрации по определенным параметрам и прослушивание записей разговоров. В рамках данной статьи будет рассмотрена установка и использование альтернативного CDR Viewer https://github.com/antirek/ryocdr.

Возможности:

Просмотр CDR, с фильтрацией по времени, номеру телефона, статусу(отвечен, не отвечен, занято)
Встроенный HTML5/flash плеер для прослушивания записей звонков.

Все описанные действия в статье необходимо выполнять от имени суперпользователя (root). Установка и настройка производилась на предустановленной системе CentOS 6.8 + Asterisk 11.23.1 + FreePBX 13.

Инструкция:

1. Выполним подключение по SSH к роутеру для выполнения дальнейшей настройки. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.

Подключение по SSH через Putty

Авторизация на сервере.

Внимание, при авторизации на сервере, пароль в консоли не отображается.

SSH консоль подключения.

2. Проверим наличие и установленную версию Node JS:

#  node -v

Проверка версии Node JS.

Для корректной работы Ryo CDR требуется наличие установленной версии Node JS не ниже 8.0

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

# yum groupinstall ‘Development Tools’
# wget -O install_nodejs.sh https://rpm.nodesource.com/setup_8.x
# chmod +x install_nodejs.sh
# ./install_nodejs.sh

Установка необходимых зависимостей.

Скачивание скрипта установки.
Выполнение установки репозиториев NodeJS

В случае установки NodeJS на FreePBX в скрипте install_nodejs.sh необходимо отредактировать 57 строку и привести её к следующему виду: DISTRO_PKG=”centos-release-6-8.el6.centos.12.3.x86_64″

 

# yum install nodejs

Установка NodeJS из подключенного репозитория.

Проверка установленной версии.

4. При наличии корректной версии NodeJS, приступим к установке Ryo CDR. Выполним ряд команд вида:

# cd /usr/src/
# wget https://github.com/antirek/ryocdr/archive/v0.0.11.tar.gz
# tar -xzf v0.0.11.tar.gz
# cd ryocdr-0.0.11
# npm install -g bower
# npm install
# bower install –allow-root
# npm run build

Скачивание Ryo CDR

Установка зависимости Bower

Установка необходимых пакетов с помощью Bower

Успешное завершение установки  пакетов с помощью Bower

Запуск сборки проекта Ryo CDR.

5. Произведем настройку Ryo CDR для корректного доступа к базе данных Asterisk и к записям разговоров:

# cd /usr/src/ryocdr-0.0.11
# nano config.js

И приведем конфигурационный файл к следующему виду:

module.exports = {
  tz:”+0300″,
  port: 9030,
  recordspath:”/var/spool/asterisk/monitor/”,
  db: {
    client: “mysql”,
    connection: {
      host: “127.0.0.1”,
      user: “freepbxuser”,
      password: “password”,
      database: “asteriskcdrdb”,
      charset:”utf8″
    }
  },
  cdr: {
    table: “cdr”
  },
  auth: true,
  username: ‘admin’,
  password: ‘password’
};

где  port — порт для доступа к WEB интерфейсу Ryo CDR
recordspath — дирректория расположения записей разговоров
 host — адрес расположения базы данных MySQL Asterisk
 user — имя пользователя для доступа к  базе данных MySQL Asterisk
 password — пароль  пользователя для доступа к  базе данных MySQL Asterisk
 database — имя  базы данных MySQL Asterisk где храниться статистика звонков

В отдельной ветке выделены  username — имя пользователя для доступа к WEB интерфейсу Ryo CDR
 password — пароль пользователя для доступа к WEB интерфейсу Ryo CDR

При установленном FreePBX 13, имя пользователя и пароль для доступа  к  базе данных MySQL Asterisk можно узнать из файла /etc/freepbx.conf

Правка конфигурационного файла

6. Выполним тестовый запуск Ryo CDR:

# node app.js

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

Тестовый запуск Ryo CDR

7. Для возможности автозапуска и управлением Ryo CDR сервером как службой, создадим сервис:

# npm install pm2 -g
# nano /etc/init.d/ryoCDR

  

Приведём данный файл к виду:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          ryoCDR
# Required-Start:    $network $syslog $named
# Required-Stop:     $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop ryoCDR
### END INIT INFO
set -e
if [ -z “$1” ] ; then
    echo “Usage: $0 [start|stop|restart]”
    exit 0
fi
if [ “$1” = “start” ] ; then
    pm2 start /usr/src/ryocdr-0.0.11/app.js
elif [ “$1” = “stop” ] ; then
    pm2 stop app
elif [ “$1” = “restart” ] ; then
    $0 stop
    sleep 5
    $0 start
fi
# chmod 777 /etc/init.d/ryoCDR
# chkconfig ryoCDR on
# service ryoCDR start

Установка PM2 для управления NodeJS приложениями

Создание службы RyoCDR

Назначение прав и запуск RyoCDR

8. На данном шаге установка завершена и можно перейти в WEB интерфей Ryo CDR. Для этого в интернет обозревателе(Opera, Google Chrome, Firefox, Yandex Browser….) перейдём по адресу вида http://IP_сервера:9030 в нашем примере ссылка имеет вид http://192.168.170.182:9030. После перехода необходимо пройти авторизацию в соответствии с указанными данными в конфигурационном файле(п.5).

Авторизация в Ryo CDR

WEB панель Ryo CDR

Возможные проблемы и методы их устранения:

10. Порой возникает ошибка невозможности установки пакетов NodeJS, данную проблему можно решить простым обновлением npm:

# npm i -g npm to update

Сообщение подсказка

Обновление npm

 

 

 

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices