Урок 24 IVR сценарий входящей маршрутизации — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 27 промежуточных версии этого же участника)
Строка 2: Строка 2:
 
| [[Уроки | Наверх]]
 
| [[Уроки | Наверх]]
 
| [[Урок 23 Периодический запуск служебных сценариев | К предыдущему уроку]]
 
| [[Урок 23 Периодический запуск служебных сценариев | К предыдущему уроку]]
|
+
| [[Урок 25 Маршрутизация исходящих вызовов|К следующему уроку]]
 
|-
 
|-
 
|}
 
|}
Строка 13: Строка 13:
  
 
Приведем самые основные системные сценарии, которые почти всегда присутствуют в любой системе:
 
Приведем самые основные системные сценарии, которые почти всегда присутствуют в любой системе:
*''IVR сценарий входящей маршрутизации'' (или Главный сценарий) - отвечает за обработку любого входящего звонка;
+
*'''<span style="color:red">IVR сценарий входящей маршрутизации</span>''' (или Главный сценарий) - отвечает за обработку любого входящего звонка; В списке сценариев отмечен красным цветом.
*''IVR сценарий исходящей маршрутизации'' - позволяет совершать исходящие вызовы пользователям Oktell;
+
*'''<span style="color:blue">IVR сценарий исходящей маршрутизации</span>''' - позволяет совершать исходящие вызовы пользователям Oktell; В списке сценариев выделен синим цветом.
*''IVR сценарий переключения'' - требуется для совершения перевода звонка другому пользователю;
+
*'''<span style="color:orange">IVR сценарий переключения</span>''' - требуется для совершения перевода звонка другому пользователю; В списке сценариев отмечен желтым цветом.
*''IVR сценарий вместо отбоя внешней линии'' - позволяет дополнительно обработать звонок, после того как оператор положил трубку;
+
*''IVR сценарий вместо отбоя внешней линии'' - позволяет дополнительно обработать звонок, после того как оператор положил трубку;  
 
*''Служебный сценарий набора внешних/быстрых номеров'' - запускается для выбора линии, по которой пойдет звонок на быстрые или групповые номера, содержащие внутри внешний номер;
 
*''Служебный сценарий набора внешних/быстрых номеров'' - запускается для выбора линии, по которой пойдет звонок на быстрые или групповые номера, содержащие внутри внешний номер;
 
*''Служебный сценарий обработки контента'' - производит постобработку вызова, когда внешняя линия уже положила трубку.
 
*''Служебный сценарий обработки контента'' - производит постобработку вызова, когда внешняя линия уже положила трубку.
В системе существуют и другие сценарии, но они используются в редких случаях. Все системные сценарии назначаются в модуле ''Администрирование/Общие настройки'', далее выбираются на вкладке ''Системные настройки'' в группе "'''Сценарии АТС'''".  
+
В системе существуют и другие сценарии, но они используются в редких случаях. Все системные сценарии назначаются в модуле ''Администрирование/Общие настройки'', далее выбираются на вкладке ''Системные настройки'' в группе "'''Сценарии АТС'''". В списке сценариев системные сценарии отмечаются серым цветом (кроме первых трех, указанных выше).
  
  
Строка 25: Строка 25:
  
  
==Главный IVR сценарий==
+
==Главный IVR сценарий ==
  
''IVR сценарий входящей маршрутизации'' или его другое название ''Главный сценарий'' служит в системе для обработки всех входящих звонков, то есть таких вызовов, которые приходят с внешней линии.  
+
''IVR сценарий входящей маршрутизации'' или его другое название ''Главный сценарий'' служит в системе для обработки всех входящих звонков, то есть таких вызовов, которые приходят с внешней линии.
  
 
<span style="color:red">ВНИМАНИЕ: Это важный момент, ведь вызов от внутреннего пользователя не попадет в главный сценарий,  
 
<span style="color:red">ВНИМАНИЕ: Это важный момент, ведь вызов от внутреннего пользователя не попадет в главный сценарий,  
  
Мы уже рассматривали самые простые примеры главного сценария в уроках 17-21. Фактически, вы можете взять даже самое простое переключение на пользователя из первого урока и это тоже будет работать. Обычно главный сценарий состоит из следующих функциональных блоков:
+
В этом сценарии вы можете реализовать различные голосовые меню, маршрутизацию звонка на основании различных параметров. Функционал, который вы можете реализовать обширен - от интеллектуального переключения клиента на последнего обслужившего оператора до распознавания речи и автоматизации сбора заявок.
 +
 
 +
От того, как вы настроите ваш сценарий, зависит как будет работать ваша входящая связь. Например, правилом хорошего тона будет предложение клиенту оставить голосовое сообщение в случае исключительных ситуаций, например, если ни один оператор не может обслужить его звонок. Здесь же можно зафиксировать звонок в базе данных, а затем с помощью служебных сценариев отправлять список всех инцидентов себе на почту для дальнейшей отладки.
 +
 
 +
