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:
- Бесплатно
- Поддержка кодеков G.711 (A-Law, U-Law), G.721, G.722 и G.729
- Запись в различныt форматы и контейнеры
- Доступ к архиву записей через WEB-интерфейс
- Гибкая структура архива (по датам, по входящему номер, по исходящему и т.д.)
Недостатки Oreka:
- В бесплатной версии отсутствует разграничение прав доступа к WEB-интерфейсу
- Нет возможности прослушивать разговоры в режиме реального времени
- Отсутствует автоматическое удаление старых записей
- Прослушивание записанных разговоров через 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 состоит из нескольких модулей:
- OrkAudio – непосредственно модуль перехвата трафика и записи разговоров.
- OrkWeb – WEB-интерфейс доступа к записям.
- 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 и не требуют отдельного скачивания и установки.
Вся настройка и установка состоит из следующих действий:
- Подготовка виртуальной машины
- Настройка сетевого оборудования
- Установка на сервер модуля OrkAudio
- Установка MySQL
- Установка OrkWEB и OrkTrack с входящими в состав Java, Tomcat, WinPcap и Microsoft Visual C++ 2010 Redistributable Package.
- Настройка конфигурационных файлов OREKA.
Подготовка виртуальной машины и сетевых интерфейсов
Oreka для захвата трафика с помощью SPAN требует выделенный сетевой интерфейс, напрямую подключенный к серверу Oreka и не имеющий назначенного адреса. На порту со стороны сетевого оборудования требуется настроить SPAN. Также требуется настройка виртуального коммутатора Hyper-V.
Как сделал я – выделил для виртуальной машины два виртуальных сетевых интерефейса, предварительно созданных в Hyper-V Switch Manager:
Интерефейс Oreka VirtualNet напрямую подключен в физическому порту сервера и более не используется ни в одной виртуальной машине или хостовой ОС.
По второму интерфейсу машина смотрит в корпоративную сеть и будет доступна через WEB-интерфейс.
Для настройки зеркалирования трафика с внешнего физического сетевого адаптера сервера на внутренний виртуальный необходимо выполнить следующие настройки:
- В Virtual Switch Manager в настройках Extensions созданного виртуального коммутатора “Oreka VirtualNet” включить “Microsoft NDIS Capture” –
1 2 3 |
$ExtPortFeature=Get-VMSystemSwitchExtensionPortFeature -FeatureName "Ethernet Switch Port Security Settings" $ExtPortFeature.SettingData.MonitorMode = 2 Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName "Oreka VirtualNet" -VMSwitchExtensionFeature $ExtPortFeature |
Где “Oreka VirtualNet” – наша ранее созданная виртуальная сеть.
Настройка сетевого оборудования
В нашем случае в качестве сетевого оборудования выступает Cisco 2960, но это может быть абсолютно любой коммутатор, поддерживающий SPAN.
Для настройки перенаправления всего голосового трафика на сервер необходимо настроить мониторинг:
1 2 |
monitor session 1 source interface Gi0/2 – 19 ! прослушиваемые порты monitor session 1 destination interface Gi0/1 ! Порт, к которому подключен интерфейс сервера Oreka для захвата трафика |
Установка на сервер модуля OrkAudio с входящими в состав WinPcap и Microsoft Visual C++ 2010 Redistributable Package
Сначала скачайте дистрибутив OrcAudio – http://oreka.sourceforge.net/download/windows Проект больше не поддерживается разработчиком.
На момент написания статьи последняя доступная версия 1.7-844. В процессе установки OrcAudio сам устанавливает требуемые компоненты. Ничего отдельно скачивать и устанавливать не требуется.
Установка MySQL
Может использоваться любая версия Mysql, я использовал MySQL Community 5.6.22 x64.
Скачать дистрибутив можно здесь –
При установке выбираем тип установки – «Только сервер», указываем порт сервера, тип конфигурации и отмечаем «Показать дополнительные настройки», –
Указываем пароль пользователя root, желательно от 10 символов
Указываем как будет называться Windows Service и устанавливаем опцию автоматического запуска службы:
В целях безопасности правильно создать и указать для запуска сервиса MySQL отдельную учетную запись, но я сейчас это делать не буду.
В следующем окне указываем где хранить логи. Так как у меня этот сервер предназначен только для Oreka, я создал папку C:\OREKA\LOGS которую и указал в качестве мест хранения логов. Она нам еще пригодится для размещения логов самой системы OrkAudio.
Установка OrkWEB и OrkTrack с входящими в состав Java и Tomcat
После установки MySQL приступаем к установке OrkWEB. Скачать можно здесь – http://oreka.sourceforge.net/download/war Проект больше не поддерживается разработчиком.
При установке я указал заранее созданную папку C:\OREKA в качестве места установки.
Тут же указываем установку Java –
И Apach Tomcat –
При установке сразу можно указать стартовать приложение в качетстве сервиса Windows и установку компонентов для настройки, –
По желанию меняем порты, меняем название сервиса и указываем логин/пароль администратора. В нашей тестовой системе я оставил всё по умолчанию.
На следующем шаге указываем папку с установленной Java. Так как значения по умолчанию при установке Java я не менял, здесь так же остаётся всё как есть, –
На очередном этапе подтвердите, что уже установили MySql –
И в следующем окне укажите имя пользователя root и пароль, который вы задали на этапе установки MySql.
Установили, запускаем
Отлично, сетевое оборудование настроили, софт весь поставили, теперь то, ради чего и затевалась эта статья –
Настройка конфигурационных файлов OREKA
В документации разработчика, к сожалению, основное внимание уделяется настройкам системы при установке на Linux, а конфиги для Windows часто ошибочны в части синтаксиса.
Поэтому здесь я постараюсь описать все возможные настройки системы и привести примеры реально работающих конфигов.
Главный конфигурационный файл OrkAudio – config.xml, расположенной в папке, куда устанавливалась программа. В нашем случае это C:\OREKA\OrkAudio.
В первую очередь необходимо изменить настройки сетевого интерфейса – указать наименование устройства. Как заявлено разработчиком, OrkAudio сам определяет интерфейс по которому идет голосовой трафик, но в реальности он не всегда корректно определяется и лучше его указать явно.
Сначала нам нужно определить устройство. Для этого в командной строке Windows набираем ipconfig /all и смотрим наименование интерфейса, который используется для прослушивание трафика:
В нашей конфигурации это «Microsoft Hyper-V Network Adapter #2» – на нем нет IP адреса.
Затем, выполняем команду
1 |
getmac /fo list /v |
и получаем Transport Name нужного нам сетевого адаптера, –
Заменив Tcpip на NPF, мы получим строку для конфига.
После этого в разделе <VoIpPlugin> указываем:
1 |
<Devices> \Device\NPF_{F913785D-87EE-4475-9F76-CEEFA15342E9}</Devices> |
Подсказка – имена устройств можно посмотреть в лог-файле OrkAudio.log, они инциализируются при запуске.
Теперь необходимо указать папку, в которой у нас будут храниться записи:
1 |
<AudioOutputPath>c:/PhoneRecorder/</AudioOutputPath> |
Затем, указываем настройки хранения файлов записей. Для себя я выбрал следующий формат –
Структура папок: ПРЕФИКС_ГОД затем подпапки МЕСЯЦ.ЧИСЛО, затем НОМЕРАБОНЕНТА.
А файлы в структуре папок называются: НАПРАВЛЕНИЕ (входящий или исходящий звонок), затем номер удаленного абонента, внутренний номер и время звонка с точностью до секунды.
Если Вам подходит такой формат, укажите следующие строки в файле:
1 2 3 4 5 |
<CapturePortFilters>LiveMonitoring</CapturePortFilters> <TapeProcessors>BatchProcessing, TapeFileNaming, Reporting</TapeProcessors> <TapePathNaming>kvt,_,[year],/,[month],.,[day],/,[localparty],/</TapePathNaming> <TapeFileNaming>[direction],_,[remoteparty],_,[hour],.,[min],.,[sec]</TapeFileNaming> |
Если вам более удобна другая структура, можно об этом почитать в документации разработчика. Проект больше не поддерживается разработчиком.
По началу у меня не корректно отрабатывались звонки, поэтому специально для Cisco CME я внёс в раздел <VoIpPlugin> следующую запись:
1 |
<SkinnyCucm7Mode>yes</SkinnyCucm7Mode> |
Далее, нужно настроить Tomcat. Конфигурационный файл config.xml расположен –
C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf
Правим следующие строки:
1 2 |
<!-- Oreka default media context paths --> <Context path="/" docBase="c:/PhoneRecorder/" ></Context> |
Где указываем путь к месту хранения наших аудио записей.
Обратите внимание на слэши! Они в обратную сторону!
Изменим место хранения логов. В файле c:\OREKA\OrkAudio\logging.properties
Вносим правки:
1 2 3 4 5 6 |
# main logfile log4j.appender.main.File=c:/OREKA/LOGS/orkaudio.log # messages logfile log4j.appender.messages.File=c:/OREKA/LOGS/messages.log # tapelist logfile log4j.appender.tapelist.File=c:/OREKA/LOGS/tapelist.log |
В файле c:\OREKA\OrkWeb\logging.properties вносим изменения:
1 2 |
### orkweb.log ### log4j.appender.file.File=C:/OREKA/LOGS/orkweb.log |
Настройка завершена.
Зайдя по адресу http://localhost/orkweb и введя пароль по умолчанию admin|admin вы попадете в систему архива сообщений:
Не забудьте сразу поменять пароль учетной записи admin и настроить SSL.
Обращаю ваше внимание, что ведется запись всех ВНЕШНИХ разговоров, общение между собой двух внутренних абонентов не записывается.
Успехов!
Забавная фотка с теткой
Спасибо за статью, все работает.
Единственное не могу найти документацию на конфигурирование файла OrkAudio – config.xml . На сайте производителя тоже нет полный документации:) Выложите пожалуйста в общий доступ, т.к. хочется поставить разные фильтры, чтобы записывались только нужные звонки и хочется, чтобы писались и внутренние и внешние и любые.
Заранее благодарен за любой ответ.
В статье ошибка. Файл называется server.xml а не config.xml. Еще одно заблуждение что система поддерживает кодек G729. По одним данным она его не поддерживает вообще, по другим поддержка есть в коммерческой версии (что противоречит некоммерческому статусу проекта). Сам на это напоролся при записи тестового звонка. Файл создается, но декодировать его система не может.
Для IVAN SHUVALOV: Файл называется именно config.xml, G729 у нас пишется без проблем.
Для VASYA: Внутренние звонки мне не удалось настроить для записи. Листинг моего файла config.xml прилагаю:
Доброго времени суток, скажите пожалуйста а возможно ручное удаление аудиозаписей с данной системы? Стоит рабочая oreka с папочки файлами удалили, но насколько я понимаю информация еще остается в mysql, при попытке удаления из mysql начинается ругаться про взаимосвязь различных полей между собой.