Обзор службы автоматизации вызовов
Службы коммуникации 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 |
Приложение было отключено от вызова. |
CreateCallFailed |
Приложению не удалось создать вызов. |
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 |
Hold |
HoldFailed |
StartMediaStreaming |
MediaStreamingStarted / MediaStreamingFailed |
StopMediaStreaming |
MediaStreamingStopped / MediaStreamingFailed |
StartTranscription |
TranscriptionStarted / TranscriptionFailed |
UpdateTranscription |
TranscriptionUpdated / TranscriptionFailed |
StopTranscription |
TranscriptionStopped / TranscriptionFailed |
Следующие шаги
Связанные статьи
- Узнайте, как ваш ресурс взимается за различные варианты использования вызовов с примерами.
- См. краткое руководство по созданию исходящего вызова.
- Узнайте об использовании и операционных журналах, опубликованных автоматизацией вызовов .