Visão geral da automação de chamadas

A Automação de Chamadas dos Serviços de Comunicação do Azure oferece aos desenvolvedores a capacidade de criar fluxos de trabalho de chamadas inteligentes baseados em servidor e gravação de chamadas para canais de voz e PSTN (Rede Telefônica Pública Comutada). Os SDKs, disponíveis em C#, Java, JavaScript e Python, usam um modelo de evento de ação para ajudá-lo a criar interações personalizadas com o cliente. Seus aplicativos de comunicação podem ouvir eventos de chamadas em tempo real e executar ações de plano de controle (como atender, transferir, reproduzir áudio, iniciar a gravação, etc.) para orientar e controlar chamadas com base em sua lógica de negócios.

Nota

Atualmente, a Automação de Chamadas não suporta chamadas de Salas .

Casos comuns de utilização

Alguns dos casos de uso comuns que podem ser criados usando a automação de chamadas incluem:

  • O programa VoIP ou PSTN pede fluxos de trabalho transacionais, como lembretes clique a ligar e compromissos para melhorar o atendimento ao cliente.
  • Crie fluxos de trabalho de interação interativos para autoatendimento aos clientes para casos de uso, como reservas de pedidos e atualizações, usando as ações Reproduzir (URL de áudio, Text-to-Speech e SSML) e Reconhecer (DTMF e voz).
  • Integre as suas aplicações de comunicação com Contact Centers e as suas redes telefónicas privadas utilizando o Roteamento Direto.
  • Proteja a identidade do seu cliente criando serviços de mascaramento de números para conectar compradores a vendedores ou usuários a fornecedores parceiros em sua plataforma.
  • Aumente o envolvimento criando programas automatizados de divulgação do cliente para marketing e atendimento ao cliente.
  • Analise em um processo pós-chamada suas gravações de áudio não misturadas para fins de garantia de qualidade.

A Automação de Chamadas dos Serviços de Comunicação do Azure pode ser usada para criar fluxos de trabalho de chamada para cenários de atendimento ao cliente, conforme descrito na arquitetura de alto nível. Você pode atender chamadas de entrada ou fazer chamadas de saída. Execute ações como reproduzir uma mensagem de boas-vindas, conectar o cliente a um agente ativo em um aplicativo cliente SDK de Chamada dos Serviços de Comunicação do Azure para responder à solicitação de chamada de entrada. Com suporte para PSTN ou Roteamento Direto dos Serviços de Comunicação do Azure, você pode conectar esse fluxo de trabalho de volta ao seu contact center.

Diagrama de fluxo de chamadas para um cenário de atendimento ao cliente.

Capacidades

A lista a seguir apresenta o conjunto de recursos que estão atualmente disponíveis nos SDKs de Automação de Chamadas dos Serviços de Comunicação do Azure.

