Trunking SIP da Sinch

Conecte o Sinch Elastic SIP Trunking aos ElevenLabs Agents.

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:

  1. Chamadas recebidas: um DID atribuído ao seu aplicativo Sinch Voice recebe uma chamada. A Sinch envia o INVITE para o endereço de origem da ElevenLabs configurado como um endpoint estático nas configurações de entrada do trunk.
  2. 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.
  3. 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:

  1. Uma conta ativa da ElevenLabs com um agente configurado
  2. Uma conta Sinch com um aplicativo de voz criado no painel Sinch Build
  3. 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.

1

Acesse o painel Sinch Build

Entre na sua conta Sinch e navegue até o aplicativo que você quer conectar.

2

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.

3

Atribua seu DID ao aplicativo

Atribua a este aplicativo o número de telefone que deve encaminhar chamadas para o seu agente.

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.

1

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:.

2

Insira as credenciais SIP

Copie com segurança a chave e o segredo do seu aplicativo Sinch. Eles serão usados como seu nome de usuário e senha na ElevenLabs.

3

Número de encaminhamento

Seu aplicativo Sinch encaminhará a chamada para o endereço de encaminhamento dele. Para realizar uma chamada para o número especificado na solicitação de chamada de saída, deixe este campo vazio nas configurações do aplicativo.

Conclua a configuração na ElevenLabs

1

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:

ConfiguraçãoValor
Número de telefoneSeu DID da Sinch, por exemplo, 15551234567
Tipo de transporteTLS
Criptografia de mídiaDisabled para TCP; Allowed ou Required quando o trunk estiver configurado para TLS e SRTP
EndereçoO FQDN do seu trunk da Sinch, apenas o hostname
Nome de usuário do trunk SIPChave do aplicativo Sinch
Senha do trunk SIPSegredo do aplicativo Sinch

Mantenha as configurações de transporte e criptografia consistentes em ambos os lados.

2

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.

3

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:

curl -X POST https://api.elevenlabs.io/v1/convai/sip-trunk/outbound-call \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "agent_7101k5zvyjhmfg983brhmhkd98n6",
"agent_phone_number_id": "phnum_8901k4t9z5defmb8vh3e9361y7nj",
"to_number": "+15551234567"
}'

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

  • Confirme que o endpoint estático de entrada do trunk aponta para sip.rtc.elevenlabs.io na 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.
  • 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.
  • 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 Allowed ou Required na 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.

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

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.

A ElevenLabs oferece suporte a G711 (8 kHz) e G722 (16 kHz). Mantenha G711 disponível no trunk da Sinch como denominador comum.

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.