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

# Mise en file d'attente des appels

## Vue d'ensemble

Lorsqu'un agent ou un Workspace atteint sa limite de requêtes simultanées, les nouveaux appels sont normalement rejetés immédiatement. Lorsque la mise en file d'attente des appels est activée, les appelants qui arrivent alors que l'agent est à capacité restent en ligne avec un audio d'attente, puis sont connectés automatiquement, dans leur ordre d'arrivée, dès qu'un créneau se libère.

La mise en file d'attente des appels se configure par agent et est activée par défaut pour les nouveaux agents.

> **Note**
>
> La mise en file d'attente des appels s'applique une fois toute la capacité disponible utilisée, y compris la capacité supplémentaire lorsque la [tarification supplémentaire](/docs/fr/eleven-agents/guides/burst-pricing) est activée pour l'agent.

## Fonctionnement de la mise en file d'attente des appels

1. **Vérification de la capacité** : Lorsqu'un appel arrive, ElevenAgents vérifie si l'agent et le Workspace disposent d'un créneau de requête simultanée libre. Si c'est le cas, l'appel est connecté immédiatement.
2. **Mise en file d'attente** : Si aucun créneau n'est disponible, l'appelant est placé dans la file d'attente de l'agent et entend l'audio d'attente. Aucune conversation ne démarre et aucun frais n'est facturé pendant l'attente.
3. **Admission** : Dès qu'un créneau se libère, l'appelant en tête de file est connecté et la conversation démarre normalement.
4. **Expiration** : Si aucun créneau ne se libère dans le délai **Temps d'attente maximal dans la file**, l'appel est déconnecté. Les appels téléphoniques sont raccrochés normalement. Les clients WebSocket reçoivent un événement `queue_status` avec le statut `timed_out`, suivi d'une fermeture avec le code 4300.

Les appelants sont connectés strictement dans leur ordre d'arrivée pour un agent donné. Lorsque plusieurs agents partagent le pool de requêtes simultanées d'un Workspace, les appelants qui attendent depuis le plus longtemps sont généralement connectés en premier.

### Ce que l'appelant entend

* Les appelants téléphoniques sur Twilio et les numéros de trunk SIP entendent l'audio d'attente pendant l'appel.
* Les utilisateurs du widget et des SDK de navigateur entendent l'audio d'attente dans le navigateur. Le widget, version 0.17.0 ou ultérieure, affiche également un message d'attente et désactive la saisie de texte pendant la mise en file d'attente.
* Les clients directs de l'API WebSocket reçoivent l'audio d'attente sous forme d'événements `audio` standards, ainsi que des événements `queue_status` pour piloter un état d'attente dans votre propre interface. Consultez [Gestion des événements de file d'attente](#handling-queue-events-in-a-custom-websocket-client).

### Facturation et durée de conversation

Le temps passé dans la file d'attente n'est **pas facturé**, ne compte pas dans la **Durée maximale de conversation** de l'agent et n'est pas inclus dans la durée déclarée de la conversation. Les détails de la conversation dans le Dashboard indiquent combien de temps l'appelant a attendu avant d'être connecté.

## Canaux pris en charge

| Canal                                        | Mise en file d'attente des appels |
| -------------------------------------------- | --------------------------------- |
| Appels entrants Twilio                       | Pris en charge                    |
| Appels entrants de trunk SIP                 | Pris en charge                    |
| Widget et SDK client (WebSocket et WebRTC)   | Pris en charge                    |
| API WebSocket directe                        | Pris en charge                    |
| Appels sortants et appels par lots           | Non pris en charge                |
| Agents uniquement textuels                   | Non pris en charge                |
| Genesys, AudioCodes, Exotel, WhatsApp et SMS | Non pris en charge                |

> **Note**
>
> La limite quotidienne d'appels n'est pas mise en file d'attente. Un appel qui dépasse la limite
> quotidienne de l'agent est rejeté immédiatement, car cette limite ne se libère pas avant le lendemain.

## Configuration

La mise en file d'attente des appels se configure par agent dans la section **Limites** de l'onglet **Sécurité** de l'agent.

| Paramètre                                | Description                                                                                                                                                                                                                                    | Valeur par défaut             |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **Activer la file d'attente des appels** | Place les appelants dans une file d'attente lorsque l'agent atteint sa limite de requêtes simultanées.                                                                                                                                         | Activé                        |
| **Temps d'attente maximal dans la file** | Durée, en secondes, pendant laquelle un appelant peut attendre avant que l'appel soit déconnecté. Entre 1 et 1 800 secondes (30 minutes).                                                                                                      | 180 secondes (3 minutes)      |
| **Audio d'attente personnalisé**         | Un fichier MP3 ou WAV lu en boucle pour les appelants en file d'attente. Jusqu'à 40 Mo et 3 minutes. Lorsqu'aucun fichier n'est importé, les appelants entendent la tonalité d'attente par défaut. Importez-le dans le Dashboard ou via l'API. | Tonalité d'attente par défaut |

#### Mettre à jour via le Dashboard

#### Ouvrir les paramètres de limites

Ouvrez votre agent dans le Dashboard, accédez à l'onglet **Sécurité**, puis faites défiler jusqu'à **Limites**.

#### Activer la mise en file d'attente des appels

Vérifiez que **Activer la file d'attente des appels** est activé et définissez le **Temps d'attente maximal dans la file**.

#### Importer un audio d'attente (facultatif)

Sous **Audio d'attente personnalisé**, importez un fichier MP3 ou WAV. Vous pouvez prévisualiser la tonalité d'attente par défaut et votre extrait importé avant de publier.

#### Publier vos modifications

Cliquez sur **Publier** pour appliquer les nouveaux paramètres.

#### Mettre à jour via la CLI

#### Récupérer la configuration de l'agent

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Modifier \`agent_configs/\<agent-name>.json\`

Définissez `platform_settings.queueing_config` :

```json
{
  "platform_settings": {
    "queueing_config": {
      "enabled": true,
      "wait_timeout_seconds": 300
    }
  }
}
```

#### Envoyer vos modifications

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Mettre à jour via l'API

```python
from dotenv import load_dotenv
from elevenlabs import ElevenLabs
import os

load_dotenv()

elevenlabs = ElevenLabs(
    api_key=os.getenv("ELEVENLABS_API_KEY"),
)

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    platform_settings={
        "queueing_config": {
            "enabled": True,
            "wait_timeout_seconds": 300,
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  platformSettings: {
    queueingConfig: {
      enabled: true,
      waitTimeoutSeconds: 300,
    },
  },
});
```

Les nouveaux agents sont créés avec `queueing_config.enabled` défini sur `true`. Pour créer un agent avec la mise en file d'attente des appels désactivée, définissez `queueing_config.enabled` sur `false` dans la requête de création.

### Gérer l'audio d'attente via l'API

Importez un fichier MP3 ou WAV pour définir l'audio d'attente personnalisé de l'agent. L'importation d'un nouveau fichier remplace le précédent. L'API accepte les types de contenu `audio/mpeg` et `audio/wav`, les exemples définissent donc explicitement le type.

```python
from dotenv import load_dotenv
from elevenlabs import ElevenLabs
import os

load_dotenv()

elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)