Área de funcionalidades Funcionalidade .NET Java JavaScript Python
Cenários de pré-chamada Atender uma chamada um-para-um ✔️ ✔️ ✔️ ✔️
Atender uma chamada em grupo ✔️ ✔️ ✔️ ✔️
Fazer nova chamada de saída para um ou mais pontos de extremidade ✔️ ✔️ ✔️ ✔️
Redirecionar* (encaminhar) uma chamada para um ou mais pontos de extremidade ✔️ ✔️ ✔️ ✔️
Rejeitar uma chamada recebida ✔️ ✔️ ✔️ ✔️
Cenários de chamada intermediária Adicionar um ou mais pontos de extremidade a uma chamada existente ✔️ ✔️ ✔️ ✔️
Cancelar a adição de um ponto de extremidade a uma chamada existente ✔️ ✔️ ✔️ ✔️
Reproduzir áudio a partir de um ficheiro de áudio ✔️ ✔️ ✔️ ✔️
Reproduzir áudio usando conversão de texto em fala ✔️ ✔️ ✔️ ✔️
Reconhecer a entrada do usuário por meio do DTMF ✔️ ✔️ ✔️ ✔️
Reconhecer entradas de voz do usuário ✔️ ✔️ ✔️ ✔️
Iniciar o reconhecimento DTMF contínuo ✔️ ✔️ ✔️ ✔️
Interromper o reconhecimento contínuo de DTMF ✔️ ✔️ ✔️ ✔️
Enviar DTMF ✔️ ✔️ ✔️ ✔️
Participante mudo ✔️ ✔️ ✔️ ✔️
Remover um ou mais pontos de extremidade de uma chamada existente ✔️ ✔️ ✔️ ✔️
Transferência cega* uma chamada 1:1 para outro ponto final ✔️ ✔️ ✔️ ✔️
Transferência cega* de um participante de uma chamada de grupo para outro endpoint ✔️ ✔️ ✔️ ✔️
Desligue uma chamada (remova o trecho da chamada) ✔️ ✔️ ✔️ ✔️
Encerrar uma chamada (remover todos os participantes e encerrar chamada) ✔️ ✔️ ✔️ ✔️
Cancelar operações de mídia ✔️ ✔️ ✔️ ✔️
Compartilhe informações personalizadas (via cabeçalhos VOIP ou SIP) com pontos de extremidade ao adicioná-los a uma chamada ou transferir uma chamada para eles ✔️ ✔️ ✔️ ✔️
Cenários de consulta Obter o estado da chamada ✔️ ✔️ ✔️ ✔️
Obter um participante numa chamada ✔️ ✔️ ✔️ ✔️
Listar todos os participantes de uma chamada ✔️ ✔️ ✔️ ✔️
Gravação de Chamadas Iniciar/pausar/retomar/parar a gravação ✔️ ✔️ ✔️ ✔️

*A transferência ou o redirecionamento de uma chamada VoIP para um número de telefone não é suportada no momento.

Arquitetura

A Automação de Chamadas usa uma interface de API REST para receber solicitações e fornecer respostas a todas as ações executadas dentro do serviço. Devido à natureza assíncrona da chamada, a maioria das ações tem eventos correspondentes que são acionados quando a ação é concluída com êxito ou falha.

Os Serviços de Comunicação do Azure usam a Grade de Eventos para fornecer o evento IncomingCall e Webhooks HTTPS para todos os retornos de chamada de ação intermediária.

Captura de tela do fluxo para chamadas e ações recebidas.

Ações de chamada

Ações de pré-chamada

Essas ações são executadas antes que o ponto de extremidade de destino listado na notificação de evento IncomingCall seja conectado. Os eventos de retorno de chamada do gancho da Web comunicam apenas a ação de pré-chamada "responder", não para ações de rejeição ou redirecionamento.

Resposta Usando o evento IncomingCall da Grade de Eventos e do SDK de Automação de Chamadas, uma chamada pode ser atendida pelo seu aplicativo. Essa ação permite cenários de IVR em que seu aplicativo pode responder programaticamente a chamadas PSTN de entrada. Outros cenários incluem atender uma chamada em nome de um usuário.

Rejeitar Para rejeitar uma chamada significa que seu aplicativo pode receber o evento IncomingCall e impedir que a chamada seja conectada ao ponto de extremidade de destino.

Redirecionamento Usando o evento IncomingCall da Grade de Eventos, uma chamada pode ser redirecionada para um ou mais pontos de extremidade, criando um cenário de toque único ou simultâneo (sim-ring). A ação de redirecionamento não atende a chamada, a chamada é simplesmente redirecionada ou encaminhada para outro ponto de extremidade de destino para ser atendida.

Criar chamada A ação Criar chamada pode ser usada para fazer chamadas de saída para números de telefone e para outros usuários de comunicação. Os casos de uso incluem seu aplicativo fazendo chamadas de saída para informar proativamente os usuários sobre uma interrupção ou notificar sobre uma atualização de pedido.

Ações intermédias

Essas ações podem ser executadas nas chamadas atendidas ou feitas usando SDKs de automação de chamadas. Cada ação de chamada intermediária tem um evento de retorno de chamada de gancho da Web de sucesso ou falha correspondente.

