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

Материал из Oktell
Перейти к: навигация, поиск
м
 
(не показано 67 промежуточных версии 2 участников)
Строка 1: Строка 1:
'''Oktell Antirobot''' — анализатор голосовых ответов мобильных операторов.  
+
[[Утилиты | Наверх]]
 +
 
 +
'''Oktell Antirobot (Call Progress Analysis), (CPA)''' — анализатор голосовых ответов мобильных операторов.  
  
 
===Введение===
 
===Введение===
  
Зачастую, если абонент недоступен в трубке при звонке можно услышать такие фразы как
+
Если абонент недоступен, занят, или не отвечает, в трубке при звонке можно услышать такие фразы как
  
 
* "Телефон абонента выключен или находится вне зоны действия сети"
 
* "Телефон абонента выключен или находится вне зоны действия сети"
Строка 11: Строка 13:
 
Эти фразы относительно системы '''Antirobot''' называются '''Эталонами'''.  
 
Эти фразы относительно системы '''Antirobot''' называются '''Эталонами'''.  
  
'''Oktell Antirobo'''t предназначен для того, чтобы правильно распознавать такие ответы и разрывать соединение при попадании на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.  
+
'''Oktell Antirobot''' предназначен для того, чтобы правильно распознавать такие ответы и заранее разрывать соединение, не допуская попадания оператора на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.  
  
'''Antirobot''' регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного в '''Oktell''' метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
+
'''Antirobot''' регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
  
  
Строка 19: Строка 21:
  
  
Анализ голосовых сообщений от провайдера и сравнение их с эталонами - '''ресурсозатратная задача'''. Затраты сильно зависят от количества совершаемых звонков и количества эталонов в системе.  
+
Анализ голосовых сообщений от провайдера и сравнение их с эталонами - '''ресурсозатратная задача'''. Затраты сильно зависят от количества совершаемых звонков.
  
 
<span style="color:red;"> ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры.  
 
<span style="color:red;"> ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры.  
  
 
'''Требования к серверу Antirobot''':  
 
'''Требования к серверу Antirobot''':  
* Процессор с процессором Intel Core i7.  
+
Следующие технические требования предназначены для нагрузки 500 одновременных коммутаций с интенсивностью обзвона до 50 коммутаций в секунду (сессий на распознаваний):
 +
* Процессор Intel Core i7.  
 
* Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше.
 
* Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше.
 +
Сервер Oktell Antirobot с большей мощностью может проксировать/обрабатывать большее количество звонков.
  
 
'''Требования к операционной системе''':
 
'''Требования к операционной системе''':
* Протестировано на операционных системах: Windows xp, Windows 7.
+
* не ниже 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]-->
  
В данной статье рассказывается об установке и настройке '''Oktell Antirobot'''. Для написания данной статьи использовались следующие файлы.
+
[[Media:AntirobotSetup ru.zip|Скачать '''Oktell Antirobot''']]
 
+
  
