Documentacao de interligacao do Asterisk ao ErixVoice
Guia passo a passo para conectar qualquer servidor Asterisk ao portal ErixVoice e ativar o atendimento telefonico com Inteligencia Artificial (ASR + TTS + LLM).
Nesta pagina
1. Visao geral da integracao 2. Requisitos minimos 3. Parametros de conexao 4. extensions.conf 5. manager.conf 6. ari.conf 7. http.conf 8. Reiniciando o Asterisk 9. Boas praticas de seguranca 10. Solucao de problemas1 Visao geral da integracao
O AgenteIA conecta o seu Asterisk ao portal ErixVoice. O portal concentra as tecnologias de ASR (reconhecimento de voz), TTS (sintese de voz) e LLM (modelo de linguagem) e realiza todo o trabalho de comunicacao entre o Asterisk e a Inteligencia Artificial.
Fluxo da chamada:
- Uma chamada entra no contexto
agenteiado dialplan do Asterisk. - O Asterisk solicita ao portal ErixVoice uma sessao de conversa usando o
AGENT_IDe aAPI_KEY. - O portal devolve um endereco de sessao e o Asterisk abre um
AudioSocketcom o portal (padrao, porta4573). - O ErixVoice escuta (ASR), processa e decide (LLM) e responde por voz (TTS) em tempo real.
- A chamada pode ser encerrada ou transferida para atendimento humano via contexto de transferencia.
2 Requisitos minimos
| Item | Exigencia |
|---|---|
| Asterisk | Asterisk 13+ com modulos curl, func_curl e res_http |
| AudioSocket | O modulo res_audiosocket precisa estar carregado |
| Protocolo | Comunicao com o portal via HTTPS (API REST) e AudioSocket na porta 4573 |
| Credenciais | AGENT_ID e API_KEY fornecidos na ativacao |
| Exercito | PBX Erix Nuclear, Erix Multitenant ou qualquer distribuicao Asterisk |
Verifique os modulos com: asterisk -rx "module show like curl" e asterisk -rx "module show like audiosocket".
3 Parametros de conexao
| Parametro | Descricao |
|---|---|
PBXERIX_URL | Endereco do portal ErixVoice (ex.: https://erixvoice.pbxerix.com.br) |
API_KEY | Chave de acesso do portal. Identifica e autoriza o seu PABX. |
AGENT_ID | Numero identificador do agente criado no portal. |
NOME | Nome exibido pelo agente (parametrizado no portal). |
EXTRA1..6 | Variaveis de contexto enviadas ao agente (contrato, convenio, origem...). |
Porta 4573 | Porta do AudioSocket para transporte do audio da conversa. |
4 extensions.conf
Adicione o bloco abaixo ao seu /etc/asterisk/extensions.conf. Substitua os valores vazios pelas suas credenciais.
; ========================================================== ; AGENTEIA — Atendimento telefonico com Inteligencia Artificial ; ========================================================== [general] PBXERIX_URL= ; ex: https://erixvoice.pbxerix.com.br API_KEY= ; sua chave de acesso do portal ErixVoice AGENT_ID= ; id do agente (ex: 12) ; Contexto que recebe as chamadas do agente IA [agenteia] exten => _X.,1,Answer() same => n,Set(NOME=jroberto carlos) ; nome do atendente / assistente same => n,Set(EXTRA1=variavel 1) ; variaveis extras (contrato, convenio...) same => n,Set(EXTRA2=${EXTRA2}) same => n,Set(EXTRA3=${EXTRA3}) same => n,Set(EXTRA4=${EXTRA4}) same => n,Set(EXTRA5=${EXTRA5}) same => n,Set(EXTRA6=${EXTRA6}) same => n,Set(NOME=${URIENCODE(${NOME})}) same => n,Set(EXTRA1=${URIENCODE(${EXTRA1})}) same => n,Noop(${PBXERIX_URL}.....${AGENT_ID}.......${API_KEY}) same => n,Set(CTX=${CURL(${PBXERIX_URL}/v1/talk/asterisk/call/${AGENT_ID}?from=${CALLERID(num)}&NOME=${NOME}&EXTRA1=${EXTRA1}&EXTRA2=${EXTRA2}&EXTRA3=${EXTRA3}&EXTRA4=${EXTRA4}&EXTRA5=${EXTRA5}&EXTRA6=${EXTRA6}&x-api-key=${API_KEY})}) same => n,Set(PBXERIX_HOST=${CUT(PBXERIX_URL,/,3)}) same => n,Noop(${PBXERIX_HOST}) same => n,AudioSocket(${CTX},${PBXERIX_HOST}:4573) same => n,Hangup() ; Transferencia para atendimento humano (exemplo) [transfer-agente-voice] exten => _.,1,Noop(######## TRANSFER AGENTE VOICE ########) same => n,Dial(SIP/6000,30,tT) same => n,Hangup()
Como direcionar uma chamada para o agente: no seu contexto de entrada, use algo como exten => s,1,Goto(agenteia,s,1) ou Goto(agenteia,123,1) para aplicar o agente em um ramal ou DDI especifico.
5 manager.conf
O portal ErixVoice utiliza a interface AMI para gerenciamento e eventos da chamada.
; Usuario da interface de gerenciamento (AMI) [aiagent] secret = sua-senha read = all write = all ; Boa pratica: restrinja o acesso somente ao IP do portal permit = 10.0.0.1 ; EXEMPLO — substitua pelo IP real do portal ErixVoice deny = 0.0.0.0/0.0.0.0
6 ari.conf
A API Rest (ARI) permite ao portal controlar e monitorar a sessao em tempo real.
; Usuario da API Rest (ARI) para controle de chamadas [aiagent] type = user read_only = no password = sua-senha
7 http.conf
Habilite o servidor HTTP interno do Asterisk (usado pelo ARI).
; Habilita o servidor HTTP interno do Asterisk ; (precisa apenas se ainda nao estiver ativo) [general] enabled = yes bindaddr = 0.0.0.0 bindport = 8088
Em producao, recomendamos restringir o bindaddr ou proteger a porta 8088 no firewall para que somente o portal ErixVoice acesse.
8 Reiniciando o Asterisk
Apos salvar os arquivos, aplique as alteracoes:
# Aplicar sem derrubar chamadas ativas asterisk -rx "core reload" # Ou reinicio completo (se preferir) asterisk -rx "core restart now" # Verificar se os modulos carregaram asterisk -rx "module show like curl" asterisk -rx "module show like audiosocket"
9 Boas praticas de seguranca
- Use senhas fortes e unicas para
manager.confeari.conf(nunca reutilize). - Restrinja o acesso AMI e ARI com
permit/denypara o IP do portal ErixVoice. - No firewall, libere as portas
4573(AudioSocket) e8088(HTTP) somente para o endereco do portal. - Nunca exponha
API_KEY,AGENT_IDou senhas em repositorios publicos, logs ou arquivos web. - Utilize HTTPS no portal (
PBXERIX_URLcomhttps://). - Revise periodicamente as credenciais e revogue chaves nao utilizadas no portal ErixVoice.
- Monitore o log do Asterisk:
tail -f /var/log/asterisk/messagesdurante os primeiros testes. - Esteja conforme a LGPD em relacao a gravacao e ao tratamento de dados de voz dos chamadores.
10 Solucao de problemas
| Sintoma | Causa provavel / acao |
|---|---|
| Chamada cai imediatamente | Verifique PBXERIX_URL, API_KEY e AGENT_ID no [general]. |
AudioSocket nao conecta | Confirme que res_audiosocket esta carregado e que a porta 4573 esta liberada. |
| Erro de HTTP no dialplan | Cheque se func_curl esta ativo e se o URL do portal responde em HTTPS. |
| AMI/ARI sem resposta | Confirme http.conf (porta 8088) e o usuario/senha em ari.conf. |
| Silencio na chamada | Teste o caminho de audio, codecs G.711/Opus e o NAT/portas de RTP do servidor. |
| Transferencia nao funciona | Ajuste o contexto transfer-agente-voice para o ramal/fila corretos. |
Ainda com problemas? Fale conosco no WhatsApp (11) 3135-7414 ou envie um e-mail para contato@pbxerix.com.br.