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

Материал из Oktell
Перейти к: навигация, поиск
м
 
(не показаны 93 промежуточные версии 2 участников)
Строка 1: Строка 1:
Oktell Antirobot — анализатор голосовых ответов мобильных операторов.
+
[[Утилиты | Наверх]]
  
Зачастую, если абонент недоступен в трубке при звонке можно услышать такие фразы как
+
'''Oktell Antirobot (Call Progress Analysis), (CPA)''' — анализатор голосовых ответов мобильных операторов.
 +
 
 +
===Введение===
 +
 
 +
Если абонент недоступен, занят, или не отвечает, в трубке при звонке можно услышать такие фразы как
  
 
* "Телефон абонента выключен или находится вне зоны действия сети"
 
* "Телефон абонента выключен или находится вне зоны действия сети"
Строка 7: Строка 11:
 
* "Абонент временно недоступен. Попробуйте позвонить позднее"
 
* "Абонент временно недоступен. Попробуйте позвонить позднее"
  
Oktell Antirobot предназначен для того, чтобы правильно распознавать такие ответы и разрывать соединение при попадании на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.  
+
Эти фразы относительно системы '''Antirobot''' называются '''Эталонами'''.  
  
Antirobot регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного в Oktell метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
+
'''Oktell Antirobot''' предназначен для того, чтобы правильно распознавать такие ответы и заранее разрывать соединение, не допуская попадания оператора на голосовую почту. Особенно это актуально для компаний, которые используют исходящие задачи.
 +
 
 +
'''Antirobot''' регистрируется между установленной в офисе системой телефонии и провайдером связи и работает за счёт реализованного метода сравнения голосовых данных с эталонными файлами операторских ответов. В момент, когда звонок call-центра попадает на автоответчик, программа разрывает соединение и направляет в call-центр ответ о занятости или недоступности абонента.
  
  
Строка 15: Строка 21:
  
  
В данной статье рассказывается об установке и настройке Oktell Antirobot. Для написания данной статьи использовались следующие файлы.
+
Анализ голосовых сообщений от провайдера и сравнение их с эталонами - '''ресурсозатратная задача'''. Затраты сильно зависят от количества совершаемых звонков.
  
 +
<span style="color:red;"> ВНИМАНИЕ: Рекомендуется устанавливать Antirobot и Oktell на разные компьютеры.
  
[[Файл:Антиробот-001.PNG | center ]]
+
'''Требования к серверу Antirobot''':  
 +
Следующие технические требования предназначены для нагрузки 500 одновременных коммутаций с интенсивностью обзвона до 50 коммутаций в секунду (сессий на распознаваний):
 +
* Процессор Intel Core i7.
 +
* Оперативная память не менее 4 Гб. Рекомендуется 8 Гб и больше.
 +
Сервер Oktell Antirobot с большей мощностью может проксировать/обрабатывать большее количество звонков.
  
 +
'''Требования к операционной системе''':
 +
* не ниже Windows 7 SP1
 +
