Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 Rede Telefônica Pública Comutada (PSTN). Os SDKs, disponíveis em C#, Java, JavaScript e Python, usam um modelo de ação-evento para ajudar você a criar interações personalizadas com os clientes. Seus aplicativos de comunicação podem ouvir eventos de chamadas em tempo real e executar ações no plano de controle (como atender, transferir, reproduzir áudio, iniciar gravação e assim por diante) para direcionar e controlar chamadas com base na sua lógica de negócios.
Casos de uso comuns
Alguns dos casos de uso comuns que podem ser compilados usando a Automação de Chamadas incluem:
- Programar chamadas VoIP ou PSTN para fluxos de trabalho transacionais, como lembretes de clique para chamar e de compromissos para melhorar o atendimento ao cliente.
- Crie fluxos de interação interativos para que os clientes possam se autoatender em casos de uso, como registro e atualização de pedidos, usando as ações Play (URL de áudio, texto para fala e SSML) e Recognize (DTMF e voz).
- Integre seus aplicativos de comunicação às Centrais de Contato e suas redes de telefonia privadas usando o Roteamento Direto.
- Proteja a identidade do cliente criando serviços de mascaramento de número para conectar compradores a vendedores ou usuários a fornecedores parceiros em sua plataforma.
- Aumente o envolvimento criando programas automatizados de alcance 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 abaixo. Você pode atender a 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 humano em um aplicativo cliente do SDK de Chamada dos Serviços de Comunicação do Azure para atender à solicitação de chamada de entrada. Com suporte para PSTN dos Serviços de Comunicação do Azure ou Roteamento Direto, você pode conectar esse fluxo de trabalho de volta à sua central de contatos.
Funcionalidades
Os recursos a seguir estão disponíveis atualmente nos SDKs de Automação de Chamadas dos Serviços de Comunicação do Azure.
| Área de funcionalidades | Capacidade | .NET | Java | JavaScript | Python |
|---|---|---|---|---|---|
| Cenários de pré-chamada | Atender a uma chamada individual | ✔️ | ✔️ | ✔️ | ✔️ |
| Atender a uma chamada em grupo | ✔️ | ✔️ | ✔️ | ✔️ | |
| Iniciar nova chamada de saída para um ou mais terminais | ✔️ | ✔️ | ✔️ | ✔️ | |
| Redirecionar* (encaminhar) uma chamada para um ou mais terminais | ✔️ | ✔️ | ✔️ | ✔️ | |
| Rejeitar uma chamada de entrada | ✔️ | ✔️ | ✔️ | ✔️ | |
| Conectar-se a uma chamada ou sala em andamento | ✔️ | ✔️ | ✔️ | ✔️ | |
| Cenários de chamada intermediária | Adicionar um ou mais endpoints a uma chamada existente | ✔️ | ✔️ | ✔️ | ✔️ |
| Cancelar a adição de um endpoint a uma chamada existente | ✔️ | ✔️ | ✔️ | ✔️ | |
| Reproduzir áudio de um arquivo de áudio | ✔️ | ✔️ | ✔️ | ✔️ | |
| Reproduzir áudio usando a conversão de texto em fala | ✔️ | ✔️ | ✔️ | ✔️ | |
| Reconhecer a entrada de usuário por meio do DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
| Reconhecer entradas de voz do usuário | ✔️ | ✔️ | ✔️ | ✔️ | |
| Iniciar o reconhecimento contínuo de DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
| Parar o reconhecimento contínuo de DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
| Enviar DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ativar mudo para participante | ✔️ | ✔️ | ✔️ | ✔️ | |
| Colocar participante em espera | ✔️ | ✔️ | ✔️ | ✔️ | |
| Tirar participante da espera | ✔️ | ✔️ | ✔️ | ✔️ | |
| Iniciar/Parar streaming de áudio | ✔️ | ✔️ | ✔️ | ✔️ | |
| Iniciar/Parar transcrição em tempo real | ✔️ | ✔️ | ✔️ | ✔️ | |
| Remover um ou mais pontos de extremidade de uma chamada existente | ✔️ | ✔️ | ✔️ | ✔️ | |
| Fazer uma transferência cega* de uma chamada individual para outro ponto de extremidade | ✔️ | ✔️ | ✔️ | ✔️ | |
| Fazer uma transferência cega de um participante da chamada em grupo para outro ponto de extremidade | ✔️ | ✔️ | ✔️ | ✔️ | |
| Desligar uma chamada (remover o segmento de chamada) | ✔️ | ✔️ | ✔️ | ✔️ | |
| Encerrar uma chamada (remover todos os participantes e encerrar chamada) | ✔️ | ✔️ | ✔️ | ✔️ | |
| Cancelar operações de mídia | ✔️ | ✔️ | ✔️ | ✔️ | |
| Compartilhar informações personalizadas (por meio de cabeçalhos VOIP ou SIP) com pontos de extremidade ao adicioná-los a uma chamada ou transferir uma chamada para eles | ✔️ | ✔️ | ✔️ | ✔️ | |
| Mover um participante para outra chamada | ✔️ | ✔️ | ✔️ | ✔️ | |
| Cenários de consulta | Obter o estado da chamada | ✔️ | ✔️ | ✔️ | ✔️ |
| Receber um participante em uma chamada | ✔️ | ✔️ | ✔️ | ✔️ | |
| Listar todos os participantes de uma chamada | ✔️ | ✔️ | ✔️ | ✔️ | |
| Gravação de chamada | Iniciar/pausar/retomar/parar gravação | ✔️ | ✔️ | ✔️ | ✔️ |
* Não há suporte para o redirecionamento de uma chamada VoIP para um número de telefone.
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 no serviço. Devido à natureza assíncrona da chamada, a maioria das ações tem eventos correspondentes que são disparados quando a ação é concluída com êxito ou quando 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 para chamada intermediária.
Ações de chamada telefônica
Ações antes da chamada
Essas ações são executadas antes que o ponto de extremidade de destino listado na notificação de evento IncomingCall esteja conectado. Os eventos de callback do webhook informam apenas a ação de pré-chamada answer, e não as ações reject ou redirect.
Responder – Usando o evento IncomingCall da Grade de Eventos e do SDK de Automação de Chamadas, seu aplicativo pode atender a uma chamada. Use essa ação em cenários de IVR em que seu aplicativo pode atender programaticamente a chamadas PSTN de entrada. Outros cenários incluem atender a uma chamada em nome de um usuário.
Recusar – recusar 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, você pode redirecionar uma chamada para outro ponto de extremidade. A ação de redirecionamento não atende à chamada. A chamada é redirecionada ou encaminhada para outro destino para ser atendida.
Criar chamada - Use a ação Criar chamada 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 fazer 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 realizar ações de chamada nela. Também é possível usar essa ação para conectar e gerenciar uma chamada do Rooms programaticamente, como realizar chamadas de saída via PSTN para o Rooms usando seu serviço.
Note
Diretrizes de armazenamento e formatos de identificador
Serviços de Comunicação do Azure expõe duas categorias de identificadores em uma chamada:
-
Identificadores GUID de comprimento fixo —
CallConnectionIdeCorrelationIdestão no formato GUID e têm um comprimento fixo e estável (36 caracteres na forma padrão de string GUID). -
Identificadores codificados em Base64 de comprimento variável —
ServerCallId(Automação de Chamadas, Gravação de Chamadas) erecordingId(Gravação de Chamadas) são cadeias de caracteres opacas codificadas em Base64 cujo comprimento pode variar entre chamadas e pode mudar ao longo do tempo à medida que o serviço evolui.
Ao persistir ServerCallId ou recordingId, use uma coluna de string de comprimento variável e sem limite. Evite tipos de coluna de largura fixa, como VARCHAR(200), pois o tamanho atualmente observado não é garantido e pode aumentar em versões futuras. Trate ambos os valores como tokens opacos – não analise, decodize ou derive significado de seu conteúdo.
Ações durante a chamada
Seu aplicativo pode executar essas ações em chamadas atendidas ou colocadas usando SDKs de Automação de Chamadas. Cada ação de chamada intermediária tem um evento de retorno de chamada de web hook de êxito ou de falha correspondente.
Adicionar/Remover participantes – você pode adicionar um ou mais participantes em apenas uma solicitação, sendo cada participante uma variação de pontos de extremidade de destino com suporte. Um retorno de chamada do web hook é enviado para cada participante adicionado com êxito à chamada.
Reproduzir – quando o aplicativo atende a uma chamada ou faz uma chamada de saída, você pode reproduzir um prompt de áudio para o chamador. Esse áudio pode ser colocado em loop, se necessário, em cenários como tocar música de espera. Para saber mais, confira Reproduzindo áudio em chamadas e Personalizando prompts de voz para usuários com a ação Reproduzir.
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, consulte Coletar entrada do usuário e o guia prático Coletar entrada do usuário com a ação Recognize.
Reconhecimento contínuo de DTMF – quando seu aplicativo precisa ser capaz de receber tons DTMF a qualquer momento na chamada sem que o aplicativo precise disparar uma ação de reconhecimento específica. Essa habilidade 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 acompanhamento. Para saber mais, confira Como controlar ações de mídia de chamada intermediária.
Enviar DTMF – quando seu aplicativo precisar enviar tons DTMF para um participante externo. Use essa ação para discar para um agente externo e fornecer o número de extensão ou navegar em um menu IVR externo.
Silenciar – Seu aplicativo pode silenciar determinados usuários com base na sua lógica de negócio. Em seguida, o usuário precisará se desativar mudo manualmente se quiser falar.
Transferência – quando o aplicativo atende a 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 individual removerá a capacidade do seu 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 disparar essas ações. Para saber mais, veja nossos conceitos e início rápido.
Desligar – quando seu aplicativo atende a uma chamada individual, a ação de desligar removerá o segmento de chamada e encerrará a chamada com o outro ponto de extremidade. Se houver mais de dois participantes na chamada (chamada em grupo), a execução de uma ação de “desligar” removerá o ponto de extremidade do seu aplicativo da chamada em grupo.
Encerrar – se seu aplicativo tiver respondido a uma chamada individual ou em grupo ou feito uma chamada de saída com um ou mais participantes, essa ação removerá todos os participantes e encerrará a chamada. Essa operação é acionada ao definir a propriedade forEveryOne como true na ação de desligar a chamada.
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 na fila. Dependendo da operação de mídia cancelada e das operações que estão na fila, seu aplicativo poderá receber um evento de webhook indicando que a ação foi cancelada.
Iniciar/Parar streaming de áudio – o streaming de áudio permite que você assine fluxos de áudio em tempo real de uma chamada em andamento. Para obter diretrizes mais detalhadas sobre como começar a usar a transmissão de áudio e informações sobre eventos de retorno de chamada de transmissão de áudio, consulte nosso conceito e nosso início rápido.
Iniciar/Parar transcrição em tempo real – A transcrição em tempo real permite que você acesse transcrições ao vivo para o áudio de uma chamada em andamento. Para obter diretrizes 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 início rápido.
Mover um participante para outra chamada – quando seu aplicativo precisa mover um participante de uma chamada contínua para outra usando a MoveParticipants API. Isso permite o roteamento dinâmico e a orquestração de chamadas flexíveis, como mover um tradutor para uma chamada médico-paciente ou transferir um cliente de uma chamada de lobby para uma chamada de suporte ativa. Para saber mais, confira Como controlar e orientar chamadas.
Cenários de consulta
Participantes da lista – retorna uma lista de todos os participantes em uma chamada. Os bots de gravação e transcrição foram omitidos dessa lista.
Eventos
A tabela a seguir descreve os eventos atuais emitidos pelo Serviços de Comunicação do Azure. As duas tabelas a seguir descrevem os eventos de webhook emitidos pelo Event Grid e pela Automação de Chamadas.
Eventos do Event Grid
A maioria dos eventos enviados pela Grade de Eventos são independentes da plataforma. Eles são enviados 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 da 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 |
Estabeleceu uma chamada (de entrada ou saída). |
CallEnded |
Encerrou uma chamada e removeu todos os participantes. |
ParticipantAdded |
Adicionou um participante a uma chamada. |
ParticipantRemoved |
Removeu um participante de uma chamada. |
RecordingFileStatusUpdated |
Um arquivo de gravação está disponível. |
Leia mais sobre esses eventos e esquema de conteúdo nos Serviços de Comunicação do Azure – Eventos de chamada de voz e vídeo
Eventos de webhook da Automação de Chamadas
Os eventos de Automação de Chamadas são enviados para o URI de retorno de chamada do web hook especificado quando você atende ou faz uma nova chamada de saída.
| Evento | Descrição |
|---|---|
CallConnected |
A chamada foi iniciada com sucesso (ao usar a ação Answer ou Create) ou seu aplicativo foi conectado com sucesso a uma chamada em andamento (ao usar a ação Connect). |
CallDisconnected |
Seu aplicativo foi desconectado da chamada. |
CreateCallFailed |
O aplicativo falhou ao criar a chamada. |
AnswerFailed |
O aplicativo falhou ao responder a chamada. |
ConnectFailed |
Seu aplicativo não conseguiu se conectar a uma chamada (somente para ação de chamada Connect). |
CallTransferAccepted |
Ação de transferência concluída com sucesso e o cessionário está conectado ao participante de destino. |
CallTransferFailed |
A ação de transferência falhou. |
AddParticipantSucceeded |
Seu aplicativo adicionou com sucesso um participante à chamada. |
AddParticipantFailed |
Seu aplicativo não conseguiu adicionar um participante à chamada (devido a um erro ou o participante não aceitou o convite) |
CancelAddParticipantSucceeded |
Seu aplicativo cancelou uma solicitação de AddParticipant com sucesso (o participante não foi adicionado à chamada). |
CancelAddParticipantFailed |
Seu aplicativo não conseguiu cancelar uma solicitação AddParticipant (isso pode ocorrer porque a solicitação já foi processada). |
RemoveParticipantSucceeded |
Seu aplicativo removeu com sucesso um participante da chamada. |
RemoveParticipantFailed |
Seu aplicativo 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 |
Seu aplicativo falhou ao reproduzir áudio. |
PlayCanceled |
A ação de jogo solicitada foi cancelada. |
RecognizeCompleted |
O reconhecimento da entrada do usuário foi concluído com êxito. |
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 eventos de ação de reconhecimento, veja o guia prático 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 foi concluído e um tom DTMF foi recebido do participante. |
ContinuousDtmfRecognitionToneFailed |
StartContinuousDtmfRecognition foi concluído, mas ocorreu um erro ao processar um tom DTMF do participante. |
ContinuousDtmfRecognitionStopped |
Executado com sucesso StopContinuousRecognition. |
SendDtmfCompleted |
SendDTMF foi concluído e enviou tons DTMF para o participante de destino. |
SendDtmfFailed |
Ocorreu um erro ao enviar os tons DTMF. |
Para entender quais eventos são publicados para ações diferentes, confira 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 não são necessárias e são mais adequadas para os processos de depuração.
Para saber como proteger a entrega de eventos de callback, consulte Como proteger o endpoint do webhook.
URI de retorno de chamada de operação
A URI de retorno de chamada de operação é um parâmetro opcional em algumas APIs de chamada em andamento que usam eventos como respostas assíncronas. Por padrão, todos os eventos são enviados para o URI de retorno de chamada padrão definido por eventos de API CreateCall / AnswerCall quando o usuário estabelece uma chamada. Usando o URI de callback da operação, a API envia os eventos correspondentes desta solicitação específica (executada 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óximas etapas
Artigos relacionados
- Entenda como seu recurso será cobrado por vários casos de uso de chamada com exemplos.
- Consulte o guia de início rápido para realizar uma chamada de saída.
- Saiba mais sobre logs de uso e operacionais gerados pela automação de chamadas.