Troncal SIP de Sinch

Conecta Sinch Elastic SIP Trunking con ElevenLabs Agents.

Antes de seguir esta guía, te recomendamos leer la guía de troncales SIP de ElevenLabs y la guía de troncales SIP de Sinch Voice guide.

Resumen

Esta guía explica cómo conectar directamente una aplicación de Sinch Voice con ElevenLabs Agents. La integración te permite conservar tus números y enrutamiento de Sinch mientras ElevenLabs se encarga de la experiencia del agente de voz IA.

Cómo funciona la troncal SIP con Sinch

Una troncal SIP de Sinch es una conexión bidireccional entre la red de Sinch y la plataforma de ElevenLabs:

  1. Llamadas entrantes: Un DID asignado a tu aplicación de Sinch Voice recibe una llamada. Sinch envía el INVITE a la dirección de originación de ElevenLabs configurada como un endpoint estático en los ajustes de entrada de la troncal.
  2. Llamadas salientes: Las llamadas iniciadas por ElevenLabs se envían a la dirección SIP del nombre de dominio totalmente cualificado (FQDN) de tu aplicación, que Sinch enruta a la RTPC.
  3. Autenticación: Sinch requiere autenticación saliente (credenciales SIP) y admite autenticación ACL (lista de IP permitidas) para el tráfico que llega a la troncal.

Requisitos

Antes de empezar, asegúrate de tener:

  1. Una cuenta activa de ElevenLabs con un agente configurado
  2. Una cuenta de Sinch con una aplicación de voz creada en el panel de Sinch Build
  3. Al menos un número de teléfono (DID) comprado en Sinch y asignado a la aplicación

Configurar llamadas entrantes (de Sinch a ElevenLabs)

Dirige el desvío de llamadas de tu aplicación a la dirección SIP de ElevenLabs.

1

Inicia sesión en el panel de Sinch Build

Inicia sesión en tu cuenta de Sinch y ve a la aplicación que quieres conectar.

2

Añade un endpoint estático para ElevenLabs

En los ajustes de desvío de llamadas de la aplicación, actualiza el controlador de eventos de llamada a SIP Forwarding y añade una URI SIP estática que apunte a la dirección de originación de ElevenLabs:

  • DID: el número de teléfono de Sinch al que quieres llamar
  • Dirección: sip.rtc.elevenlabs.io
  • Puerto y transporte: 5061/TLS, 5060/TCP

Por ejemplo: sip:15551234567@sip.rtc.elevenlabs.io:5061;transport=tls.

Si tu espacio de trabajo de ElevenLabs utiliza una región aislada de residencia de datos o la infraestructura SIP de IP estática, usa el endpoint correspondiente en lugar de sip.rtc.elevenlabs.io. Consulta residencia de datos para ver las regiones disponibles.

3

Asigna tu DID a la aplicación

Asigna a esta aplicación el número de teléfono que debe conectar con tu agente.

Configurar llamadas salientes (de ElevenLabs a Sinch)

Para las llamadas salientes, ElevenLabs envía un INVITE SIP a tu aplicación de Sinch y se autentica en ella.

1

Anota el FQDN de tu región de Sinch

Obtén el FQDN SIP de tu región de Sinch. Esta es la dirección de terminación que debes introducir en ElevenLabs. Introduce solo el nombre de host, sin el prefijo sip:.

2

Introduce las credenciales SIP

Copia de forma segura la clave y el secreto de tu aplicación de Sinch. Se usarán como tu nombre de usuario y contraseña en ElevenLabs.

3

Número de desvío

Tu aplicación de Sinch desviará la llamada a su dirección de desvío. Para realizar una llamada saliente al número especificado en la solicitud de llamada saliente, deja este campo vacío en los ajustes de tu aplicación.

Completa la configuración en ElevenLabs

1

Importa el número de teléfono de la troncal SIP

Sigue la guía de troncales SIP para importar tu número de Sinch con estos ajustes:

AjusteValor
Número de teléfonoTu DID de Sinch, por ejemplo 15551234567
Tipo de transporteTLS
Cifrado de mediosDisabled para TCP; Allowed o Required cuando la troncal está configurada para TLS y SRTP
DirecciónEl FQDN de tu troncal de Sinch, solo el nombre de host
Nombre de usuario de la troncal SIPClave de la aplicación de Sinch
Contraseña de la troncal SIPSecreto de la aplicación de Sinch

Mantén los ajustes de transporte y cifrado coherentes en ambos lados.

2

Asigna un agente