Adicionar/Remover participante(s) Um ou mais participantes podem ser adicionados em uma única solicitação, sendo cada participante uma variação dos pontos de extremidade de destino suportados. Um retorno de chamada de gancho da Web é enviado para cada participante adicionado com êxito à chamada.

Reproduzir Quando seu aplicativo atende uma chamada ou faz uma chamada de saída, você pode reproduzir um prompt de áudio para o chamador. Esse áudio pode ser reproduzido em loop, se necessário, em cenários como a reprodução de música em espera. Para saber mais, veja nossos conceitos e guia de instruções para Personalizar prompts de voz para usuários com a ação Jogar.

Reconhecer entrada Depois que seu aplicativo tiver reproduzido um prompt de áudio, você poderá solicitar a entrada do usuário para impulsionar a lógica de negócios e a navegação em seu aplicativo. Para saber mais, veja nossos conceitos e guia de instruções para Coleta de informações do usuário.

Reconhecimento DTMF contínuo Quando seu aplicativo precisa ser capaz de receber tons DTMF em qualquer ponto da chamada sem que o aplicativo precise acionar uma ação de reconhecimento específica. Isso pode ser útil em cenários em que um agente está em uma chamada e precisa que o usuário insira algum tipo de ID ou número de rastreamento. Para saber mais sobre como usar isso, veja nosso guia.

Enviar DTMF Quando seu aplicativo precisa enviar tons DTMF para um participante externo, isso pode ser para fins como discar para um agente externo e fornecer o número da extensão, ou algo como navegar em um menu IVR externo.

Silenciar Seu aplicativo pode silenciar determinados usuários com base em sua lógica de negócios. O usuário precisaria então desativar o som manualmente se quiser falar.

Transferência Quando seu aplicativo atende uma chamada ou faz uma chamada de saída para um ponto de extremidade, essa chamada pode ser transferida para outro ponto de extremidade de destino. A transferência de uma chamada 1:1 remove a capacidade do aplicativo de controlar a chamada usando os SDKs de automação de chamadas.

Gravar Você decide quando iniciar/pausar/retomar/parar a gravação com base na lógica de negócios do aplicativo ou pode conceder controle ao usuário final para acionar essas ações. Para saber mais, veja nossos conceitos e início rápido.

Desligamento Quando seu aplicativo atende a uma chamada um-para-um, a ação de desligamento remove o trecho da chamada e encerra a chamada com o outro ponto de extremidade. Se houver mais de dois participantes na chamada (chamada em grupo), executar uma ação de 'desligar' remove o ponto de extremidade do seu aplicativo da chamada de grupo.

Encerrar Se o seu aplicativo respondeu a uma chamada individual ou em grupo, ou fez uma chamada de saída com um ou mais participantes, essa ação remove todos os participantes e encerra a chamada. Esta operação é acionada pela definição forEveryOne da propriedade como true na ação de chamada Hang-Up.

Cancelar operações de mídia Com base na lógica de negócios, seu aplicativo pode precisar cancelar operações de mídia em andamento e enfileiradas. Dependendo da operação de mídia cancelada e das operações na fila, você receberá um evento webhook indicando que a ação foi cancelada.

Cenários de consulta

Listar participantes Devolve uma lista de todos os participantes numa chamada. Os bots de gravação e transcrição são omitidos desta lista.

Evento

A tabela a seguir descreve os eventos atuais emitidos pelos Serviços de Comunicação do Azure. As duas tabelas a seguir descrevem os eventos emitidos pela Grade de Eventos e pela Automação de Chamadas como eventos de webhook.

Eventos da Grade de Eventos

A maioria dos eventos enviados pelo Event Grid são agnósticos à plataforma, o que significa que são emitidos independentemente do SDK (Calling ou Call Automation). Embora você possa criar uma assinatura para qualquer evento, recomendamos que você use o evento IncomingCall para todos os casos de uso de Automação de Chamadas em que você deseja controlar a chamada programaticamente. Use os outros eventos para fins de relatório/telemetria.

