Visão geral da automação de chamadas
A Automação de Chamadas dos Serviços de Comunicação do Azure fornece aos desenvolvedores a capacidade de criar fluxos de trabalho de chamadas inteligentes baseados em servidor e gravação de chamadas para voz e canais 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 e assim por diante) para orientar e controlar chamadas com base em sua lógica de negócios.
Casos comuns de utilização
Alguns dos casos de uso comuns que você pode criar usando a automação de chamadas:
- 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, Conversão de texto em fala 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.
Use a Automação de Chamadas dos Serviços de Comunicação do Azure 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 ou 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.
Capacidades
Os seguintes recursos 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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Conectar-se a uma chamada ou sala em andamento | ✔️ | ✔️ | ✔️ | ✔️ | |
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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Iniciar/Parar streaming de áudio (pré-visualização pública) | ✔️ | ✔️ | ✔️ | ✔️ | |
Iniciar/Parar transcrição em tempo real (pré-visualização pública) | ✔️ | ✔️ | ✔️ | ✔️ | |
Remover um ou mais pontos de extremidade de uma chamada existente | ✔️ | ✔️ | ✔️ | ✔️ | |
Transferência cega de uma chamada 1:1 para outro ponto final | ✔️ | ✔️ | ✔️ | ✔️ | |
Transferência cega de um participante de uma chamada de grupo para outro ponto final | ✔️ | ✔️ | ✔️ | ✔️ | |
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 | ✔️ | ✔️ | ✔️ | ✔️ |
* O redirecionamento de uma chamada VoIP para um número de telefone não é suportado.
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.
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 IncomingCall
evento seja conectado. Os eventos de retorno de chamada do gancho da Web comunicam apenas a ação de answer
pré-chamada, não para reject
ou redirect
ações.
Resposta – Usando o evento IncomingCall do Event Grid e do SDK de automação de chamadas, seu aplicativo pode atender uma chamada. Use essa ação em 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 – Rejeitar uma chamada significa que seu aplicativo pode receber o IncomingCall
evento e impedir que a chamada seja conectada ao ponto de extremidade de destino.
Redirecionamento – Usando o IncomingCall
evento da Grade de Eventos, você pode redirecionar uma chamada para outro ponto de extremidade. A ação de redirecionamento não atende a chamada. A chamada é redirecionada ou encaminhada para outro ponto de extremidade de destino para ser atendida.
Criar chamada - Use a ação Criar chamada para fazer chamadas de saída para números de telefone e 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.
Conectar chamada - Use a ação Conectar chamada para se conectar a uma chamada em andamento e executar ações de chamada nela. Você também pode usar essa ação para conectar e gerenciar uma chamada de Salas programaticamente, como executar discagens PSTN para Sala usando seu serviço.
Ações intermédias
Seu aplicativo pode executar essas ações em 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) – Você pode adicionar um ou mais participantes 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, consulte Reproduzir áudio em chamadas e Personalizar comandos de voz para utilizadores com a ação Reproduzir.
Reconhecer entrada – Depois que seu aplicativo reproduzir 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, consulte Coletando entrada do usuário e o guia de instruções Reunir entrada do usuário com a ação Reconhecer.
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. Essa capacidade 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, consulte Como controlar ações de mídia no meio da chamada.
Enviar DTMF – Quando a sua candidatura precisa de enviar tons DTMF a um participante externo. Use esta ação para discar para um agente externo e fornecer o número do ramal ou navegar em um menu IVR externo.
Mudo – 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 seu 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 responde 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 – Quer seu aplicativo responda a uma chamada individual ou em grupo, ou faça 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 definindo a forEveryOne
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 em fila. Dependendo da operação de mídia cancelada e das operações em fila, seu aplicativo pode receber um evento webhook indicando que a ação foi cancelada.
Iniciar/Parar streaming de áudio (pré-visualização pública) - O streaming de áudio permite-lhe subscrever fluxos de áudio em tempo real a partir de uma chamada em curso. Para obter orientações mais detalhadas sobre como começar a usar streaming de áudio e informações sobre eventos de retorno de chamada de streaming de áudio, consulte nosso conceito e nosso guia de início rápido.
Iniciar/parar transcrição em tempo real (visualização pública) - A transcrição em tempo real permite que você acesse transcrições ao vivo para o áudio de uma chamada em andamento. Para obter orientações mais detalhadas sobre como começar a usar a transcrição em tempo real e informações sobre eventos de retorno de chamada de transcrição em tempo real, consulte nosso conceito e nosso guia de início rápido.
Cenários de consulta
Listar participantes – Retorna uma lista de todos os participantes de uma 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 em relação à plataforma. Eles são enviados independentemente do SDK (Calling ou Call Automation). Embora você possa criar uma assinatura para qualquer evento, recomendamos usar o IncomingCall
evento 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 usuário de comunicação ou número de telefone. |
CallStarted |
Estabelecida uma chamada (entrada ou saída). |
CallEnded |
Encerrou uma chamada e removeu todos os participantes. |
ParticipantAdded |
Adicionado um participante a uma chamada. |
ParticipantRemoved |
Removido um participante de uma chamada. |
RecordingFileStatusUpdated |
Um arquivo de gravação está disponível. |
Leia mais sobre esses eventos e esquema de carga útil nos Serviços de Comunicação do Azure - Eventos de chamadas de voz e vídeo
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 |
A chamada foi iniciada com êxito (ao usar Answer ou Create ação) ou seu aplicativo conectado com êxito a uma chamada em andamento (ao usar Connect a ação). |
CallDisconnected |
Seu aplicativo foi desconectado da chamada. |
CreateCallFailed |
Seu aplicativo falhou ao criar a chamada. |
AnswerFailed |
A sua candidatura não conseguiu responder à chamada. |
ConnectFailed |
Seu aplicativo não conseguiu se conectar a uma chamada (somente para Connect ação de chamada). |
CallTransferAccepted |
Ação de transferência concluída com sucesso e o cessionário está conectado ao participante alvo. |
CallTransferFailed |
A ação de transferência falhou. |
AddParticipantSucceeded |
A sua candidatura adicionou com sucesso um participante à chamada. |
AddParticipantFailed |
A sua candidatura não conseguiu adicionar um participante à chamada (devido a um erro ou o participante não aceitou o convite) |
CancelAddParticipantSucceeded |
A sua candidatura cancelou um AddParticipant pedido com sucesso (o participante não foi adicionado à chamada). |
CancelAddParticipantFailed |
Seu aplicativo não pôde cancelar uma solicitação AddParticipant (isso pode ser porque a solicitação já foi processada). |
RemoveParticipantSucceeded |
A sua candidatura removeu com êxito um participante da chamada. |
RemoveParticipantFailed |
A sua candidatura não conseguiu remover um participante da chamada. |
ParticipantsUpdated |
O status de um participante foi alterado enquanto seu aplicativo estava conectado a uma chamada. |
PlayCompleted |
Seu aplicativo reproduziu com sucesso o arquivo de áudio fornecido. |
PlayFailed |
A sua aplicação não conseguiu reproduzir áudio. |
PlayCanceled |
A ação de jogo solicitada foi cancelada. |
RecognizeCompleted |
Reconhecimento da entrada do usuário concluído com sucesso. |
RecognizeCanceled |
A ação solicitada Recognize foi cancelada. |
RecognizeFailed |
O reconhecimento da entrada do usuário não foi bem-sucedido. Para obter mais informações sobre como reconhecer eventos de ação, consulte o guia de instruções para coletar a entrada 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 |
Executado StopContinuousRecognition com sucesso . |
SendDtmfCompleted |
SendDTMF concluído com sucesso e enviado tons DTMF para o participante alvo. |
SendDtmfFailed |
Ocorreu um erro ao enviar os tons DTMF. |
Para entender quais eventos são publicados para ações diferentes, consulte Ações para controle de chamada. O artigo fornece exemplos de código e diagramas de sequência para vários fluxos de controle de chamada.
Como prática recomendada ao reconhecer eventos de retorno de chamada, responda 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 Como proteger o ponto de extremidade do webhook.
URI de retorno de chamada de operação
O URI de retorno de chamada de operação é 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 por CreateCall
/ AnswerCall
eventos de API quando o usuário estabelece uma chamada. Usando o URI de retorno de chamada de operação, a API envia eventos correspondentes para essa solicitação individual (apenas uma vez) para o novo URI.
API suportada | Evento correspondente |
---|---|
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 |
Próximos passos
Artigos relacionados
- Entenda como seu recurso é cobrado por vários casos de uso de chamadas com exemplos.
- Consulte início rápido para fazer uma chamada de saída.
- Saiba mais sobre os logs operacionais e de uso publicados pela automação de chamadas.