Oktell Antirobot — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 142: Строка 142:
  
  
=== Сохранение эталонов встроенными средствами Antirobot===
+
=== Сохранение эталонов средствами Antirobot===
  
 
'''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь.  
 
'''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь.  

Версия 10:17, 11 августа 2014

Наверх

Oktell Antirobot — анализатор голосовых ответов мобильных операторов.

Введение

Зачастую, если абонент недоступен в трубке при звонке можно услышать такие фразы как

  • "Телефон абонента выключен или находится вне зоны действия сети"
  • "В настоящее время абонент не может ответить на ваш звонок. Оставьте сообщение после сигнала"
  • "Абонент временно недоступен. Попробуйте позвонить позднее"

Эти фразы относительно системы Antirobot называются Эталонами.

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

Antirobot регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного в Oktell метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.


Антиробот-000.png


Анализ голосовых сообщений от провайдера и сравнение их с эталонами - ресурсозатратная задача. Затраты сильно зависят от количества совершаемых звонков.

ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры.

Требования к серверу Antirobot: Следующие технические требования предназначены для нагрузки 500 одновременных коммутаций с интенсивностью обзвона до 50 коммутаций в секунду (сессий на распознаваний):

  • Процессор Intel Core i7.
  • Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше.

Сервер Oktell Antirobot с большей мощностью может проксировать/обрабатывать большее количество звонков.

Требования к операционной системе:

  • Протестировано на операционных системах: Windows xp, Windows 7.
  • Для работы требуется Framework 4.0.


Скачать Oktell Antirobot: Oktell Antirobot.zip


Ниже рассказывается об установке и настройке Oktell Antirobot.

В данной статье "Oktell" установлен на сервере с ip-адресом "192.168.0.81" , "Oktell Antirobot" установлен на сервере с ip-адресом "192.168.0.82".

ВНИМАНИЕ: Если вы хотите разместить Oktell Antirobot на той же рабочей станции, где установлен Oktell, то вам следует поменять порты в конфигурационном файле.


Установка и обновление Oktell Antirobot

1. Установка системы на сервере Antirobot. Запустите AntirobotSetup_ru.msi. Следуйте инструкции.

1. Антиробот-002.PNG 2. Антиробот-003.PNG 3. Антиробот-004.PNG


4. Антиробот-005.PNG 5. Антиробот-006.PNG


ВНИМАНИЕ: По умолчанию, Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом. Вы всегда можете сменить этот порт в конфигурационном файле.

Наберите в командной строке:

netstat -anop udp

По PID процесса в диспетчере задач найдите наименование процесса. Если порт занимается другим процессом, завершите его и перезагрузите службу Oktell Antirobot.


Схемы настройки Oktell, Антиробота и провайдера

Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера.

Вариант 1: Подключение с регистрацией на провайдере (до и после)

  • В настройках подключения АТС указываете в Outbound proxy адрес компьютера с Антироботом.
  • В Антироботе в настройках нового шлюза в качестве SIP-домена дублируется адрес провайдера (по этому адресу Антиробот будет сопоставлять звонки, если будет использовано несколько аккаунтов). В Outbound proxy укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым.


Антиробот-040.png


Вариант 2: Подключение без регистрации (до и после)

  • Настройка режима без регистрации аналогична предыдущему.
  • Ранее провайдер ссылался на адрес вашей АТС. Для использования Антиробота провайдер должен ссылаться на его адрес вместо АТС. Таким образом входящие звонки от провайдера будут попадать на Антиробот.
  • Антиробот же в настройках шлюза должен ссылаться на адрес вашей АТС. Таким образом входящие звонки от провайдера, пришедшие на Антиробот, будут им перенаправляться на вашу АТС.


Антиробот-041.png


ВНИМАНИЕ: В связке Oktell с Antirobot рекомендуется использовать тип "С регистрацией" для облегчения маршрутизации SIP-сообщений.


Настройка системы с регистрацией

1. Зайдите в панель управления Antirobot, для этого кликните на ярлык "AntiRobot Admin" на вашем рабочем столе. Или наберите в браузере "http://localhost:8888/".

Наберите пароль "123". Нажмите Войти.


Антиробот-010.PNG


2. Введите регистрационные данные. (Если у вас их нет, обратитесь к менеджерам Oktell). Нажмите "Активировать"


Антиробот-011.PNG


3. Нажмите "Добавить шлюз". Введите следующие данные:

  • Название: любое, будет отображаться в списке Шлюзы. В примере, Сипнет
  • Тип регистрации: выберите нужный тип регистрации. В примере, С регистрацией
  • Домен: домен провайдера. В примере, sipnet.ru
  • Outbound proxy: по умолчанию, совпадает с доменом. В примере, sipnet.ru

Нажмите "Сохранить".


Антиробот-012.PNG


4. Так как вы не настроили Oktell, вы увидите следующую схему. На ней показано, что Antirobot не связан с Oktell (регистрация не завершена).


Антиробот-013.PNG


