Запись разговоров Cisco CME с помощью Oreka (orkaudio) на Windows Hyper-V

Cisco CallManager Express (CME) является отличным решением VoIP телефонии для небольших организаций — обладает широким великолепным функционалом, проста в настойке и обслуживании, надежна и… много чего еще.
Одним из пожеланий или даже… Далее..

Cisco CallManager Express (CME) является отличным решением VoIP телефонии для небольших организаций — обладает широким великолепным функционалом, проста в настойке и обслуживании, надежна и… много чего еще.
Одним из пожеланий или даже требований к корпоративной телефонной системе является запись переговоров.

Для CME существует большое количество платных решений, и совсем немного бесплатных. Одна из них — Oreka. Собственно это единственное бесплатное корректно работающее решение из всех что я смог найти.

В данной статье я расскажу об установке и настройке Oreka на отдельном виртуальном сервере Hyper-V под Windows , это стало возможным с появлением Windows Hyper-V 3.0 в Windows Server 2012, с указанием подводных камней и нюансов настройки.
Система устанавливается на отдельном сервере, виртуальном или физическом, в качестве основной операционной системы может использоваться как Windows так и Linux, например, CentOs.
Cистема может записывать разговоры почти любой PBX — Avaya, Asterisk, FreeBSD и прочее. Принцип действия один — захват VOIP трафика с сетевого оборудования (SPAN) и запись его в звуковом формате. Захват ведется любого голосового трафика – RTP, SIP, Skinny.
Разработчики последнее время сконцентрировались на коммерческой версии продукта, поэтому последняя версия (1.7) опенсорс решения на момент написания статьи датирована сентябрем 2013 года.

Основные преимущества и функционал Oreka:

  1. Бесплатно
  2. Поддержка кодеков G.711 (A-Law, U-Law), G.721, G.722 и G.729
  3. Запись в различныt форматы и контейнеры
  4. Доступ к архиву записей через WEB-интерфейс
  5. Гибкая структура архива (по датам, по входящему номер, по исходящему и т.д.)

Недостатки Oreka:

  1. В бесплатной версии отсутствует разграничение прав доступа к WEB-интерфейсу
  2. Нет возможности прослушивать разговоры в режиме реального времени
  3. Отсутствует автоматическое удаление старых записей
  4. Прослушивание записанных разговоров через WEB интерфейс возможно только с использованием Internet Explorer

Несмотря на то, что по умолчанию разработчиком рекомендуется установка на Linux, я решил использовать Windows Server 2012 R2 в качестве виртуальной машины Hyper-V.
Вообще можно использовать любую версию Windows – XP, 2003, 2008 R2, причем как х86 так и х64. Только обращаю Ваше внимание, что использовать среду виртуализации можно либо VMWare, либо Hyper-V, начиная с Windows Server 2012, в ранних версиях нет возможности настроить зеркалирование трафика SPAN с внешнего интерфейса на виртуальный.

Oreka состоит из нескольких модулей:

  1. OrkAudio — непосредственно модуль перехвата трафика и записи разговоров.
  2. OrkWeb — WEB-интерфейс доступа к записям.
  3. OrkTrack — база для хранения информации о записанных разговорах

Системные требования:

  • СУБД MySQL (любая версия)
  • Tomcat 7 (можно версию 8)
  • Java 7 (опытным путем установлено, что более поздние версии Java не работают с Oreka)
  • Библиотека WinPcap (для Windows 2012 желательно установить 4.1.3, а не 4.1.2, которая идет в составе дистрибутива OREKA)
  • Microsoft Visual C++ 2008 Redistributable Package

Все компоненты, кроме MySQL входят в дистрибутив OrcAudio и OrkWEB и не требуют отдельного скачивания и установки.

Вся настройка и установка состоит из следующих действий:

  1. Подготовка виртуальной машины
  2. Настройка сетевого оборудования
  3. Установка на сервер модуля OrkAudio
  4. Установка MySQL
  5. Установка OrkWEB и OrkTrack с входящими в состав Java, Tomcat, WinPcap и Microsoft Visual C++ 2010 Redistributable Package.
  6. Настройка конфигурационных файлов OREKA.

Подготовка виртуальной машины и сетевых интерфейсов

Hyper-V Virtual Switch Manager

Hyper-V Virtual Switch Manager

Oreka для захвата трафика с помощью SPAN требует выделенный сетевой интерфейс, напрямую подключенный к серверу Oreka и не имеющий назначенного адреса. На порту со стороны сетевого оборудования требуется настроить SPAN. Также требуется настройка виртуального коммутатора Hyper-V.
Как сделал я – выделил для виртуальной машины два виртуальных сетевых интерефейса, предварительно созданных в Hyper-V Switch Manager:

Интерефейс Oreka VirtualNet напрямую подключен в физическому порту сервера и более не используется ни в одной виртуальной машине или хостовой ОС.
По второму интерфейсу машина смотрит в корпоративную сеть и будет доступна через WEB-интерфейс.

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

  1. В Virtual Switch Manager в настройках Extensions созданного виртуального коммутатора «Oreka VirtualNet» включить «Microsoft NDIS Capture» —

    Hyper-V SPAN Mirroring

    Hyper-V SPAN Mirroring

  2. В свойствах сетевого адаптера для захвата VoIP трафика виртуальной машины OREKA, в закладке «Advanced Features» указать — «Mirroring mode: Destination«. При этом виртуальная машина должна быть выключена. —

    Hyper-V SPAN Mirroring

    Hyper-V SPAN Mirroring

  3. В командной строке PowerShell на хосте Hyper-V (запускать под администратором!) выполнить следующие команды:

    Где «Oreka VirtualNet» — наша ранее созданная виртуальная сеть.

Настройка сетевого оборудования

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

Для настройки перенаправления всего голосового трафика на сервер необходимо настроить мониторинг:

 

Установка на сервер модуля OrkAudio с входящими в состав WinPcap и Microsoft Visual C++ 2010 Redistributable Package

Сначала скачайте дистрибутив OrcAudio — http://oreka.sourceforge.net/download/windows
На момент написания статьи последняя доступная версия 1.7-844. В процессе установки OrcAudio сам устанавливает требуемые компоненты. Ничего отдельно скачивать и устанавливать не требуется.
OrkAudio setup  Install OrkAudio setup complete

Установка MySQL

Может использоваться любая версия Mysql, я использовал MySQL Community 5.6.22 x64.
Скачать дистрибутив можно здесь —

Install Mysql
При установке выбираем тип установки – «Только сервер», указываем порт сервера, тип конфигурации и отмечаем «Показать дополнительные настройки», —

Install Mysql
Указываем пароль пользователя root, желательно от 10 символов
Install Mysql root pass
Указываем как будет называться Windows Service и устанавливаем опцию автоматического запуска службы:
Install Mysql service
В целях безопасности правильно создать и указать для запуска сервиса MySQL отдельную учетную запись, но я сейчас это делать не буду.
В следующем окне указываем где хранить логи. Так как у меня этот сервер предназначен только для Oreka, я создал папку C:\OREKA\LOGS которую и указал в качестве мест хранения логов. Она нам еще пригодится для размещения логов самой системы OrkAudio.Install Mysql logsInstall Mysql finish

 

Установка OrkWEB и OrkTrack с входящими в состав Java и Tomcat

После установки MySQL приступаем к установке OrkWEB. Скачать можно здесь — http://oreka.sourceforge.net/download/war

OrkWeb installOrkWeb install

При установке я указал заранее созданную папку C:\OREKA в качестве места установки.
Тут же указываем установку Java —
OrkWeb install Java OrkWeb install Java

И Apach Tomcat —
OrkWeb install Apach Tomcat
При установке сразу можно указать стартовать приложение в качетстве сервиса Windows и установку компонентов для настройки, —

OrkWeb install Apach Tomcat

 

По желанию меняем порты, меняем название сервиса и указываем логин/пароль администратора. В нашей тестовой системе я оставил всё по умолчанию. OrkWeb install Apach Tomcat
На следующем шаге указываем папку с установленной Java. Так как значения по умолчанию при установке Java я не менял, здесь так же остаётся всё как есть, —
OrkWeb install Apach Tomcat
На очередном этапе подтвердите, что уже установили MySql —
OrkWeb install MySQL
И в следующем окне укажите имя пользователя root и пароль, который вы задали на этапе установки MySql.
OrkWeb install MySQL
Установили, запускаем
Apache Tomcat Complete
Отлично, сетевое оборудование настроили, софт весь поставили, теперь то, ради чего и затевалась эта статья —

Настройка конфигурационных файлов OREKA

В документации разработчика, к сожалению, основное внимание уделяется настройкам системы при установке на Linux, а конфиги для Windows часто ошибочны в части синтаксиса.
Поэтому здесь я постараюсь описать все возможные настройки системы и привести примеры реально работающих конфигов.

Главный конфигурационный файл OrkAudio – config.xml, расположенной в папке, куда устанавливалась программа. В нашем случае это C:\OREKA\OrkAudio.
В первую очередь необходимо изменить настройки сетевого интерфейса – указать наименование устройства. Как заявлено разработчиком, OrkAudio сам определяет интерфейс по которому идет голосовой трафик, но в реальности он не всегда корректно определяется и лучше его указать явно.
Сначала нам нужно определить устройство. Для этого в командной строке Windows набираем ipconfig /all и смотрим наименование интерфейса, который используется для прослушивание трафика:
ipconfig all
В нашей конфигурации это «Microsoft Hyper-V Network Adapter #2» — на нем нет IP адреса.
Затем, выполняем команду

и получаем Transport Name нужного нам сетевого адаптера, —

getmac

Заменив Tcpip на NPF, мы получим строку для конфига.

После этого в разделе <VoIpPlugin> указываем:

Подсказка – имена устройств можно посмотреть в лог-файле OrkAudio.log, они инциализируются при запуске.

Теперь необходимо указать папку, в которой у нас будут храниться записи:

Затем, указываем настройки хранения файлов записей. Для себя я выбрал следующий формат –

Структура папок: ПРЕФИКС_ГОД затем подпапки МЕСЯЦ.ЧИСЛО, затем НОМЕРАБОНЕНТА.

А файлы в структуре папок называются: НАПРАВЛЕНИЕ (входящий или исходящий звонок), затем номер удаленного абонента, внутренний номер и время звонка с точностью до секунды.

Если Вам подходит такой формат, укажите следующие строки в файле:

Если вам более удобна другая структура, можно об этом почитать в документации разработчика.

По началу у меня не корректно отрабатывались звонки, поэтому специально для Cisco CME я внёс в раздел <VoIpPlugin> следующую запись:

Далее, нужно настроить Tomcat. Конфигурационный файл config.xml расположен —

C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf
Правим следующие строки:

Где указываем путь к месту хранения наших аудио записей.

Обратите внимание на слэши! Они в обратную сторону!
Изменим место хранения логов. В файле c:\OREKA\OrkAudio\logging.properties
Вносим правки:

В файле c:\OREKA\OrkWeb\logging.properties вносим изменения:

 

Настройка завершена.
Зайдя по адресу http://localhost/orkweb и введя пароль по умолчанию admin|admin вы попадете в систему архива сообщений:

Oreka OrkWeb

Oreka OrkWeb

Oreka WEB

Не забудьте сразу поменять пароль учетной записи admin и настроить SSL.

Обращаю ваше внимание, что ведется запись всех ВНЕШНИХ разговоров, общение между собой двух внутренних абонентов не записывается.
Успехов!

Комментарии ( 5 )

  1. sergey
    says:

    Забавная фотка с теткой

  2. Vasya
    says:

    Спасибо за статью, все работает.
    Единственное не могу найти документацию на конфигурирование файла OrkAudio – config.xml . На сайте производителя тоже нет полный документации:) Выложите пожалуйста в общий доступ, т.к. хочется поставить разные фильтры, чтобы записывались только нужные звонки и хочется, чтобы писались и внутренние и внешние и любые.
    Заранее благодарен за любой ответ.

    • Ivan Shuvalov
      says:

      В статье ошибка. Файл называется server.xml а не config.xml. Еще одно заблуждение что система поддерживает кодек G729. По одним данным она его не поддерживает вообще, по другим поддержка есть в коммерческой версии (что противоречит некоммерческому статусу проекта). Сам на это напоролся при записи тестового звонка. Файл создается, но декодировать его система не может.

    • Kvazar
      says:

      Для IVAN SHUVALOV: Файл называется именно config.xml, G729 у нас пишется без проблем.
      Для VASYA: Внутренние звонки мне не удалось настроить для записи. Листинг моего файла config.xml прилагаю:
      config.xml

  3. Radmir
    says:

    Доброго времени суток, скажите пожалуйста а возможно ручное удаление аудиозаписей с данной системы? Стоит рабочая oreka с папочки файлами удалили, но насколько я понимаю информация еще остается в mysql, при попытке удаления из mysql начинается ругаться про взаимосвязь различных полей между собой.

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

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

12 − 5 =

Яндекс.Метрика