* Для работы требуется 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''']]
  
1. Установка системы. Запустите '''AntirobotSetup.msi'''. Следуйте инструкции.
+
[[Media:Antirobot 1.4.2.0 (08.07.15).zip|Скачать '''Обновление Oktell Antirobot 1.4.2.0''']]
  
<h4>
+
Ниже рассказывается об установке и настройке '''Oktell Antirobot'''.
 +
 
 +
В данной статье "'''Oktell'''" установлен на сервере с ip-адресом "192.168.0.81" , "'''Oktell Antirobot'''" установлен на сервере с ip-адресом "192.168.0.82".
 +
 
 +
<span style="color:red;"> ВНИМАНИЕ: Если вы хотите разместить Oktell Antirobot на той же рабочей станции, где установлен Oktell, то вам следует поменять порты в конфигурационном файле.
 +
 
 +
=== Установка Oktell 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>  
</h4>
+
</b>
  
2. Обновление системы. Откройте "Управление службами" (Мой компьютер "правой кнопкой" -> Управление -> Службы и приложения -> Службы). Остановите службу '''Oktell Antirobot Service.'''
 
  
[[Файл:Антиробот-007.PNG | center ]]
+
<span style="color:red;"> ВНИМАНИЕ: По умолчанию, Oktell Antirobot использует порт 5060 (udp). Убедитесь, что этот порт не занимается другим процессом. Вы всегда можете сменить этот порт в конфигурационном файле.  
  
3. Распакуйте архив с обновлением. Например, для написания статьи использовалось обновление "antirobot 1.2.6.0 (01.10.13).zip". Скопируйте все файлы в корень папки Antirobot, как показано на рисунке.
+
Наберите в командной строке:
  
[[Файл:Антиробот-008.png | center | 800px]]
+
netstat -anop udp
  
4. Откройте "Управление службами", как в пункте 2. Запустите службу '''Oktell Antirobot Service'''.  
+
По '''PID''' процесса в диспетчере задач найдите '''наименование процесса'''. Если порт занимается другим процессом, завершите его и перезагрузите службу '''Oktell Antirobot'''.  
  
[[Файл:Антиробот-009.png | center ]]
 
  
Ваша система установлена и обновлена до последней версии. Можете переходит к следующему шагу - настройке системы.
+
=== Обновление Oktell Antirobot ===
  
=== Настройка системы ===
+
Чтобы обновить Oktell Antirobot:
  
1. Нажмите двойным кликом на ярлык "AntiRobot Admin" на вашем рабочем столе. Или наберите в браузере "'''http://localhost:8888/'''".  
+
'''1)''' Остановите службу '''Oktell Antirobot'''.  
  
Наберите пароль "123". Нажмите Войти.  
+
'''2)''' Скачайте и распакуйте файлы обновления в корень папки Oktell Antirobot с заменой.  
  