Evento Descrição
IncomingCall Notificação de uma chamada para um utilizador de comunicação ou número de telefone
CallStarted Uma chamada é estabelecida (entrada ou saída)
CallEnded Uma chamada é encerrada e todos os participantes são removidos
ParticipanteAdicionado Um participante foi adicionado a uma chamada
ParticipanteRemovido Um participante foi removido de uma chamada
RecordingFileStatusUpdated Um arquivo de gravação está disponível

Leia mais sobre esses eventos e esquema de carga útil aqui

Eventos webhook de automação de chamadas

Os eventos de Automação de Chamadas são enviados para o URI de retorno de chamada de gancho da Web especificado quando você atende ou faz uma nova chamada de saída.

Evento Descrição
CallConnected O trecho de chamada do seu aplicativo está conectado (entrada ou saída)
CallDisconnected O trecho de chamada do seu aplicativo está desconectado
CallTransferAccepted O trecho de chamada do seu aplicativo foi transferido para outro ponto de extremidade
CallTransferFailed A transferência do trecho de chamada do seu aplicativo falhou
AddParticipantSuccessful A sua candidatura adicionou um participante
AddParticipantFailed A sua candidatura não conseguiu adicionar um participante
CancelAddParticipantSucceeded A sua candidatura cancelada ao adicionar um participante
CancelAddParticipantFailed A sua candidatura não conseguiu cancelar a adição de um participante
RemoveParticipantSucceeded A sua candidatura removeu com sucesso um participante da chamada.
RemoveParticipantFailed A sua candidatura não conseguiu remover um participante da chamada.
ParticipantesAtualizado O status de um participante foi alterado enquanto o trecho de chamada do seu aplicativo estava conectado a uma chamada
JogarConcluído Seu aplicativo reproduziu com sucesso o arquivo de áudio fornecido
PlayFailed A sua aplicação não conseguiu reproduzir áudio
JogarCancelado A ação de jogo solicitada foi cancelada
ReconheçaConcluído O reconhecimento da entrada do usuário foi concluído com sucesso
RecognizeCanceled A ação de reconhecimento solicitada foi cancelada
RecognizeFailed O reconhecimento da entrada do usuário não foi bem-sucedido
Para saber mais sobre Reconhecer Eventos de Ação, consulte nosso guia de instruções para coletar informações do usuário
RecordingStateChanged O status da ação de gravação mudou de ativo para inativo ou vice-versa
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition concluído com sucesso e um tom DTMF foi recebido do participante
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition concluído, mas ocorreu um erro ao manipular um tom DTMF do participante
ContinuousDtmfRecognitionStopped StopContinuousRecognition executado com sucesso
SendDtmfConcluído SendDTMF concluído com sucesso e os tons DTMF foram enviados para o participante alvo
SendDtmfFailed Ocorreu um erro ao enviar os tons DTMF

Para entender quais eventos são publicados para diferentes ações, consulte este guia que fornece exemplos de código e diagramas de sequência para vários fluxos de controle de chamada.

Ao reconhecer eventos de retorno de chamada, é uma prática recomendada responder com códigos de status HTTP padrão, como 200 OK. Informações detalhadas são desnecessárias e são mais adequadas para seus processos de depuração.

Para saber como proteger a entrega do evento de retorno de chamada, consulte este guia.

Operação Callback Uri

É um parâmetro opcional em algumas APIs de chamada intermediária que usam eventos como suas respostas assíncronas. Por padrão, todos os eventos são enviados para o Uri de retorno de chamada padrão definido pela API CreateCall / AnswerCall quando o usuário estabelece uma chamada. Com o uso do Uri de retorno de chamada da operação, os eventos correspondentes dessa solicitação individual (única vez) serão enviados para o novo Uri.

API suportada Evento correspondente
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted / CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded / CancelAddParticipantFailed
Reproduzir PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted / RecognizeFailed / RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed

Próximos passos

Aqui estão alguns artigos de seu interesse: