Личный кабинет OneBox CRM
Связаться с нами
+38 (067) 328-74-55
+38 (050) 324-46-54
Кабинет клиентаБаза знаний › Просмотр базы знаний

Интеграция с IP-ATC Oktell

Интеграция OneBox с IP-АТС Oktell подразумевает:

  1. Возможность совершения звонков из системы OneBox (click2call)
  2. Получение информация о входящих/исходящих звонках с помощью PUSH-запросов
  3. Получение информации по завершению звонка с помощью PUSH-запросов
  4. Ежеминутное получение истории звонков и файлов аудиозаписей

Подключение интеграции предусмотрено в пункте настроек "Интеграции" >> "Телефония Oktell".

 

Документация о структуре базы данных Oktell - http://wiki.oktell.ru/Структура_БД_Oktell

Документация о серверном HTTP интерфейсе - http://wiki.oktell.ru/Серверный_HTTP_интерфейс

 

 

Возможность совершения звонков из системы OneBox (click2call)

Для совершения звонков из системы OneBox по нажатию на номер абонента необходимо:

  1. Прописать доступы в серверному HTTP интерфейсу (далее Web API) в настройках интеграции
  2. Прописать в карточках контактов сотрудников номера телефонных линий (на основании значений [SystemNumStr] таблицы базы данных телефонии [oktell_settings].[dbo].[A_ServerSipLines]

При нажатии на номер телефона с OneBox будет отправлен запрос в Web API метод wp_autocallstart, со следующими параметрами:

  • line - номер линии вызывающего абонента
  • number - номер вызываемого абонента
  • sequence - back (сначала вызываем линию, а потом абонента)

 

Получение информация о входящих/исходящих звонках с помощью PUSH-запросов

Для получения информации о входящих/исходящих звонках и отображения соответствующего окна звонка в системе OneBox необходимо на стороне АТС настроить передачу соответствующей информации (GET или POST запросом) в API http://вашбокс/oktell/push/ , передав следующие параметры:

  • ident - идентификатор звонка (он же IdChain в Oktell, который является уникальным для всех цепочки звонка)
  • id_task - идентификатор задачи (не обязательно)
  • caller - номер звонящего абонента
  • calee или callee или pickup - номер вызываемого абонента (номер линии сотрудника)
  • duration - длительность звонка в секундах
  • filename - ссылка на файл аудиозаписи, доступной к свободной загрузке
  • source - источник звонка (к примеру общий номер, на который был выполнен звонок, для дальнейшего построения статистики по источникам звонков в OneBox)
  • INCOMING=true - если звонок входящий, OUTGOING=true - если звонок исходящий

В данное API можно передавать информацию и по завершению звонка для автоматического закрытия звонка и окна звонка в системе OneBox.

 

 

Получение информации по завершению звонка с помощью PUSH-запросов

Получение информации о завершившемся звонке осуществляется с помощью запроса в API http://вашбокс/oktell/push/complete/ при помощи передачи в него XML с информацией о завершенном звонке.

Пример XML:

<?xml version="1.0" encoding="utf-8"?>
<content Version="80903">
  <call commcount="7" taskcount="1">
    <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss.fff" />
    <property_simple key="direction" value="1" name="cdIncoming" />
    <property_simple key="lineid" value="f77fdde7-5031-49ba-8c20-a62eb4dbc269" />
    <property_simple key="linenumber" value="13006" />
    <property_simple key="callerid" value="0968300999" />
    <property_simple key="calledid" value="0443920183" />
    <property_simple key="idchain" value="6549deb3-4700-4c4b-bfbf-e9f024392451" />
    <property_cdata key="custominfo"><![CDATA[]]></property_cdata>
    <property_simple key="timestart" value="26.02.2018 16:55:06.411" />
    <property_simple key="timeconnected" value="26.02.2018 16:55:06.442" />
    <property_simple key="timedisconnected" value="26.02.2018 17:12:46.633" />
    <property_simple key="timestop" value="26.02.2018 17:12:47.633" />
    <property_simple key="totalsec" value="1061" />
    <property_simple key="emergency" value="0" />
    <property_simple key="callresult" value="busy" />
    <activity>
      <commutation index="0">
        <property_simple key="idconnection" value="8b355cf1-219f-48c9-bcb5-b0efa89a7c9c" />
        <property_simple key="type" value="2" name="IVR" />
        <property_simple key="custominfo" value="" />
        <property_simple key="timestart" value="26.02.2018 16:55:06.426" />
        <property_simple key="timestop" value="26.02.2018 16:55:06.426" />
        <property_simple key="totalsec" value="0" />
        <property_simple key="ivrscriptname" value="МАРШРУТИЗАЦИЯ ВХОДЯЩИХ" />
      </commutation>
      <commutation index="1">
        <property_simple key="idconnection" value="8b355cf1-219f-48c9-bcb5-b0efa89a7c9c" />
        <property_simple key="type" value="2" name="IVR" />
        <property_simple key="custominfo" value="" />
        <property_simple key="timestart" value="26.02.2018 16:55:06.426" />
        <property_simple key="timestop" value="26.02.2018 16:55:06.442" />
        <property_simple key="totalsec" value="0" />
        <property_simple key="ivrscriptname" value="" />
      </commutation>
      <commutation index="2">
        <property_simple key="idconnection" value="8b355cf1-219f-48c9-bcb5-b0efa89a7c9c" />
        <property_simple key="type" value="2" name="IVR" />
        <property_simple key="custominfo" value="" />
        <property_simple key="timestart" value="26.02.2018 16:55:06.442" />
        <property_simple key="timestop" value="26.02.2018 16:55:06.442" />
        <property_simple key="totalsec" value="0" />
        <property_simple key="ivrscriptname" value="МАРШРУТИЗАЦИЯ ВХОДЯЩИХ" />
      </commutation>
      <commutation index="3">
        <property_simple key="idconnection" value="8b355cf1-219f-48c9-bcb5-b0efa89a7c9c" />
        <property_simple key="type" value="2" name="IVR" />
        <property_simple key="custominfo" value="" />
        <property_simple key="timestart" value="26.02.2018 16:55:06.442" />
        <property_simple key="timestop" value="26.02.2018 16:58:10.790" />
        <property_simple key="totalsec" value="184" />
        <property_simple key="ivrscriptname" value="" />
      </commutation>
      <task index="0">
        <property_simple key="effortid" value="1d8a168a-5125-4934-86c2-83055d85db4e" />
        <property_simple key="direction" value="1" name="cdIncoming" />
        <property_simple key="taskid" value="b51b8635-89a8-4a4a-82de-216615cb8553" />
        <property_simple key="taskname" value="" />
        <property_simple key="taskcode" value="" />
        <property_simple key="projectid" value="bb61257d-60ab-4b9f-b761-fe120be6ebae" />
        <property_simple key="tag" value="0" />
        <property_simple key="timeonline" value="26.02.2018 16:55:31.146" />
        <property_simple key="joinedtableid" value="46862" />
        <property_simple key="timestart" value="26.02.2018 16:58:04.852" />
        <commutation index="4">
          <property_simple key="idconnection" value="22ffa9cf-3fe0-4ca8-8346-b81485054f5a" />
          <property_simple key="type" value="1" name="Abonent" />
          <property_simple key="custominfo" value="" />
          <property_simple key="timestart" value="26.02.2018 16:58:10.790" />
          <property_simple key="timestop" value="26.02.2018 17:01:59.373" />
          <property_simple key="totalsec" value="228" />
          <abonents count="1">
            <abonent index="1">
              <property_simple key="lineid" value="cd6ab595-ea85-44f6-83ca-0dde81920497" />
              <property_simple key="linenumber" value="17012" />
              <property_simple key="callerid" value="" />
              <property_simple key="userid" value="acdd2ea8-51e7-43e2-9449-00b08ba1b1f2" />
              <property_simple key="username" value="" />
            </abonent>
          </abonents>
        </commutation>
        <commutation index="5">
          <property_simple key="idconnection" value="e5b6a26c-09a8-4fc4-a049-2b3ba8709696" />
          <property_simple key="type" value="1" name="Abonent" />
          <property_simple key="custominfo" value="" />
          <property_simple key="timestart" value="26.02.2018 17:02:45.327" />
          <property_simple key="timestop" value="26.02.2018 17:03:55.391" />
          <property_simple key="totalsec" value="70" />
          <abonents count="1">
            <abonent index="1">
              <property_simple key="lineid" value="cd6ab595-ea85-44f6-83ca-0dde81920497" />
              <property_simple key="linenumber" value="17012" />
              <property_simple key="callerid" value="" />
              <property_simple key="userid" value="acdd2ea8-51e7-43e2-9449-00b08ba1b1f2" />
              <property_simple key="username" value="" />
            </abonent>
          </abonents>
        </commutation>
        <commutation index="6">
          <property_simple key="idconnection" value="63d87069-bb2b-4a12-b7ab-e6deee2c1cca" />
          <property_simple key="type" value="1" name="Abonent" />
          <property_simple key="custominfo" value="" />
          <property_simple key="timestart" value="26.02.2018 17:05:15.017" />
          <property_simple key="timestop" value="26.02.2018 17:12:46.570" />
          <property_simple key="totalsec" value="451" />
          <abonents count="1">
            <abonent index="1">
              <property_simple key="lineid" value="cd6ab595-ea85-44f6-83ca-0dde81920497" />
              <property_simple key="linenumber" value="17012" />
              <property_simple key="callerid" value="" />
              <property_simple key="userid" value="acdd2ea8-51e7-43e2-9449-00b08ba1b1f2" />
              <property_simple key="username" value="" />
            </abonent>
          </abonents>
        </commutation>
      </task>
    </activity>
  </call>
</content>

В виду сложности реализации рекомендуем воспользоваться простыми запросами в /oktell/push/, описанными выше.


Ежеминутное получение истории звонков и файлов аудиозаписей

Для получения истории звонков необходимо:

  1. Прописать в настройках интеграции доступы к базе данных MS SQL телефонии Oktell
  2. Добавить в "Автоматизация" раз в минуту действие "Импорт истории звонков с базы данных Oktell"

Раз в минуту дейстие подключается к базе данных MS SQL  и получает 1000 последних записей с таблицы [oktell].[dbo].[A_Stat_Connections_1x1] (дата начала звонка и [IdChain] ).

Далее по основании полученных значений [IdChain] будут получены данные с таблицы [oktell_cc_temp].[dbo].[A_Cube_CC_EffortConnections] (направление звонка, номера абонентов, в том числе и [IdEffort] ).

Далее на основании полученного [IdEffort] будут получены данные с таблицы [oktell_cc_temp].[dbo].[A_Cube_CC_OperatorStates]  (статус звонка, длительность).

 

Если включена настройка интеграции "Серверный HTTP интерфейс: Скачивать аудиозапись звонка локально" - будет выполнена попытка получения файла аудиозаписи через Web API по значению [IdChain] с помощью метода /download/byscript.

 

При прослушивании аудиозаписи в списке событий OneBox выполняется попытке получения файла по ссылке, загруженной через PUSH-запрос, либо на основании значения канала звонка, соответствующего [IdChain] в базе данные Oktell. По умолчанию подразумевается, что скрипт будет называться getfile и отдаёт файл аудиозаписи в соответствии с описанием метода Web API.

Если же Вы будете реализовывать свой скрипт для получения файла аудиозаписи - необходимо указать его название в настройку интеграции "Серверный HTTP интерфейс: Название скрипта для получения аудиозаписи".