Integración con Exotel

Conecta números de teléfono de Exotel a ElevenAgents para llamadas entrantes y salientes.

Resumen

Esta guía explica cómo conectar tus números de teléfono de Exotel directamente a ElevenAgents. Esta integración te permite usar tus números e infraestructura de Exotel actuales mientras aprovechas las avanzadas capacidades de voz IA de ElevenLabs, tanto para llamadas entrantes como salientes.

Cómo funciona la integración

La integración con Exotel usa dos elementos de Exotel:

  1. Applet de Voicebot (audio entrante y saliente): Un applet de ExoML en Exotel que abre un WebSocket con ElevenLabs y transmite el audio de la llamada en ambas direcciones.
  2. API Connect (marcación saliente): Para llamadas salientes, ElevenLabs llama a la ruta Calls/connect.json de Exotel con tu API Key y API Token. Exotel llama al destino y, cuando se responde la llamada, dirige el audio a través del mismo applet de Voicebot hacia ElevenLabs.

Para las llamadas entrantes, Exotel dirige las llamadas entrantes al applet de Voicebot que asignas al número de teléfono, que abre el WebSocket con ElevenLabs.

Para las llamadas salientes, ElevenLabs inicia la llamada mediante la API Connect y Exotel conecta la llamada de vuelta a través del applet de Voicebot.

Requisitos

Antes de configurar la integración con Exotel, asegúrate de tener:

  1. Una cuenta de Exotel activa con al menos un número de teléfono aprovisionado.
  2. Acceso de administrador al panel de Exotel en my.exotel.com (Singapur) o my.exotel.in (Mumbai).
  3. Una cuenta de ElevenLabs y un agente al que quieras asociar el número de teléfono.

Actualmente, Exotel es compatible con los clústeres de Singapur (api.exotel.com) y Mumbai (api.in.exotel.com). Elige el clúster en el que se aprovisionó tu cuenta de Exotel. Usar la región incorrecta provocará errores de autenticación.

Activar Voicebot en tu cuenta de Exotel

Antes de nada, contacta con el soporte de Exotel y pídeles que:

  1. Activen el applet de Voicebot en tu cuenta. Está restringido de forma predeterminada y no aparecerá en App Bazaar hasta que tu cuenta esté aprovisionada para usarlo.
  2. Aprovisionen el número de canales (llamadas simultáneas) que necesitas. Este es el límite de llamadas simultáneas de Voicebot que Exotel permitirá ejecutar en tu cuenta. Ajústalo a tu tráfico máximo previsto.

Este paso suele tardar entre 1 y 2 días laborables. Inícialo antes de comenzar el resto de la configuración.

Ruta WebSocket de ElevenLabs

Configurarás tu applet de Voicebot de Exotel para transmitir audio a la siguiente URL de WebSocket.

EntornoURL de WebSocket
Predeterminado (EE. UU./internacional)wss://api.elevenlabs.io/v1/convai/conversation/exotel
Residencia en la UEwss://api.eu.residency.elevenlabs.io/v1/convai/conversation/exotel
Residencia en Indiawss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel

Si tu cuenta de ElevenLabs está en un entorno aislado de residencia de datos (UE o India), debes usar la URL de residencia correspondiente. Obtén más información sobre la residencia de datos.

Configuración en Exotel

1

Reúne tus credenciales de Exotel

En el panel de Exotel, abre el menú Monitor de la izquierda y haz clic en Developer. Esto abre la página de credenciales de la API, donde puedes consultar el Account SID, API Key y API Token.

Barra lateral de Exotel: Developer

Necesitarás cuatro valores:

  • Account SID: El SID de tu cuenta de Exotel.
  • API Key: La parte de nombre de usuario de las credenciales de la API de Exotel.
  • API Token: La parte de contraseña de las credenciales de la API de Exotel. Mantenlo en secreto.
  • Región (subdominio de la API): El clúster en el que se encuentra tu cuenta de Exotel. Puede ser api.exotel.com (Singapur) o api.in.exotel.com (Mumbai). Puedes confirmarlo consultando el host de cualquier URL de API que se muestre en la página Developer.

ElevenLabs usa la API Key + API Token para la autenticación HTTP Basic al llamar a la API Connect de Exotel para realizar llamadas salientes.

2

Crea un applet de Voicebot en App Bazaar

  1. En el panel de Exotel, abre el menú Manage de la izquierda y haz clic en App Bazaar.

    Barra lateral de Exotel: App Bazaar

  2. Haz clic en Create / Add New Flow, asigna un nombre descriptivo a la app (por ejemplo, ElevenLabs) y haz clic en OK.

    Exotel: cuadro de diálogo Add New Flow

  3. Desde la paleta de applets de la derecha, arrastra el applet Voicebot al lienzo Call Start.

    Paleta de applets de Exotel con Voicebot
