Oktell Antirobot
Oktell Antirobot — анализатор голосовых ответов мобильных операторов.
Содержание
Введение
Зачастую, если абонент недоступен в трубке при звонке можно услышать такие фразы как
- "Телефон абонента выключен или находится вне зоны действия сети"
- "В настоящее время абонент не может ответить на ваш звонок. Оставьте сообщение после сигнала"
- "Абонент временно недоступен. Попробуйте позвонить позднее"
Эти фразы относительно системы Antirobot называются Эталонами.
Oktell Antirobot предназначен для того, чтобы правильно распознавать такие ответы и разрывать соединение при попадании на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.
Antirobot регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного в Oktell метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
Анализ голосовых сообщений от провайдера и сравнение их с эталонами - ресурсозатратная задача. Затраты сильно зависят от количества совершаемых звонков.
ВНИМАНИЕ: Рекомендуется устанавливать 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. Следуйте инструкции.
ВНИМАНИЕ: По умолчанию, Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом. Вы всегда можете сменить этот порт в конфигурационном файле.
Наберите в командной строке:
netstat -anop udp
По PID процесса в диспетчере задач найдите наименование процесса. Если порт занимается другим процессом, завершите его и перезагрузите службу Oktell Antirobot.
Схемы настройки Oktell, Антиробота и провайдера
Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера.
Вариант 1: Подключение с регистрацией на провайдере (до и после)
- В настройках подключения АТС указываете в Outbound proxy адрес компьютера с Антироботом.
- В Антироботе в настройках нового шлюза в качестве SIP-домена дублируется адрес провайдера (по этому адресу Антиробот будет сопоставлять звонки, если будет использовано несколько аккаунтов). В Outbound proxy укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым.
Вариант 2: Подключение без регистрации (до и после)
- Настройка режима без регистрации аналогична предыдущему.
- Ранее провайдер ссылался на адрес вашей АТС. Для использования Антиробота провайдер должен ссылаться на его адрес вместо АТС. Таким образом входящие звонки от провайдера будут попадать на Антиробот.
- Антиробот же в настройках шлюза должен ссылаться на адрес вашей АТС. Таким образом входящие звонки от провайдера, пришедшие на Антиробот, будут им перенаправляться на вашу АТС.
ВНИМАНИЕ: В связке Oktell с Antirobot рекомендуется использовать тип "С регистрацией" для облегчения маршрутизации SIP-сообщений.
Настройка системы с регистрацией
1. Зайдите в панель управления Antirobot, для этого кликните на ярлык "AntiRobot Admin" на вашем рабочем столе. Или наберите в браузере "http://localhost:8888/".
Наберите пароль "123". Нажмите Войти.
2. Введите регистрационные данные. (Если у вас их нет, обратитесь к менеджерам Oktell). Нажмите "Активировать"
3. Нажмите "Добавить шлюз". Введите следующие данные:
- Название: любое, будет отображаться в списке Шлюзы. В примере, Сипнет
- Тип регистрации: выберите нужный тип регистрации. В примере, С регистрацией
- Домен: домен провайдера. В примере, sipnet.ru
- Outbound proxy: по умолчанию, совпадает с доменом. В примере, sipnet.ru
Нажмите "Сохранить".
4. Так как вы не настроили Oktell, вы увидите следующую схему. На ней показано, что Antirobot не связан с Oktell (регистрация не завершена).
5. Перейдите на сервер Oktell. Необходимо настроить Oktell для работы с Antirobot. Зайдите в Oktell -> раздел "Администрирование" -> модуль "Карта сети". Зайдите в настройки шлюза, через линии которого работает исходящая задача. Поменяйте "IP адрес SIP-Proxy сервера" на ip-адрес сервера Antirobot.
6. Нажмите ОК. Перейдите на вкладку "Сохранение". Нажмите "Проверить" -> "Сохранить карту" -> "Перезагрузить".
7. После перезагрузки в панели управления Antirobot будет показано, что регистрация успешно завершена .
Сохранение и добавление эталонов в систему
Эталон - голосовое сообщение получаемое от провайдера. В процессе своей работы Oktell Antirobot записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то Oktell Antirobot распознает это как соответствующий сигнал ("Занято" или "Недоступен"), отсылает сигнал серверу Oktell и разрывает связь.
1. Чтобы записать голосовое сообщение от провайдера воспользуйтесь программой-сниффером Wireshark. Запустите программу и откройте окно выбора интерфейса.
2. Выберите необходимый сетевой интерфейс. Распознать сетевой интерфейс поможет столбец Packets. Если количество захваченных пакетов будет увеличиваться, значит через этот интерфейс идет сетевой трафик. Нажмите Options.
3. В окне фильтра захвата (Capture Filter) наберите: udp. Далее нажмите "Start".
4. Позвоните через Oktell на любой телефон. Для того, чтобы записать голосовое сообщение от провайдера, смоделируйте такую ситуацию, например, отключите ваш телефон и позвоните на него. Подождите пару циклов голосового сообщения. Нажмите "Стоп".
5. Найдите запись разговора. Выберите в меню Telephony -> RTP -> Show All Streams. Выберите необходимую запись разговора. Отбирать следует только те записи у которых столбец "Src addr" совпадает с ip-адресом сервера Antirobot, а "Dst addr" совпадает с ip-адресом сервера Oktell. Нажмите Analyze.
6. В открывшемся окне, вы можете прослушать запись разговора нажав на Player -> Decode -> установить галочку на потоке -> нажать Play. Если эта запись не содержит голосового сообщения от провайдера, вернитесь на 5 пункт.
Сохраните запись, нажав на "Save payload...". Укажите следующие параметры:
- Name: имя файла. В примере, "raw-format".
- Save in folder: выберите место, куда сохранить файл. В примере, Desktop.
- Format: .raw
- Channels: forward.
Нажмите ОК.
7. Сохраните ваш raw-файл в wav-формат. Воспользуйтесь программой Audacity. Запустите программу нажмите "Импортировать"-> "Звуковой файл без заголовка Raw".
Выберите следующие параметры:
- Кодирование: кодек, в котором была произведена запись в wireshark (поле Payload) в пункте 5. В примере, A-Law.
- Каналов: 1 канал (моно).
- Частота сэмплирования: 8000 Гц.
Нажмите "Импортировать".
Выберите нужный файл. В примере, созданный ранее "raw-format".
8. Прослушайте запись разговора. Выберите корректное устройство воспроизведения. Если воспроизведение некорректно перейдите в пункт 7.
9. Экспортируйте файл в нужном формате. Oktell Antirobot принимает файлы в формате WAV (8000 кГц, 16 бит, Моно). Нажмите Файл->Экспортировать.
Выберите место, куда вы хотите сохранить файл. Напишите имя файла, выберите тип файла: WAV (Microsoft) signed 16 bit PCM. Нажмите "Сохранить". В следующем окне нажмите ОК.
Пример записанного файла: Файл:Ростелеком недоступен.zip
10. Зайдите в панель администрирования Oktell. Перейдите на вкладку "Эталоны". Нажмите "Добавить эталон".
Выберите следующие параметры:
- "Название": в примере, "Ростелеком - недоступен".
- "Тип ответа": ответ, соответствующий данному голосовому сообщению. В примере, "Недоступен (вне действия сети, голосовая почта)"
- Тип ответа: Недоступен - код sip-ответа 480.
- Тип ответа: Занято - код sip-ответа 486.
- "Расположение файла"
11. Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений.
ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы.
Мониторинг и Статистика
В разделе Мониторинг в режиме реального времени показываются все текущие разговоры и звонки, которые анализируются.
В правой части раздела показывается статистика по звонкам. Статистика доступна за конкретный день (при наведении мышкой) и за последний месяц. Доступны следующие данные:
- Всего звонков - общее количество звонков
- Занято - количество звонков, которые были распознаны, как "Занято"
- Недоступны - количество звонков, которые были распознаны, как "Недоступен"
Конфигурационный файл
Каталог с 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.
Перечень таблиц:
- stats : статистика работы
- settings: настройки
- gateways: шлюзы
- etalons: список эталонов
- rejected: список отклоненных (распознанных) вызовов
Прилинковать SQLite к MSSQL поможет следующая инструкция.
При составлении запросов используйте функцию OpenQuery, например
select * from openquery(NameOfLinkedServer, 'select * from rejected')
Обновление лицензии
1. Чтобы обновить лицензию, зайдите в папку \oktell\Antirobot и удалите скрытый файл product.lic. Чтобы отобразить все скрытые файлы нажмите Alt-сервис-параметры папок-вид-показывать скрытые файлы, папки и диски.
2. Перезапустите службу Oktell Antirobot. (Панель управления - Администрирование - Службы)
3. Войдите в панель управления Antirobot и введите ваши новые регистрационные данные, как описано в пункте Настройка системы
Успешной работы с Oktell Antirobot!
Скачать Oktell Antirobot: Oktell Antirobot.zip