5. Перейдите на сервер Oktell. Необходимо настроить Oktell для работы с Antirobot. Зайдите в Oktell -> раздел "Администрирование" -> модуль "Карта сети". Зайдите в настройки шлюза, через линии которого работает исходящая задача. Поменяйте "IP адрес SIP-Proxy сервера" на ip-адрес сервера Antirobot.


Антиробот-015.PNG


6. Нажмите ОК. Перейдите на вкладку "Сохранение". Нажмите "Проверить" -> "Сохранить карту" -> "Перезагрузить".

7. После перезагрузки в панели управления Antirobot будет показано, что регистрация успешно завершена .


Антиробот-014.PNG


Сохранение эталонов средствами Antirobot

Эталон - голосовое сообщение получаемое от провайдера. В процессе своей работы Oktell Antirobot записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то Oktell Antirobot распознает это как соответствующий сигнал ("Занято" или "Недоступен"), отсылает сигнал серверу Oktell и разрывает связь.

Для записи голосового сообщения выполните следующие шаги:

1. Откройте конфигурационный файл "antirobot.json.cfg", который по умолчанию, располагается по пути C:\Program Files (x86)\oktell\Antirobot с помощью блокнота.

2. Установите ключ save_temp_files значение "1".

"save_temp_files": 1

3. Перезагрузите службу Oktell Antirobot.

После выполнения данных шагов в папке \Antirobot\temp будут храниться записи ответов от провайдера. Длительность записи зависит от настройки "response_time_milliseconds" (см. конфигурационный файл). Записи можно использовать в качестве эталонов.


Сохранение эталонов с помощью Wireshark

1. Чтобы записать голосовое сообщение от провайдера воспользуйтесь программой-сниффером Wireshark. Запустите программу и откройте окно выбора интерфейса.


Антиробот-016.PNG


2. Выберите необходимый сетевой интерфейс. Распознать сетевой интерфейс поможет столбец Packets. Если количество захваченных пакетов будет увеличиваться, значит через этот интерфейс идет сетевой трафик. Нажмите Options.


Антиробот-017.PNG


3. В окне фильтра захвата (Capture Filter) наберите: udp. Далее нажмите "Start".


Антиробот-018.PNG


4. Позвоните через Oktell на любой телефон. Для того, чтобы записать голосовое сообщение от провайдера, смоделируйте такую ситуацию, например, отключите ваш телефон и позвоните на него. Подождите пару циклов голосового сообщения. Нажмите "Стоп".


Антиробот-019.PNG


5. Найдите запись разговора. Выберите в меню Telephony -> RTP -> Show All Streams. Выберите необходимую запись разговора. Отбирать следует только те записи у которых столбец "Src addr" совпадает с ip-адресом сервера Antirobot, а "Dst addr" совпадает с ip-адресом сервера Oktell. Нажмите Analyze.


Антиробот-020.png


Антиробот-021.png


6. В открывшемся окне, вы можете прослушать запись разговора нажав на Player -> Decode -> установить галочку на потоке -> нажать Play. Если эта запись не содержит голосового сообщения от провайдера, вернитесь на 5 пункт.

Сохраните запись, нажав на "Save payload...". Укажите следующие параметры:

  • Name: имя файла. В примере, "raw-format".
  • Save in folder: выберите место, куда сохранить файл. В примере, Desktop.
  • Format: .raw
  • Channels: forward.

Нажмите ОК.


Антиробот-022.png


Антиробот-023.png


7. Сохраните ваш raw-файл в wav-формат. Воспользуйтесь программой Audacity. Запустите программу нажмите "Импортировать"-> "Звуковой файл без заголовка Raw".

Антиробот-024.png

Выберите следующие параметры:

  • Кодирование: кодек, в котором была произведена запись в wireshark (поле Payload) в пункте 5. В примере, A-Law.
  • Каналов: 1 канал (моно).
  • Частота сэмплирования: 8000 Гц.

Нажмите "Импортировать".


Антиробот-025.png


Выберите нужный файл. В примере, созданный ранее "raw-format".


Антиробот-026.png


8. Прослушайте запись разговора. Выберите корректное устройство воспроизведения. Если воспроизведение некорректно перейдите в пункт 7.


Антиробот-027.png


9. Экспортируйте файл в нужном формате. Oktell Antirobot принимает файлы в формате WAV (8000 кГц, 16 бит, Моно). Нажмите Файл->Экспортировать.


Антиробот-028.png


Выберите место, куда вы хотите сохранить файл. Напишите имя файла, выберите тип файла: WAV (Microsoft) signed 16 bit PCM. Нажмите "Сохранить". В следующем окне нажмите ОК.


Антиробот-029.png Антиробот-029a.png


Пример записанного файла: Файл:Ростелеком недоступен.zip


Добавление эталонов в систему

Зайдите в панель администрирования Oktell. Перейдите на вкладку "Эталоны". Нажмите "Добавить эталон".

Выберите следующие параметры:

  • "Название": в примере, "Ростелеком - недоступен".
  • "Тип ответа": ответ, соответствующий данному голосовому сообщению. В примере, "Недоступен (вне действия сети, голосовая почта)"
    • Тип ответа: Недоступен - код sip-ответа 480.
    • Тип ответа: Занято - код sip-ответа 486.
  • "Расположение файла"


