Intégration Exotel

Connectez des numéros de téléphone Exotel à ElevenAgents pour les appels entrants et sortants.

Vue d’ensemble

Ce guide explique comment connecter directement vos numéros de téléphone Exotel à ElevenAgents. Cette intégration vous permet d’utiliser vos numéros et votre infrastructure Exotel existants tout en tirant parti des capacités avancées d’IA vocale d’ElevenLabs, pour les appels entrants comme sortants.

Fonctionnement de l’intégration

L’intégration Exotel utilise deux composants Exotel :

  1. Applet Voicebot (média entrant et sortant) : un applet ExoML sur Exotel qui ouvre un WebSocket vers ElevenLabs et diffuse l’audio de l’appel dans les deux sens.
  2. API Connect (numérotation sortante) : pour les appels sortants, ElevenLabs appelle le point de terminaison Calls/connect.json d’Exotel à l’aide de votre clé API et de votre jeton API. Exotel compose le numéro de destination et, lorsque l’appel est pris, achemine l’audio via le même applet Voicebot vers ElevenLabs.

Pour les appels entrants, Exotel achemine les appels reçus vers l’applet Voicebot que vous avez attribué au numéro de téléphone, qui ouvre le WebSocket vers ElevenLabs.

Pour les appels sortants, ElevenLabs lance l’appel via l’API Connect et Exotel redirige l’appel via l’applet Voicebot.

Prérequis

Avant de configurer l’intégration Exotel, assurez-vous de disposer des éléments suivants :

  1. Un compte Exotel actif avec au moins un numéro de téléphone provisionné.
  2. Un accès administrateur au Dashboard Exotel sur my.exotel.com (Singapour) ou my.exotel.in (Mumbai).
  3. Un compte ElevenLabs et un agent auquel vous souhaitez associer le numéro de téléphone.

Exotel est actuellement pris en charge sur les clusters Singapour (api.exotel.com) et Mumbai (api.in.exotel.com). Choisissez le cluster dans lequel votre compte Exotel a été provisionné. Une région incorrecte entraînera des échecs d’authentification.

Activation de Voicebot sur votre compte Exotel

Avant toute chose, contactez le support Exotel et demandez-lui de :

  1. Activer l’applet Voicebot sur votre compte. Il est désactivé par défaut et n’apparaîtra pas dans l’App Bazaar tant que votre compte n’y aura pas été autorisé.
  2. Provisionner le nombre de canaux nécessaires (appels simultanés). Il s’agit de la limite d’appels Voicebot simultanés qu’Exotel autorisera pour votre compte. Dimensionnez-la selon votre trafic de pointe prévu.

Cette étape prend généralement 1 à 2 jours ouvrés. Lancez-la avant de commencer le reste de la configuration.

Point de terminaison WebSocket ElevenLabs

Vous configurerez votre applet Voicebot Exotel pour diffuser l’audio vers l’URL WebSocket suivante.

EnvironnementURL WebSocket
Par défaut (États-Unis/International)wss://api.elevenlabs.io/v1/convai/conversation/exotel
Résidence dans l’UEwss://api.eu.residency.elevenlabs.io/v1/convai/conversation/exotel
Résidence en Indewss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel

Si votre compte ElevenLabs est hébergé dans un environnement de résidence isolé (UE ou Inde), vous devez utiliser l’URL de résidence correspondante. En savoir plus sur la résidence des données.

Configuration sur Exotel

1

Récupérer vos identifiants Exotel

Dans le Dashboard Exotel, ouvrez le menu Monitor à gauche, puis cliquez sur Developer. La page des identifiants API s’ouvre, où vous pouvez consulter l’Account SID, la clé API et le jeton API.

Barre latérale Exotel : Developer

Vous aurez besoin de quatre valeurs :

  • Account SID : votre SID de compte Exotel.
  • Clé API : la partie nom d’utilisateur des identifiants API Exotel.
  • Jeton API : la partie mot de passe des identifiants API Exotel. Gardez-le secret.
  • Région (sous-domaine API) : le cluster auquel appartient votre compte Exotel. Il s’agit de api.exotel.com (Singapour) ou api.in.exotel.com (Mumbai). Vous pouvez le confirmer en consultant l’hôte de toute URL API affichée sur la page Developer.

ElevenLabs utilise la clé API et le jeton API pour l’authentification HTTP Basic lors de l’appel à l’API Connect d’Exotel pour la numérotation sortante.

2

Créer un applet Voicebot dans App Bazaar

  1. Dans le Dashboard Exotel, ouvrez le menu Manage à gauche, puis cliquez sur App Bazaar.

    Barre latérale Exotel : App Bazaar

  2. Cliquez sur Create / Add New Flow, donnez à l’application un nom descriptif (par exemple, ElevenLabs), puis cliquez sur OK.

    Exotel : boîte de dialogue Add New Flow

  3. Dans la palette d’applets à droite, faites glisser l’applet Voicebot sur le canevas Call Start.

    Palette d’applets Exotel avec Voicebot
mis en évidence

  4. Ouvrez la configuration de l’applet Voicebot et collez l’URL WebSocket ElevenLabs correspondant à votre résidence dans le champ URL (le champ « Which bot you want to connect the enduser? ») :

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

    Si votre compte ElevenLabs utilise la résidence dans l’UE ou en Inde, employez l’URL de résidence correspondante du tableau ci-dessus (par exemple, wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel) au lieu de l’URL par défaut api.elevenlabs.io.

    Les autres options Voicebot (« Record this? », « Recording Channels », « Recording Format », « Encrypt DTMF ») peuvent conserver leurs valeurs par défaut, sauf si vous avez des besoins spécifiques d’enregistrement ou de conformité.

    Applet Voicebot configuré avec l’URL WebSocket
ElevenLabs

  5. (Facultatif) Ajoutez un applet Connect pour les transferts vers un humain. Ignorez cette étape si l’agent n’a pas besoin de pouvoir transférer l’appel à une personne. Si vous souhaitez utiliser l’outil Transfer to number de l’agent, vous devez ajouter un applet Connect immédiatement après l’applet Voicebot dans le flux.

    Dans la palette Voice Applets à droite, faites glisser l’applet Connect dans l’emplacement Next → Continue to the next applet de Voicebot.

    Palette Voice Applets avec Connect
mis en évidence

    Dans la configuration de l’applet Connect, choisissez Configure parameters dynamically by providing a URL et collez le point de terminaison d’applet Connect ElevenLabs correspondant à votre résidence dans Primary URL :

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

    Applet Connect configuré avec l’URL dynamique
ElevenLabs

    Les URL de résidence correspondantes sont les suivantes :

    EnvironnementURL de l’applet Connect
    Par défaut (États-Unis/International)https://api.elevenlabs.io/v1/convai/exotel/connect-applet
    Résidence dans l’UEhttps://api.eu.residency.elevenlabs.io/v1/convai/exotel/connect-applet
    Résidence en Indehttps://api.in.residency.elevenlabs.io/v1/convai/exotel/connect-applet

    Lorsque l’agent appelle son outil Transfer to number, ElevenLabs redonne le contrôle à Exotel et Exotel récupère cette URL afin d’obtenir le numéro de destination à composer. Laissez Fallback URL vide et conservez toutes les autres valeurs par défaut.

  6. Enregistrez et publiez l’applet.

  7. Notez l’Applet ID (parfois appelé App ID). Vous le trouverez dans l’URL de l’éditeur ExoML (par exemple, .../exoml/start_voice/12345) ou dans la liste des applications. Vous en aurez besoin pour importer le numéro dans ElevenLabs.

L’applet Voicebot gère les appels entrants comme sortants. Vous n’avez besoin que d’un seul applet par compte. Tous les numéros de téléphone que vous importez dans ElevenLabs peuvent le partager.

