Oktell Antirobot

Материал из Oktell
Перейти к: навигация, поиск

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

Введение

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

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

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

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

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


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


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

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

Требования к серверу Antirobot:

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

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

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

В данной статье рассказывается об установке и настройке Oktell Antirobot. Для написания данной статьи использовались следующие файлы.


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


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

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

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

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

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


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

2. Обновление системы. Откройте "Управление службами" (Мой компьютер "правой кнопкой" -> Управление -> Службы и приложения -> Службы). Остановите службу Oktell Antirobot Service.


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


3. Распакуйте архив с обновлением. Например, для написания статьи использовалось обновление "antirobot 1.2.6.0 (01.10.13).zip". Скопируйте все файлы в корень папки Antirobot, как показано на рисунке.


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


4. Откройте "Управление службами", как в пункте 2. Запустите службу Oktell Antirobot Service.


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


Ваша система установлена и обновлена до последней версии. Можете переходит к следующему шагу - настройке системы.

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

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

netstat -anop udp

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

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

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

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


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


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


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


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

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

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

  • Домен: домен провайдера. В примере, 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


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

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

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

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

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

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


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


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


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

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

Антиробот-032.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 поможет следующая инструкция.