Определение момента переключения на сотрудника во время перевода звонка
Введение
Представим ситуацию, когда абонент А просит оператора Б переключить его на другого сотрудника В. Например, клиент, разговаривая с менеджером по продажам, хочет обсудить технический вопрос с инженерами технической поддержки. Менеджер по продажам может переключить абонента сразу напрямую (выполнить Transfer-переключение, неконсультативный перевод) или предварительно предупредить инженера о переводе (консультативный перевод). В каждом из этих случаев стоит задача воспроизвести в коммутацию сообщение "Вы переключены на сотрудника", как только установилось успешное соединение.
Такое звуковое сообщение помогает, во-первых, соориентировать клиента, что его звонок успешно переведен. Во-вторых, часто при переводе звонка принимающая сторона, в нашем случае инженер, не слышит как менеджер положил трубку, и не может понять переключили на него или еще нет. Звуковое сообщение в коммутацию облегчает сложившуюся ситуацию.
Реализация сценария
Для определенности введем следующие понятия: А - переключаемый клиент, Б - переключающий оператор, В - пользователь, на которого переводят звонок.
Основная идея алгоритма - запустить служебный сценарий, после того как сотрудник В возьмет трубку. Этот служебный сценарий в асинхронном режиме проверяет состояние переключения и после переключения клиента А на сотрудника В запускает воспроизведение файла в коммутацию. Все номера линий участвующие в переключении собираются в IVR сценарии переключения и передаются служебному сценарию на вход.
Модификация IVR сценария переключения
Модификация сценария заключается в сборе данных о линиях, участвующих в переводе звонка и запуске служебного сценария. Модифицированный сценарий выглядит следующим образом:
1. Правка входного каскада.
Компонент "Старт 1". Во время Sip-transfer переключения получает номер, на который выполнен перевод звонка. Во время обычного переключения на вход ничего не передается.
- Параметр запуска - переменная "Номер" (локальная)
Компонент "Режим Flash". Присваивает служебной переменной "(сл) Режим Flash" - число 1. Таким образом, если оператор Б положит трубку во время дозвона до сотрудника В, клиент А заменит его и самостоятельно будет ожидать соединения.
Компонент "Параметр запуска пусто?". Определяет передался ли номер на вход сценария во время SIP-transfer переключения.
- Аргумент 1 - переменная "Номер"
- Аргумент 2 - пустая строка
- Тип сравнения - "="
Компоненты "Номер=CallerID", "Номер пусто?" и все компоненты блока сбора номера (выделен зеленым) не изменяются.
Обратите внимание, что ветка по таймауту компонента "+1 цифра" в сценарии переведена на компонент "Пауза 1".
2. Компонент "Определение линий". Сохраняет номер линии абонента А (переключаемого, линия буфера) и линии пользователя Б (переключающего) в соответствующие переменные.
- Переменной "ЛинияБуфера" (локальная) присваивается значение функции "Номер линии, ожидающей во Flash-буфере".
- Переменной "ЛинияПользователя" (локальная) присваивается значение функции "Номер линии"
3. Запуск служебного сценария. Блок определяет линию сотрудника В, записывает ее в переменную, а затем передает все три найденные линии (А, Б, В) на вход служебного сценария.
В зависимости от типа набранного номера отрабатывают те или иные компоненты. Для внешнего номера:
Компонент "ВНЕШНИЕ". Если переключают на внешний номер, то необходимо сохранить выбранную линию в переменную.
- Номер - переменная "Номер".
- Тип вызова - Обычный
- Направления - выберите направления для вызова
- Идентификатор выбранной линии - переменная "ЛинияПереключения" (локальная)
- Коммутировать сразу - Нет, прослушивать медиа-поток".
Компонент "Линия переключения". Определяет номер линии по ее идентификатору и сохраняет его в ту же переменную.
- Действие - Определить
- Тип объекта - Линия
- Ключ линии - переменная "ЛинияПереключения"
- Функция - Номер линии
- Значение в переменную - переменная "ЛинияПереключения"
Для внутреннего номера:
Компонент "ВНУТРЕННИЕ". Остается без изменения.
- Назначение - Внутрь
- Номер - переменная "Номер"
- Тип вызова - Обычный
Компонент "Пауза 200мс". Необходим для корректной отработки переключения и записи всех значений в базу данных.
- Время задержки, мс - 200
Компонент "Линия переключения (2)". По номеру активной линии, определяет номер скоммутированной линии. Активной линией будет линия пользователя Б, если он ожидал соединения сотрудника В и тот взял трубку. Если пользователь Б, бросил трубку, то активной линией будет линия клиента А.
- Действие - Определить
- Тип объекта - Линия
- Ключ линии - функция "Номер линии"
- Функция - Номер скоммутированной линии/конференции
- Значение в переменную - переменная ЛинияПереключения
Компонент "XML". Для передачи трех значений в служебный сценарий, компонент объединяет их в единую XML структуру. Такой прием часто используется для передачи нескольких значений в качестве одного параметра запуска.
- Переменной "XML" (строковая) присваивается выражение
'<bufferLine>'+[ЛинияБуфера]+'</bufferLine>'+endline+ '<switchingLine>'+[ЛинияПереключения]+'</switchingLine>'+endline+ '<userLine>'+[ЛинияПользователя]+'</userLine>'
ВНИМАНИЕ: Можно и не использовать объединение переменных в XML, а передавать их как сессионные, однако удостоверьтесь, что у вас уже не используется одноименные переменные в других пересекающихся сценариях.
Компонент "Ув1". Отладочное уведомления для вывода XML структуры.
- Отладочный режим - Да
- Текст - переменная "XML"
- Адресат - выберите администрирующего пользователя.
Компонент "Запуск сценария". Запускает асинхронный сценарий, который будет проверять соединение линии клиента А и сотрудника В.
- Тип запуска - Асинхронный служебный
- Режим выбора сценария - Из списка
- Сценарий - Определение момента переключения (служебный)
- Параметр запуска - переменная "XML"