Поделиться через


Обзор службы автоматизации вызовов

Службы коммуникации Azure служба автоматизации звонков предоставляет разработчикам возможность создавать серверные, интеллектуальные рабочие процессы звонков и записывать звонки для каналов голосовой и общедоступной телефонной сети (ТСОП). Пакеты SDK, доступные в C#, Java, JavaScript и Python, используют модель событий действия для создания персонализированных взаимодействий с клиентами. Приложения связи могут прослушивать события вызова в режиме реального времени и выполнять действия уровня управления (например, ответ, передачу, воспроизведение звука, запись и т. д.) для управления вызовами на основе бизнес-логики.

Распространенные варианты использования

Некоторые распространенные варианты использования, которые можно создать с помощью службы автоматизации вызовов:

  • Программные вызовы VoIP или ТСОП для транзакционных рабочих процессов, таких как напоминания для вызова и встречи, чтобы улучшить обслуживание клиентов.
  • Создавайте интерактивные рабочие процессы взаимодействия для самостоятельного обслуживания клиентов для таких вариантов использования, как резервирование заказов и обновления, использование воспроизведения (аудио URL-адрес, текст в речь и SSML) и действия распознавания (DTMF и голосовой связи).
  • Интеграция приложений связи с центрами контактов и частными сетями телефонии с помощью прямой маршрутизации.
  • Защитите удостоверение клиента путем создания служб маскирования номеров для подключения покупателей к продавцам или пользователям с поставщиками партнеров на вашей платформе.
  • Повышение вовлеченности путем создания автоматизированных программ распространения клиентов для маркетинга и обслуживания клиентов.
  • Анализируйте в процессе после вызова несмешанные аудиозаписи в целях обеспечения качества.

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

Схема потока звонков для сценария обслуживания клиентов.

Возможности

В настоящее время в пакетах SDK для автоматизации вызовов Службы коммуникации Azure доступны следующие функции.

Область функций Возможность .NET Java JavaScript Python
Сценарии предварительного вызова Ответить на вызов один к одному ✔️ ✔️ ✔️ ✔️
Ответ на групповой вызов ✔️ ✔️ ✔️ ✔️
Размещение нового исходящего вызова к одной или нескольким конечным точкам ✔️ ✔️ ✔️ ✔️
Перенаправление* (переадресация) вызова к одной или нескольким конечным точкам ✔️ ✔️ ✔️ ✔️
Отклонение входящего вызова ✔️ ✔️ ✔️ ✔️
Подключение к текущему вызову или номеру (в предварительной версии) ✔️ ✔️ ✔️ ✔️
Сценарии среднего вызова Добавление одной или нескольких конечных точек в существующий вызов ✔️ ✔️ ✔️ ✔️
Отмена добавления конечной точки в существующий вызов ✔️ ✔️ ✔️ ✔️
Воспроизведение звука из звукового файла ✔️ ✔️ ✔️ ✔️
Воспроизведение звука с помощью текста в речь ✔️ ✔️ ✔️ ✔️
Распознавание входных данных пользователей с помощью DTMF ✔️ ✔️ ✔️ ✔️
Распознавание голосовых входных данных пользователя ✔️ ✔️ ✔️ ✔️
Запуск непрерывного распознавания DTMF ✔️ ✔️ ✔️ ✔️
Остановка непрерывного распознавания DTMF ✔️ ✔️ ✔️ ✔️
Отправка DTMF ✔️ ✔️ ✔️ ✔️
Отключить участник ✔️ ✔️ ✔️ ✔️
Удаление одной или нескольких конечных точек из существующего вызова ✔️ ✔️ ✔️ ✔️
Слепой перенос вызова 1:1 на другую конечную точку ✔️ ✔️ ✔️ ✔️
Слепой перенос участника из группового вызова в другую конечную точку ✔️ ✔️ ✔️ ✔️
Повесить звонок (удалить ногу вызова) ✔️ ✔️ ✔️ ✔️
Завершение вызова (удаление всех участников и завершение вызова) ✔️ ✔️ ✔️ ✔️
Отмена операций мультимедиа ✔️ ✔️ ✔️ ✔️
Совместное использование пользовательских сведений (с помощью заголовков VOIP или SIP) с конечными точками при добавлении их в вызов или передаче вызова на них ✔️ ✔️ ✔️ ✔️
Сценарии запросов Получение состояния вызова ✔️ ✔️ ✔️ ✔️
Получение участника в вызове ✔️ ✔️ ✔️ ✔️
Вывод списка всех участников вызова ✔️ ✔️ ✔️ ✔️
Запись звонков Запуск, приостановка, возобновление и остановка записи ✔️ ✔️ ✔️ ✔️

* Перенос или перенаправление звонка VoIP на номер телефона в настоящее время не поддерживается.

Архитектура

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

Службы коммуникации Azure использует сетку событий для доставки Событие входящегоCall и веб-перехватчики HTTPS для всех обратных вызовов в середине вызова.

Снимок экрана: поток для входящих вызовов и действий.

Действия вызова

Действия перед вызовом

Эти действия выполняются перед подключением конечной точки назначения, указанной IncomingCall в уведомлении о событии. События обратного вызова веб-перехватчика взаимодействуют только с действием answer предварительного вызова, а не для reject действий.redirect

Ответ. Использование события ВходящихCall из пакета SDK службы "Сетка событий" и "Автоматизация вызовов", приложение может ответить на вызов. Используйте это действие в сценариях IVR, где приложение может программно отвечать на входящий вызов ТСОП. Другие сценарии включают ответы на вызов от имени пользователя.

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

