Troncal SIP de Sinch
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:
- Llamadas entrantes: Un DID asignado a tu aplicación de Sinch Voice recibe una llamada. Sinch envía el
INVITEa la dirección de originación de ElevenLabs configurada como un endpoint estático en los ajustes de entrada de la troncal. - 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.
- 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:
- Una cuenta activa de ElevenLabs con un agente configurado
- Una cuenta de Sinch con una aplicación de voz creada en el panel de Sinch Build
- 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.
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.
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.
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.
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:.
Completa la configuración en ElevenLabs
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:
Mantén los ajustes de transporte y cifrado coherentes en ambos lados.
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.
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:
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
Las llamadas entrantes no se conectan
- Confirma que el endpoint estático de entrada de la troncal apunta a
sip.rtc.elevenlabs.ioen 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.
Las llamadas salientes reciben respuestas 403 o 407
- 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.
Audio unidireccional o sin audio
- 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
AllowedoRequireden 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.
Las llamadas no se liberan después de que el agente cuelgue
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
¿Qué transporte debo usar?
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.
¿Qué códecs de audio son compatibles?
ElevenLabs admite G711 (8 kHz) y G722 (16 kHz). Mantén G711 disponible en la troncal de Sinch como denominador común.
¿Cómo paso el contexto de la persona que llama a la conversació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.