elevenlabs.conversational_ai.agents.hold_audio.create(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
hold_audio_file=("hold-music.mp3", open("hold-music.mp3", "rb"), "audio/mpeg"),
)

```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import fs from "node:fs";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

const holdAudioFile = new File([fs.readFileSync("hold-music.mp3")], "hold-music.mp3", {
  type: "audio/mpeg",
});

await elevenlabs.conversationalAi.agents.holdAudio.create("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  holdAudioFile,
});
```

Supprimez l'extrait personnalisé pour revenir à la tonalité d'attente par défaut :

```python
elevenlabs.conversational_ai.agents.hold_audio.delete(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
)
```

```typescript
await elevenlabs.conversationalAi.agents.holdAudio.delete("agent_7101k5zvyjhmfg983brhmhkd98n6");
```

L'extrait actuel est renvoyé en lecture seule sous `platform_settings.queueing_config.hold_audio` sur l'agent. L'envoi de `hold_audio` dans une requête de création ou de mise à jour d'agent n'a aucun effet.

## Gestion des événements de file d'attente dans un client WebSocket personnalisé

Les clients connectés via l'[API WebSocket](/docs/fr/eleven-agents/libraries/web-sockets) reçoivent des événements `queue_status` lorsqu'ils sont en file d'attente :

```json
{
  "type": "queue_status",
  "queue_status_event": {
    "status": "waiting"
  }
}
```

* `waiting` est envoyé une fois, immédiatement après `conversation_initiation_metadata` et avant tout audio d'attente.
* `admitted` est envoyé lorsque l'appelant est connecté. La conversation se poursuit alors normalement.
* `timed_out` est envoyé lorsque l'attente dépasse le temps maximal dans la file. Le serveur ferme alors la connexion avec le code 4300.

Les appels connectés immédiatement ne reçoivent jamais d'événements `queue_status`. L'événement est toujours envoyé aux appelants en file d'attente et n'a pas besoin d'être activé dans les `client_events` de l'agent.

L'audio d'attente est diffusé sous forme d'événements `audio` standards, par segments d'environ une seconde, à condition que les événements client de l'agent incluent `audio`. Utilisez `queue_status` pour afficher un état d'attente plutôt que de traiter l'audio d'attente comme la parole de l'agent.

> **Info**
>
> Les SDK `@elevenlabs/client` et `@elevenlabs/react` n'exposent pas encore de callback dédié pour cet
> événement. Utilisez le callback `onIncomingEvent` pour observer les événements bruts du serveur, y compris
> `queue_status`.

## FAQ

#### Un appel en file d'attente compte-t-il dans ma limite de requêtes simultanées ?

Non. Un appelant en file d'attente n'occupe pas de créneau de requête simultanée avant d'être connecté à l'agent.

#### Les appelants peuvent-ils entendre leur position dans la file ou une estimation du temps d'attente ?

Pas pour le moment. Les appelants en file d'attente entendent uniquement l'audio d'attente. La position dans la file et les estimations de temps d'attente ne sont pas annoncées.

#### Que se passe-t-il si l'appelant raccroche pendant l'attente ?

L'appelant quitte immédiatement la file et toutes les personnes derrière lui avancent d'une place. Aucune minute de conversation n'est facturée.

#### La mise en file d'attente des appels fonctionne-t-elle avec les appels sortants ?

Non. Les appels sortants et par lots ne sont émis que lorsqu'une capacité est disponible, ils ne sont donc jamais mis en file d'attente.