Перенаправление — использование IncomingCall события из сетки событий позволяет перенаправить вызов на одну или несколько конечных точек, создающих один или одновременный сценарий вызова (sim-ring). Действие перенаправления не отвечает на вызов. Вызов перенаправляется или перенаправляется в другую конечную точку назначения для ответа.

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

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

Действия среднего вызова

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

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

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

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

Непрерывное распознавание DTMF— если приложению необходимо иметь возможность получать тонЫ DTMF в любой момент в вызове без необходимости активировать определенное действие распознавания. Эта возможность может быть полезна в сценариях, когда агент находится на вызове и требует, чтобы пользователь ввел какой-либо идентификатор или номер отслеживания. Дополнительные сведения см. в статье "Управление действиями мультимедиа по середине вызова".

Отправка DTMF — когда приложению необходимо отправить тон DTMF внешнему участнику. Используйте это действие для вызова внешнего агента и предоставления номера расширения или навигации по внешнему меню IVR.

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

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

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

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

Завершение . Указывает, отвечает ли ваше приложение на вызов один к одному или группе или помещает исходящий звонок с одним или несколькими участниками, это действие удаляет всех участников и заканчивает вызов. Эта операция активируется путем задания forEveryOne свойства true в действии вызова "Зависание".

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

Сценарии запросов

Список участников — возвращает список всех участников вызова. Боты записи и транскрибирования опущены из этого списка.

События

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

События Сетки событий

Большинство событий, отправленных сеткой событий, являются не зависящими от платформы. Они отправляются независимо от пакета SDK (вызов или автоматизация вызовов). Хотя вы можете создать подписку для любого события, мы рекомендуем использовать IncomingCall событие для всех вариантов использования службы автоматизации вызовов, где вы хотите управлять вызовом программным способом. Используйте другие события для создания отчетов и телеметрии.

Мероприятие Description
IncomingCall Уведомление о вызове пользователя связи или номера телефона.
CallStarted Установлен вызов (входящий или исходящий).
CallEnded Завершил вызов и удалил всех участников.
ParticipantAdded Добавлен участник в вызов.
ParticipantRemoved Удален участник из вызова.
RecordingFileStatusUpdated Доступен файл записи.

Дополнительные сведения об этих событиях и схеме полезных данных см. в Службы коммуникации Azure — события голосового и видеозвонка

События веб-перехватчика службы автоматизации вызовов

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

Мероприятие Description
CallConnected Вызов успешно запущен (при использовании Answer или действии) или Create приложение успешно подключено к текущему вызову (при использовании Connect действия).
CallDisconnected Приложение было отключено от вызова.
ConnectFailed Приложение не удалось подключиться к вызову (только для Connect действия вызова).
CallTransferAccepted Действие передачи успешно завершено, и получатель передачи подключен к целевому участнику.
CallTransferFailed Не удалось выполнить действие передачи.
AddParticipantSucceeded Приложение успешно добавило участника в вызов.
AddParticipantFailed Приложению не удалось добавить участника в вызов (из-за ошибки или участника не принял приглашение).
CancelAddParticipantSucceeded Приложение успешно отменило AddParticipant запрос (участник не был добавлен в вызов).
CancelAddParticipantFailed Приложение не удалось отменить запрос AddParticipant (это может быть связано с тем, что запрос уже обработан).
RemoveParticipantSucceeded Приложение успешно удалило участника из вызова.
RemoveParticipantFailed Приложению не удалось удалить участника из вызова.
ParticipantsUpdated Состояние участника изменилось во время подключения приложения к вызову.
PlayCompleted Ваше приложение успешно воспроизводило предоставленный звуковой файл.
PlayFailed Не удалось воспроизвести звук в приложении.
PlayCanceled Запрошенное действие воспроизведения было отменено.
RecognizeCompleted Распознавание входных данных пользователей успешно завершено.
RecognizeCanceled Запрошенное Recognize действие отменено.
RecognizeFailed Распознавание входных данных пользователя было неудачным.
Дополнительные сведения о событиях распознавания действий см. в руководстве по сбору входных данных пользователей.
RecordingStateChanged Состояние действия записи изменилось с активного на неактивное или наоборот.
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition выполнен успешно, и от участника был получен тон DTMF.
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition завершено, но произошла ошибка при обработке тона DTMF от участника.
ContinuousDtmfRecognitionStopped Успешно выполнен.StopContinuousRecognition
SendDtmfCompleted SendDTMF успешно выполнено и отправлено тон DTMF целевому участнику.
SendDtmfFailed Произошла ошибка при отправке тонов DTMF.

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

Рекомендуется при подтверждении событий обратного вызова реагировать на стандартные коды состояния HTTP, такие как 200 OK. Подробные сведения не нужны и более подходят для процессов отладки.

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

URI обратного вызова операции

URI обратного вызова операции — это необязательный параметр в некоторых API среднего вызова, которые используют события в качестве асинхронных ответов. По умолчанию все события отправляются в URI обратного вызова по умолчанию, заданный событиями CreateCall / AnswerCall API при установке вызова. Используя URI обратного вызова операции, API отправляет соответствующие события для этого отдельного запроса (только один раз) в новый универсальный код ресурса (URI).

Поддерживаемый API Соответствующее событие
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted / CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded / CancelAddParticipantFailed
Play PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted / RecognizeFailed / RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed

Следующие шаги