3

Attribuer le flux à un numéro de téléphone (entrants uniquement)

Enregistrez et publiez le flux ExoML de l’étape précédente. Acheminez ensuite un numéro de téléphone Exotel vers celui-ci afin que les appels entrants atteignent votre applet Voicebot.

  1. Dans le Dashboard Exotel, ouvrez le menu Manage à gauche, puis cliquez sur ExoPhones (juste sous App Bazaar).

    Barre latérale Exotel : ExoPhones

  2. Si vous ne disposez pas encore d’un numéro de téléphone, cliquez sur Buy a number et achetez-en un dans le pays ou la zone nécessaire avant de continuer.

  3. Recherchez le numéro que vous souhaitez utiliser avec votre agent ElevenLabs. Dans sa colonne Installed App, ouvrez le menu déroulant et sélectionnez le flux créé à l’étape précédente (par exemple, ElevenLabs).

    ExoPhones : attribuer Installed App à un numéro de
téléphone

  4. Enregistrez la configuration. Les appels entrants vers ce numéro seront désormais acheminés directement vers l’applet Voicebot et diffusés vers ElevenLabs.

Si le numéro est utilisé uniquement pour les appels sortants, vous pouvez ignorer cette étape. Les appels sortants sont composés via l’API Connect depuis ElevenLabs et ne dépendent pas de l’attribution Installed App.

Configuration sur ElevenLabs

1

Importer le numéro de téléphone Exotel

Dans le Dashboard ElevenAgents, accédez à l’onglet Phone Numbers. Cliquez sur + Import number et sélectionnez From Exotel dans le menu déroulant.

ElevenAgents : menu déroulant Import number avec From Exotel
sélectionné

Renseignez les champs suivants :

  • Label : un nom descriptif (par exemple, Support Line).
  • Phone number : le numéro Exotel au format E.164 (par exemple, +918048961234).
  • Exotel Account SID : issu de l’étape 1 ci-dessus.
  • Exotel API Key : issue de l’étape 1 ci-dessus.
  • Exotel API Token : issu de l’étape 1 ci-dessus (stocké comme secret du Workspace).
  • Region : choisissez Singapore (api.exotel.com) ou Mumbai (api.in.exotel.com) selon votre cluster Exotel.
  • Voicebot Applet ID : l’App ID issu de l’étape 2 ci-dessus.

Cliquez sur Import pour enregistrer le numéro. ElevenLabs vérifiera les identifiants auprès d’Exotel et stockera le jeton API comme secret du Workspace.

2

Attribuer votre agent

Une fois le numéro importé, ouvrez-le depuis la liste Phone Numbers et sélectionnez l’agent qui doit gérer les appels entrants dans le menu déroulant Assigned agent.

Les appels entrants nécessitent que l’applet Voicebot soit attribué au numéro côté Exotel (voir la section précédente). Les configurations réservées aux appels sortants ne nécessitent pas d’attribution entrante.

3

Tester un appel entrant

Appelez votre numéro Exotel depuis n’importe quel téléphone. Exotel acheminera l’appel vers l’applet Voicebot, qui ouvrira un WebSocket vers ElevenLabs. Votre agent décrochera et démarrera la conversation.

Surveillez l’appel dans le Dashboard Calls History afin de vérifier que tout fonctionne comme prévu.

Passer des appels sortants

Les numéros Exotel importés peuvent également lancer des appels sortants. Votre agent compose un numéro de téléphone et démarre la conversation lorsque le destinataire décroche.

1

Lancer un appel sortant

Dans l’onglet Phone Numbers, repérez votre numéro Exotel et cliquez sur le bouton Outbound call.

2

Configurer l’appel

Dans la fenêtre modale Outbound Call :

  1. Sélectionnez l’agent qui gérera la conversation.
  2. Saisissez le numéro de téléphone du destinataire au format E.164.
  3. Cliquez sur Send Test Call pour lancer l’appel.

