---
title: "Router les appels entrants d'un trunk selon l'origine et le numéro de l'appelant"
description: "Utilisez les règles de routage d'un trunk SIP pour envoyer les appelants mobiles et fixes vers des passerelles différentes, router selon le pays de l'appelant ou ajouter un préfixe selon son origine."
canonical: "https://bird.com/fr-fr/documentation/guides/voice/trunk-routing-rules"
---

# Router les appels entrants d'un trunk selon l'origine et le numéro de l'appelant

Le **Inbound routing** d'un trunk SIP peut traiter les appels différemment selon la personne qui appelle et le numéro composé. Les règles vérifient des informations sur chaque appel, comme le type de ligne ou le pays de l'appelant, et déterminent ce qui se passe : envoyer l'appel vers un groupe de passerelles, modifier le numéro que reçoit votre équipement, le rejeter ou le transférer. Cette page donne des configurations fonctionnelles pour les cas les plus courants.

## Avant de commencer

- Un trunk SIP avec les appels entrants activés, ses passerelles dans au moins un groupe et vos numéros dirigés vers lui. [Configurer un trunk SIP](/docs/guides/voice/sip-trunk-setup) couvre ces trois points.
- Ouvrez **Voice** > [**SIP Trunks**](https://bird.com/dashboard/w/voice/sip-trunks), ouvrez le trunk, puis accédez à **Inbound routing** > **Rules**.

## Fonctionnement des règles

Pour chaque appel entrant, Bird vérifie les règles de haut en bas. La première règle dont la condition **When** correspond décide du sort de l'appel ; un appel qui ne correspond à aucune règle utilise la **Default route** (**No rule above matched**). Chaque règle, ainsi que la route par défaut, possède une action **Then** : **Route to group**, **Reject** ou **Forward to number**. Un trunk contient jusqu'à 50 règles.

Une condition **When** porte sur les informations d'appel suivantes. Sélectionnez une information dans la liste, ou utilisez **Edit expression** pour écrire la condition vous-même.

| Information       | Contenu                                                                                                           |
| ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| `orig.line_type`  | Le type de ligne de l'appelant : `LINE_FIXED`, `LINE_MOBILE`, `LINE_TOLL_FREE`, `LINE_PAYPHONE` ou `LINE_UNKNOWN` |
| `orig.country`    | Le code pays à deux lettres de l'appelant, par exemple `GB`. Vide lorsque l'appelant a masqué son numéro          |
| `orig.anonymous`  | `true` lorsque l'appelant a masqué son numéro                                                                     |
| `orig.number`     | Le numéro de l'appelant au format E.164, avec `+`                                                                 |
| `orig.digits`     | Le numéro de l'appelant sans le `+` initial                                                                       |
| `dest.number`     | Le numéro composé, au format E.164, avec `+`                                                                      |
| `dest.digits`     | Le numéro composé, sans le `+` initial                                                                            |
| `call.local_hour` | L’heure de l’appel, de 0 à 23, dans le fuseau horaire du routage                                                  |
| `call.weekday`    | Le jour de l’appel, dans le fuseau horaire du routage                                                             |

Écrivez les types de ligne sous forme de constantes, par exemple `orig.line_type == LINE_MOBILE`. Une constante inconnue provoque une erreur à l’enregistrement, alors qu’une chaîne mal orthographiée comme `"LINE_MOBLE"` est acceptée et ne correspond jamais à aucun appel.

## Envoyer les appelants mobiles et fixes vers des passerelles différentes

Utilisez cette configuration lorsque, par exemple, les appelants mobiles doivent joindre un SBC et tous les autres un SBC différent.

1. Dans **Groups**, créez un groupe pour chaque destination, par exemple `mobile` avec votre SBC mobile et `landline` avec l’autre.
2. Dans **Rules**, sélectionnez **Add rule** et nommez la règle _Mobile callers_. Définissez **When** sur **Line type** avec la valeur `LINE_MOBILE`.
3. Définissez **Then** sur **Route to group** et choisissez `mobile`.
4. Définissez **Default route** sur **Route to group** et choisissez `landline`. Cette route reçoit tous les appels qui ne correspondent pas à la règle.
5. Sélectionnez **Review and save**, puis confirmez.

Le même principe permet de router par pays : avec **Edit expression**, définissez **When** sur une condition telle que `orig.country == GB`.

## Ajouter un préfixe selon l'origine de l'appelant

Votre SBC peut attendre, devant le numéro composé, un préfixe qui lui indique l'origine de l'appelant, par exemple `801` pour une ligne fixe, `802` pour un mobile et `800` pour tout le reste. Bird modifie la partie utilisateur de la Request-URI qu'il envoie à votre passerelle ; l'hôte et le port de la passerelle restent inchangés. Pour un appel vers `+44 808 157 0123`, un appelant mobile arrive alors sous la forme `sip:802448081570123@198.51.100.20`.

Vous pouvez configurer cela de deux manières équivalentes.

### Une règle par origine

Utilisez cette méthode si chaque origine doit apparaître comme une entrée distincte dans l'éditeur, ou si les origines diffèrent par plus que le préfixe, par exemple par un groupe différent.

1. Dans **Rules**, sélectionnez **Add rule**, nommez la règle _Landline_ et définissez **When** sur **Line type** avec la valeur `LINE_FIXED`.
2. Définissez **Then** sur **Route to group**, choisissez votre groupe sous **Group**, puis sélectionnez **Override R-URI user part**. Saisissez `801`, puis utilisez **Insert** pour ajouter `dest.digits` à la suite.
3. Répétez l'opération pour _Mobile_ (`LINE_MOBILE`, préfixe `802`).
4. Définissez **Default route** sur **Route to group** avec la partie utilisateur `800` suivie de `dest.digits`.
5. Sélectionnez **Review and save**, puis confirmez.

### Une seule expression

Utilisez cette méthode lorsque seul le préfixe change. Laissez **Rules** vide, définissez **Default route** sur **Route to group** avec votre groupe, sélectionnez **Override R-URI user part**, insérez cette expression, puis ajoutez `dest.digits` après elle :

```text
orig.line_type == LINE_FIXED ? "801" : orig.line_type == LINE_MOBILE ? "802" : "800"
```

Les deux configurations produisent le même `INVITE`. Le champ **R-URI user part** propre à une passerelle n'accepte que du texte fixe autour du numéro composé. Placez donc un préfixe qui dépend de l'appelant dans une règle ou dans la route par défaut, comme ci-dessus.

## Vérifier votre configuration

1. **Review and save** vérifie chaque condition et chaque modèle, puis liste les erreurs avec leur emplacement. Rien n'est enregistré tant qu'elles ne sont pas corrigées.
2. Appelez l'un de vos numéros depuis un téléphone mobile, depuis une ligne fixe, puis en masquant votre numéro. Sur votre SBC, comparez la Request-URI de chaque `INVITE` reçu avec ce que vous attendez.
3. Ouvrez chaque appel sous **Voice** > [**Legs**](https://bird.com/dashboard/w/voice/legs) et utilisez son **SIP Call-ID** pour retrouver le même appel dans les journaux de votre SBC.

## Étapes suivantes

| Page                                                          | Contenu                                                                              |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| [Recevoir des appels](/docs/guides/voice/receiving-calls)     | Routes par numéro, groupes, route par défaut et appels refusés                       |
| [Configurer un trunk SIP](/docs/guides/voice/sip-trunk-setup) | La configuration complète d'un trunk dans l'ordre, de la création à un appel de test |
| [Passer des appels](/docs/guides/voice/placing-calls)         | Ce que Bird attend dans le `INVITE` envoyé par votre équipement                      |

## Related resources

- [What is a voice API?](/explained/voice/what-is-a-voice-api) (answer)
- [Voice](/voice-api) (product)
- [Voice overview](/docs/guides/voice/overview) (docs)

[Get an implementation brief](/learn/workspace?topic=voice)