resaltado

  4. Abre la configuración del applet de Voicebot y pega en el campo URL la URL de WebSocket de ElevenLabs para tu residencia (el campo “Which bot you want to connect the enduser?”):

    wss://api.elevenlabs.io/v1/convai/conversation/exotel

    Si tu cuenta de ElevenLabs está en residencia de datos de la UE o India, usa en su lugar la URL de residencia correspondiente de la tabla anterior (por ejemplo, wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel) en vez de la predeterminada api.elevenlabs.io.

    El resto de las opciones de Voicebot (“Record this?”, “Recording Channels”, “Recording Format”, “Encrypt DTMF”) pueden mantenerse con sus valores predeterminados, salvo que tengas requisitos específicos de grabación o cumplimiento normativo.

    Applet de Voicebot configurado con la URL de WebSocket de
ElevenLabs

  5. (Opcional) Encadena un applet Connect para transferencias a personas. Omite este paso si no necesitas que el agente pueda transferir la llamada a una persona. Si quieres usar la herramienta Transfer to number del agente, debes añadir un applet Connect inmediatamente después del applet de Voicebot en el flujo.

    Desde la paleta Voice Applets de la derecha, arrastra el applet Connect a la ranura Next → Continue to the next applet de Voicebot.

    Paleta Voice Applets con Connect
resaltado

    En la configuración del applet Connect, elige Configure parameters dynamically by providing a URL y pega en Primary URL la ruta del applet Connect de ElevenLabs para tu residencia:

    https://api.elevenlabs.io/v1/convai/exotel/connect-applet

    Applet Connect configurado con la URL dinámica de
ElevenLabs

    Las URL de residencia correspondientes son:

    EntornoURL del applet Connect
    Predeterminado (EE. UU./internacional)https://api.elevenlabs.io/v1/convai/exotel/connect-applet
    Residencia en la UEhttps://api.eu.residency.elevenlabs.io/v1/convai/exotel/connect-applet
    Residencia en Indiahttps://api.in.residency.elevenlabs.io/v1/convai/exotel/connect-applet

    Cuando el agente invoca su herramienta Transfer to number, ElevenLabs devuelve el control a Exotel y Exotel obtiene esta URL para recuperar el número de destino al que llamar. Deja Fallback URL vacío y conserva el resto de valores predeterminados.

  6. Guarda y publica el applet.

  7. Anota el Applet ID (a veces llamado App ID). Lo encontrarás en la URL del editor de ExoML (por ejemplo, .../exoml/start_voice/12345) o en la lista de apps. Lo necesitarás al importar el número en ElevenLabs.

El applet de Voicebot gestiona tanto los tramos entrantes como los salientes. Solo necesitas un applet por cuenta. Todos los números de teléfono que importes en ElevenLabs pueden compartirlo.

3

Asigna el flujo a un número de teléfono (solo entrantes)

Guarda y publica el flujo de ExoML del paso anterior. Después, dirige un número de teléfono de Exotel hacia él para que las llamadas entrantes lleguen a tu applet de Voicebot.

  1. En el panel de Exotel, abre el menú Manage de la izquierda y haz clic en ExoPhones (justo debajo de App Bazaar).

    Barra lateral de Exotel: ExoPhones

  2. Si todavía no tienes un número de teléfono, haz clic en Buy a number y compra uno en el país o área que necesites antes de continuar.

  3. Busca el número que quieres usar con tu agente de ElevenLabs. En su columna Installed App, abre el menú desplegable y selecciona el flujo que creaste en el paso anterior (por ejemplo, ElevenLabs).

    ExoPhones: asignar Installed App a un número de
teléfono

  4. Guarda la configuración. Las llamadas entrantes a ese número se dirigirán ahora directamente al applet de Voicebot y se transmitirán a ElevenLabs.

Si el número solo se utilizará para llamadas salientes, puedes omitir este paso. Las llamadas salientes se realizan a través de la API Connect desde ElevenLabs y no dependen de la asignación de Installed App.

Configuración en ElevenLabs

1

Importa el número de teléfono de Exotel

En el panel de ElevenAgents, ve a la pestaña Phone Numbers. Haz clic en + Import number y selecciona From Exotel en el menú desplegable.

ElevenAgents: menú desplegable Import number con From Exotel
seleccionado

Completa los siguientes campos:

  • Label: Un nombre descriptivo (por ejemplo, Línea de soporte).
  • Phone number: El número de Exotel en formato E.164 (por ejemplo, +918048961234).
  • Exotel Account SID: Del paso 1 anterior.
  • Exotel API Key: Del paso 1 anterior.
  • Exotel API Token: Del paso 1 anterior (se almacena como secreto del espacio de trabajo).
  • Region: Elige Singapore (api.exotel.com) o Mumbai (api.in.exotel.com) según tu clúster de Exotel.
  • Voicebot Applet ID: El App ID del paso 2 anterior.

Haz clic en Import para guardar el número. ElevenLabs verificará las credenciales con Exotel y almacenará el token de la API como secreto del espacio de trabajo.

2

Asigna tu agente

Una vez importado el número, ábrelo desde la lista Phone Numbers y elige en el menú desplegable Assigned agent el agente que debe gestionar las llamadas entrantes.

Las llamadas entrantes requieren que el applet de Voicebot esté asignado al número en Exotel (consulta la sección anterior). Las configuraciones solo para llamadas salientes no necesitan una asignación entrante.

3

Prueba una llamada entrante

Llama a tu número de Exotel desde cualquier teléfono. Exotel dirigirá la llamada al applet de Voicebot, que abre un WebSocket con ElevenLabs. Tu agente responderá e iniciará la conversación.

Supervisa la llamada en el panel de Historial de llamadas para comprobar que todo funciona como esperas.

Realizar llamadas salientes

Los números de Exotel importados también pueden iniciar llamadas salientes. Tu agente llama a un número de teléfono e inicia la conversación cuando el destinatario responde.

1

Inicia una llamada saliente

Desde la pestaña Phone Numbers, busca tu número de Exotel y haz clic en el botón Outbound call.

2

Configura la llamada

En el modal Outbound Call:

  1. Selecciona el agente que gestionará la conversación.
  2. Introduce el número de teléfono del destinatario en formato E.164.
  3. Haz clic en Send Test Call para iniciar la llamada.

ElevenLabs llama a la API Connect de Exotel con tus credenciales almacenadas. Exotel llama al destinatario y dirige el audio de vuelta a través del applet de Voicebot cuando se responde la llamada.

Al realizar llamadas salientes, tu agente inicia la conversación, así que asegúrate de que tenga configurado un mensaje inicial adecuado.

Para activar llamadas salientes mediante programación en lugar de hacerlo desde el panel, usa la ruta Llamada saliente mediante Exotel. La referencia de la API incluye el esquema de solicitud y fragmentos de SDK listos para usar.

Requisitos de configuración del agente

El applet de Voicebot transmite audio a 8 kHz PCM. La plataforma de ElevenLabs gestiona automáticamente la conversión del formato de audio. No necesitas cambiar la configuración de TTS ni de audio de entrada de tu agente.

Formatos de números de teléfono

Los números de teléfono se almacenan en formato E.164 (por ejemplo, +918048961234). Al importar un número indio de Exotel que podrías escribir localmente como 08048961234 o 8048961234, introdúcelo como +918048961234. ElevenLabs rechazará las importaciones duplicadas del mismo número en formatos distintos.

Transferencias de llamadas

Puedes transferir llamadas desde tu agente a Exotel configurando una herramienta Transfer to number en tu agente. Cuando se activa la herramienta, ElevenLabs finaliza el tramo de Voicebot y Exotel obtiene el número de destino de la URL dinámica del applet Connect encadenado y, después, llama al destino.

Para que funcione, necesitas ambos elementos:

  1. El applet Connect opcional configurado inmediatamente después del applet de Voicebot en tu flujo de ExoML (consulta el paso 5 de Configuración en Exotel).
  2. La herramienta Transfer to number configurada en tu agente. Consulta la guía de transferencia de agentes.

Sin el applet Connect en el flujo, los intentos de transferencia del agente fallarán porque Exotel no tendrá adónde dirigir la llamada después de que termine Voicebot.

Solución de problemas

ElevenLabs recibió una respuesta distinta de 200 de la API Connect de Exotel. Las causas más habituales son:

  • Region incorrecta. Asegúrate de que la región que elegiste al importar coincida con el clúster de Exotel en el que está tu cuenta (Singapore frente a Mumbai).
  • API Key o API Token no válidos. Vuelve a comprobar las credenciales en la página API Settings de Exotel y vuelve a importar el número con los valores correctos.
  • El Account SID no coincide con el par de API Key / Token.
  • El número de destino no está en formato E.164.
  • Confirma que el campo URL del applet de Voicebot coincide exactamente con la ruta WebSocket de ElevenLabs para tu residencia de datos (incluido wss://).
  • Confirma que el número de teléfono de Exotel está dirigido a la app de ExoML que contiene el applet de Voicebot (panel de Exotel, ExoPhones, el número, Installed App).
  • En ElevenLabs, confirma que el número de teléfono tiene un agente asignado en la pestaña Phone Numbers.

El campo Voicebot Applet ID espera el App ID numérico de la URL del editor de ExoML (por ejemplo, para .../exoml/start_voice/12345, el ID es 12345). No pegues la URL completa. Usa solo el ID.

ElevenLabs normaliza los números de Exotel a E.164 antes de almacenarlos y aplica unicidad en (provider, phone_number). Si ya importaste el mismo número en un formato distinto de E.164, elimina primero la entrada anterior y vuelve a importarlo en formato E.164.

Enlaces útiles