Антиробот-030.png


Антиробот-031.png


Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений.

ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы.

Антиробот-032.PNG


Мониторинг и Статистика

В разделе Мониторинг в режиме реального времени показываются все текущие разговоры и звонки, которые анализируются.

В правой части раздела показывается статистика по звонкам. Статистика доступна за конкретный день (при наведении мышкой) и за последний месяц. Доступны следующие данные:

  • Всего звонков - общее количество звонков
  • Занято - количество звонков, которые были распознаны, как "Занято"
  • Недоступны - количество звонков, которые были распознаны, как "Недоступен"


Антиробот-035.PNG.png


Конфигурационный файл

Каталог с Oktell Antirobot, по умолчанию, располагается по пути "C:\Program Files (x86)\oktell\Antirobot". Конфигурационный файл "antirobot.json.cfg" находится в корне папки, открывается с помощью блокнота (рекомендуется использовать notepad++).

Параметры конфигурационного файла:

Раздел "log" - настройки логирования

"max_storing_days" - длительность хранения лог-журналов, по умолчанию, 4

"common_enabled" - общее логирование системы, по умолчанию, 1

"media_enabled" - логирование медиа-трафика, по умолчанию, 0

"web_enabled" - логирование web-интерфейса, по умолчанию, 0


Раздел "sip" - настройки sip-протокола.

"local_port" - локальный sip-порт. Есть возможность добавить несколько портов, для этого скопируйте строку и укажите другой sip-порт. Также может использоваться для обеспечения работы antirobot и oktell на одном сервере. По умолчанию, 5060

"call_session_lifetime_seconds" - максимальная продолжительность любого разговора в секундах, по умолчанию, 7200

"keep_alive_interval_seconds" - интервал отправки сообщений keep-alive в секундах, по умолчанию, 30

"min_udp_port" и "max_udp_port" - интервал udp портов для передачи звуковых rtp пакетов. Если antirobot и oktell находятся на одном сервере, то порты не должны пересекаться с портами, определенными в oktell server. , по умолчанию 2000 и 12000 соответственно


Раздел "web" - настройки web-интерфейса

"listener_port" - порт web-сервера. По умолчанию, 8888

"session_expire_seconds" - максимальное время продолжительности сессии в секундах. По умолчанию, 3600


Раздел "analysis" - настройка анализа голосовых сообщений

"disabled" - деактивирует режим анализа голосовых сообщение, по умолчанию, 0

"response_time_milliseconds" - интервал времени для принятия решения, в миллисекундах. По умолчанию, 5000

"frame_length_milliseconds" - длина временного окна, в миллисекундах. По умолчанию, 20. ВНИМАНИЕ: данную настройку менять не рекомендуется.

"bands_count" - количество полос частотного спектра окна. По умолчанию, 20. ВНИМАНИЕ: данную настройку менять не рекомендуется.

"criterion" - порог принятия решения (диапазон: 0 - 100). По умолчанию, 50.

  • При уменьшении коэффициента, вероятность срабатывания системы возрастает (увеличится количество распознанных сообщений). Также увеличивается вероятность ошибки (увеличится количество неправильно распознанных сообщений).

"save_temp_files" - сохранение временных файлов, по умолчанию, 0.

  • Если выставить ключу save_temp_files значение "1", то в папке \Antirobot\temp будут храниться записи ответов от провайдера. Длительность записи зависит от настройки "response_time_milliseconds". Записи можно использовать в качестве эталонов.


Подключение к базе данных SQLite

В процессе своей работы Oktell Antirobot использует СУБД SQLite. Файл базы данных antirobot.sqlite.db располагается в корневом каталоге Oktell Antirobot.

Для того, чтобы посмотреть содержимое базы данных рекомендуется использовать, например, SQLiteBrowser.

Файл:SQLiteBrowser.zip

Перечень таблиц:

  • stats : статистика работы
  • settings: настройки
  • gateways: шлюзы
  • etalons: список эталонов
  • rejected: список отклоненных (распознанных) вызовов
Антироботч2-001.png


Прилинковать SQLite к MSSQL поможет следующая инструкция.

При составлении запросов используйте функцию OpenQuery, например

select * from openquery(NameOfLinkedServer, 'select * from rejected')


Обновление лицензии

1. Чтобы обновить лицензию, зайдите в папку \oktell\Antirobot и удалите скрытый файл product.lic. Чтобы отобразить все скрытые файлы нажмите Alt-сервис-параметры папок-вид-показывать скрытые файлы, папки и диски.


Антиробот-033.PNG


2. Перезапустите службу Oktell Antirobot. (Панель управления - Администрирование - Службы)


Антиробот-034.png


3. Войдите в панель управления Antirobot и введите ваши новые регистрационные данные, как описано в пункте Настройка системы


Успешной работы с Oktell Antirobot!

Скачать Oktell Antirobot: Oktell Antirobot.zip