Меню Закрыть

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

Cisco CME Oreka

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
  • В свойствах сетевого адаптера для захвата VoIP трафика виртуальной машины OREKA, в закладке “Advanced Features” указать – “Mirroring mode: Destination“. При этом виртуальная машина должна быть выключена. –
  • Hyper-V SPAN Mirroring
    Hyper-V SPAN Mirroring
  • В командной строке 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 install
    OrkWeb 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 Comments

    1. Vasya

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

      • Ivan Shuvalov

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

      • Kvazar

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

    2. Radmir

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

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

    Ваш адрес email не будет опубликован.

    три × два =

    %d такие блоггеры, как: