> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Intégration Exotel

## 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](https://exotel.com/) actif avec au moins un numéro de téléphone provisionné.
2. Un accès administrateur au Dashboard Exotel sur [my.exotel.com](https://my.exotel.com) (Singapour) ou [my.exotel.in](https://my.exotel.in) (Mumbai).
3. Un compte ElevenLabs et un [agent](/docs/fr/eleven-agents/quickstart) auquel vous souhaitez associer le numéro de téléphone.

> **Note**
>
> 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.

> **Warning**
>
> 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.

| Environnement                         | URL WebSocket                                                        |
| ------------------------------------- | -------------------------------------------------------------------- |
| Par défaut (États-Unis/International) | `wss://api.elevenlabs.io/v1/convai/conversation/exotel`              |
| Résidence dans l’UE                   | `wss://api.eu.residency.elevenlabs.io/v1/convai/conversation/exotel` |
| Résidence en Inde                     | `wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel` |

> **Info**
>
> 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](/docs/fr/overview/administration/data-residency).

## Configuration sur Exotel

#### 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](/docs/_fern-img/ebe936f8cd0d1773a88bb4922a7642cf8c2f844f39eb4ee9ee04eab50ecfa6c4.webp)

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.

#### 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](/docs/_fern-img/1e50c6687044e4fea1e6e636bc2db8a4a481c87eb44cdfc8019cff20bd1fe363.webp)

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](/docs/_fern-img/928f17d1351f93e7a9bd60d92498dde8b24d350686cf273be146e9d315927704.webp)

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](/docs/_fern-img/d19a0e66925d5931cd8f9eae7a1264b8a0e259d07736564cab4e1e894401c508.webp)

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
   ```

   > **Info**
   >
   > 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](/docs/_fern-img/bb375863bb02b0908786403c080280f4561f21d887fb490050d54ff4ec211794.webp)

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](/docs/_fern-img/1c325fc4ae992db551209b667519ffd75161b6a97ebf71ed6b751bbf26339faf.webp)

   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](/docs/_fern-img/7ed4516ec33ea62830d9279a266ada20311741d0489fe2661dc528b8dbcbe126.webp)

   Les URL de résidence correspondantes sont les suivantes :

   | Environnement                         | URL de l’applet Connect                                                  |
   | ------------------------------------- | ------------------------------------------------------------------------ |
   | Par défaut (États-Unis/International) | `https://api.elevenlabs.io/v1/convai/exotel/connect-applet`              |
   | Résidence dans l’UE                   | `https://api.eu.residency.elevenlabs.io/v1/convai/exotel/connect-applet` |
   | Résidence en Inde                     | `https://api.in.residency.elevenlabs.io/v1/convai/exotel/connect-applet` |

   > **Info**
   >
   > 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.

> **Note**
>
> 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.

#### 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](/docs/_fern-img/30351173b2c2cfaa2ccd8d9e29e6aaba319ac3b5f2ee51d91a4f7913d3e218a4.webp)

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](/docs/_fern-img/5ed6b42794bb00f330dd52d50a5831622e3156955d59adb1ca64b746d1ec7d2b.webp)

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.

> **Note**
>
> 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

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

Dans le Dashboard ElevenAgents, accédez à l’onglet [**Phone Numbers**](https://elevenlabs.io/app/agents/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é](/docs/_fern-img/2a62cf9f6b63914c5688da5f58515168fa1ff39b8602f70fea7a1ff257bb6918.webp)

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.

#### 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**.

> **Note**
>
> 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.

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

> **Tip**
>
> Surveillez l’appel dans le [Dashboard Calls History](https://elevenlabs.io/app/agents/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.

#### Lancer un appel sortant

Dans l’onglet [**Phone Numbers**](https://elevenlabs.io/app/agents/phone-numbers), repérez votre numéro Exotel et cliquez sur le bouton **Outbound call**.

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

> **Note**
>
> 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](/docs/fr/api-reference/exotel/outbound-call). 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](#setup-on-exotel)).
2. L’outil **Transfer to number** configuré sur votre agent. Consultez le [guide de transfert d’agent](/docs/fr/eleven-agents/customization/tools/system-tools/transfer-to-number).

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

#### Erreur \`exotel_connect_failed\` lors du lancement d’un appel sortant

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.

#### Les appels entrants n’atteignent pas mon agent

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

#### Erreurs de non-correspondance de \`Applet ID\` lors de l’importation

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.

#### Numéro de téléphone importé deux fois dans des formats différents

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

* [Guide de l’API pour les appels sortants via Exotel](/docs/fr/api-reference/exotel/outbound-call)
* [Documentation de l’API Exotel](https://developer.exotel.com/api/)
* [Guide de l’applet Voicebot Exotel](https://support.exotel.com/support/solutions/articles/3000099826)
* [Dashboard des numéros de téléphone ElevenAgents](https://elevenlabs.io/app/agents/phone-numbers)