ElevenLabs appelle l’API Connect d’Exotel avec vos identifiants enregistrés. Exotel compose le numéro du destinataire et achemine l’audio via l’applet Voicebot lorsque l’appel est pris.

Lors des appels sortants, votre agent initie la conversation. Assurez-vous donc que le premier message de votre agent est configuré de façon appropriée.

Pour déclencher des appels sortants par programmation plutôt que depuis le Dashboard, utilisez le point de terminaison Outbound call via Exotel. Le Guide de l’API inclut le schéma de requête et des extraits de SDK prêts à l’emploi.

Prérequis de configuration de l’agent

L’applet Voicebot diffuse l’audio en PCM 8 kHz. La plateforme ElevenLabs gère automatiquement la conversion du format audio. Vous n’avez pas besoin de modifier les paramètres TTS ou audio d’entrée de votre agent.

Formats des numéros de téléphone

Les numéros de téléphone sont stockés au format E.164 (par exemple, +918048961234). Lors de l’importation d’un numéro Exotel indien que vous pourriez écrire localement sous la forme 08048961234 ou 8048961234, saisissez +918048961234. ElevenLabs rejettera les importations en double d’un même numéro dans des formats différents.

Transferts d’appels

Vous pouvez transférer des appels de votre agent vers Exotel en configurant un outil Transfer to number sur votre agent. Lorsque l’outil est appelé, ElevenLabs met fin à la liaison Voicebot et Exotel récupère le numéro de destination depuis l’URL dynamique de l’applet Connect chaîné, puis compose le numéro cible.

Pour que cela fonctionne, vous avez besoin des deux éléments suivants :

  1. L’applet Connect facultatif configuré immédiatement après l’applet Voicebot dans votre flux ExoML (voir l’étape 5 dans Configuration sur Exotel).
  2. L’outil Transfer to number configuré sur votre agent. Consultez le guide de transfert d’agent.

Sans l’applet Connect dans le flux, les tentatives de transfert de l’agent échoueront, car Exotel n’aura aucun emplacement vers lequel acheminer l’appel une fois Voicebot terminé.

Résolution des problèmes

ElevenLabs a reçu une réponse autre que 200 de l’API Connect d’Exotel. Les causes les plus fréquentes sont les suivantes :

  • Région incorrecte. Assurez-vous que la région sélectionnée lors de l’importation correspond au cluster Exotel auquel appartient votre compte (Singapore ou Mumbai).
  • Clé API ou jeton API non valide. Vérifiez à nouveau les identifiants dans la page API Settings d’Exotel et réimportez le numéro avec les bonnes valeurs.
  • L’Account SID ne correspond pas à la paire clé API/jeton.
  • Le numéro de destination n’est pas au format E.164.
  • Vérifiez que le champ URL de l’applet Voicebot correspond exactement au point de terminaison WebSocket ElevenLabs de votre résidence des données, y compris wss://.
  • Vérifiez que le numéro de téléphone Exotel est acheminé vers l’application ExoML qui contient l’applet Voicebot (Dashboard Exotel, ExoPhones, le numéro, Installed App).
  • Dans ElevenLabs, vérifiez qu’un agent est attribué au numéro de téléphone dans l’onglet Phone Numbers.

Le champ Voicebot Applet ID attend l’App ID numérique présent dans l’URL de l’éditeur ExoML (par exemple, pour .../exoml/start_voice/12345, l’ID est 12345). Ne collez pas l’URL complète. Utilisez uniquement l’ID.

ElevenLabs normalise les numéros Exotel au format E.164 avant de les stocker et applique l’unicité sur (provider, phone_number). Si vous avez précédemment importé le même numéro dans un format non E.164, supprimez d’abord l’ancienne entrée, puis réimportez-le au format E.164.

Liens utiles