Asigna un agente al número en el panel de Números de teléfono. Las llamadas entrantes al DID llegarán ahora a ese agente.

3

Prueba una llamada saliente

Realiza una llamada desde el agente a través de tu aplicación de Sinch, ya sea mediante el menú de números de teléfono o la API de llamadas salientes:

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"
}'

Consulta Llamada saliente mediante troncal SIP para ver el esquema completo de la solicitud y Llamadas por lotes para ejecutar campañas salientes.

Configurar transferencias

Los agentes transfieren llamadas a una persona mediante la herramienta del sistema transfer_to_number.

Con una troncal de Sinch solo funcionan las transferencias en conferencia. SIP REFER y las transferencias ciegas fallan.

Transferencias en conferencia

ElevenLabs llama al destino a través de tu troncal de Sinch, une a ambas partes en una conferencia y después desconecta al agente.

Usar Sinch Voice API v2 en su lugar

La configuración anterior proporciona a ElevenLabs toda la ruta de voz. Si necesitas que Sinch controle las llamadas, Sinch Voice API v2 puede responder una llamada, aplicar su propia lógica y conectar un segundo tramo con tu agente de ElevenLabs mediante SVAML, sin un servidor de retransmisión. Este modelo encaja mejor si quieres incorporar funciones de Sinch, como la detección de contestador automático, la grabación de llamadas o el enmascaramiento de números antes de que se una el agente, o si el agente es un paso dentro de un flujo de llamadas más amplio de Sinch.

Consulta el tutorial de Sinch Integrate an ElevenLabs AI agent via SIP para otros escenarios habituales.

Solución de problemas

  • Confirma que el endpoint estático de entrada de la troncal apunta a sip.rtc.elevenlabs.io en el puerto y transporte que quieres usar.
  • Confirma que el DID está asignado a esa troncal.
  • Comprueba que el número en ElevenLabs coincide con el que envía Sinch, incluido el + inicial.
  • Espera al menos 60 segundos después de cambiar endpoints o ACL y vuelve a probar.
  • Verifica que tu firewall permite la señalización SIP en el puerto 5060 para TCP o 5061 para TLS, y que no bloquea RTP.
  • Confirma que el nombre de usuario y la contraseña de la troncal SIP en ElevenLabs coinciden con las credenciales de la troncal de Sinch.
  • Comprueba que el campo Dirección contiene solo el FQDN de la troncal, sin el prefijo sip:.
  • Confirma que los permisos de país están activados en la troncal para el país de destino.
  • Confirma que el identificador de llamada que presentas es un número que Sinch acepta en esa troncal.
  • Si utilizas autenticación ACL, recuerda que la señalización de ElevenLabs llega desde un grupo distribuido de direcciones. Cambia a autenticación digest o usa la infraestructura de IP estática.
  • Confirma que tu firewall permite RTP por UDP en ambas direcciones y no está restringido a direcciones estáticas específicas.
  • Comprueba que el cifrado de medios coincide: una troncal TLS de Sinch espera SRTP, así que configura el cifrado de medios como Allowed o Required en ElevenLabs.
  • Prueba con TCP y el cifrado de medios desactivado para aislar si el problema está relacionado con TLS o SRTP.
  • Verifica que se ofrece G711 en la troncal. ElevenLabs admite G711 y G722.

Una respuesta 481 a un BYE normalmente significa que la solicitud llegó a un servidor SIP sin el estado de diálogo de esa llamada. Envía las solicitudes dentro del diálogo a la URI Contact devuelta en el 200 OK, en lugar de a la dirección compartida sip.rtc.elevenlabs.io. Si BYE o REFER mediante TLS no supera la validación del certificado, añade el FQDN para el que se emitió el certificado de tu troncal al campo Dominios remotos de los ajustes del número de teléfono.

Preguntas frecuentes

TLS en el puerto 5061 para producción, junto con medios SRTP en la troncal de Sinch. TCP en el puerto 5060 es un punto de partida razonable para las pruebas. UDP es experimental en ElevenLabs y no debería transportar tráfico de producción.

ElevenLabs admite G711 (8 kHz) y G722 (16 kHz). Mantén G711 disponible en la troncal de Sinch como denominador común.

Los encabezados X- personalizados del INVITE entrante se exponen como variables dinámicas; por ejemplo, X-Contact-ID se convierte en {{sip_contact_id}}. X-Call-ID y X-Caller-ID se asignan a system__call_sid y system__caller_id. Consulta Troncales SIP para ver las reglas de normalización completas.

Enlaces útiles