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