azure-communication-callautomation-java
Ajuda seu agente a criar fluxos de automação de chamadas. Ele pode gerenciar sistemas de URA, roteamento e interações com IA.
O que ela faz
Esta ferramenta permite que você crie sistemas de atendimento telefônico automatizados. Você pode fazer chamadas, atender chamadas recebidas, reproduzir áudio, reconhecer o que as pessoas dizem ou digitam e gravar chamadas.
Quando usar
- ✓Criar um sistema de URA (Unidade de Resposta Audível) para sua empresa.
- ✓Automatizar o envio de notificações por voz para clientes.
- ✓Gravar chamadas de atendimento ao cliente para controle de qualidade.
Exemplo do que pedir para a IA
“Crie um sistema de atendimento telefônico que cumprimenta o cliente, pergunta o motivo do contato e o transfere para o departamento correto.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você escreve o código que usa esta ferramenta para definir o fluxo da chamada. A ferramenta cuida de fazer as chamadas, ouvir as respostas e executar as ações que você programou.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-communication-callautomation-javaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-communication-callautomation-java/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Automação de Chamadas do Azure Communication (Java)
Crie fluxos de trabalho de automação de chamadas no lado do servidor, incluindo sistemas de URA (Unidade de Resposta Audível), roteamento de chamadas, gravação e interações com inteligência artificial.
Instalação
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-callautomation</artifactId>
<version>1.6.0</version>
</dependency>
Criação do Cliente
import com.azure.communication.callautomation.CallAutomationClient;
import com.azure.communication.callautomation.CallAutomationClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;
// With DefaultAzureCredential
CallAutomationClient client = new CallAutomationClientBuilder()
.endpoint("https://<resource>.communication.azure.com")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// With connection string
CallAutomationClient client = new CallAutomationClientBuilder()
.connectionString("<connection-string>")
.buildClient();
Conceitos Chave
| Classe | Propósito |
|---|---|
CallAutomationClient |
Fazer chamadas, atender/rejeitar chamadas recebidas, redirecionar chamadas |
CallConnection |
Ações em chamadas estabelecidas (adicionar participantes, encerrar) |
CallMedia |
Operações de mídia (reproduzir áudio, reconhecer DTMF/voz) |
CallRecording |
Iniciar/parar/pausar gravação |
CallAutomationEventParser |
Analisar eventos de webhook do ACS |
Criar Chamada de Saída
import com.azure.communication.callautomation.models.*;
import com.azure.communication.common.CommunicationUserIdentifier;
import com.azure.communication.common.PhoneNumberIdentifier;
// Call to PSTN number
PhoneNumberIdentifier target = new PhoneNumberIdentifier("+14255551234");
PhoneNumberIdentifier caller = new PhoneNumberIdentifier("+14255550100");
CreateCallOptions options = new CreateCallOptions(
new CommunicationUserIdentifier("<user-id>"), // Source
List.of(target)) // Targets
.setSourceCallerId(caller)
.setCallbackUrl("https://your-app.com/api/callbacks");
CreateCallResult result = client.createCall(options);
String callConnectionId = result.getCallConnectionProperties().getCallConnectionId();
Atender Chamada Recebida
// From Event Grid webhook - IncomingCall event
String incomingCallContext = "<incoming-call-context-from-event>";
AnswerCallOptions options = new AnswerCallOptions(
incomingCallContext,
"https://your-app.com/api/callbacks");
AnswerCallResult result = client.answerCall(options);
CallConnection callConnection = result.getCallConnection();
Reproduzir Áudio (Texto para Voz)
CallConnection callConnection = client.getCallConnection(callConnectionId);
CallMedia callMedia = callConnection.getCallMedia();
// Play text-to-speech
TextSource textSource = new TextSource()
.setText("Welcome to Contoso. Press 1 for sales, 2 for support.")
.setVoiceName("en-US-JennyNeural");
PlayOptions playOptions = new PlayOptions(
List.of(textSource),
List.of(new CommunicationUserIdentifier("<target-user>")));
callMedia.play(playOptions);
// Play audio file
FileSource fileSource = new FileSource()
.setUrl("https://storage.blob.core.windows.net/audio/greeting.wav");
callMedia.play(new PlayOptions(List.of(fileSource), List.of(target)));
Reconhecer Entrada DTMF
// Recognize DTMF tones
DtmfTone stopTones = DtmfTone.POUND;
CallMediaRecognizeDtmfOptions recognizeOptions = new CallMediaRecognizeDtmfOptions(
new CommunicationUserIdentifier("<target-user>"),
5) // Max tones to collect
.setInterToneTimeout(Duration.ofSeconds(5))
.setStopTones(List.of(stopTones))
.setInitialSilenceTimeout(Duration.ofSeconds(15))
.setPlayPrompt(new TextSource().setText("Enter your account number followed by pound."));
callMedia.startRecognizing(recognizeOptions);
Reconhecer Voz
// Speech recognition with AI
CallMediaRecognizeSpeechOptions speechOptions = new CallMediaRecognizeSpeechOptions(
new CommunicationUserIdentifier("<target-user>"))
.setEndSilenceTimeout(Duration.ofSeconds(2))
.setSpeechLanguage("en-US")
.setPlayPrompt(new TextSource().setText("How can I help you today?"));
callMedia.startRecognizing(speechOptions);
Gravação de Chamada
CallRecording callRecording = client.getCallRecording();
// Iniciar gravação
StartRecordingOptions recordingOptions = new StartRecordingOptions(
new ServerCallLocator("<server-call-id>"))
…
Perguntas frequentes
O que é URA?
URA significa Unidade de Resposta Audível. É um sistema que interage com humanos por meio de voz, tons de teclado ou ambos.
Como a IA é usada aqui?
A IA pode ser usada para entender o que as pessoas dizem durante uma chamada, permitindo interações mais naturais.
Preciso saber programar para usar isso?
Sim, esta ferramenta é para desenvolvedores que escrevem código para criar esses sistemas de automação de chamadas.
Detalhes
Descrição original do autor
Build server-side call automation workflows including IVR systems, call routing, recording, and AI-powered interactions.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2295
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark
Ajuda seu agente a medir a velocidade e a performance do código. É útil para garantir que as coisas estão rápidas e para encontrar problemas de lentidão.
affaan-m/ECC
content-hash-cache-pattern
Faz seu agente usar hashes de conteúdo para cachear resultados de processamento de arquivos. Isso evita processamento repetido e invalida o cache automaticamente quando o conteúdo muda. Útil para acelerar tarefas lentas.
affaan-m/ECC
parallel-execution-optimizer
Faz seu agente acelerar tarefas complexas dividindo-as em partes menores e executando-as em paralelo. Garante que tudo seja verificado ao final.
affaan-m/ECC