asterisk cdr viewer mod ограничение прав

Asterisk-cdr-viewer

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

acv

Установка 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:

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

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

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

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

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

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

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

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

Источник

«Допиливаем» Asterisk CDR Viewer под себя

image loader

«Я профессионал, потому что не ленюсь искать информацию в google» — сказал мне однажды коллега.

А я поленился и начал «допиливать» CDR Viewer под себя, даже не посмотрев хотя бы вот это.
А может и не в лени дело, просто было интересно… в общем, что из этого вышло можно посмотреть под катом:)

Споры о том, что лучше использовать в качестве офисной АТС — asterisk (с веб-интерфейсом или без, хотя это отдельная тема для споров) или какую-то коробку типа Panasonic, которых на рынок выкинуто немеренное количество — не утихают до сих пор, но топик не об этом, лично для себя я уже давно определился. Хотелось бы поделиться с сообществом своим вариантом придания интерфейсу просмотра статистики дополнительного фунционала.

В качестве «подопытного» я использовал FreePBX Distro (FreePBX 2.11, Asterisk 11, CentOS 6.5), скачанный с официального сайта проекта. Выбор был продиктован тем, что разработчики FreePBX уже позаботились о прикручивании БД к Asterisk и структура хранения записей в общем-то меня устраивает. Хотя процедура «прикручивания» MySQL или какой-либо другой базы к Asterisk была описана ни раз и ни два, о чем можно почитать например здесь, все же в целях экономии времени я решил этого не делать.

За основу был взят Asterisk CDR Viewer (если не нужно каких-то сверхмудреных отчетов — то вполне себе пригодная и простенькая статистика), скачать можно тут.

Установка CDR Viewer не представляется какой-то нетривиальной задачей.

Переходим в нужную нам директорию, качаем архив, извлекаем файлы из архива:

Переносим файлик алиаса в папку с apache2:

Изменяем настройки подключения к БД для Asterisk-CDR-viewer

Нужно поменять параметры в соответствии с текущей конфигурацией вашей базы:

$db_user = ‘[MySQL пользователь]’;
$db_pass = ‘[MySQL пароль]’;
$db_name = ‘[Имя базы]’;

Делаем рестарт веб-сервера:

Теперь в браузере набирая [адрес asteridk-сервера]/acdr/ попадаем на страницу статистики.

Первое, что мне захотелось сделать — прикрутить авторизацию для просмотра этой самой статистики, для этого воспользуемся htpasswd.
Если не установлена —

Переходим в /etc/apache2 и созадем юзер/пароль для статистики:

Вводим пароль в диалоге, который предлагает htpasswd и получаем файл «passwordfile» с юзером «username» и сгенерированным зашифрованным паролем.

Далее в /etc/apache2/conf.d изменяем asterisk-cdr-viewer.conf, раскомментрировав строки авторизации, в результате получаем:

Alias /acdr/ «/var/www/asterisk-cdr-viewer/»

AuthName «Asterisk-CDR-Stat»
AuthType Basic
AuthUserFile /etc/apache2/passwordfile
AuthGroupFile /dev/null
require valid-user

Рестартуем apache2 и при входе на страницу видим окно авторизации:

image loader

Следующее, что был сделано — это прослушивание разговоров из веб-интерфейса.

1) Для прослушивания звонков добавляем две иконки в каталог /var/www/asterisk-cdr-viewer/templates/images (play и stop)

Источник

Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу

Версии ПО

FreePBX 2.11.0.41
Asternic CDR Reports 1.5.1

Введение

Задача: необходимо дать человеку возможность прослушивать записи разговоров, но строго на определённом диапазоне внутренних экстеншенов. Мы пытаемся создать нового администратора и даже прописываем ему Extension Range, надеясь таким образом дать ему ограниченный доступ к прослушиванию

image loader

Но потом, заходя под созданной учётной записью и направляясь в отчёты по звонкам, понимаем, что потерпели фиаско — CDR Reports игнорирует заданный диапазон Extension Range и выводит информацию по всем номерам.

Почесав в затылке, ищем альтернативный модуль отчётов — и, о чудо, находим его: Asternic CDR Reports. Он замечательный и работает только с теми номерами, диапазон которых ограничен для авторизовавшегося администратора.

image loader

Но что это? Нет прослушивания звонков? В столбце Listen выводится голосовая почта? Нет, так дело не пойдёт…

Исправляем

Информация о звонках в Asterisk`е хранится в Mysql в базе «asteriskcdrdb», таблица cdr. Это видно из следующего кода, взятого из файла page.cdr.php обычного CDR Reports

Значит, всё, что нам нужно — это прочитать значение ячейки recordingfile, где хранится строка «имя_файла.wav» и добавить к нему полный путь к этому файлу, который берётся, кстати, из самого же имени файла (год, месяц, день).

Открываем файл /var/www/html/admin/modules/asternic_cdr/functions.inc.php модуля Asternic.

Так в запрос к базе мы добавили поле recordingfile, значение которого, соответственно, теперь будет и в результирующем массиве, из которого мы его потом возьмём для формирования ссылки на файл.

Таким образом, в ячейке таблицы вместо вывода голосовой почты мы сделали проверку на наличие записи данного звонка и в случае её нахождения вывод небольшой иконки «Play» с ссылкой, закодированной в base64, на сам файл аудиозаписи.

image loader

Внимательный читатель заметил, что в формируемой ссылке есть переменная GET-запроса под названием getRec. Так как веб-сервер не имеет доступа к каталогу с аудиозаписями, мы отдаём файл через php, а для этого в конце файла functions.inc.php мы делаем проверку на наличие переменной getRec, в случае наличия которой мы обращаемся к функции, отдающей файл

Добавляем код в самый конец файла до, само собой, закрывающего php-тега «?>»

Источник

разграничение прав #65

Comments

klez22 commented Oct 26, 2017

Подскажите, как реализовать разграничение доступа пользователей только к своей статистике и записям разговоров. По мануалу выполнил:

add user 2280:
htpasswd /var/www/asterisk-cdr-viewer/.htpasswd 2280 test

но при залогинивании под username=extension вижу все записи как и под admin’ом

The text was updated successfully, but these errors were encountered:

prog-it commented Oct 27, 2017

Проверил, есть такой баг. Скоро будет исправлено.

prog-it commented Oct 27, 2017

andrewnord commented Dec 16, 2017

prog-it commented Dec 16, 2017

Все правильно работает. Обычные пользователи могут только просматривать свои записи, админы же видят все записи и могут удалять/слушать их.
Возможность давать права слушать/удалять/скачивать записи обычным пользователям будет добавлена в ближайшее время.

Olpag commented Mar 30, 2018

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

prog-it commented Mar 30, 2018

Уже есть в TODO. Постараюсь добавить в ближайшее время.

lexus45 commented Apr 6, 2018

Скачал 2.2.5, читаю config.php, но пока не вижу где именно это настроить.

ps: как понимаю, на Гитхабе ЛС нет, буду благодарен если ответите на kurgan-rus с о б а к а inbox тчк ru

prog-it commented Apr 6, 2018

Нет такой возможности в 2.2.5.

lexus45 commented Apr 6, 2018

prog-it, благодарю за оперативный ответ.
И за продукт конечно же тоже :^)

Olpag commented Apr 6, 2018

anutator commented Nov 7, 2018 •

А можно просто целиком отключить возможность удалять для всех, пока нет такого функционала? В принципе я могу поменять права на каталоги, но хотелось бы, чтобы и иконки не было (я поищу в шаблоне).
Также надо отключить возможность удалять правой кнопкой мыши строку CDR.

Olpag commented Nov 7, 2018 •

А можно просто целиком отключить возможность удалять для всех, пока нет такого функционала?

anutator commented Nov 8, 2018

Спасибо. Туплю. Правое контекстное меню там же убрала.

okovalev commented Nov 28, 2018

У меня версия 2.4.3
Аудиозаписи не дает прослушать.
Только посмотреть.
Присоединяюсь к вопросу lexus45
Как сделать так, что бы пользователь доупстим 100 смог прослушать свои аудизаписи?
Функционал удаления мне впринципе не нужен (даже для админов)

Olpag commented Nov 29, 2018

Нет такой возможности в этой версии
#65 (comment)

prog-it commented Nov 29, 2018

Разграничение прав в процессе реализации. До конца декабря постараюсь выложить. (нехватка времени)

Vlad1980 commented Jul 29, 2019

Скажите получилось реализовать разграничение прав? Хотелось бы разграничение по отделам (по пулам номеров), не только по пользователям. Спасибо.

prog-it commented Jul 29, 2019

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

vsh-it commented Feb 27, 2021

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

Есть какие-то подвижки по разграничению?

ylevin89 commented Mar 4, 2021 •

Тоже интересен этот вопрос

Realmagnum commented Jul 2, 2021

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

Asterisk cdr viewer mod ограничение прав

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Имя колонки для файла записи звонка будет «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.

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

Для extensions.ael, extensions.conf

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

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

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

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

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

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

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

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

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

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

Когда днем выполняется запись в формат 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 файлов для их преобразования в переменной «DEPTH».

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

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

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

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

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

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

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

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

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

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

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

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

Настройка CDR Viewer

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

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

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

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

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

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

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

В конфиг-файле файле можно выбрать режим работы сервера телефонной платформы (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 коп (доп. тариф).

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

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

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

Работа с БД PostgreSQL

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

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

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

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

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

Источник

Понравилась статья? Поделить с друзьями:

А вот еще кое-что интересное для вас:

  • Для чего нужен дубликаты госномера авто. 10 причин сделать себе его
  • Разновидности похоронных бюро и сферы их деятельности
  • Как быстро изучить английский язык? Плюсы и минусы онлайн школы по изучения языков
  • Эффективное создание текста вакансии: ключевые шаги и рекомендации
  • Размещение серверов в дата-центрах: преимущества и недостатки

  • 0 0 голоса
    Article Rating
    Подписаться
    Уведомить о
    0 Комментарий
    Старые
    Новые Популярные