Захват DTMF-сигналов во время разговора — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 5: Строка 5:
 
==Введение==
 
==Введение==
  
'''Задача:''' Определять во время разговора введенные DTMF-символы на внешней и внутренней линии. В зависимости от линии и введенного на ней символа запускать различные процессы на сервере и клиентском приложении сотрудника. Например, при нажатии на 1 — открыть в браузере сайт oktell.ru, при нажатии на 2 — привязать звонок к задаче Call-центра.  
+
'''Задача:''' Определять во время разговора введенные DTMF-символы на внешней и внутренней линии. В зависимости от линии и введенного на ней символа запускать различные процессы на сервере и клиентском приложении сотрудника. Например, при нажатии сотрудником на 1 — открыть в браузере сайт oktell.ru, при нажатии на 2 — привязать звонок к задаче Call-центра.  
  
 
На самом деле Oktell уже имеет похожие возможности в виде служебных номеров флеша и управления конференцией. Набрав во время разговора эти номера, система выполняет определенные действия. Например, нажав служебный номер флеш — система ставит абонента на удержание. Для управления конференцией существуют даже комбинации, которые добавляют или удаляют пользователя из конференции. К сожалению, на момент написания статьи в интерфейсе системы нельзя добавить свой служебный номер для выполнения особых действий.
 
На самом деле Oktell уже имеет похожие возможности в виде служебных номеров флеша и управления конференцией. Набрав во время разговора эти номера, система выполняет определенные действия. Например, нажав служебный номер флеш — система ставит абонента на удержание. Для управления конференцией существуют даже комбинации, которые добавляют или удаляют пользователя из конференции. К сожалению, на момент написания статьи в интерфейсе системы нельзя добавить свой служебный номер для выполнения особых действий.
Строка 11: Строка 11:
 
Однако, проблема решается с помощью самостоятельного перехвата DTMF-сигналов во время разговора. В системе есть возможность с помощью сценариев получить введенные символы как с внешней, так и с внутренней линии. В процессе настройки сценариев вы сами определяете какие действия должна выполнить система при нажатии того или иного символа (или их комбинации). Таким образом, в Oktell можно реализовать неограниченное количество "служебных комбинаций".
 
Однако, проблема решается с помощью самостоятельного перехвата DTMF-сигналов во время разговора. В системе есть возможность с помощью сценариев получить введенные символы как с внешней, так и с внутренней линии. В процессе настройки сценариев вы сами определяете какие действия должна выполнить система при нажатии того или иного символа (или их комбинации). Таким образом, в Oktell можно реализовать неограниченное количество "служебных комбинаций".
  
Функционал полезен в случаях, когда операторы часто проделывают одни и те же действия: добавить текущий контакт в CRM-систему, открыть карточку клиента в браузере. С помощью определенных символов сотрудник может пометить клиента, чтобы система, к примеру, отправила ему SMS после разговора. Введенные символы на внешней стороне применяются для ввода скрытых данных, например, пароля во время разговора. Это может быть использовано для подтверждения операций в банковской сфере, не сообщая оператору личной информации.  
+
Функционал полезен в случаях, когда операторы часто проделывают одни и те же действия: добавить текущий контакт в CRM-систему, открыть карточку клиента в браузере. С помощью определенных символов сотрудник может пометить клиента, чтобы система, к примеру, отправила ему SMS после разговора. Введенные символы на внешней стороне применяются для ввода скрытых данных, например, пароля во время разговора. Это может быть использовано для подтверждения операций в банковской сфере, не сообщая оператору личной информации.
  
  
Строка 22: Строка 22:
  
  
Для внешних линий  и внутренних линий (начиная с версии 2.12) введенные DTMF дополнительно записываются в таблице <code>[oktell]..[a_stat_dtmf]</code>, если включить соответствующие настройки в разделе ''Администрирование/Управление базами данных'' — Сохранять в БД все получаемые по внешним/внутренним линиям DTMF-символы. Для перехвата DTMF из БД потребуется отдельный служебный сценарий, который будет циклично мониторить таблицу на предмет ввода новых символов.  
+
Дополнительно все введенные DTMF сохраняются в таблице <code>[oktell]..[a_stat_dtmf]</code>. Для этого необходимо включить соответствующие настройки в разделе ''Администрирование/Управление базами данных'' — Сохранять в БД все получаемые по внешним/внутренним линиям DTMF-символы. Для считывания DTMF потребуется отдельный служебный сценарий, который будет циклично мониторить таблицу на предмет ввода новых символов.  
  
  
Строка 29: Строка 29:
  
 
==Главный IVR сценарий==
 
