Crie um Agente de Voz OpenAI Realtime

Introdução

O exemplo openaivoiceagent.cs conecta uma chamada recebida no 3CX a uma sessão de voz com o OpenAI Realtime. Ele pode cumprimentar os chamadores, responder a perguntas gerais, pesquisar as entradas permitidas na lista de contatos do 3CX, conectar chamadores, oferecer correio de voz ou chat e salvar informações úteis sobre o chamador quando esse recurso estiver ativado.

O script também inclui uma ferramenta personalizada get_department_hours desativada, que demonstra como registrar uma função segura que pode ser chamada pela IA.

Este script requer uma licença da Edição IA 3CX, uma versão do PABX com o Update 10 e uma conta na API da OpenAI.

Crie o Script de Chamada no 3CX

  • Faça login no Console de Admin 3CX.
  • Acesse Integrações > Scripts de Chamada.
  • Selecione +Adicionar da Loja.

Lista de scripts 3CX na Loja, com openaivoiceagent.cs selecionado

  • Selecione o arquivo openaivoiceagent.cs.

Formulário Script de Chamada 3CX

  • Digite o nome do script em letras minúsculas e sem espaços; por exemplo, openaireception.
  • Selecione como o script será executado; no caso de uma recepcionista, atribua um número DID exclusivo ou encaminhe as chamadas de entrada correspondentes para o script.
  • Selecione o departamento responsável pelo script.
  • Confirme a seleção para abrir o editor de código.

Configure o OpenAI e o Script

Adicione os seguintes parâmetros ao PABX:

  • OPENAI_API_KEY — a chave de API do seu projeto OpenAI.
  • OPENAI_REALTIME_MODEL — o modelo OpenAI Realtime.

Deixe os campos ApiKeyOverride e ModelOverride em branco no script. Quando esses valores estão em branco, o script lê automaticamente a chave da API e o modelo a partir dos parâmetros do PABX.

Não insira a chave da API da OpenAI diretamente no script, especialmente se o script for compartilhado, exportado ou publicado. Um valor configurado em ApiKeyOverride ou ModelOverride tem precedência sobre o parâmetro correspondente do PABX.

Em seguida, verifique estas configurações do cliente na parte superior do arquivo openaivoiceagent.cs:

Cenário

Propósito

Valor de amostra

FallbackDestination

Rota utilizada quando a mídia ou a sessão de IA falha

102

VoiceName

Voz da OpenAI utilizada pelo agente

Coral

AgentName

Nome apresentado à sessão do provedor

Alex

AllowAllVisibilityForTesting

Exibe todos os objetos de diretório compatíveis

verdadeiro

VisibleNumbers

Ramais, filas ou grupos de chamadas aprovados

100, 102

VisibleDepartments

Departamentos que a IA pode pesquisar

Vendas, Suporte

VisibleRoles

Funções opcionais permitidas

vazio

AgentInstructions

Identidade da empresa, comportamento e regras de encaminhamento

Empresa de Exemplo

O AddAll() é prático para um teste inicial, mas normalmente deve ser desativado antes da entrada em produção. Defina AllowAllVisibilityForTesting como false e, em seguida, configure apenas os números, departamentos e funções de que o agente precisa.

Para habilitar a ferramenta personalizada de amostra, verifique sua resposta estática e remova o comentário:

RegisterExampleCustomTool();

Substitua o exemplo por uma fonte de dados confiável antes de utilizá-lo com informações reais de clientes.

Código C# do OpenAiVoiceAgentTemplate com FallbackDestination, VoiceName e configurações de visibilidade

Selecione Salvar para compilar. Confirme se a saída do script indica que a compilação foi bem-sucedida antes de direcionar o tráfego de produção.

Como Funciona

  • Uma chamada recebida é encaminhada ao ponto de encaminhamento do script.
  • O script limpa e recria a lista de visibilidade do diretório IA.
  • O 3CX prepara o canal de mídia.
  • O script inicia uma sessão de voz do OpenAI Realtime.
  • O agente utiliza apenas as funções integradas do 3CX e quaisquer ferramentas personalizadas registradas explicitamente.
  • Uma transferência bem-sucedida encaminha a chamada para o destino 3CX selecionado.
  • Se a configuração da mídia ou a sessão do provedor falhar, o script tenta o plano alternativo configurado e, em seguida, reproduz a mensagem de ERRO caso o encaminhamento também falhe.

Teste o Script

  • Ligue para o número DID atribuído e confirme a saudação e a voz selecionada.
  • Pesquise um ramal permitido por nome e número.
  • Confirme se os ramais ocultos não podem ser pesquisados nem selecionados.
  • Teste uma correspondência ambígua de diretório.
  • Comportamento de transferência de chamadas de teste, correio de voz para usuários indisponíveis e mensagens de chat.
  • Utilize uma chave de provedor inválida em um ambiente de teste e verifique o encaminhamento de fallback.
  • Encerre a conversa de forma natural e confirme a limpeza da sessão.

Solução de Problemas

  • Falha na sessão do provedor: Verifique o OPENAI_API_KEY, o modelo em tempo real compatível, o acesso à rede, o licenciamento e a versão do PABX de destino.
  • O agente não consegue localizar um usuário: Verifique as opções AllowAllVisibilityForTesting, VisibleNumbers, VisibleDepartments e VisibleRoles.
  • Estão visíveis os objetos errados: Chame Clear() antes de adicionar a lista de visibilidade de produção e evite usar AddAll().
  • O mecanismo de fallback não funciona: Verifique se o destino existe e se pode ser acessado a partir do departamento designado.
  • Não é ouvida nenhuma mensagem de erro: Confirme se existe “ERROR” no conjunto de mensagens ativo.

Veja Também

Última Atualização

Este guia foi atualizado pela última vez em 30 de julho de 2026

https://www.3cx.com.br/docs/open-ai-voice-agent/