Фактически, мы уже рассматривали примеры главного сценария в уроках 17-21 и вы можете использовать любой из этих сценариев. Однако в рамках данного параграфа специально рассмотрим самый простой сценарий входящей маршрутизации, который будет все звонки направлять на единый групповой номер 100. Сценарий выглядит следующим образом:
 +
 
 +
 
 +
[[Файл:Урок24-003.png|center]]
 +
 
 +
 
 +
В сценарии используется компонент переключения "'''На номер 100'''" со следующими свойствами:
 +
*Назначение - Внутрь
 +
*Номер - строка "'''100'''"
 +
*Тип вызова - Обычный
 +
*Очередь ожидания - Да
 +
После переключения идет переход на компонент "'''Стоп'''", если номер отсутствует или не отвечает, то на линии клиента будет происходить обрыв связи. После редактирования сценария сохраните его на сервер.
 +
 
 +
В приведенном сценарии нет обработки неудачного соединения, фиксации его в базе данных. Все это уже наращивание функционала и улучшение сервиса обслуживания должно проходить в процессе непрерывной работы. Cамостоятельную доработку сценария мы оставляем читателю.
 +
 
 +
Чтобы назначить сценарий главным необходимо в списке сценариев выбрать его и нажать кнопку "'''Главный'''". После этого название сценария будет выделено красным цветом. Начиная с этого момента, сценарий будет отвечать за обработку всех входящих вызовов и переводить их на номер 100, согласно настроенному алгоритму.
 +
 
 +