==Главный IVR сценарий==
 +
 +
Поскольку в главный IVR сценарий попадает внешняя линия, установленный "Ввод значения" будет принимать DTMF только на этой внешней линии. В рамках задачи необходимо принимать DTMF и с внутренней линии, следовательно нужно дозвониться до нее и также запустить на ней IVR сценарий. Такая операция реализуется через дозвон и конференцию с моделью поведению "Преобразовать в коммутацию".
 +
 +
 +
[[Файл:Перехват DTMF-003.png|center]]
 +
 +
 +
Компонент "'''Начальные параметры'''". Определяет параметры клиента и сохраняет в переменные:
 +
* сессионной переменной <span style="color:blue">'''phone'''</span> (строковая) присваивается внутренний номер, на который происходит переключение. В примере, строка "900".
 +
* сессионной переменной <span style="color:blue">'''key'''</span> (строковая) присваивается значение выражения <code>RANDOM(999999)</code>. Переменная используется в качестве ключа конференции.
 +
* сессионной переменной <span style="color:blue">'''CallerId'''</span> (строковая) присваивается значение функции Номер абонента (CallerId). Переменная хранит номер абонента.
 +
 +
 +
[[Файл:Перехват DTMF-005.png|center]]
 +
 +
 +
Компонент "'''В конференцию'''". Отправляет клиента в конференцию с моделью поведения "Преобразовать в коммутацию". Как только в эту коммутацию присоединится второй участник она преобразуется в обычный разговор. Ключ конференции предварительно генерируется случайным образом.
 +
*Ключ конференции — переменная '''key'''
 +
*Создать, если отсутствует - да
 +
*Расширенная настройка — да
 +
*Модель поведения - Преобразовать в коммутацию
 +
 +
 +
Компонент "'''На дозвон'''". Запускает сценарий дозвона до внутреннего номера с последующим добавлением в конференцию. Все сессионные переменные будут переданы в этот сценарий автоматически.
 +
*Тип запуска — асинхронный служебный
 +
*Сценарий - Перехват DTMF (служебный сценарий дозвона)
 +
 +
 +
Компонент "'''Перехват DTMF'''". Запуска сценарий для считывания DTMF-сигналов с данной внешней линии. Параметр запуска '''0''' означает, что сценарий запускается для внешней линии (рассматривается ниже).
 +
* Тип запуска - вложенный
 +
* Сценарий - Перехват DTMF (IVR сценарий перехвата DTMF)
 +
* Параметр запуска - строка "0"
 +
 +
 +
[[Файл:Перехват DTMF-004.png|center]]
 +
  
 
==Служебный сценарий дозвона==  
 
==Служебный сценарий дозвона==  

Версия 12:49, 12 мая 2015

Наверх

Введение

Задача: Определять во время разговора введенные DTMF-символы на внешней и внутренней линии. В зависимости от линии и введенного на ней символа запускать различные процессы на сервере и клиентском приложении сотрудника. Например, при нажатии сотрудником на 1 — открыть в браузере сайт oktell.ru, при нажатии на 2 — привязать звонок к задаче Call-центра.

На самом деле Oktell уже имеет похожие возможности в виде служебных номеров флеша и управления конференцией. Набрав во время разговора эти номера, система выполняет определенные действия. Например, нажав служебный номер флеш — система ставит абонента на удержание. Для управления конференцией существуют даже комбинации, которые добавляют или удаляют пользователя из конференции. К сожалению, на момент написания статьи в интерфейсе системы нельзя добавить свой служебный номер для выполнения особых действий.