[[Файл:Антиробот-001.PNG | center ]]
+
[[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 ===  
+
=== Установка Oktell Antirobot ===  
  
'''1.''' Установка системы на сервере '''Antirobot'''. Запустите '''AntirobotSetup.msi'''. Следуйте инструкции.  
+
'''1.''' Установка системы на сервере '''Antirobot'''. Запустите '''AntirobotSetup_ru.msi'''. Следуйте инструкции.  
  
<h4>
+
<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>  
</h4>
+
</b>
  
'''2.''' Обновление системы. Откройте "'''Управление службами'''" ('''Мой компьютер''' "правой кнопкой" -> '''Управление''' -> '''Службы и приложения''' -> '''Службы'''). Остановите службу '''Oktell Antirobot Service'''.
 
  
 +
<span style="color:red;"> ВНИМАНИЕ: По умолчанию, Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом. Вы всегда можете сменить этот порт в конфигурационном файле.
  
[[Файл:Антиробот-007.PNG | center ]]
+
Наберите в командной строке:  
  
 +
netstat -anop udp
  
'''3.''' Распакуйте '''архив с обновлением'''. Например, для написания статьи использовалось обновление "'''antirobot 1.2.6.0 (01.10.13).zip'''". Скопируйте все файлы в корень папки '''Antirobot''', как показано на рисунке.
+
По '''PID''' процесса в диспетчере задач найдите '''наименование процесса'''. Если порт занимается другим процессом, завершите его и перезагрузите службу '''Oktell Antirobot'''.  
  
  
[[Файл:Антиробот-008.png | center | 800px]]
+
=== Обновление Oktell Antirobot ===
  
 +
Чтобы обновить Oktell Antirobot:
  
'''4.''' Откройте "'''Управление службами'''", как в пункте 2. Запустите службу '''Oktell Antirobot Service'''.  
+
'''1)''' Остановите службу '''Oktell Antirobot'''.  
  
 +
'''2)''' Скачайте и распакуйте файлы обновления в корень папки Oktell Antirobot с заменой.
  
[[Файл:Антиробот-009.png | center ]]
+
<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, Антиробота и провайдера ===
  
<span style="color:red;"> ВНИМАНИЕ: Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом.  
+
Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера.
  
Наберите в командной строке:  
+
'''Вариант 1:''' Подключение с регистрацией на провайдере (до и после)
  
netstat -anop udp
+
*В настройках подключения АТС указываете в Outbound proxy адрес компьютера с Антироботом.
 +
*В Антироботе в настройках нового шлюза в качестве SIP-домена дублируется адрес провайдера (по этому адресу Антиробот будет сопоставлять звонки, если будет использовано несколько аккаунтов). В Outbound proxy укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым.
  
По '''PID''' процесса в диспетчере задач найдите '''наименование процесса'''. Если порт занимается другим процессом, завершите его и перезагрузите службу '''Oktell Antirobot'''.
 
  
=== Настройка системы ===  
+
[[Файл:Антиробот-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/'''".  
Строка 99: Строка 131:
  
 
* '''Название''': любое, будет отображаться в списке Шлюзы. В примере, '''Сипнет'''
 
* '''Название''': любое, будет отображаться в списке Шлюзы. В примере, '''Сипнет'''
* '''Тип регистрации''': рекомендуется использовать "'''С регистрацией'''".
+
* '''Тип регистрации''': выберите нужный тип регистрации. В примере, '''С регистрацией'''
 
* '''Домен''': домен провайдера. В примере, '''sipnet.ru'''
 
* '''Домен''': домен провайдера. В примере, '''sipnet.ru'''
 
* '''Outbound proxy''': по умолчанию, совпадает с доменом. В примере, '''sipnet.ru'''
 
* '''Outbound proxy''': по умолчанию, совпадает с доменом. В примере, '''sipnet.ru'''
Строка 129: Строка 161:
  
  
=== Сохранение и добавление эталонов в систему ===
+
=== Сохранение эталонов средствами Antirobot===
  
 
'''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь.  
 
'''Эталон''' - голосовое сообщение получаемое от провайдера. В процессе своей работы '''Oktell Antirobot''' записывает сообщение от провайдера и сравнивает его с эталоном. Если сходство файлов высоко, то '''Oktell Antirobot''' распознает это как соответствующий сигнал ("'''Занято'''" или "'''Недоступен'''"), отсылает сигнал серверу '''Oktell''' и разрывает связь.  
  
'''1.''' Чтобы записать голосовое сообщение от провайдера воспользуйтесь программой-сниффером [http://www.wireshark.org/ Wireshark]. Запустите программу и откройте '''окно выбора интерфейса'''.   
+
Для записи голосового сообщения выполните следующие шаги:
 +
 
 +
'''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]. Запустите программу и откройте '''окно выбора интерфейса'''.   
  
  
Строка 184: Строка 235:
  
  
'''7.''' Сохраните ваш '''raw'''-файл в '''wav'''-формат. Воспользуйтесь программой [http://audacity.sourceforge.net/?lang=ru Audacity]. Запустите программу нажмите "'''Импортировать'''"-> "'''Звуковой файл без заголовка Raw'''".  
+
'''7.''' Сохраните ваш '''raw'''-файл в '''wav'''-формат. Воспользуйтесь программой [https://www.audacityteam.org/ Audacity]. Запустите программу нажмите "'''Импортировать'''"-> "'''Звуковой файл без заголовка Raw'''".  
  
 
[[Файл:Антиробот-024.png | center | 600px ]]
 
[[Файл:Антиробот-024.png | center | 600px ]]
Строка 228: Строка 279:
 
'''Пример''' записанного файла: [[Файл:Ростелеком_недоступен.zip]]
 
'''Пример''' записанного файла: [[Файл:Ростелеком_недоступен.zip]]
  
'''10.''' Зайдите в панель администрирования '''Oktell'''. Перейдите на вкладку "'''Эталоны'''". Нажмите "'''Добавить эталон'''".  
+
 
 +
===Добавление эталонов в систему===
 +
 
 +
Зайдите в панель администрирования '''Oktell'''. Перейдите на вкладку "'''Эталоны'''". Нажмите "'''Добавить эталон'''".  
  
 
Выберите следующие параметры:
 
Выберите следующие параметры:
Строка 234: Строка 288:
 
* "'''Название'''": в примере, "Ростелеком - недоступен".
 
* "'''Название'''": в примере, "Ростелеком - недоступен".
 
* "'''Тип ответа'''": ответ, '''соответствующий данному голосовому сообщению'''. В примере, "'''Недоступен (вне действия сети, голосовая почта)'''"
 
* "'''Тип ответа'''": ответ, '''соответствующий данному голосовому сообщению'''. В примере, "'''Недоступен (вне действия сети, голосовая почта)'''"
 +
** Тип ответа: '''Недоступен''' - код sip-ответа '''480'''.
 +
** Тип ответа: '''Занято''' - код sip-ответа '''486'''.
 
* "'''Расположение файла'''"  
 
* "'''Расположение файла'''"  
 
  
  
Строка 244: Строка 299:
  
  
'''11.''' '''Для большей вероятности распознавания''' добавьте несколько однотипных голосовых сообщений.  
+
Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений.  
 +
 
 +
<span style="color:red;"> ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы. </span>
  
 
[[Файл:Антиробот-032.PNG | center |500px ]]
 
[[Файл:Антиробот-032.PNG | center |500px ]]
 +
 +
 +
=== Мониторинг и Статистика===
 +
 +
В разделе '''Мониторинг''' в режиме реального времени показываются все текущие разговоры и звонки, которые анализируются.
 +
 +
В правой части раздела показывается статистика по звонкам. '''Статистика''' доступна за конкретный день (при наведении мышкой) и за последний месяц. Доступны следующие данные:
 +
* '''Всего звонков''' - общее количество звонков
 +
* '''Занято''' - количество звонков, которые были распознаны, как "'''Занято'''".
 +
* '''Недоступны''' - количество звонков, которые были распознаны, как "'''Недоступен'''".
 +
 +
<span style="color:red">ВНИМАНИЕ: Неудачные ответы от провайдера в статистике не учитываются</span>
 +
 +
 +
[[Файл:Антиробот-035.PNG.png|center|1000px]]
 +
  
 
=== Конфигурационный файл ===  
 
=== Конфигурационный файл ===  
Строка 274: Строка 347:
  
 
"'''min_udp_port'''" и "'''max_udp_port'''" - интервал udp портов для передачи звуковых rtp пакетов. Если antirobot и oktell находятся на одном сервере, то порты не должны пересекаться с портами, определенными в oktell server. , по умолчанию '''2000''' и '''12000''' соответственно
 
"'''min_udp_port'''" и "'''max_udp_port'''" - интервал udp портов для передачи звуковых rtp пакетов. Если antirobot и oktell находятся на одном сервере, то порты не должны пересекаться с портами, определенными в oktell server. , по умолчанию '''2000''' и '''12000''' соответственно
 +
 +
"'''busy_response_code'''" - ответ antirobot при распознанном эталоне "Занято". По умолчанию 486.
 +
 +
"'''unavailable_response_code'''" - ответ antirobot при распознанном эталоне "Недоступен". По умолчанию 480.
  
  
Строка 289: Строка 366:
 
"'''response_time_milliseconds'''" - интервал времени для принятия решения, в миллисекундах. По умолчанию, '''5000'''
 
"'''response_time_milliseconds'''" - интервал времени для принятия решения, в миллисекундах. По умолчанию, '''5000'''
  
"'''frame_length_milliseconds'''" - длина временного окна, в миллисекундах. По умолчанию, '''20'''
+
"'''frame_length_milliseconds'''" - длина временного окна, в миллисекундах. По умолчанию, '''20'''. <span style="color:red;"> ВНИМАНИЕ: данную настройку менять не рекомендуется.
  
"'''bands_count'''" - длина частотного окна. По умолчанию, '''20'''
+
"'''bands_count'''" - количество полос частотного спектра окна. По умолчанию, '''20'''. <span style="color:red;"> ВНИМАНИЕ: данную настройку менять не рекомендуется.
  
"'''criterion'''" - коэффициент принятия решения. По умолчанию, '''50'''
+
"'''criterion'''" - порог принятия решения (диапазон: 0 - 100). По умолчанию, '''50'''.
  
"'''save_temp_files'''" - сохранение временных файлов, по умолчанию, '''0'''
+
* При уменьшении коэффициента, вероятность срабатывания системы возрастает (увеличится количество распознанных сообщений). Также увеличивается вероятность ошибки (увеличится количество неправильно распознанных сообщений).
  
=== Метод настройки ===
+
"'''save_temp_files'''" - сохранение временных файлов, по умолчанию, '''0'''.
  
'''1.''' В конфигурационном файле поставьте ключу '''save_temp_files''' значение "'''1'''". Перезагрузите службу '''antirobot'''.
+
* Если выставить ключу '''save_temp_files''' значение "'''1'''", то в папке '''\Antirobot\temp''' будут храниться записи ответов от провайдера. Длительность записи зависит от настройки "'''response_time_milliseconds'''". Записи можно использовать в качестве эталонов.
 
+
'''2.''' Пронаблюдайте за состоянием системы. Если голосовое сообщение от провайдера не распознано, найдите записанный файл в папке '''\Antirobot\temp''', и включите его в список '''эталонов'''.
+
 
+
<span style="color:red;"> ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы. </span>
+
  
  
Строка 315: Строка 388:
  
 
'''Перечень таблиц:'''
 
'''Перечень таблиц:'''
 
 
* '''stats''' : статистика работы  
 
* '''stats''' : статистика работы  
 
 
* '''settings''': настройки  
 
* '''settings''': настройки  
 
 
* '''gateways''': шлюзы
 
* '''gateways''': шлюзы
 
 
* '''etalons''': список эталонов
 
* '''etalons''': список эталонов
 
 
* '''rejected''': список отклоненных (распознанных) вызовов
 
* '''rejected''': список отклоненных (распознанных) вызовов
  
 
[[Файл:Антироботч2-001.png | center]]
 
[[Файл:Антироботч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) — анализатор голосовых ответов мобильных операторов.

Введение

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

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

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

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

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


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


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

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

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

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

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

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

  • не ниже Windows 7 SP1
  • Для работы требуется Framework 4.0.

Скачать Oktell Antirobot

Скачать Обновление 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. Следуйте инструкции.

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 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 укажите адрес взятый из прежних настроек подключения вашей АТС. Если он идентичен домену, то поле можно оставить пустым.


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


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


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

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


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


ВНИМАНИЕ: После подключения без регистрации для начала работы обязательно совершите хотя бы один исходящий звонок из АТС. До тех пор, пока вы это не сделаете, система будет отклонять все входящие звонки с кодом ответа 403.


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

В качестве примера, рассмотрим подключение Oktell Antirobot с регистрацией на провайдере.

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
Антиробот-042.png

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

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

Данный метод сохраняет только ограниченную часть голосового ответа от провайдера. Если голосовой трафик поступает в систему с переменными задержками, то система может не распознать ваше сообщение. В этом случае, обратитесь ко второму способу сохранения полной записи с помощью сниффера Wireshark.


Сохранение эталонов с помощью 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 соответственно

"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.

Файл: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-сервис-параметры папок-вид-показывать скрытые файлы, папки и диски.

ВНИМАНИЕ: Узнать свой регистрационный номер вы всегда можете, открыв файл product.inf с помощью блокнота.


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


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


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


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


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

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


Возможные проблемы

1. Невозможно активировать продукт, при активации пишет "Сервер активации недоступен".

  • Возможно, у вас неправильный пароль. Перевыпишите у менеджеров регистрационную карту и введите новые данные.
  • Перейдите на сайт http://activate.oktell.ru/ и вручную выпишите файл активации. Поместите файл в корень папки Antirobot и переименуйте его в product.lic. Затем перезагрузите службу Oktell Antirobot.

2. Входящий звонок отклоняется.

  • Совершите хотя бы один исходящий звонок.