'''Скачать сценарий:''' [http://wiki.oktell.ru/images/6/63/%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D1%85_%28%D0%B4%D0%B5%D0%BC%D0%BE%29.oscr Маршрутизация входящих (демо).oscr]
 +
 
 +
 
 +
[[Файл:Урок24-004.png|center|600px]]
 +
 
 +
 
 +
 
 +
==Пример главного сценария==
 +
 
 +
При проектировании вашего главного сценария следует обратить на следующие функциональные блоки:
 
# Определение времени и приветствие. На этом этапе проверяется рабочее время, воспроизводится файл приветствия.
 
# Определение времени и приветствие. На этом этапе проверяется рабочее время, воспроизводится файл приветствия.
 
# Распределение звонка на внутренние номера. Здесь звонок маршрутизируется на операторские группы, используется очередь ожидания.
 
# Распределение звонка на внутренние номера. Здесь звонок маршрутизируется на операторские группы, используется очередь ожидания.
Строка 44: Строка 74:
 
===Блок: Определение времени и приветствие===
 
===Блок: Определение времени и приветствие===
 
   
 
   
После начала коммутации произведем анализ времени поступившего вызова и направим коммутации на соответствующее приветствие.
+
После начала коммутации произведем анализ времени поступившего вызова и направим абонента на соответствующее приветствие.
 +
 
 +
 
 +
[[Файл:Main12.png|center]]
 +
 
  
 
Компонент "'''Начинаем работать?'''". Определяет начался ли рабочий день компании. В сценарии предполагается, что офис работает с 7:00 до 20:00.
 
Компонент "'''Начинаем работать?'''". Определяет начался ли рабочий день компании. В сценарии предполагается, что офис работает с 7:00 до 20:00.
Строка 69: Строка 103:
 
*Файл - выбран файл "''Добрый день.wav''"
 
*Файл - выбран файл "''Добрый день.wav''"
  
 
[[Файл:Main12.png|center]]
 
  
  
Строка 82: Строка 114:
  
  
[[Файл:Main13.png|center]]
+
Компонент "'''Проверяем статус введенного номера'''". Если абонент ввел символы (ветка '''Переход''' от предыдущего компонента), проверяем свободен ли вызываемый номер.  
 
+
 
+
Компонент "'''Статус объекта'''". Если абонент ввел символы (ветка '''Переход''' от предыдущего компонента), проверяем свободен ли вызываемый номер.  
+
 
*Действие — Определить
 
*Действие — Определить
 
*Тип объекта — Номер
 
*Тип объекта — Номер
Строка 93: Строка 122:
  
  
[[Файл:Main4.png|center]]
+
<center>[[Файл:Main13.png]] [[Файл:Main4.png]]</center>
  
  
Компонент "'''Сравнение'''". Анализирует полученный результат и определяет свободен ли номер.
+
Компонент "'''Номер занят?'''". Анализирует полученный результат и определяет свободен ли номер.
 
*Аргумент 1 -  переменная "'''наличие свободных'''", которую использовали для сохранения статуса номера.
 
*Аргумент 1 -  переменная "'''наличие свободных'''", которую использовали для сохранения статуса номера.
 
*Аргумент 2 -  указываем числовую константу 0. Если обратиться к описанию компонентов, можно увидеть, что статус 0 возвращается, когда у номера нет свободных абонентов, т.е. Телефон занят»
 
*Аргумент 2 -  указываем числовую константу 0. Если обратиться к описанию компонентов, можно увидеть, что статус 0 возвращается, когда у номера нет свободных абонентов, т.е. Телефон занят»
Строка 108: Строка 137:
 
*Нажать 2, если клиент хочет ввести другой добавочный номер
 
*Нажать 2, если клиент хочет ввести другой добавочный номер
 
*Нажать 3, если клиент хочет переключиться на секретаря
 
*Нажать 3, если клиент хочет переключиться на секретаря
Голосовое меню строиться с помощью 2-х компонентов — "Запрос действия 1" и "Меню выбора действия". Рассмотрим компоненты подробнее.
+
Голосовое меню строиться с помощью 2-х компонентов — "'''Запрос действия 1'''" и "'''Меню выбора действия'''". Рассмотрим компоненты подробнее.
  
Компонент "'''Воспроизведение с преднабором'''". Предлагает клиенту выбрать действие, которое он хочет выполнить.  
+
 
*Аудио файл используем заранее подготовленную запись с предложением действий.
+
Компонент "'''Запрос действия 1'''". Предлагает клиенту выбрать действие, которое он хочет выполнить.  
*Полученные от клиента DTMF размещаем в новой переменной «действие».
+
*Файл выбираем файл "телефон занят.wav", заранее подготовленную запись с предложением действий.
*Очищать буфер выставляем — Да.
+
*Переменная - переменная "действие" (строковая). Таким образом мы получаем все введенные клиентом DTMF-символы.
*Максимальное время — 5 секунд.
+
*Очистить буфер — Да.
*Количество символов 1.
+
*Макс. время, с  — 5 секунд.
 +
*Количество символов 1.
 
*Переход -  переводим на компонент меню сравнения.
 
*Переход -  переводим на компонент меню сравнения.
*Переход таймаут — оставляем пустым,либо переводим на обрыв связи.
+
*Переход таймаут — оставляем пустым,либо переводим на обрыв связи. Данную ситуацию тоже можно обработать каким-либо способом на ваше усмотрение.  
  
[[Файл:Main5.png|center]]
 
  
 
+
Компонент "'''Меню выбора действия'''". Маршрутизирует звонок в зависимости от введенного символа.
Далее рассмотрим компонент "'''Меню сравнения'''".
+
 
*Аргумент - указываем переменную "'''действие'''".
 
*Аргумент - указываем переменную "'''действие'''".
*В качестве значений:
+
*Значения:
  1 — Переход на переключение на номер с очередью ожидания.
+
  1 — компонент "'''Переключение на сотрудника'''". Переход на переключение на номер с очередью ожидания.
  2 — на воспроизведение с преднабором, где предлагается ввести добавочный номер.
+
  2 — Компонент "'''Ввод добавочного номера'''". На воспроизведение с преднабором, где предлагается ввести добавочный номер.
  3 — переключение на номер, в котором осуществляем соединение с секретарем.
+
  3 — компонент "'''На секретаря'''". Переключение на номер, в котором осуществляем соединение с секретарем.
*Переход,прочее — оставляем пустым.
+
*Переход,прочее — оставляем пустым. Таким образом, если клиент введет символ отличный от 1,2 или 3, то его звонок прервется.  
  
[[Файл:Main6.png|center]]
 
  
 +
<center>[[Файл:Main5.png]][[Файл:Main6.png]]</center>
  
Подробнее рассмотрим компонент переключение на номер, в котором будем осуществлять переключение на указанный клиентом внутренний номер.
 
  
*Назначение — внутрь.
+
Подробнее рассмотрим компонент переключения на номер, в котором будем осуществлять переключение на указанный клиентом внутренний номер.
*Номер — используем переменную номер, в которую мы сохраняли желаемый клиентом внутренний номер.
+
 
 +
Компонент "'''Переключение на сотрудника'''"
 +
*Назначение — Внутрь.
 +
*Номер — переменная "'''номер'''", в которой мы сохраняли желаемый клиентом внутренний номер.
 +
*Тип вызова — обычный.
 
*Очередь ожидания -  Да.
 
*Очередь ожидания -  Да.
*Переход  - на компонент «Стоп». <span style="color:red;"> Обратите внимание, что используется компонент '''Стоп''', а не '''Разрыв связи.''' </span>  
+
*Переход  - на компонент "'''Стоп'''".  
 +
<span style="color:red;">ВНИМАНИЕ: Обратите внимание, что используется компонент '''Стоп''', а не '''Обрыв связи.''' </span>  
 
*Остальные настройки оставляем по умолчанию.
 
*Остальные настройки оставляем по умолчанию.
 +
  
 
[[Файл:Main7.png|center]]
 
[[Файл:Main7.png|center]]
  
  
Далее рассмотрим Переключение на номер, в котором будем производить вызов секретаря.
+
Далее рассмотрим переключение на номер, в котором будем производить вызов секретаря.
*Направление — внутрь.
+
 
*Номер — указываем переменную с номером секретаря.
+
Компонент "'''На секретаря'''". Переключает звонок на секретаря.  
 +
*Направление — Внутрь.
 +
*Номер — переменная "'''номер секретаря'''", которую мы указали в самом начале сценария.  
 
*Тип вызова — обычный.
 
*Тип вызова — обычный.
 
*Очередь ожидания — да.
 
*Очередь ожидания — да.
*Время ожидания ответа — 40(время которое будет звонить телефон у пользователя)
+
*Время ожидания ответа — 40 (время которое будет звонить телефон у пользователя)
*Переход — стоп.  <span style="color:red;"> Обратите внимание, что используется компонент '''Стоп''', а не '''Разрыв связи.''' </span>  
+
*Переход — стоп.  <span style="color:red;"> Обратите внимание, что используется компонент '''Стоп''', а не '''Обрыв связи.''' </span>  
*Остальные ветки переход -  отправляем на компонент «Присвоение».
+
*Остальные ветки переход -  отправляем на компонент "Чтобы голосовое сообщение пришло секретарю".  
  
С помощью компонента «Присвоение» переменной «номер» присваиваем значение строковой константы, равной номеру секретаря.
+
 
 +
Компонент "'''Чтобы голосовое сообщение пришло секретарю'''". В том случае, если клиент не соединился ни с одним сотрудником, в дальнейшем ему будет предложено оставить голосовое сообщение. Этот компонент сохраняет номер секретаря, чтобы ему пришло голосовое сообщение от клиента.
 +
*Переменной "'''номер'''" присваиваем значение переменной "'''номер секретаря'''".
  
 
Далее осуществляем переход к заключительной категории — окончанию обработки.
 
Далее осуществляем переход к заключительной категории — окончанию обработки.
Строка 160: Строка 197:
 
===Блок: Окончание  обработки===
 
===Блок: Окончание  обработки===
 
В данном разделе рассмотрим каким образом будет завершаться коммутация с клиентом,если не один пользователь не ответил или если звонок пришел в не рабочее время.
 
В данном разделе рассмотрим каким образом будет завершаться коммутация с клиентом,если не один пользователь не ответил или если звонок пришел в не рабочее время.
 +
 +
 +
[[Файл:Main10.png|center]]
 +
  
 
Вернемся к первому разделу.
 
Вернемся к первому разделу.
После воспроизведения клиенту сообщения о том, что офис сейчас не работает, осуществляем переход на компонент «Запуск сценария».
+
 
Рассмотрим свойства данного компонента.
+
После воспроизведения клиенту сообщения о том, что офис сейчас не работает, осуществляем переход на компонент "'''Запуск сценария Голосовая почта'''".  
Тип запуска — вложенный.
+
 
Сценарий — предполагается использование сценария голосовой почты, который идет в дистрибутиве комплекса Oktell.
+
Компонент "'''Голосовое сообщение для секретаря'''". Предварительно заносим в переменную "номер" внутренний номер секретаря, который сохранен в соответствующей переменной.
Параметры запуска — указываем переменную «номер», в которую записали внутренний номер сотрудника,либо номер секретаря.
+
* Переменной "'''номер'''" присваиваем значение переменной "'''номер секретаря'''".
Возврат управления — нет.
+
 
 +
 
 +
Компонент "'''Запуск сценария Голосовая почта'''". Позволяет оставить голосовую почту от клиента определенному пользователю системы.
 +
*Тип запуска — вложенный.
 +
*Режим выбора сценария - из списка
 +
*Сценарий — выберите из списка сценарий "'''(пример)Голосовая почта'''", который идет в дистрибутиве комплекса Oktell.
 +
*Параметр запуска — переменная "'''номер'''", в которую записали внутренний номер сотрудника, либо номер секретаря.
 +
*Возврат управления — нет.
 +
 
  
 
[[Файл:Main8.png|center]]
 
[[Файл:Main8.png|center]]
Строка 174: Строка 223:
 
Таким образом, если звонок придет вне рабочего времени, система сообщит об этом клиенту, а затем предложит оставить голосовое сообщение.
 
Таким образом, если звонок придет вне рабочего времени, система сообщит об этом клиенту, а затем предложит оставить голосовое сообщение.
  
Вторым этапом рассмотрим ситуацию когда звонок пришел в рабочее время, но ни секретарь, ни другой сотрудник не ответили на вызов.
+
Вторым этапом рассмотрим ситуацию когда звонок пришел в рабочее время, но ни секретарь, ни другой сотрудник не ответили на вызов. Для этого установлен переход на компонент "'''Запрос действия 2'''".
Осуществляем переход на компонент «Воспроизведение с преднабором»
+
 
*Файл — выбираем заранее подготовленную запись сообщения с текстом: «К сожалению оператора нет на месте, если вы хотите оставить голосовое сообщение нажмите .
+
Компонент "'''Запрос действия 2'''". Запрашивает у клиента, хочет ли он оставить голосовое сообщение.
*Переменная — выбираем уже созданную переменную действие.
+
*Файл — выбираем заранее подготовленную запись сообщения с текстом: "''К сожалению оператора нет на месте, если вы хотите оставить голосовое сообщение нажмите 1''". В примере это файл "Оператора нет на месте_cсообщение.wav"
 +
*Переменная — выбираем уже созданную переменную "действие". Вы также можете создать и использовать другую переменную.
 
*Очистить буфер — да
 
*Очистить буфер — да
*Максимальное время — 5 секунд.
+
*Макс. время, с — 5 секунд.
 
*Количество символов — 1.
 
*Количество символов — 1.
*Переход — компонент «Сравнение»
+
*Переход — компонент сравнения "''Ввели 1?''"
*Переход, таймаут - компонент «Воспроизведение».
+
*Переход, таймаут - компонент воспроизведения "''Спасибо за звонок''".
+
 
 +
 
 
[[Файл:Main9.png|center]]
 
[[Файл:Main9.png|center]]
  
  
Таким образом если клиент захочет оставить голосовое сообщение, он нажмет 1 и коммутация перейдет на компонент сравнение, где содержимое переменной «Действие» будет сравниваться с константой 1.
+
Таким образом если клиент захочет оставить голосовое сообщение, он нажмет 1 и коммутация перейдет на компонент сравнения, где содержимое переменной "'''действие'''" будет сравниваться с константой 1.
Переход по правде произойдет на компонент «Запуск сценария», который описан выше, соответственно произойдет переход в сценарий записи голосовой почты.
+
 
Переход по ветке ложь перейдет на компонент «Воспроизведение», в котором используем заранее подготовленное голосовое сообщение - «Спасибо за звонок», после чего разрываем коммутацию с помощью компонента «Обрыв связи».
+
Компонент "'''Ввели 1?'''". Определяет введенный клиентом символ.
 +
*Аргумент 1 - переменная "'''действие'''"
 +
*Аргумент 2 - число "'''1'''"
 +
*Тип сравнения - "'''='''"
 +
 
 +
Переход по правде произойдет на компонент "'''Запуск сценария Голосовая почта'''", который описан выше. Таким образом произойдет переход в сценарий записи голосовой почты.
 +
 
 +
Переход по ветке ложь перейдет на компонент воспроизведения с заранее подготовленным голосовым сообщением - "''Спасибо за звонок''", после чего разрываем коммутацию с помощью компонента "''Обрыв связи''".
 +
 
 +
Компонент "'''Спасибо за звонок'''".
 +
*Режим: Файл полностью
 +
*Файл: выберите файл с записанным сообщением
 +
 
 +
 
 +
После модификаций сохраните данный сценарий на сервер.
 +
 
 +
 
 +
Скачать сценарий: [http://wiki.oktell.ru/images/a/aa/%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D1%85.oscr Маршрутизация входящих.oscr]
 +
 
 +
===Назначение главного сценария ===
 +
 
 +
Чтобы назначить данный сценарий главным сценарием входящей маршрутизации, выберите его в списке сценариев и нажмите кнопку '''Главный'''. Сделать это можно также через контекстное меню, щелкнув на сценарии правой кнопкой мыши. После выполнения данного действия сценарий будет выделен красным цветом и все входящие звонки будут обрабатываться согласно настроенному алгоритму.
 +
 
 +
 
 +
[[Файл:Урок24-002.png|center|600px]]
 +
 
 +
 
 +
'''Скачать сценарии:''' [http://wiki.oktell.ru/images/6/63/%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D1%85_%28%D0%B4%D0%B5%D0%BC%D0%BE%29.oscr Маршрутизация входящих (демо).oscr] и [http://wiki.oktell.ru/images/a/aa/%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D1%85.oscr Маршрутизация входящих.oscr]
 +
 
 +
'''Поздравляем!''' Теперь вы умеете создавать IVR сценарий входящей маршрутизации и настроить вашу систему на прием звонков от клиентов. Можете переходить к следующему уроку.
 +
 
 +
'''Техническая документация:''' [[Сценарии АТС]]
  
[[Файл:Main10.png|center]]
 
  
 +
== Вопросы и задания ==
  
 +
* В какой момент запускается главный сценарий? Какие функцию он выполняет?
 +
* Настройте прием звонков в вашей системе. Настройте уведомления о неудачном переключении на сотрудника, используйте заказы на встречный звонок или голосовую почту.
 +
* Настройте правильную маршрутизацию звонка. Ознакомьтесь с вариантами по статье [[Маршрутизация звонка на основании параметров]]
 +
* Создайте такой входящий сценарий, который будет пытаться соединить клиента с последним обслужившим его оператором. Используйте статью [[Соединение с последним обслужившим оператором]].
 +
* Замените обычные гудки при ожидании оператора на некоторую мелодию и реализуйте воспроизведение рекламы в очереди ожидания. Для этого воспользуйтесь статьей [[Сценарий фонового медиа-взаимодействия]].
 +
* Реализуйте навигацию по вашему меню с помощью распознавания речи. Воспользуйтесь статьями [[Распознавание речи с помощью Yandex SpeechKit Сloud]] или [[Распознавание речи с помощью Google Speech API]]
  
 
{|cellpadding="10" cellspacing="0" border="0"
 
{|cellpadding="10" cellspacing="0" border="0"
 
| [[Уроки | Наверх]]
 
| [[Уроки | Наверх]]
 
| [[Урок 23 Периодический запуск служебных сценариев | К предыдущему уроку]]
 
| [[Урок 23 Периодический запуск служебных сценариев | К предыдущему уроку]]
|
+
| [[Урок 25 Маршрутизация исходящих вызовов|К следующему уроку]]
 
|-
 
|-
 
|}
 
|}

Текущая версия на 14:13, 22 января 2015

Наверх К предыдущему уроку К следующему уроку

Системные сценарии

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

Приведем самые основные системные сценарии, которые почти всегда присутствуют в любой системе:

  • IVR сценарий входящей маршрутизации (или Главный сценарий) - отвечает за обработку любого входящего звонка; В списке сценариев отмечен красным цветом.
  • IVR сценарий исходящей маршрутизации - позволяет совершать исходящие вызовы пользователям Oktell; В списке сценариев выделен синим цветом.
  • IVR сценарий переключения - требуется для совершения перевода звонка другому пользователю; В списке сценариев отмечен желтым цветом.
  • IVR сценарий вместо отбоя внешней линии - позволяет дополнительно обработать звонок, после того как оператор положил трубку;
  • Служебный сценарий набора внешних/быстрых номеров - запускается для выбора линии, по которой пойдет звонок на быстрые или групповые номера, содержащие внутри внешний номер;
  • Служебный сценарий обработки контента - производит постобработку вызова, когда внешняя линия уже положила трубку.

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


Урок24-001.png


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

IVR сценарий входящей маршрутизации или его другое название Главный сценарий служит в системе для обработки всех входящих звонков, то есть таких вызовов, которые приходят с внешней линии.

ВНИМАНИЕ: Это важный момент, ведь вызов от внутреннего пользователя не попадет в главный сценарий,

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

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

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


Урок24-003.png


В сценарии используется компонент переключения "На номер 100" со следующими свойствами:

  • Назначение - Внутрь
  • Номер - строка "100"
  • Тип вызова - Обычный
  • Очередь ожидания - Да

После переключения идет переход на компонент "Стоп", если номер отсутствует или не отвечает, то на линии клиента будет происходить обрыв связи. После редактирования сценария сохраните его на сервер.

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

Чтобы назначить сценарий главным необходимо в списке сценариев выбрать его и нажать кнопку "Главный". После этого название сценария будет выделено красным цветом. Начиная с этого момента, сценарий будет отвечать за обработку всех входящих вызовов и переводить их на номер 100, согласно настроенному алгоритму.

Скачать сценарий: Маршрутизация входящих (демо).oscr


Урок24-004.png


Пример главного сценария

При проектировании вашего главного сценария следует обратить на следующие функциональные блоки:

  1. Определение времени и приветствие. На этом этапе проверяется рабочее время, воспроизводится файл приветствия.
  2. Распределение звонка на внутренние номера. Здесь звонок маршрутизируется на операторские группы, используется очередь ожидания.
  3. Окончание обработки - последний блок, нужен для записи служебных переменных, для обработки неудачного соединения, включения голосовой почты или заказа на встречный звонок.

Рассмотрим стандартный главный сценарий, который включен изначально в дистрибутив Oktell. Сценарий выглядит следующим образом


Main1.png


Блок: Определение времени и приветствие

После начала коммутации произведем анализ времени поступившего вызова и направим абонента на соответствующее приветствие.


Main12.png


Компонент "Начинаем работать?". Определяет начался ли рабочий день компании. В сценарии предполагается, что офис работает с 7:00 до 20:00.

  • Аргумент 1 - функция "Текущий час"
  • Аргумент 2 - число "7", целая часть часа, с которого планируется начало работы в офисе.
  • Тип сравнения - ">=". Нас интересует время, которое больше 7 часов, но поскольку целая часть часа от времени 7:05, например, равна 7, то мы также должны указать, что время должно быть не только больше 7, но и еще быть равным. Поэтому используем тип сравнения больше или равно(>=).


Main11.png


Компонент "Текущий час>=20". В случае если рабочий день начался, этот компонент определяет конечные часы рабочего дня.

  • Аргумент 1 - функция "Текущий час"
  • Аргумент 2 - число "20", целая часть часа, когда офис закончит работу.
  • Тип сравнения - ">=".


Компонент "Вызов не может быть обслужен". Переход на этот компонент возможен, только если звонок поступил в нерабочее время. В качестве аудиофайла используем ранее записанное сообщение о том, что офис в текущее время не работает.

  • Режим: Файл полностью
  • Файл: выбран файл "ваш вызов не может быть обслужен.wav"

Компонент "Приветствие". Если звонок удовлетворил двум, описанным выше, сравнениям, то это означает, что он поступил в рабочее время и ему проигрывается файл с заранее записанным приветствием.

  • Режим - Файл полностью
  • Файл - выбран файл "Добрый день.wav"


Блок: Распределение звонка на внутренние номера

Компонент "Ввод добавочного номера". Позволяет клиенту ввести внутренний номер сотрудника для соединения.

  • Файл - выбран аудиофайл "введите номер или дождитесь.wav"
  • Переменная - переменная "номер" (строковая), в которую будем записывать то, что будет набирать позвонивший к нам клиент.
  • Макс.время, с - 5. Это время, которое будет дано клиенту на набор указанного числа символов.
  • Количество символов - 3. Именно столько символов, будет позволено набрать клиенту. Количество должно соответствовать длине внутренних номеров компании.


Компонент "Проверяем статус введенного номера". Если абонент ввел символы (ветка Переход от предыдущего компонента), проверяем свободен ли вызываемый номер.

  • Действие — Определить
  • Тип объекта — Номер
  • Номер - переменная "номер", в которой содержатся введенные символы клиента
  • Функция — Наличие свободных абонентов
  • Значение в переменную — переменная "наличие свободных" (строковая). В переменной будет сохранен результат функции.


Main13.png Main4.png


Компонент "Номер занят?". Анализирует полученный результат и определяет свободен ли номер.

  • Аргумент 1 - переменная "наличие свободных", которую использовали для сохранения статуса номера.
  • Аргумент 2 - указываем числовую константу 0. Если обратиться к описанию компонентов, можно увидеть, что статус 0 возвращается, когда у номера нет свободных абонентов, т.е. Телефон занят»
  • Тип сравнения - "=".
  • Переход, если правда - означает, что телефон занят. В этом случае ведем клиента на компонент "Запрос действия 1", где предложим абоненту несколько вариантов действий.
  • Переход,если ложь — на непосредственное соединение с требуемым пользователем.


Теперь рассмотрим второе голосовое меню. В данное голосовое меню абонент попадает, если изначально занят требуемый ему внутренний номер. Здесь будет предложено:

  • Нажать 1, если клиент хочет встать в очередь к изначальному номеру
  • Нажать 2, если клиент хочет ввести другой добавочный номер
  • Нажать 3, если клиент хочет переключиться на секретаря

Голосовое меню строиться с помощью 2-х компонентов — "Запрос действия 1" и "Меню выбора действия". Рассмотрим компоненты подробнее.


Компонент "Запрос действия 1". Предлагает клиенту выбрать действие, которое он хочет выполнить.

  • Файл - выбираем файл "телефон занят.wav", заранее подготовленную запись с предложением действий.
  • Переменная - переменная "действие" (строковая). Таким образом мы получаем все введенные клиентом DTMF-символы.
  • Очистить буфер — Да.
  • Макс. время, с — 5 секунд.
  • Количество символов — 1.
  • Переход - переводим на компонент меню сравнения.
  • Переход таймаут — оставляем пустым,либо переводим на обрыв связи. Данную ситуацию тоже можно обработать каким-либо способом на ваше усмотрение.


Компонент "Меню выбора действия". Маршрутизирует звонок в зависимости от введенного символа.

  • Аргумент - указываем переменную "действие".
  • Значения:
1 — компонент "Переключение на сотрудника". Переход на переключение на номер с очередью ожидания.
2 — Компонент "Ввод добавочного номера". На воспроизведение с преднабором, где предлагается ввести добавочный номер.
3 — компонент "На секретаря". Переключение на номер, в котором осуществляем соединение с секретарем.
  • Переход,прочее — оставляем пустым. Таким образом, если клиент введет символ отличный от 1,2 или 3, то его звонок прервется.


Main5.pngMain6.png


Подробнее рассмотрим компонент переключения на номер, в котором будем осуществлять переключение на указанный клиентом внутренний номер.

Компонент "Переключение на сотрудника"

  • Назначение — Внутрь.
  • Номер — переменная "номер", в которой мы сохраняли желаемый клиентом внутренний номер.
  • Тип вызова — обычный.
  • Очередь ожидания - Да.
  • Переход - на компонент "Стоп".

ВНИМАНИЕ: Обратите внимание, что используется компонент Стоп, а не Обрыв связи.

  • Остальные настройки оставляем по умолчанию.


Main7.png


Далее рассмотрим переключение на номер, в котором будем производить вызов секретаря.

Компонент "На секретаря". Переключает звонок на секретаря.

  • Направление — Внутрь.
  • Номер — переменная "номер секретаря", которую мы указали в самом начале сценария.
  • Тип вызова — обычный.
  • Очередь ожидания — да.
  • Время ожидания ответа — 40 (время которое будет звонить телефон у пользователя)
  • Переход — стоп. Обратите внимание, что используется компонент Стоп, а не Обрыв связи.
  • Остальные ветки переход - отправляем на компонент "Чтобы голосовое сообщение пришло секретарю".


Компонент "Чтобы голосовое сообщение пришло секретарю". В том случае, если клиент не соединился ни с одним сотрудником, в дальнейшем ему будет предложено оставить голосовое сообщение. Этот компонент сохраняет номер секретаря, чтобы ему пришло голосовое сообщение от клиента.

  • Переменной "номер" присваиваем значение переменной "номер секретаря".

Далее осуществляем переход к заключительной категории — окончанию обработки.


Блок: Окончание обработки

В данном разделе рассмотрим каким образом будет завершаться коммутация с клиентом,если не один пользователь не ответил или если звонок пришел в не рабочее время.


Main10.png


Вернемся к первому разделу.

После воспроизведения клиенту сообщения о том, что офис сейчас не работает, осуществляем переход на компонент "Запуск сценария Голосовая почта".

Компонент "Голосовое сообщение для секретаря". Предварительно заносим в переменную "номер" внутренний номер секретаря, который сохранен в соответствующей переменной.

  • Переменной "номер" присваиваем значение переменной "номер секретаря".


Компонент "Запуск сценария Голосовая почта". Позволяет оставить голосовую почту от клиента определенному пользователю системы.

  • Тип запуска — вложенный.
  • Режим выбора сценария - из списка
  • Сценарий — выберите из списка сценарий "(пример)Голосовая почта", который идет в дистрибутиве комплекса Oktell.
  • Параметр запуска — переменная "номер", в которую записали внутренний номер сотрудника, либо номер секретаря.
  • Возврат управления — нет.


Main8.png


Таким образом, если звонок придет вне рабочего времени, система сообщит об этом клиенту, а затем предложит оставить голосовое сообщение.

Вторым этапом рассмотрим ситуацию когда звонок пришел в рабочее время, но ни секретарь, ни другой сотрудник не ответили на вызов. Для этого установлен переход на компонент "Запрос действия 2".

Компонент "Запрос действия 2". Запрашивает у клиента, хочет ли он оставить голосовое сообщение.

  • Файл — выбираем заранее подготовленную запись сообщения с текстом: "К сожалению оператора нет на месте, если вы хотите оставить голосовое сообщение нажмите 1". В примере это файл "Оператора нет на месте_cсообщение.wav"
  • Переменная — выбираем уже созданную переменную "действие". Вы также можете создать и использовать другую переменную.
  • Очистить буфер — да
  • Макс. время, с — 5 секунд.
  • Количество символов — 1.
  • Переход — компонент сравнения "Ввели 1?"
  • Переход, таймаут - компонент воспроизведения "Спасибо за звонок".


Main9.png


Таким образом если клиент захочет оставить голосовое сообщение, он нажмет 1 и коммутация перейдет на компонент сравнения, где содержимое переменной "действие" будет сравниваться с константой 1.

Компонент "Ввели 1?". Определяет введенный клиентом символ.

  • Аргумент 1 - переменная "действие"
  • Аргумент 2 - число "1"
  • Тип сравнения - "="

Переход по правде произойдет на компонент "Запуск сценария Голосовая почта", который описан выше. Таким образом произойдет переход в сценарий записи голосовой почты.

Переход по ветке ложь перейдет на компонент воспроизведения с заранее подготовленным голосовым сообщением - "Спасибо за звонок", после чего разрываем коммутацию с помощью компонента "Обрыв связи".

Компонент "Спасибо за звонок".

  • Режим: Файл полностью
  • Файл: выберите файл с записанным сообщением


После модификаций сохраните данный сценарий на сервер.


Скачать сценарий: Маршрутизация входящих.oscr

Назначение главного сценария

Чтобы назначить данный сценарий главным сценарием входящей маршрутизации, выберите его в списке сценариев и нажмите кнопку Главный. Сделать это можно также через контекстное меню, щелкнув на сценарии правой кнопкой мыши. После выполнения данного действия сценарий будет выделен красным цветом и все входящие звонки будут обрабатываться согласно настроенному алгоритму.


Урок24-002.png


Скачать сценарии: Маршрутизация входящих (демо).oscr и Маршрутизация входящих.oscr

Поздравляем! Теперь вы умеете создавать IVR сценарий входящей маршрутизации и настроить вашу систему на прием звонков от клиентов. Можете переходить к следующему уроку.

Техническая документация: Сценарии АТС


Вопросы и задания

Наверх К предыдущему уроку К следующему уроку