Однако, проблема решается с помощью самостоятельного перехвата DTMF-сигналов во время разговора. В системе есть возможность с помощью сценариев получить введенные символы как с внешней, так и с внутренней линии. В процессе настройки сценариев вы сами определяете какие действия должна выполнить система при нажатии того или иного символа (или их комбинации). Таким образом, в Oktell можно реализовать неограниченное количество "служебных комбинаций".

Функционал полезен в случаях, когда операторы часто проделывают одни и те же действия: добавить текущий контакт в CRM-систему, открыть карточку клиента в браузере. С помощью определенных символов сотрудник может пометить клиента, чтобы система, к примеру, отправила ему SMS после разговора. Введенные символы на внешней стороне применяются для ввода скрытых данных, например, пароля во время разговора. Это может быть использовано для подтверждения операций в банковской сфере, не сообщая оператору личной информации.


Основная идея

Чтобы перехватывать DTMF-сигналы с любой линии, необходимо в IVR-сценарии после успешного переключения зациклить компонент Ввод значения. В таком случае на линии параллельно с разговором будет работать IVR сценарий, фиксирующий все введенные символы.


Перехват DTMF-001.png


Дополнительно все введенные DTMF сохраняются в таблице [oktell]..[a_stat_dtmf]. Для этого необходимо включить соответствующие настройки в разделе Администрирование/Управление базами данных — Сохранять в БД все получаемые по внешним/внутренним линиям DTMF-символы. Для считывания DTMF потребуется отдельный служебный сценарий, который будет циклично мониторить таблицу на предмет ввода новых символов.


Перехват DTMF-002.png


Главный IVR сценарий

Поскольку в главный IVR сценарий попадает внешняя линия, установленный "Ввод значения" будет принимать DTMF только на этой внешней линии. В рамках задачи необходимо принимать DTMF и с внутренней линии, следовательно нужно дозвониться до нее и также запустить на ней IVR сценарий. Такая операция реализуется через дозвон и конференцию с моделью поведению "Преобразовать в коммутацию".


Перехват DTMF-003.png


Компонент "Начальные параметры". Определяет параметры клиента и сохраняет в переменные:

  • сессионной переменной phone (строковая) присваивается внутренний номер, на который происходит переключение. В примере, строка "900".
  • сессионной переменной key (строковая) присваивается значение выражения RANDOM(999999). Переменная используется в качестве ключа конференции.
  • сессионной переменной CallerId (строковая) присваивается значение функции Номер абонента (CallerId). Переменная хранит номер абонента.


Перехват DTMF-005.png


Компонент "В конференцию". Отправляет клиента в конференцию с моделью поведения "Преобразовать в коммутацию". Как только в эту коммутацию присоединится второй участник она преобразуется в обычный разговор. Ключ конференции предварительно генерируется случайным образом.

  • Ключ конференции — переменная key
  • Создать, если отсутствует - да
  • Расширенная настройка — да
  • Модель поведения - Преобразовать в коммутацию


Компонент "На дозвон". Запускает сценарий дозвона до внутреннего номера с последующим добавлением в конференцию. Все сессионные переменные будут переданы в этот сценарий автоматически.

  • Тип запуска — асинхронный служебный
  • Сценарий - Перехват DTMF (служебный сценарий дозвона)


Компонент "Перехват DTMF". Запуска сценарий для считывания DTMF-сигналов с данной внешней линии. Параметр запуска 0 означает, что сценарий запускается для внешней линии (рассматривается ниже).

  • Тип запуска - вложенный
  • Сценарий - Перехват DTMF (IVR сценарий перехвата DTMF)
  • Параметр запуска - строка "0"


Перехват DTMF-004.png


Служебный сценарий дозвона

IVR сценарий входа в конференцию

IVR сценарий перехвата DTMF

Служебный сценарий для открытия сайта

Служебный сценарий для привязки звонка к задаче

IVR сценарий исходящей маршрутизации

Служебный сценарий для получения DTMF из БД

Установка готовых сценариев в систему