Trunking SIP da Sinch
Antes de seguir este guia, considere ler o guia de trunking SIP da ElevenLabs e o guia de trunking SIP do Sinch Voice.
Visão geral
Este guia explica como conectar um aplicativo Sinch Voice diretamente aos ElevenLabs Agents. A integração permite manter seus números e roteamento da Sinch, enquanto a ElevenLabs cuida da experiência do agente de voz com IA.
Como funciona o trunking SIP com a Sinch
Um SIP Trunk da Sinch é uma conexão bidirecional entre a rede da Sinch e a plataforma ElevenLabs:
- Chamadas recebidas: um DID atribuído ao seu aplicativo Sinch Voice recebe uma chamada. A Sinch envia o
INVITEpara o endereço de origem da ElevenLabs configurado como um endpoint estático nas configurações de entrada do trunk. - Chamadas realizadas: as chamadas iniciadas pela ElevenLabs são enviadas para o endereço SIP de nome de domínio totalmente qualificado (FQDN) do seu aplicativo, que a Sinch roteia para a PSTN.
- Autenticação: a Sinch exige autenticação de saída (credenciais SIP) e oferece suporte à autenticação por ACL (lista de permissão de IPs) para o tráfego que chega ao trunk.
Requisitos
Antes de começar, verifique se você tem:
- Uma conta ativa da ElevenLabs com um agente configurado
- Uma conta Sinch com um aplicativo de voz criado no painel Sinch Build
- Pelo menos um número de telefone (DID) comprado na Sinch e atribuído ao aplicativo
Configuração de chamadas recebidas (Sinch para ElevenLabs)
Direcione o encaminhamento de chamadas do seu aplicativo para o endereço SIP da ElevenLabs.
Acesse o painel Sinch Build
Entre na sua conta Sinch e navegue até o aplicativo que você quer conectar.
Adicione um endpoint estático para a ElevenLabs
Nas configurações de encaminhamento de chamadas do aplicativo, atualize o manipulador de eventos de chamada para SIP Forwarding e adicione um URI SIP estático direcionado ao endereço de origem da ElevenLabs:
- DID: o número de telefone da Sinch para o qual você quer ligar
- Endereço:
sip.rtc.elevenlabs.io - Porta e transporte:
5061/TLS,5060/TCP
Por exemplo: sip:15551234567@sip.rtc.elevenlabs.io:5061;transport=tls.
Se o seu workspace da ElevenLabs usar uma região isolada de residência de dados ou a infraestrutura SIP de IP estático, use o endpoint correspondente em vez de sip.rtc.elevenlabs.io. Consulte residência de dados para ver as regiões disponíveis.
Configuração de chamadas realizadas (ElevenLabs para Sinch)
Para chamadas realizadas, a ElevenLabs envia um INVITE SIP ao seu aplicativo Sinch e se autentica nele.
Anote o FQDN da sua região Sinch
Recupere o SIP FDQN da sua região Sinch. Esse é o endereço de terminação que você informa na ElevenLabs. Insira apenas o hostname, sem o prefixo sip:.
Conclua a configuração na ElevenLabs
Importe o número de telefone do SIP trunk
Siga o guia de trunking SIP para importar seu número da Sinch usando estas configurações:
Mantenha as configurações de transporte e criptografia consistentes em ambos os lados.
Atribua um agente
Atribua um agente ao número no painel de Números de telefone. Agora, as chamadas recebidas no DID chegarão a esse agente.
Teste uma chamada realizada
Faça uma chamada a partir do agente pelo seu aplicativo Sinch, usando o menu de número de telefone ou a API de chamadas realizadas:
Consulte Chamada realizada via SIP trunk para ver o esquema completo da solicitação e Chamadas em lote para executar campanhas de saída.
Configuração de transferências
Os agentes transferem chamadas para uma pessoa usando a ferramenta de sistema transfer_to_number.
Apenas transferências por conferência funcionam em um trunk da Sinch. SIP REFER e transferências cegas falham.
Transferências por conferência
A ElevenLabs liga para o destino pelo seu trunk da Sinch, une as duas partes em uma conferência e então desconecta o agente.
Usar a API Sinch Voice v2 em vez disso
A configuração acima dá à ElevenLabs todo o caminho de voz. Se você precisa que a Sinch controle as chamadas, a API Sinch Voice v2 pode atender uma chamada, aplicar sua própria lógica e conectar uma segunda perna ao seu agente da ElevenLabs usando SVAML, sem um servidor de retransmissão. Esse modelo é mais adequado quando você quer inserir recursos da Sinch, como detecção de secretária eletrônica, gravação de chamadas ou mascaramento de números antes de o agente entrar, ou quando o agente é uma etapa em um fluxo de chamadas maior da Sinch.
Consulte o tutorial da Sinch Integrar um agente de IA da ElevenLabs via SIP para outros cenários típicos.
Solução de problemas
As chamadas recebidas não conseguem se conectar
- Confirme que o endpoint estático de entrada do trunk aponta para
sip.rtc.elevenlabs.iona porta e no transporte que você pretende usar. - Confirme que o DID está atribuído a esse trunk.
- Verifique se o número na ElevenLabs corresponde ao que a Sinch envia, incluindo o
+inicial. - Aguarde pelo menos 60 segundos depois de alterar endpoints ou ACLs e teste novamente.
- Verifique se seu firewall permite a sinalização SIP na porta 5060 para TCP ou 5061 para TLS e não bloqueia RTP.
As chamadas realizadas recebem respostas 403 ou 407
- Confirme que o nome de usuário e a senha do SIP trunk na ElevenLabs correspondem às credenciais do trunk da Sinch.
- Verifique se o campo Endereço contém apenas o FQDN do trunk, sem o prefixo
sip:. - Confirme que as permissões de país estão ativadas no trunk para o país de destino.
- Confirme que o identificador de chamadas apresentado é um número aceito pela Sinch nesse trunk.
- Se você estiver usando autenticação por ACL, lembre-se de que a sinalização da ElevenLabs chega de um conjunto distribuído de endereços. Mude para autenticação digest ou use a infraestrutura de IP estático.
Áudio em apenas um sentido ou sem áudio
- Confirme que seu firewall permite RTP por UDP nos dois sentidos e não está restrito a endereços estáticos específicos.
- Verifique se a criptografia de mídia corresponde: um trunk TLS da Sinch espera SRTP, portanto, defina a criptografia de mídia como
AllowedouRequiredna ElevenLabs. - Teste com TCP e a criptografia de mídia desativada para identificar se o problema está relacionado a TLS ou SRTP.
- Verifique se G711 é oferecido no trunk. A ElevenLabs oferece suporte a G711 e G722.
As chamadas não são encerradas depois que o agente desliga
Uma resposta 481 a um BYE geralmente significa que a solicitação chegou a um servidor SIP sem o estado de diálogo daquela chamada. Envie solicitações dentro do diálogo para o URI Contact retornado no 200 OK, em vez de para o endereço compartilhado sip.rtc.elevenlabs.io. Se BYE ou REFER por TLS falhar na validação do certificado, adicione o FQDN para o qual o certificado do seu trunk foi emitido ao campo Domínios remotos nas configurações do número de telefone.
Perguntas frequentes
Qual transporte devo usar?
TLS na porta 5061 para produção, junto com mídia SRTP no trunk da Sinch. TCP na porta 5060 é um bom ponto de partida para validação. UDP é experimental na ElevenLabs e não deve transportar tráfego de produção.
Quais codecs de áudio são compatíveis?
A ElevenLabs oferece suporte a G711 (8 kHz) e G722 (16 kHz). Mantenha G711 disponível no trunk da Sinch como denominador comum.
Como envio o contexto do chamador para a conversa?
Cabeçalhos X- personalizados no INVITE de entrada são expostos como variáveis dinâmicas, com X-Contact-ID se tornando {{sip_contact_id}}, por exemplo. X-Call-ID e X-Caller-ID são mapeados para system__call_sid e system__caller_id. Consulte trunking SIP para ver as regras completas de normalização.