[[Файл:Антиробот-010.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, Антиробота и провайдера ===
 +
 
 +
Существует два варианта настройки системы в зависимости от взаимодействия с поставщиком связи - с регистрацией и без регистрации на стороне провайдера.
 +
 
 +
'''Вариант 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/'''".
 +
 
 +
Наберите пароль "'''123'''". Нажмите '''Войти'''.
 +
 
 +
 
 +
[[Файл:Антиробот-010.PNG | center |300px ]]
 +
 
 +
 
 +
'''2.''' Введите регистрационные данные. ('''Если у вас их нет, обратитесь к менеджерам Oktell'''). Нажмите "'''Активировать'''"
  
2. Введите регистрационные данные. (Если у вас их нет, обратитесь к менеджерам Oktell). Нажмите "Активировать"
 
  
 
[[Файл:Антиробот-011.PNG | center | 800px ]]
 
[[Файл:Антиробот-011.PNG | center | 800px ]]
  
3. Нажмите "Добавить шлюз". Введите следующие данные:
 
  
* Название: любое, будет отображаться в списке Шлюзы. В примере, Сипнет
+
'''3.''' Нажмите "'''Добавить шлюз'''". Введите следующие данные:
* Тип регистрации: рекомендуется использовать "С регистрацией".
+
 
* Домен: домен провайдера. В примере, sipnet.ru
+
* '''Название''': любое, будет отображаться в списке Шлюзы. В примере, '''Сипнет'''
* Outbound proxy: по умолчанию, совпадает с доменом. В примере, sipnet.ru
+
* '''Тип регистрации''': выберите нужный тип регистрации. В примере, '''С регистрацией'''
 +
* '''Домен''': домен провайдера. В примере, '''sipnet.ru'''
 +
* '''Outbound proxy''': по умолчанию, совпадает с доменом. В примере, '''sipnet.ru'''
 +
 
 +
Нажмите "'''Сохранить'''".
  
Нажмите "Сохранить".
 
  
 
[[Файл:Антиробот-012.PNG | center | 800px ]]
 
[[Файл:Антиробот-012.PNG | center | 800px ]]
  
4. Так как вы не настроили Oktell, вы увидите следующую схему.
+
 
 +
'''4.''' Так как вы не настроили '''Oktell''', вы увидите следующую схему. На ней показано, что Antirobot не связан с Oktell (регистрация не завершена). 
 +
 
  
 
[[Файл:Антиробот-013.PNG | center | 800px ]]
 
[[Файл:Антиробот-013.PNG | center | 800px ]]
  
5. Необходимо настроить Oktell для работы с Antirobot. Зайдите в Oktell -> раздел "Администрирование" -> модуль "Карта сети". Зайдите в настройке шлюза, через линии которого работает исходящая задача. Поменяйте "IP адрес SIP-Proxy сервера" на ip-адрес сервера Antirobot.  
+
 
 +
'''5.''' Перейдите на сервер '''Oktell'''. Необходимо настроить '''Oktell''' для работы с '''Antirobot'''. Зайдите в '''Oktell''' -> раздел "'''Администрирование'''" -> модуль "'''Карта сети'''". Зайдите в '''настройки шлюза''', через линии которого работает исходящая задача. Поменяйте "'''IP адрес SIP-Proxy сервера'''" на ip-адрес сервера '''Antirobot'''.  
 +
 
  
 
[[Файл:Антиробот-015.PNG | center ]]
 
[[Файл:Антиробот-015.PNG | center ]]
  
6. Нажмите ОК. Перейдите на вкладку Сохранение". Нажмите "Проверить" -> "Сохранить карту" -> "Перезагрузить".
 
  
7. После перезагрузки в панели управления Antirobot будет показано, что регистрация успешно завершена .
+
'''6.''' Нажмите '''ОК'''. Перейдите на вкладку "'''Сохранение'''". Нажмите "'''Проверить'''" -> "'''Сохранить карту'''" -> "'''Перезагрузить'''".
 +
 
 +
'''7.''' После перезагрузки в панели управления '''Antirobot''' будет показано, что регистрация успешно завершена .
 +
 
  
 
[[Файл:Антиробот-014.PNG | center | 800px ]]
 
[[Файл:Антиробот-014.PNG | center | 800px ]]
 +
 +
 +
=== Сохранение эталонов средствами 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 | 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]. Запустите программу и откройте '''окно выбора интерфейса'''. 
 +
 +
 +
[[Файл:Антиробот-016.PNG | center | 800px ]]
 +
 +
 +
'''2.''' Выберите '''необходимый сетевой интерфейс'''. Распознать сетевой интерфейс поможет столбец '''Packets'''. Если количество захваченных пакетов будет увеличиваться, значит через этот интерфейс идет сетевой трафик. Нажмите '''Options'''.
 +
 +
 +
[[Файл:Антиробот-017.PNG | center | 800px ]]
 +
 +
 +
'''3.''' В окне '''фильтра захвата''' (Capture Filter) наберите: '''udp'''. Далее нажмите "'''Start'''".
 +
 +
 +
[[Файл:Антиробот-018.PNG | center | 600px ]]
 +
 +
 +
'''4.''' Позвоните через Oktell на любой телефон. Для того, чтобы записать голосовое сообщение от провайдера, смоделируйте такую ситуацию, например, '''отключите ваш телефон и позвоните на него'''. Подождите '''пару циклов голосового сообщения'''. Нажмите "'''Стоп'''".
 +
 +
 +
[[Файл:Антиробот-019.PNG | center | 800px ]]
 +
 +
 +
'''5.''' Найдите запись разговора. Выберите в меню '''Telephony''' -> '''RTP''' -> '''Show All Streams'''. Выберите необходимую запись разговора. Отбирать следует только те записи у которых столбец "'''Src addr'''" совпадает с ip-адресом сервера '''Antirobot''', а "'''Dst addr'''" совпадает с ip-адресом сервера '''Oktell'''. Нажмите '''Analyze'''.
 +
 +
 +
[[Файл:Антиробот-020.png | center | 800px ]]
 +
 +
 +
[[Файл:Антиробот-021.png | center | 600px ]]
 +
 +
 +
'''6.''' В открывшемся окне, вы можете прослушать запись разговора нажав на '''Player''' -> '''Decode''' -> '''установить галочку на потоке''' -> нажать '''Play'''. Если эта запись не содержит голосового сообщения от провайдера,  вернитесь на 5 пункт.
 +
 +
Сохраните запись, нажав на "'''Save payload...'''". Укажите следующие параметры:
 +
 +
* '''Name''': имя файла. В примере, "'''raw-format'''".
 +
* '''Save in folder''': выберите место, куда сохранить файл. В примере, '''Desktop'''.
 +
* '''Format''': '''.raw'''
 +
* '''Channels''': '''forward'''.
 +
 +
Нажмите '''ОК'''.
 +
 +
 +
[[Файл:Антиробот-022.png | center | 600px ]]
 +
 +
 +
[[Файл:Антиробот-023.png | center | 600px ]]
 +
 +
 +
'''7.''' Сохраните ваш '''raw'''-файл в '''wav'''-формат. Воспользуйтесь программой [https://www.audacityteam.org/ Audacity]. Запустите программу нажмите "'''Импортировать'''"-> "'''Звуковой файл без заголовка Raw'''".
 +
 +
[[Файл:Антиробот-024.png | center | 600px ]]
 +
 +
Выберите следующие параметры:
 +
 +
* '''Кодирование''': кодек, в котором была произведена запись в wireshark (поле Payload) в пункте 5. В примере,''' A-Law'''.
 +
 +
* '''Каналов''': '''1 канал (моно)'''.
 +
 +
* '''Частота сэмплирования''': '''8000 Гц'''.
 +
 +
Нажмите "'''Импортировать'''".
 +
 +
 +
[[Файл:Антиробот-025.png | center ]]
 +
 +
 +
Выберите нужный файл. В примере, созданный ранее "'''raw-format'''".
 +
 +
 +
[[Файл:Антиробот-026.png | center ]]
 +
 +
 +
'''8.''' Прослушайте запись разговора. '''Выберите корректное устройство воспроизведения.''' Если воспроизведение некорректно перейдите в пункт 7.
 +
 +
 +
[[Файл:Антиробот-027.png | center |800px]]
 +
 +
 +
'''9.''' Экспортируйте файл в нужном формате. '''Oktell Antirobot''' принимает файлы в формате '''WAV (8000 кГц, 16 бит, Моно)'''. Нажмите '''Файл'''->'''Экспортировать'''.
 +
 +
 +
[[Файл:Антиробот-028.png | center |800px]]
 +
 +
 +
Выберите место, куда вы хотите '''сохранить файл'''. Напишите имя файла, выберите тип файла: '''WAV (Microsoft) signed 16 bit PCM'''. Нажмите "'''Сохранить'''". В следующем окне нажмите '''ОК'''.
 +
 +
 +
<center> [[Файл:Антиробот-029.png  ]] [[Файл:Антиробот-029a.png ]] </center>
 +
 +
 +
'''Пример''' записанного файла: [[Файл:Ростелеком_недоступен.zip]]
 +
 +
 +
===Добавление эталонов в систему===
 +
 +
Зайдите в панель администрирования '''Oktell'''. Перейдите на вкладку "'''Эталоны'''". Нажмите "'''Добавить эталон'''".
 +
 +
Выберите следующие параметры:
 +
 +
* "'''Название'''": в примере, "Ростелеком - недоступен".
 +
* "'''Тип ответа'''": ответ, '''соответствующий данному голосовому сообщению'''. В примере, "'''Недоступен (вне действия сети, голосовая почта)'''"
 +
** Тип ответа: '''Недоступен''' - код sip-ответа '''480'''.
 +
** Тип ответа: '''Занято''' - код sip-ответа '''486'''.
 +
* "'''Расположение файла'''"
 +
 +
 +
[[Файл:Антиробот-030.png | center |800px]]
 +
 +
 +
[[Файл:Антиробот-031.png | center |800px]]
 +
 +
 +
Для большей вероятности распознавания добавьте несколько однотипных голосовых сообщений.
 +
 +
<span style="color:red;"> ВНИМАНИЕ! Количество эталонов влияет на нагрузку системы. </span>
 +
 +
[[Файл:Антиробот-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) — анализатор голосовых ответов мобильных операторов.

Введение

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

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

Эти фразы относительно системы 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. Входящий звонок отклоняется.

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