IVR-редактор (IVR editor)
В приложении IVR-редактор (IVR editor) создаются сценарии работы услуги IVR.
IVR-скрипты разделяются по двум типам вызовов:
- Скрипт для входящего вызова на IVR;
Скрипт для исходящего вызова с IVR.
Сценарии IVR находятся во внутреннем хранилище системы. Просмотр и редактирование IVR-сценариев доступно только через IVR-редактор web-конфигуратора.
Рисунок 1 — Интерфейс web-приложения "IVR редактор" ("IVR editor")
Управление скриптом
Для добавления нового скрипта нажмите кнопку "Добавить" ("Add") , выберите, какие вызовы будет обрабатывать скрипт (исходящие, входящие), и укажите имя скрипта.
Для удаления скрипта выберите скрипт и нажмите кнопку "Удалить" ("Remove") .
После выполнения настроек для сохранения внесенных изменений нажмите кнопку "Сохранить" ("Save") .
Для проверки правильности скрипта используется кнопка "Валидировать" ("Validate") .
Для загрузки IVR-скрипта с ПК пользователя используется кнопка "Импортировать" ("Import").
Для сохранения IVR-скрипта на ПК пользователя используется кнопка "Экспортировать" ("Export") .
Для изменения названия IVR-скрипта используется кнопка "Переименовать" ("Rename") .
Для озвучивания текстовых сообщений в IVR-скрипте необходимо выполнить настройки скрипта. Для этого нажмите кнопку . В открывшемся окне заполните параметры настроек:
- Текст (Description) — текст, озвучиваемый скриптом;
- OAuth-токен (OAuth token) — OAuth-токен для интеграции с Yandex Speech API;
- folderld (folderld) — идентификатор директории с Yandex Speech API;
- Язык (Language) — язык озвучивания текстового сообщения;
- Диктор (Speaker) — голос озвучивания тестового сообщения;
- Эмоция (Emotion) — эмоциональная окраска голоса;
- Скорость (Speed) — скорость воспроизведения текстового сообщения;
- Завершить, если tts не доступен (Terminate if tts failed) — завершить IVR-скрипт в случае недоступности tts.
Создание и редактирование скрипта
Раздел для создания и редактирования скрипта представляет собой конструктор, в центре поля формируется блок-схема скрипта IVR.
В верхней части расположены типовые блоки, в правой части — список настраиваемых параметров для текущего блока:
Чтобы выделить блок на схеме, кликните на нем левой кнопкой мыши. Выделенный блок имеет границы желтого цвета.
Чтобы добавить блок, выделите пустой блок "Добавить" ("Add action") и выберите требуемый блок на панели инструментов, нажав на него левой кнопкой мыши.
В поле справа необходимо настроить параметры для созданного блока. Логические связи для вновь созданного элемента будут добавлены автоматически.
Логическая связь для блока "Goto" задается вручную, для этого в параметрах блока в поле "Перейти к блоку" ("Go to") необходимо указать требуемый блок. Логическая связь "Goto" изображается пунктиром.
Для перемещения блока необходимо выбрать блок и нажать кнопку "Перемещение блоков" ("Dragging blocks").
Для создания подграфа выделите блок, к которому будут привязаны новые логические связи, и нажмите кнопку "Создать подграф" ("Make subgraphs").
Для перемещения подграфа необходимо выбрать блок и нажать кнопку "Перемещение подграфов" ("Dragging subgraphs").
Чтобы убрать выделенный блок со схемы, необходимо выбрать блок и в разделе настройки параметров нажать кнопку "Удалить блок" ("Delete block"). Если данный блок имеет нижестоящие логические связи, будет удалена вся ветка объектов, для которой данный блок является корневым.
Чтобы убрать подграф со схемы, необходимо выбрать блок, к которому привязаны нижестоящие логические связи, и в разделе настройки параметров нажать кнопку "Удалить подграф" ("Delete subgraph").
Описание блоков IVR для скриптов для входящих вызовов
Описание блоков IVR для скриптов для входящих и исходящих вызовов приведено в таблице 1.
Таблица 1 — Описание блоков IVR для скриптов для входящих вызовов
Обозначение | Название | Описание |
---|---|---|
Begin | Блок, необходимый для выдачи абоненту сигнала КПВ, всегда находится первым в списке сценариев. При поступлении звонка на блок RING состояние вызова не меняется. - Описание (Description) — краткое описание работы блока; - Длительность проигрывания КПВ, c (Ringback duration, s) — выбор длительности проигрывания сигнала КПВ либо отключено. | |
Добавить (Add action) | Пустой блок, предназначенный для добавления блока. | |
Info | Блок для проигрывания одного или нескольких голосовых сообщений вызывающему абоненту в предответном состоянии (без снятия трубки абонентом B). То есть при проигрывании данного блока плата за соединение не производится. Данный блок может находиться в сценарии после блоков, которые не меняют состояние вызова, и если ранее не было перехода в ответное состояние. Блок полезен для информирования вызываемого абонента дежурной информацией, пока не освободится ресурс, который сможет обработать вызов. - Описание (Description) — краткое описание работы блока. - Сообщения для проигрывания до ответа абонента (Info message) — выбор одного или нескольких голосовых сообщений для проигрывания вызывающему абоненту. Можно выбрать файл, тон или проиграть переменную (дата, цифры, номер, время). При выборе файла необходимо указать его расположение (system, domain), группу и имя файла. - Количество проигрываний (Replay files\tones) — выбор количества циклов проигрывания сообщений, сообщения проигрываются по очереди, начиная с первого. | |
Play | Блок для проигрывания одного или нескольких голосовых сообщений вызывающему абоненту в разговорном состоянии (после ответа абонента B). Блок используется для информирования абонента А. - Описание (Description) — краткое описание работы блока. - Сообщения для проигрывания (Play message) — выбор одного или нескольких голосовых сообщений для проигрывания вызывающему абоненту. Можно выбрать файл, тон, синтезировать речь, проиграть переменную (дата, цифры, номер, время). - Количество проигрываний (Replay files\tones) — выбор количества циклов проигрывания. Сообщения проигрываются по очереди, начиная с первого. | |
Ivr | Блок для реализации функции интерактивного голосового меню. В данном блоке есть возможность логического выбора пути прохождения вызова нажатием определенных комбинаций цифр, донабора номера абонента по внутреннему плану нумерации и проигрывания (опционально) звуковых файлов, системных звуков (КПВ, посылка вызова, сигнал занято) и цифр DTMF для оповещения абонента. - Описание (Description) — краткое описание работы блока. - Сообщения/сигналы для проигрывания — в таблице приводится список звуковых файлов для проигрывания:
- Список пунктов IVR-меню, выбираемых абонентом: (IVR commands):
- Разрешить донабор (Allow extension dialing) — при установленном флаге разрешается донабор номера, после набора которого будет произведена маршрутизация по плану нумерации устройства, например, можно совершить набор внутреннего абонента. - Дополнительная обработка донабора (Additional processing extension dialing) — при установленном флаге разрешается дополнительная обработка донабора. - Символ завершения ввода (Terminate input character) — DTMF символ служащий для завершения набора входных данных. - Тип доступа (Access type) — выбор категории доступа. При помощи категории доступа можно сделать ограничение вызова на номер, который был набран абонентом в блоке IVR. Можно не выбирать тип доступа, тогда будет использоваться тот, что назначен на абонента А. - Количество цифр для донабора (Max dialing digits) — количество цифр номера, которое можно набрать при помощи донабора номера, есть возможность указать диапазон (запись: "4-6, 12" - соответствует 4,5,6 или 12 символам). - Межцифровой интервал, с (Interdigit timeout, s) — значение межцифрового интервала донабираемого номера. | |
| Time | Блок, необходимый для выбора логики приема вызовов в соответствии с текущим временем и днем недели. - Описание (Description) — краткое описание работы блока. - Часовой пояс (Time zone) — выбор часового пояса. Для изменения временного диапазона укажите интервал времени в полях "Начало" ("Begin"), "Окончание" ("End") и выберите дни недели, установив соответствующие флаги в полях "Понедельник" ("Monday") — "Воскресенье" ("Sunday"), "Рабочий" ("Work"), "Праздничный" ("Holiday"), "Предпраздничный" ("Half holiday"), "Сокращенный предпраздничный" ("Half work and holiday"), "Выходной" ("Day off"). Нажмите кнопку "Сохранить время" ("Save time"). Для добавления нового временного диапазона нажмите кнопку "Добавить время" ("Add time"). Дополнительно в блоке можно использовать расписания, которые создаются в приложении "Календарь" ("Calendar"). Для добавления нового расписания используйте кнопку "Добавить расписание" ("Add schedule"). |
Dial | Блок, необходимый для набора заданного номера, маршрутизация данного номера происходит по плану нумерации устройства. - Описание (Description) — краткое описание работы блока. - Номер (Number) — номер абонента. Список доступных переменных:
- Время ожидания (Wait timeout) — время ожидания ответа (параметр опциональный, если не задан — используется значение, заданное на уровне домена (по умолчанию 1 минута). - Продолжительность разговора (Conversation Timeout) — максимальное время разговора (параметр опциональный, если не задан — используется значение, заданное на уровне домена (по умолчанию 1 час). - Постобработка (Post processing) — открывает в блоке Play дополнительную ветку для действий в IVR-сценарии после завершения диалога. По ветке доступны переходы в другие блоки: play, ivr, set, time, digitmap, numbers, rpc, goto. - Звонок из под абонента А (Call from subscriber A) — если значение установлено в True, то вызовы совершаются из под интерфейса абонента А, если значение установлено в False, то вызов будет совершен из под интерфейса IVR. Этот параметр может использоваться для построения сложных схем маршрутизации по интерфейсу. Блок имеет 2 выхода, первый — если абонент занят или не отвечает (выход «Busy/No answer»), второй — произошла какая-либо ошибка (выход «error»). | |
Numbers | Блок, необходимый для выбора логики при прохождении вызова в соответствии с номером вызывающего абонента. - Описание (Description) — краткое описание работы блока. - Список номеров (Numbers) — список абонентов с приоритетом. В поле Номер (Number) нужно указать номер вызывающего абонента. Блок имеет 2 выхода, первый — при совпадении номера вызывающего абонента с заданным шаблоном (выход «yes»), второй — при несовпадении (выход «no»). | |
Digitmap | Блок, необходимый для выбора логики при прохождении вызова в соответствии с номером вызываемого абонента. Номер вызываемого абонента проверяется на этапе входа в блок digitmap. - Описание (Description) — краткое описание работы блока. - Переменная (Variable) — переменная для проверки. - Список масок набора (Digitmap) — таблица со списком масок набора. В поле Маска (Mask) нужно указать шаблон номера вызываемого абонента. - Модификатор — как модифицировать номер в случае удовлетворения критерия отбора.
Блок имеет 2 выхода, первый — при совпадении номера вызываемого абонента с заданным шаблоном (выход «yes»), второй — при несовпадении (выход «no»). | |
Goto | Блок, необходимый для перевода вызова на другой произвольный блок сценария. - Описание (Description) — краткое описание работы блока. - Максимальное число срабатываний (Max hops) — выбор количества циклов прохождения звонка через данный блок для защиты от зацикливания вызова. | |
Rec | Включение режима записи. - Описание (Description) — краткое описание работы блока. | |
Caller info | Модификация отображаемого имени вызывающего абонента. - Описание (Description) — краткое описание работы блока. - Список абонентов (Caller info) — список абонентов, для которых выполняется модификация имени:
| |
Fax | Передача факса на электронную почту. - Описание (Description) — краткое описание работы блока. - Список адресов (Emails) — список адресов электронной почты, на которую будет отправлен факс. Можно использовать переменную %CALLER_EMAIL% - Тема сообщения (Subject) — тема электронного письма. В теме письма допускается использование тегов:
- Сообщение (Body) — текст сообщения. - Имя отправителя (Sender name) — имя отправителя электронной почты. - Имя получателя (Receiver name) — имя получателя электронной почты. - Пауза (Pause) — длительность паузы, с [0-15]. Блок имеет 2 выхода, первый — при отправке успешного факса на почту (выход «yes»), второй — при неуспешной отправке (выход «no»). | |
| Queue | Распределение входящих вызовов по указанным номерам. - Описание (Description) — краткое описание работы блока. - Имя очереди (Queue name) — имя очереди. - Описание очереди (Queue description) — краткое описание очереди. - Агенты (Agents) — список номеров агентов для обработки очереди (выбор из справочника или произвольный номер). - Длина очереди (Queue lenght) — максимальное количество абонентов, которые могут находиться в очереди [0-9999]. - Время ожидания (Wait timeout) — максимальное время ожидания в очереди, с [0-3600]. - Режим распределения (Distribution mode) — режим распределения вызовов из очереди по агентам:
- Количество попыток распределения (Distribution attempts) — число, показывающее количество попыток распределения вызова [1-10]. - Сценарий нотификаций (Notification scenario) — позволяет указать, в каком порядке проигрывать и проигрывать ли приветствие, позицию в очереди, предсказываемое время ожидания. Доступны параметры:
- Фоновая музыка (Fone music) — звуковой файл, который будет проигрываться при ожидании абонента в очереди. - Оповещение в очереди (Queuing) — сообщение абоненту при постановке его в очередь. - Прогноз времени ожидания (Forecast timeout) — сообщение для информирования абонента о прогнозируемом времени ожидания. |
Queue CC | Распределение входящих вызовов в выбранную очередь. - Описание (Description) — краткое описание работы блока; - Действие трансфера (Transfer scenario) — действие трансфера (дать отбой, уведомить и дать отбой, переадресовать, вернуть в очередь):
- Имя очереди (Queue name) А — имя очереди; - Режим уведомления о позиции (Position notification mode) — режим уведомления о позиции (абсолютная позиция, позиция относительно времени добавления, позиция относительного приоритета); - Прогноз времени ожидания (Time prediction) — режим прогнозирования времени ожидания (прямой, оптимистичный, монотонный, сглаженный):
- Сценарии нотификаций (Notificaton scenario) — позволяет указать, в каком порядке проигрывать и проигрывать ли приветствие, позицию в очереди, предсказываемое время ожидания. Доступны параметры:
- Приветствие (Fone music) — звуковой файл, который будет проигрываться при ожидании абонента в очереди; - Фоновая музыка (Fone music) — звуковой файл, который будет проигрываться при ожидании абонента в очереди; - Оповещение в очереди (Queuing) — сообщение абоненту при постановке его в очередь; - Прогноз времени ожидания (Forecast timeout) — сообщение для информирования абонента о прогнозируемом времени ожидания; - Уведомление об ответе (Answer notification) — сообщение после ответа оператора (нотификация идет абоненту и оператору); - Перезвонить, если абонент не дождался (Callback on failure) — режим работы сервиса очереди Callback. Если абонент не дождался ответа оператора, то вызов отмечается специальным признаком и размещается в очереди в режиме Callback. - Перезвонить при сработавшем ограничении (Callback on overload) — режим работы сервиса очереди Callback. Позволяет добавлять в очередь в режиме Сallback вызов, который не проходит ни по одному из граничных условий (max_predicted_time или queue_length); - Идет соединение с клиентом (Notify callback message) — сообщение оператору при обратном вызове; - Проигрывать КПВ оператору (Play ringback to operator) — при обратном вызове оператору проигрывается КПВ. Сallback, иницирующийся агентом КЦ, производится с номера очереди. Когда агентов нет, клиент ожидает распределения в очереди в течении 2 часов. Сallback-и являются вызовами и занимают ресурсы выделенной лицензии на вызовы. | |
Next | Продолжение выполнения в следующем IVR-скрипте. - Описание (Description) — краткое описание работы блока; - IVR script (IVR script) — внешний IVR-скрипт для дальнейшего исполнения. | |
Set | Описание переменных IVR-скрипта. - Описание (Description) — краткое описание работы блока; - Переменные (Variables) — список переменных. Доступен для использования в скрипте и вложенных скриптах:
Доступные для чтения переменные:
Для получения значения переменной нужно указать имя переменной, заключенное в символы %. Также можно не указывать значение для переменной. Это не будет являться ошибкой. Например: /%CGPN%/prompt/alarm_prompt.wav эквивалентно /1234/prompt/alarm_prompt.wav. | |
VoiceMail | Блок для отправления голосового сообщения. - Описание (Description) — краткое описание работы блока; - Номер владельца (Owner number) — телефонный номер для отправки голосового сообщения; - Сообщения для проигрывания перед началом записи (Play message before begin recording) — список медиаресурсов для проигрывания перед записью голосовой почты:
- Сообщения для проигрывания после окончания записи (Play message after recording) — список медиаресурсов для проигрывания после записи голосовой почты:
- Кнопка остановки (Stop digit) — кнопка остановки записи голосового сообщения; - Список адресов (Emails) — список адресов для отправки голосовой почты; - Имя отправителя (Email from) — отправитель сообщения. Доступные макросы: DATE, TIME, CALLING, DISPLAYNAME; - Тема сообщения (Email subject) — тема сообщения. Доступные макросы: DATE, TIME, CALLING, DISPLAYNAME; - Тело сообщения (Email body) — тело сообщения. Доступные макросы: DATE, TIME, CALLING, DISPLAYNAME. | |
Condition | Блок условия. Данный блок предназначен для проверки булевых условий, составленных из переменных и строк. Важно отметить, что все операции выполняются над строками. В блоке можно задать до 10 условий. Каждому условию задается соответствующая ветка выхода (от 0 до 10) из блока в другой блок. В блоке Condition переход осуществляется по ветке первого истинного условия (если истинных условий несколько, выбирается первое). В случае, если в блоке Condition ни одно из условий не оказалось истинным, то выполнится переход по ветке False. - Описание (Description) — краткое описание работы блока; - Условие (Condition) — блок предназначен для проверки булева условия, составленного из переменных, констант. Для формирования условий существуют следующие операторы (подробное описание находится в разделе IVR-редактор (IVR editor)). | |
Request to RADIUS/HTTP | Блок для интеграции с внешним сервером. Настройки RADIUS-запроса: - RADIUS сервера (RADIUS servers) — поле для добавления сконфигурированных в системе RADIUS-серверов;
- Метод (Method) — метод посылки запроса на RADIUS-сервер, используются следующие методы:
- Атрибуты запроса (Request attributes) — список RADIUS-атрибутов, которые будут отправлены в запросе;
- Атрибуты ответа (Response attributes) — список RADIUS-атрибутов, которые будут получены в ответе на запрос с указанием, в какие переменные IVR-скрипта необходимо мапить определенные RADIUS-атрибуты;
- Регулярное выражение (Regular expression) — является ли переменная регулярным выражением. Настройки HTTP-запроса: - URL — полный URL запроса на HTTP-сервер. При необходимости в URL можно использовать переменные текущего IVR-сценария. Пример: http://infoUserServer.co/shirts?style=%CDPN% - Метод (Method) — метод HTTP-запроса (HEAD, GET, PUT, POST, TRACE, OPTION, DELETE); - Время запроса (Request timeout) — время попытки запроса на HTTP-сервер в миллисекундах, значение по умолчанию 0 (Если выставлен в 0, то лимита нет и предполагается, что запрос не может завершиться по таймауту. Таким образом, даже если хост, на который мы шлём запрос, недоступен, мы бесконечно ждём ответ, ибо для нас нет разницы между недоступным хостом и долго соображающим. Рекомендуется выставлять конкретное значение, иначе скрипт будет долго выполняться.); - Тип в теле запроса (Content type) — тип данных, находящихся в теле запроса; - Тело запроса (Body) — тело запроса (строка с возможным наличием макро-переменных); - Заголовки (Headers) — заголовок HTTP-запроса:
- Тип в теле ответа (Response type) — тип данных, находящихся в теле ответа; - Максимальный размер ответа (Мax bytes) — максимальный размер ответа; - Кодировка в ответе (Responce codec) — кодировки, поддерживаемые в ответе; - Коды (Codes) — коды. | |
Raiting | Блок для оценки качества обслуживания операторов Call-центра: - Описание (Description) — краткое описание работы блока; - Сообщения/сигналы для проигрывания (Play tone) — звуковые файлы, которые будут проигрываться перед тем как абонент выставит оценку; - Время ожидания выбора абонента (Time of wait) — время, которое выделяется для того, чтобы абонент поставил оценку оператору Call-центра; - Диапазон оценки (Rating interval) — диапазон в рамках которого выставляется оценка. | |
Logging | Блок логирования. - Описание (Description) — описание описание блока - Content — форматированная строка, в которой имена подставляемых переменных заключены в символы '%'. Ниже перечислены предопределенные в скрипте переменные:
|
Описание блоков IVR для скриптов для исходящих вызовов
Описание блоков IVR для скриптов для входящих и исходящих вызовов приведено в таблице 2.
Таблица 2 — Описание блоков IVR для скриптов для исходящих вызовов
Обозначение | Название | Описание |
---|---|---|
Outgoing call | Стартовый блок для исходящих сценариев. - Описание (Description) — краткое описание работы блока. | |
Добавить (Add action) | Пустой блок, предназначенный для добавления блока. | |
PlayOut | Блок для проигрывания одного или нескольких звуковых файлов после ответа. - Описание (Description) — краткое описание работы блока. - Сообщения для проигрывания (Play message) — выбор одного или нескольких голосовых сообщений для проигрывания после ответа. Файл можно выбрать из списков, доступных через MSR-медиаменеджер. Нужно указать направление файла (кому будет проигрываться после ответа: всем, вызывающему абоненту, вызываемому абоненту), количество циклов проигрывания (1–5 раз). Сообщения проигрываются по очереди, начиная с первого. | |
Connect | Блок для установления соединения с абонентом. - Описание (Description) — краткое описание работы блока. - Установление соединения (Making a connection) — выбор направления вызова: на вызывающего (origination) абонента; на вызываемого (termination) абонента; на абонента с определенным номером. - Номер (Number) — номер абонента. Список доступных переменных:
- Приветствие (Greeting) — звуковой файл, который будет проигрываться в начале установления соединения. Файл можно выбрать из списков доступных через MSR-медиаменеджер. Можно не устанавливать, тогда ничего не будет проигрываться. - Фоновая музыка (Fone music) — звуковой файл, который будет проигрываться при ожидании установления соединения. Файл можно выбрать из списков доступных через MSR-медиаменеджер. Можно не устанавливать, тогда ничего не будет проигрываться. - Тип доступа (Access type) — определяет тип доступа для соединения с абонентом. - Таймер ожидания (Wait timeout) — задает таймер ожидания ответа абонента. - Таймер окончания беседы (Conversation timeout) — задает таймер окончания беседы. | |
Goto | Блок, необходимый для перевода вызова на другой произвольный блок сценария. - Описание (Description) — краткое описание работы блока. - Максимальное число срабатываний (Max hops) — выбор количества циклов прохождения звонка через данный блок для защиты от зацикливания вызова. Для выбора блока, на который будет совершен переход, нажмите кнопку "Выбрать блок для перехода" ("Select block for redirect") и укажите блок на схеме. | |
Talk | Блок ожидания завершения разговора. - Описание (Description) — краткое описание работы блока. - Приветствие (Greeting) — установка оповещения при начале разговора. Можно не устанавливать, тогда ничего не будет проигрываться. - Постобработка (Post processing) — открывает в блоке Talk дополнительную ветку для действий в IVR-сценарии после завершения диалога. | |
Request to RADIUS/HTTP | Блок для интеграции с внешним сервером. - Тип (Request type) — выбор типа запроса к серверу (HTTP или RADIUS). Настройки RADIUS-запроса: - RADIUS-серверы (RADIUS servers) — поле для добавления сконфигурированных в системе RADIUS-серверов;
- Метод (Method) — метод посылки запроса на RADIUS-сервер, используются следующие методы:
- Атрибуты запроса (Request attributes) — список RADIUS-атрибутов, которые будут отправлены в запросе:
- Атрибуты ответа (Response attributes) — список RADIUS-атрибутов, которые будут получены в ответе на запрос с указанием, в какие переменные IVR-скрипта необходимо мапить определенные RADIUS-атрибуты;
- Регулярное выражение (Regular expression) — является ли переменная регулярным выражение.
- RADIUS-серверы (RADIUS servers) — поле для добавления сконфигурированных в системе RADIUS-серверов. Настройки HTTP-запроса: - URL — полный URL запроса на HTTP-сервер; - Метод (Method) — метод HTTP-запроса (HEAD, GET, PUT, POST, TRACE, OPTION, DELETE); - Время запроса (Request timeout) — время попытки запроса на HTTP-сервер в миллисекундах; - Тип в теле запроса (Content type) — тип данных, находящихся в теле запроса; - Тело запроса (Body) — тело запроса (строка с возможным наличием макро-переменных); - Заголовки (Headers) — заголовок HTTP-запроса.
- Тип в теле ответа (Response type) — Тип данных, находящихся в теле ответа; - Максимальный размер ответа (Мax bytes) — максимальный размер ответа; - Кодировка в ответе (Responce codec) — кодировки, поддерживаемые в ответе; - Коды (Codes) — коды. | |
Next | Продолжение выполнения в следующем IVR-скрипте. - Описание (Description) — краткое описание работы блока; - IVR script (IVR script) — внешний IVR-скрипт для дальнейшего исполнения. |
Воспроизведение звуков в IVR-скрипте:
В блоках Play, Info и Ivr существует возможность проигрывания звуков. На данный момент поддержано 4 источника звуков:
- Добавить файл (Add file) — источником служит аудио-файл, хранящийся в медиаресурсах системы.
- Добавить тон (Add tone) — медиасервер сгенерирует звуковой тон согласно заданным параметрам:
- Частота 1, Гц (Frequency 1, Hz) — частота первого тона.
- Частота 2, Гц (Frequency 2, Hz) — частота второго тона.
- Вкл., мс (On, msec) — время проигрывания тона.
- Выкл., мс (Off, msec) — время проигрывания тишины.
- Бесконечное проигрывание (Endless playback) — тон будет проигрываться до тех пор, пока абонент, который его слушает, не будет отключен.
- Длительность тона (Duration, sec) — общее время проигрывания тона.
- Dial/Busy/RingBack — предопределенные тоны.
- Синтез речи (Add speech) — источником служит звук, сгенерированный сервисом Text to Speech. На данный момент поддерживается генерация голоса только через Yandex TTS API. После оформления доступа к API на стороне Yandex, требуется сконфигурировать сервис ecss-restfs, указав OAuth-token и FolderId. После этого генерация голоса станет доступна:
- Текст (Text) — текст для генерации голоса;
- OAuth-token — токен для доступа к Yandex TTS API.
Если данный параметр был определен на уровне конфигурации ecss-restfs — здесь ничего выставлять не требуется. Данный параметр нужно заполнить в том случае, если необходимо указать особые данные Yandex TTS API только для этого IVR-сценария. - FolderId — ID для доступа к Yandex TTS API.
Если данный параметр был определен на уровне конфигурации ecss-restfs — здесь ничего выставлять не требуется. Данный параметр нужно заполнить в том случае, если необходимо указать особые данные Yandex API только для этого IVR-сценария. - Язык (Language) — язык на котором будет генерироваться речь.
Если текст был указан на русском языке — следует указать в этом поле русский язык.
Если текст был указан на другом языке — следует указать в этом поле язык ввода текста. - Спикер (Speaker) — тип голоса, которым будет генерироваться речь.
- Эмоция (Emotion) — тип эмоционального окраса для голоса.
- Скорость (Speed) — скорость воспроизведения генерируемой речи.
- Добавить переменную (Add varible) — система сгенерирует звук согласно заданной переменной. Для этого источника не требуется дополнительных сервисов:
- Формат (Format) — формат, согласно которому будет сгенерирован звук:
- Дата (Date) — формат даты.
- Цифры (Digits) — числовой формат.
- Номер (Number) — формат номеров.
- Время (Time) — формат времени.
- Формат (Format) — формат, согласно которому будет сгенерирован звук:
Описание IVR-скриптов для входящих вызовов
Создание базовой очереди Сall-центра в IVR-редакторе
Для того чтобы создать базовую очередь Сall-центра, необходимо выполнить следующие действия:
- Создать скрипт для обработки входящего вызова в IVR-редакторе;
- Добавить в скрипт блок Очередь (Queue), можно ввести описания блока и очереди (queue);
- Сконфигурировать блок Очередь (Queue). Необходимо добавить в очередь операторов (это могут быть любые телефонные номера или выбранные из справочника);
- Указать ограничения очереди и выбрать стратегию распределения;
- Через приложение MSR-медиаменеджер выбрать звуковые файлы фоновой музыки, оповещения и прогноза времени ожидания.
Пример:
Использование IVR-скриптов для исходящих вызовов
Цель исходящего скрипта — обслуживать обратный звонок. Например, вызов из формы обратной связи с сайта/личного кабинета и пр.
Этапы организации услуги обратного вызова:
- Создание исходящего IVR-скрипта.
Исходящие IVR-скрипты описывают логику работы callback-вызова. Существует два базовых варианта использования исходящих IVR-скриптов:1.1 Соединение двух абонентов.
Для обычного соединения оператора и клиента можно воспользоваться следующим IVR-сценарием.
При этом в первом блоке connect необходимо соединиться с вызывающим абонентом (оператором), а во втором с вызываемым абонентом (клиентом). Исходящий IVR-скрипт также позволяет производить информирование обеих сторон (как раздельно так и одновременно) посредством блока playout. Для того чтобы IVR-сценарий не завершился после соединения абонентов. используется блок talk, который ожидает окончания разговора.
1.2 Соединение абонента и входящего IVR-скрипта.
В случае необходимости соединения клиента с входящим IVR-скриптом можно воспользоваться следующим сценарием:
В данном случае в блоке connect необходимо соединиться с вызываемым абонентом (клиентом), и, после того как он снимет трубку, его соединят с входящим IVR-скриптом.
Если исходящий IVR-скрипт соединил двух абонентов, то дальнейшее соединение с входящим IVR-скриптом запрещено. Клиенту, который предоставляет услугу Обратный вызов своим абонентам, необходимо создать виджет сервиса Сustom Сallback используя команды Hc_custom_cb — Управление виджетом сервиса "custom callback".
Виджет представляет собой карточку, которая содержит следующие данные:
- номер — номер оператора;
- имя — имя виджета;
скрипт — название IVR-скрипта;
IVR-скрипт может содержать вызовы как на Оператора, так и на Абонента.
В IVR-скрипте можно настраивать проигрываемую информацию Оператору и Абоненту.Пример:
1. Вызвать оператора Клиента;
2. Проиграть информацию о том, что был заказан Callback;
3. Играть оператору Клиента фоновую музыку;
4. Сделать вызов на Абонента;
5. При ответе Абонента: проиграть информацию Абоненту о том, что сработал Callback;
6. При ответе Абонента: проиграть информацию Абоненту о том, что он будет соединен с оператором.
- описание — данное поле должно отображать информацию о назначении данного виджета.
При создании виджета генерируется идентификатор виджета (
widget_id
). Данныйwidget_id
устанавливается Клиентом на свой сайт, где будет заполняться web-форма на заявку Обратного вызова.Абоненту необходимо заполнить заявку на Обратный вызов в web-форме, предоставленной Клиентом, где Абонент должен указать:
- номер — номер, на который будет произведен обратный вызов со стороны Оператора;
- время — в указанное время будет произведен обратный вызов со стороны Оператора;
- количество попыток — количество повторных обратных вызовов в случае не успешного звонка (опциональный параметр, по умолчанию равен 0);
- время между попытками — время между повторными обратными вызовами. Опциональный параметр, по умолчанию равен 900000 мс (15 минут).
Обработчик заявки на Обратный вызов вычисляет разницу в мс между текущим моментом времени и моментом времени, когда должен будет активироваться Сallback.
Затем обработчик через HTTP-запрос оправляет на систему ECSS-10 следующие данные:
- SUBSCRIBER_NUMBER — номер Абонента;
- TIME — вычисленная разница по времени;
- ATTEMPTS — количество попыток;
- TIMEOUT — время между попытками;
- WIDGET_ID — идентификатор widget.
Обработчик должен знать куда отправлять HTTP-запрос:
- HOST — хост Платформы;
- PORT — порт Платформы;
- DOMAIN — домен на котором сгенерирован widget.
HTTP-запрос:
GET http://HOST:PORT/DOMAIN/service/custom_cb/WIDGET_ID?number=SUBSCRIBER_NUMBER&time=TIME&attempts=ATTEMPTS&timeout=TIMEOUT HTTP/1.1
Пример HTTP-запроса:
GET http://localhost:8086/test.domain/service/custom_cb/054b4a0a684aa67c?number=102&time=1&attempts=1&timeout=10000 HTTP/1.1
Пример HTTP-запроса через curl:
curl -G -d "number=102&time=1&attempts=1&timeout=10000" http://localhost:8086/d.local/service/custom_cb/054b4a0a684aa67c --verbose
или:
curl -G http://localhost:8086/d.local/service/custom_cb/054b4a0a684aa67c?number=102\&time=1\&attempts=1\&timeout=10000 --verbose
Система ECSS-10 получив HTTP-запрос, обрабатывает его по следующей схеме:
- Включается таймер на Обратный вызов — промежуток времени, через который необходимо выполнить Сallback;
- По истечении времени на таймере выполняется Обратный вызов по IVR-сценарию исходящего вызова указанному в виджете;
- В случае не успешного соединения (со стороны Оператора или Абонента телефонный номер не отвечает, поступил сигнал занято и т.п.):
- Если не использованы все попытки на повторное выполнение Обратного вызова, то включается таймер на повторный Сallback (используется попытка).
- По истечении времени на таймере выполняется Обратный вызов по IVR-сценарию исходящего вызова указанному в виджете;
- Если использованы все попытки, то Обратный вызов помечается как неудавшийся.
Логические операторы
!, not — логическое НЕ; &&, and — логическое И; ||, or — логическое ИЛИ.
Операторы сравнения
< — меньше; <= — меньше или равно; = — равно; > — больше; >= — больше или равно; <> — не равно.
Так как сравнение выполняется над строками, то сравнение выполняется посимвольно.
Примеры сравнения строк из цифр равной длины:
"101" < "102" = true "101" =< "102" = true "101" > "102" = false "101" >= "102" = false
Примеры сравнения строк из цифр не равной длины:
"101" < "1102" = true "101" =< "1102" = true "101" > "1102" = false "101" >= "1102" = false
Примеры сравнения строк из цифр и букв равной длины:
"A01" < "102" = false "A01" =< "102" = false "A01" > "102" = true "A01" >= "102" = true
Оператор вхождения
in — оператор вхождения переменной в список (например, %%CGPN%% in (710, 711, 712)).