Oktell Antirobot — различия между версиями
м |
|||
(не показано 69 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | [[Утилиты | Наверх]] | |
− | + | '''Oktell Antirobot (Call Progress Analysis), (CPA)''' — анализатор голосовых ответов мобильных операторов. | |
+ | |||
+ | ===Введение=== | ||
+ | |||
+ | Если абонент недоступен, занят, или не отвечает, в трубке при звонке можно услышать такие фразы как | ||
* "Телефон абонента выключен или находится вне зоны действия сети" | * "Телефон абонента выключен или находится вне зоны действия сети" | ||
Строка 9: | Строка 13: | ||
Эти фразы относительно системы '''Antirobot''' называются '''Эталонами'''. | Эти фразы относительно системы '''Antirobot''' называются '''Эталонами'''. | ||
− | '''Oktell | + | '''Oktell Antirobot''' предназначен для того, чтобы правильно распознавать такие ответы и заранее разрывать соединение, не допуская попадания оператора на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи. |
− | '''Antirobot''' регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного | + | '''Antirobot''' регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента. |
Строка 17: | Строка 21: | ||
− | Анализ голосовых сообщений от провайдера и сравнение их с эталонами - '''ресурсозатратная задача'''. Затраты сильно зависят от количества совершаемых звонков | + | Анализ голосовых сообщений от провайдера и сравнение их с эталонами - '''ресурсозатратная задача'''. Затраты сильно зависят от количества совершаемых звонков. |
<span style="color:red;"> ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры. | <span style="color:red;"> ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры. | ||
'''Требования к серверу Antirobot''': | '''Требования к серверу Antirobot''': | ||
− | * Процессор | + | Следующие технические требования предназначены для нагрузки 500 одновременных коммутаций с интенсивностью обзвона до 50 коммутаций в секунду (сессий на распознаваний): |
+ | * Процессор Intel Core i7. | ||
* Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше. | * Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше. | ||
+ | Сервер Oktell Antirobot с большей мощностью может проксировать/обрабатывать большее количество звонков. | ||
'''Требования к операционной системе''': | '''Требования к операционной системе''': | ||
− | * | + | * не ниже Windows 7 SP1 |
* Для работы требуется Framework 4.0. | * Для работы требуется Framework 4.0. | ||
+ | <!--old links | ||
+ | <u>Скачать '''Oktell Antirobot'''</u>: [http://wiki.oktell.ru/images/5/5a/Oktell_Antirobot.zip Oktell Antirobot.zip] | ||
+ | <u>Скачать '''Обновление Oktell Antirobot 1.4.1.0'''</u>: [http://wiki.oktell.ru/images/f/f6/Antirobot_1.4.1.0_%2807.04.15%29.zip Файл:Antirobot 1.4.1.0 (07.04.15).zip]--> | ||
− | + | [[Media:AntirobotSetup ru.zip|Скачать '''Oktell Antirobot''']] | |
− | + | ||
− | [[ | + | [[Media:Antirobot 1.4.2.0 (08.07.15).zip|Скачать '''Обновление Oktell Antirobot 1.4.2.0''']] |
+ | Ниже рассказывается об установке и настройке '''Oktell Antirobot'''. | ||
В данной статье "'''Oktell'''" установлен на сервере с ip-адресом "192.168.0.81" , "'''Oktell Antirobot'''" установлен на сервере с ip-адресом "192.168.0.82". | В данной статье "'''Oktell'''" установлен на сервере с ip-адресом "192.168.0.81" , "'''Oktell Antirobot'''" установлен на сервере с ip-адресом "192.168.0.82". | ||
− | <span style="color:red;"> ВНИМАНИЕ: Если вы хотите разместить Oktell Antirobot на той же рабочей станции, где установлен Oktell, то вам следует поменять порты в конфигурационном файле. | + | <span style="color:red;"> ВНИМАНИЕ: Если вы хотите разместить Oktell Antirobot на той же рабочей станции, где установлен Oktell, то вам следует поменять порты в конфигурационном файле. |
− | === Установка | + | === Установка Oktell Antirobot === |
− | '''1.''' Установка системы на сервере '''Antirobot'''. Запустите ''' | + | '''1.''' Установка системы на сервере '''Antirobot'''. Запустите '''AntirobotSetup_ru.msi'''. Следуйте инструкции. |
− | < | + | <b> |
<center> 1. [[Файл:Антиробот-002.PNG | 300px ]] 2. [[Файл:Антиробот-003.PNG | 300px ]] 3. [[Файл:Антиробот-004.PNG | 300px ]] </center> | <center> 1. [[Файл:Антиробот-002.PNG | 300px ]] 2. [[Файл:Антиробот-003.PNG | 300px ]] 3. [[Файл:Антиробот-004.PNG | 300px ]] </center> | ||
<center> 4. [[Файл:Антиробот-005.PNG | 300px ]] 5. [[Файл:Антиробот-006.PNG | 300px ]] </center> | <center> 4. [[Файл:Антиробот-005.PNG | 300px ]] 5. [[Файл:Антиробот-006.PNG | 300px ]] </center> | ||
− | </ | + | </b> |
− | |||
+ | <span style="color:red;"> ВНИМАНИЕ: По умолчанию, Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом. Вы всегда можете сменить этот порт в конфигурационном файле. | ||
− | + | Наберите в командной строке: | |
+ | netstat -anop udp | ||
− | ''' | + | По '''PID''' процесса в диспетчере задач найдите '''наименование процесса'''. Если порт занимается другим процессом, завершите его и перезагрузите службу '''Oktell Antirobot'''. |
− | + | === Обновление Oktell Antirobot === | |
+ | Чтобы обновить Oktell Antirobot: | ||
− | ''' | + | '''1)''' Остановите службу '''Oktell Antirobot'''. |
+ | '''2)''' Скачайте и распакуйте файлы обновления в корень папки Oktell Antirobot с заменой. | ||
− | [[ | + | <u>Скачать '''Обновление Oktell Antirobot 1.4.2.0'''</u>: [[Media:Antirobot_1.4.2.0_%2808.07.15%29.zip|Antirobot 1.4.2.0 (08.07.15).zip]] |
+ | '''3)''' Запустите службу '''Oktell Antirobot'''. | ||
− | + | === Схемы настройки Oktell, Антиробота и провайдера === | |
− | + | Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера. | |
− | + | '''Вариант 1:''' Подключение с регистрацией на провайдере (до и после) | |
− | + | *В настройках подключения АТС указываете в Outbound proxy адрес компьютера с Антироботом. | |
+ | *В Антироботе в настройках нового шлюза в качестве SIP-домена дублируется адрес провайдера (по этому адресу Антиробот будет сопоставлять звонки, если будет использовано несколько аккаунтов). В Outbound proxy укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым. | ||
− | |||
− | === Настройка системы === | + | [[Файл:Антиробот-040.png|center|800px]] |
+ | |||
+ | |||
+ | <span style="color:red;"> ВНИМАНИЕ: В связке '''Oktell''' с '''Antirobot''' рекомендуется использовать тип "'''С регистрацией'''" для облегчения маршрутизации SIP-сообщений. | ||
+ | |||
+ | |||
+ | '''Вариант 2:''' Подключение без регистрации (до и после) | ||
+ | |||
+ | *Настройка режима без регистрации аналогична предыдущему. | ||
+ | *Ранее провайдер ссылался на адрес вашей АТС. Для использования Антиробота провайдер должен ссылаться на его адрес вместо АТС. Таким образом входящие звонки от провайдера будут попадать на Антиробот. | ||
+ | *Антиробот же в настройках шлюза должен ссылаться на адрес вашей АТС. Таким образом входящие звонки от провайдера, пришедшие на Антиробот, будут им перенаправляться на вашу АТС. | ||
+ | |||
+ | |||
+ | [[Файл:Антиробот-041.png|center|800px]] | ||
+ | |||
+ | |||
+ | <span style="color:red;"> ВНИМАНИЕ: После подключения без регистрации для начала работы обязательно совершите хотя бы один исходящий звонок из АТС. До тех пор, пока вы это не сделаете, система будет отклонять все входящие звонки с кодом ответа 403. | ||
+ | |||
+ | |||
+ | === Настройка системы с регистрацией === | ||
+ | |||
+ | В качестве примера, рассмотрим подключение Oktell Antirobot с регистрацией на провайдере. | ||
'''1.''' Зайдите в '''панель управления Antirobot''', для этого кликните на ярлык "'''AntiRobot Admin'''" на вашем рабочем столе. Или наберите в браузере "'''http://localhost:8888/'''". | '''1.''' Зайдите в '''панель управления Antirobot''', для этого кликните на ярлык "'''AntiRobot Admin'''" на вашем рабочем столе. Или наберите в браузере "'''http://localhost:8888/'''". | ||
Строка 97: | Строка 131: | ||
* '''Название''': любое, будет отображаться в списке Шлюзы. В примере, '''Сипнет''' | * '''Название''': любое, будет отображаться в списке Шлюзы. В примере, '''Сипнет''' | ||
− | * '''Тип регистрации''': | + | * '''Тип регистрации''': выберите нужный тип регистрации. В примере, '''С регистрацией''' |
* '''Домен''': домен провайдера. В примере, '''sipnet.ru''' | * '''Домен''': домен провайдера. В примере, '''sipnet.ru''' | ||
* '''Outbound proxy''': по умолчанию, совпадает с доменом. В примере, '''sipnet.ru''' | * '''Outbound proxy''': по умолчанию, совпадает с доменом. В примере, '''sipnet.ru''' | ||
Строка 127: | Строка 161: | ||
− | === Сохранение | + | === Сохранение эталонов средствами Antirobot=== |
'''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь. | '''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь. | ||
− | '''1.''' Чтобы записать голосовое сообщение от провайдера воспользуйтесь программой-сниффером [ | + | Для записи голосового сообщения выполните следующие шаги: |
+ | |||
+ | '''1.''' Откройте конфигурационный файл "'''antirobot.json.cfg'''", который по умолчанию, располагается по пути ''C:\Program Files (x86)\oktell\Antirobot'' с помощью блокнота. | ||
+ | |||
+ | '''2.''' Установите ключ ''save_temp_files'' значение "'''1'''". | ||
+ | |||
+ | "save_temp_files": 1 | ||
+ | |||
+ | [[Файл:Антиробот-042.png | center]] | ||
+ | |||
+ | '''3.''' Перезагрузите службу Oktell Antirobot. | ||
+ | |||
+ | После выполнения данных шагов в папке '''\Antirobot\temp''' будут храниться записи ответов от провайдера. Длительность записи зависит от настройки ''response_time_milliseconds'' (см. [[Oktell_Antirobot#.D0.9A.D0.BE.D0.BD.D1.84.D0.B8.D0.B3.D1.83.D1.80.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B9_.D1.84.D0.B0.D0.B9.D0.BB | конфигурационный файл]]). Записи можно использовать в качестве эталонов. | ||
+ | |||
+ | Данный метод сохраняет только ограниченную часть голосового ответа от провайдера. Если голосовой трафик поступает в систему с переменными задержками, то система может не распознать ваше сообщение. В этом случае, обратитесь ко второму способу сохранения полной записи с помощью сниффера Wireshark. | ||
+ | |||
+ | |||
+ | === Сохранение эталонов с помощью Wireshark=== | ||
+ | |||
+ | '''1.''' Чтобы записать голосовое сообщение от провайдера воспользуйтесь программой-сниффером [https://www.wireshark.org/ Wireshark]. Запустите программу и откройте '''окно выбора интерфейса'''. | ||
Строка 182: | Строка 235: | ||
− | '''7.''' Сохраните ваш '''raw'''-файл в '''wav'''-формат. Воспользуйтесь программой [ | + | '''7.''' Сохраните ваш '''raw'''-файл в '''wav'''-формат. Воспользуйтесь программой [https://www.audacityteam.org/ Audacity]. Запустите программу нажмите "'''Импортировать'''"-> "'''Звуковой файл без заголовка Raw'''". |
[[Файл:Антиробот-024.png | center | 600px ]] | [[Файл:Антиробот-024.png | center | 600px ]] | ||
Строка 226: | Строка 279: | ||
'''Пример''' записанного файла: [[Файл:Ростелеком_недоступен.zip]] | '''Пример''' записанного файла: [[Файл:Ростелеком_недоступен.zip]] | ||
− | + | ||
+ | ===Добавление эталонов в систему=== | ||
+ | |||
+ | Зайдите в панель администрирования '''Oktell'''. Перейдите на вкладку "'''Эталоны'''". Нажмите "'''Добавить эталон'''". | ||
Выберите следующие параметры: | Выберите следующие параметры: | ||
Строка 232: | Строка 288: | ||
* "'''Название'''": в примере, "Ростелеком - недоступен". | * "'''Название'''": в примере, "Ростелеком - недоступен". | ||
* "'''Тип ответа'''": ответ, '''соответствующий данному голосовому сообщению'''. В примере, "'''Недоступен (вне действия сети, голосовая почта)'''" | * "'''Тип ответа'''": ответ, '''соответствующий данному голосовому сообщению'''. В примере, "'''Недоступен (вне действия сети, голосовая почта)'''" | ||
+ | ** Тип ответа: '''Недоступен''' - код sip-ответа '''480'''. | ||
+ | ** Тип ответа: '''Занято''' - код sip-ответа '''486'''. | ||
* "'''Расположение файла'''" | * "'''Расположение файла'''" | ||
− | |||
Строка 242: | Строка 299: | ||
− | + | Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений. | |
+ | |||
+ | <span style="color:red;"> ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы. </span> | ||
[[Файл:Антиробот-032.PNG | center |500px ]] | [[Файл:Антиробот-032.PNG | center |500px ]] | ||
+ | |||
+ | |||
+ | === Мониторинг и Статистика=== | ||
+ | |||
+ | В разделе '''Мониторинг''' в режиме реального времени показываются все текущие разговоры и звонки, которые анализируются. | ||
+ | |||
+ | В правой части раздела показывается статистика по звонкам. '''Статистика''' доступна за конкретный день (при наведении мышкой) и за последний месяц. Доступны следующие данные: | ||
+ | * '''Всего звонков''' - общее количество звонков | ||
+ | * '''Занято''' - количество звонков, которые были распознаны, как "'''Занято'''". | ||
+ | * '''Недоступны''' - количество звонков, которые были распознаны, как "'''Недоступен'''". | ||
+ | |||
+ | <span style="color:red">ВНИМАНИЕ: Неудачные ответы от провайдера в статистике не учитываются</span> | ||
+ | |||
+ | |||
+ | [[Файл:Антиробот-035.PNG.png|center|1000px]] | ||
+ | |||
+ | |||
+ | === Конфигурационный файл === | ||
+ | |||
+ | Каталог с''' Oktell Antirobot''', по умолчанию, располагается по пути "'''C:\Program Files (x86)\oktell\Antirobot'''". Конфигурационный файл "'''antirobot.json.cfg'''" находится в корне папки, открывается с помощью блокнота (рекомендуется использовать '''notepad++'''). | ||
+ | |||
+ | '''Параметры конфигурационного файла:''' | ||
+ | |||
+ | <span style="color:green;"> Раздел "'''log'''" - настройки логирования </span> | ||
+ | |||
+ | "'''max_storing_days'''" - длительность хранения лог-журналов, по умолчанию, '''4''' | ||
+ | |||
+ | "'''common_enabled'''" - общее логирование системы, по умолчанию, '''1''' | ||
+ | |||
+ | "'''media_enabled'''" - логирование медиа-трафика, по умолчанию,''' 0''' | ||
+ | |||
+ | "'''web_enabled'''" - логирование web-интерфейса, по умолчанию, '''0''' | ||
+ | |||
+ | |||
+ | <span style="color:green;"> Раздел "'''sip'''" - настройки sip-протокола. </span> | ||
+ | |||
+ | "'''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''' соответственно | ||
+ | |||
+ | "'''busy_response_code'''" - ответ antirobot при распознанном эталоне "Занято". По умолчанию 486. | ||
+ | |||
+ | "'''unavailable_response_code'''" - ответ antirobot при распознанном эталоне "Недоступен". По умолчанию 480. | ||
+ | |||
+ | |||
+ | <span style="color:green;"> Раздел "'''web'''" - настройки web-интерфейса </span> | ||
+ | |||
+ | "'''listener_port'''" - порт web-сервера. По умолчанию, '''8888''' | ||
+ | |||
+ | "'''session_expire_seconds'''" - максимальное время продолжительности сессии в секундах. По умолчанию, '''3600''' | ||
+ | |||
+ | |||
+ | <span style="color:green;"> Раздел "'''analysis'''" - настройка анализа голосовых сообщений </span> | ||
+ | |||
+ | "'''disabled'''" - деактивирует режим анализа голосовых сообщение, по умолчанию, '''0''' | ||
+ | |||
+ | "'''response_time_milliseconds'''" - интервал времени для принятия решения, в миллисекундах. По умолчанию, '''5000''' | ||
+ | |||
+ | "'''frame_length_milliseconds'''" - длина временного окна, в миллисекундах. По умолчанию, '''20'''. <span style="color:red;"> ВНИМАНИЕ: данную настройку менять не рекомендуется. | ||
+ | |||
+ | "'''bands_count'''" - количество полос частотного спектра окна. По умолчанию, '''20'''. <span style="color:red;"> ВНИМАНИЕ: данную настройку менять не рекомендуется. | ||
+ | |||
+ | "'''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 | center]] | ||
+ | |||
+ | |||
+ | Прилинковать '''SQLite''' к '''MSSQL''' поможет [http://community.spiceworks.com/how_to/show/2271-create-ms-sql-linked-server-to-the-spiceworks-sqlite-server следующая инструкция]. | ||
+ | |||
+ | При составлении запросов используйте функцию '''OpenQuery''', например | ||
+ | |||
+ | select * from openquery(NameOfLinkedServer, 'select * from rejected') | ||
+ | |||
+ | |||
+ | ===Обновление лицензии=== | ||
+ | |||
+ | |||
+ | 1. Чтобы '''обновить''' лицензию, зайдите в папку '''\oktell\Antirobot''' и удалите скрытый файл '''product.lic'''. ''Чтобы отобразить все скрытые файлы нажмите Alt-сервис-параметры папок-вид-показывать скрытые файлы, папки и диски.'' | ||
+ | |||
+ | <span style="color:red">ВНИМАНИЕ: Узнать свой регистрационный номер вы всегда можете, открыв файл '''product.inf''' с помощью блокнота. | ||
+ | |||
+ | |||
+ | [[Файл:Антиробот-033.PNG | center]] | ||
+ | |||
+ | |||
+ | 2. Перезапустите службу '''Oktell Antirobot'''. ('''Панель управления''' - '''Администрирование''' - '''Службы''') | ||
+ | |||
+ | |||
+ | [[Файл:Антиробот-034.png | center]] | ||
+ | |||
+ | |||
+ | 3. Войдите в '''панель управления Antirobot''' и введите ваши новые '''регистрационные данные''', как описано в пункте [[Oktell Antirobot#Настройка системы | Настройка системы]] | ||
+ | |||
+ | |||
+ | '''Успешной работы с Oktell Antirobot!''' | ||
+ | |||
+ | <u>Скачать '''Oktell Antirobot'''</u>: [[Media:Oktell_Antirobot.zip|Oktell Antirobot.zip]] | ||
+ | |||
+ | |||
+ | === Возможные проблемы === | ||
+ | |||
+ | '''1.''' Невозможно активировать продукт, при активации пишет "Сервер активации недоступен". | ||
+ | *Возможно, у вас неправильный пароль. Перевыпишите у менеджеров регистрационную карту и введите новые данные. | ||
+ | *Перейдите на сайт http://activate.oktell.ru/ и вручную выпишите файл активации. Поместите файл в корень папки Antirobot и переименуйте его в product.lic. Затем перезагрузите службу Oktell Antirobot. | ||
+ | |||
+ | '''2.''' Входящий звонок отклоняется. | ||
+ | *Совершите хотя бы один исходящий звонок. |
Текущая версия на 12:46, 31 марта 2023
Oktell Antirobot (Call Progress Analysis), (CPA) — анализатор голосовых ответов мобильных операторов.
Содержание
- 1 Введение
- 2 Установка Oktell Antirobot
- 3 Обновление Oktell Antirobot
- 4 Схемы настройки Oktell, Антиробота и провайдера
- 5 Настройка системы с регистрацией
- 6 Сохранение эталонов средствами Antirobot
- 7 Сохранение эталонов с помощью Wireshark
- 8 Добавление эталонов в систему
- 9 Мониторинг и Статистика
- 10 Конфигурационный файл
- 11 Подключение к базе данных SQLite
- 12 Обновление лицензии
- 13 Возможные проблемы
Введение
Если абонент недоступен, занят, или не отвечает, в трубке при звонке можно услышать такие фразы как
- "Телефон абонента выключен или находится вне зоны действия сети"
- "В настоящее время абонент не может ответить на ваш звонок. Оставьте сообщение после сигнала"
- "Абонент временно недоступен. Попробуйте позвонить позднее"
Эти фразы относительно системы Antirobot называются Эталонами.
Oktell Antirobot предназначен для того, чтобы правильно распознавать такие ответы и заранее разрывать соединение, не допуская попадания оператора на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.
Antirobot регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
Анализ голосовых сообщений от провайдера и сравнение их с эталонами - ресурсозатратная задача. Затраты сильно зависят от количества совершаемых звонков.
ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры.
Требования к серверу Antirobot: Следующие технические требования предназначены для нагрузки 500 одновременных коммутаций с интенсивностью обзвона до 50 коммутаций в секунду (сессий на распознаваний):
- Процессор Intel Core i7.
- Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше.
Сервер Oktell Antirobot с большей мощностью может проксировать/обрабатывать большее количество звонков.
Требования к операционной системе:
- не ниже Windows 7 SP1
- Для работы требуется Framework 4.0.
Скачать Обновление Oktell Antirobot 1.4.2.0
Ниже рассказывается об установке и настройке 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 Antirobot
Чтобы обновить Oktell Antirobot:
1) Остановите службу Oktell Antirobot.
2) Скачайте и распакуйте файлы обновления в корень папки Oktell Antirobot с заменой.
Скачать Обновление Oktell Antirobot 1.4.2.0: Antirobot 1.4.2.0 (08.07.15).zip
3) Запустите службу Oktell Antirobot.
Схемы настройки Oktell, Антиробота и провайдера
Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера.
Вариант 1: Подключение с регистрацией на провайдере (до и после)
- В настройках подключения АТС указываете в Outbound proxy адрес компьютера с Антироботом.
- В Антироботе в настройках нового шлюза в качестве SIP-домена дублируется адрес провайдера (по этому адресу Антиробот будет сопоставлять звонки, если будет использовано несколько аккаунтов). В Outbound proxy укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым.
ВНИМАНИЕ: В связке Oktell с Antirobot рекомендуется использовать тип "С регистрацией" для облегчения маршрутизации SIP-сообщений.
Вариант 2: Подключение без регистрации (до и после)
- Настройка режима без регистрации аналогична предыдущему.
- Ранее провайдер ссылался на адрес вашей АТС. Для использования Антиробота провайдер должен ссылаться на его адрес вместо АТС. Таким образом входящие звонки от провайдера будут попадать на Антиробот.
- Антиробот же в настройках шлюза должен ссылаться на адрес вашей АТС. Таким образом входящие звонки от провайдера, пришедшие на Антиробот, будут им перенаправляться на вашу АТС.
ВНИМАНИЕ: После подключения без регистрации для начала работы обязательно совершите хотя бы один исходящий звонок из АТС. До тех пор, пока вы это не сделаете, система будет отклонять все входящие звонки с кодом ответа 403.
Настройка системы с регистрацией
В качестве примера, рассмотрим подключение Oktell Antirobot с регистрацией на провайдере.
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 будет показано, что регистрация успешно завершена .
Сохранение эталонов средствами 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.
Сохранение эталонов с помощью Wireshark
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
Добавление эталонов в систему
Зайдите в панель администрирования Oktell. Перейдите на вкладку "Эталоны". Нажмите "Добавить эталон".
Выберите следующие параметры:
- "Название": в примере, "Ростелеком - недоступен".
- "Тип ответа": ответ, соответствующий данному голосовому сообщению. В примере, "Недоступен (вне действия сети, голосовая почта)"
- Тип ответа: Недоступен - код sip-ответа 480.
- Тип ответа: Занято - код sip-ответа 486.
- "Расположение файла"
Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений.
ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы.
Мониторинг и Статистика
В разделе Мониторинг в режиме реального времени показываются все текущие разговоры и звонки, которые анализируются.
В правой части раздела показывается статистика по звонкам. Статистика доступна за конкретный день (при наведении мышкой) и за последний месяц. Доступны следующие данные:
- Всего звонков - общее количество звонков
- Занято - количество звонков, которые были распознаны, как "Занято".
- Недоступны - количество звонков, которые были распознаны, как "Недоступен".
ВНИМАНИЕ: Неудачные ответы от провайдера в статистике не учитываются
Конфигурационный файл
Каталог с 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 соответственно
"busy_response_code" - ответ antirobot при распознанном эталоне "Занято". По умолчанию 486.
"unavailable_response_code" - ответ antirobot при распознанном эталоне "Недоступен". По умолчанию 480.
Раздел "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-сервис-параметры папок-вид-показывать скрытые файлы, папки и диски.
ВНИМАНИЕ: Узнать свой регистрационный номер вы всегда можете, открыв файл product.inf с помощью блокнота.
2. Перезапустите службу Oktell Antirobot. (Панель управления - Администрирование - Службы)
3. Войдите в панель управления Antirobot и введите ваши новые регистрационные данные, как описано в пункте Настройка системы
Успешной работы с Oktell Antirobot!
Скачать Oktell Antirobot: Oktell Antirobot.zip
Возможные проблемы
1. Невозможно активировать продукт, при активации пишет "Сервер активации недоступен".
- Возможно, у вас неправильный пароль. Перевыпишите у менеджеров регистрационную карту и введите новые данные.
- Перейдите на сайт http://activate.oktell.ru/ и вручную выпишите файл активации. Поместите файл в корень папки Antirobot и переименуйте его в product.lic. Затем перезагрузите службу Oktell Antirobot.
2. Входящий звонок отклоняется.
- Совершите хотя бы один исходящий звонок.