> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer un trunk SIP

> Crée un nouveau trunk SIP avec identifiants, adresse et paramètres de proxy

<Warning>
  **API Famulor 1.0 (héritée).** Cette page concerne uniquement Famulor 1.0 (`app.famulor.de`) et est conservée pour la compatibilité. Pour la plateforme actuelle, consultez la [référence API Famulor 2.0](/fr/api-reference/introduction).
</Warning>

Ce point de terminaison crée un nouveau trunk SIP. La plateforme provisionne automatiquement les trunks entrants et sortants sur l’infrastructure vocale à l’aide des identifiants fournis.

### Paramètres du corps

<ParamField body="sip_trunk_type" type="string" required>
  Le type de trunk SIP : `extension` pour une extension SIP, ou `number` pour un numéro de téléphone (DID). Cela détermine le format attendu du champ `phone_number`.
</ParamField>

<ParamField body="phone_number" type="string" required>
  L’extension SIP (1 à 15 caractères, par ex. `1000`) lorsque `sip_trunk_type` vaut `extension`, ou un numéro de téléphone au format E.164 (par ex. `+14155551234`) lorsque `sip_trunk_type` vaut `number`.
</ParamField>

<ParamField body="nickname" type="string" optional>
  Une étiquette courte et conviviale pour le trunk (par ex. « Fournisseur X — Principal »). 50 caractères maximum.
</ParamField>

<ParamField body="sip_username" type="string" required>
  Nom d’utilisateur pour l’authentification SIP (3 à 128 caractères)
</ParamField>

<ParamField body="sip_password" type="string" required>
  Mot de passe pour l’authentification SIP (3 caractères minimum)
</ParamField>

<ParamField body="sip_address" type="string" required>
  L’adresse du serveur SIP sans le port (par ex. `sip.provider.com`)
</ParamField>

<ParamField body="sip_calling_format" type="string" required>
  Le format du numéro appelant sortant :

  * `+e164` - International avec préfixe `+` (par ex. `+12025550123`)
  * `e164` - International sans préfixe `+` (par ex. `12025550123`)
  * `national` - Format national sans indicatif pays (par ex. `0741926265`)
</ParamField>

<ParamField body="inbound_authorization_type" type="string" required>
  Comment les appels entrants sont authentifiés :

  * `auth` - Utilise le même nom d’utilisateur et mot de passe SIP configurés pour les appels sortants
  * `ip` - Autorise des adresses IP spécifiques via liste blanche (nécessite `allowed_inbound_ips`)
</ParamField>

<ParamField body="allowed_inbound_ips" type="array" optional>
  Tableau des adresses IP autorisées à envoyer des appels entrants. **Requis** lorsque `inbound_authorization_type` vaut `ip`. Doit contenir au moins une adresse IP valide.
</ParamField>

<ParamField body="country_code" type="string" required>
  Code pays ISO 3166-2 où se situe le trunk SIP (par ex. `US`, `GB`, `DE`). Lorsque `sip_trunk_type` vaut `number`, le pays est détecté automatiquement à partir du numéro de téléphone si possible.
</ParamField>

<ParamField body="outbound_proxy" type="boolean" optional>
  Achemine les appels sortants via une adresse IP fixe. Par défaut : `false`. N’activez ceci que si votre fournisseur SIP exige une authentification basée sur l’IP pour le trafic sortant.
</ParamField>

### Réponse

<ResponseField name="message" type="string">
  Message de succès
</ResponseField>

<ResponseField name="data" type="object">
  L’objet trunk SIP créé (mêmes champs que [Récupérer un trunk SIP](/fr/api-v1/sip-trunks/get))
</ResponseField>

<ResponseExample>
  ```json 201 Extension with password auth theme={null} theme={null}
  {
    "message": "SIP trunk created successfully.",
    "data": {
      "id": 42,
      "phone_number": "1000",
      "nickname": "Provider X — Main",
      "sip_username": "myuser",
      "sip_address": "sip.provider.com",
      "sip_calling_format": "+e164",
      "inbound_authorization_type": "auth",
      "allowed_inbound_ips": null,
      "outbound_proxy": false,
      "country_code": "US",
      "inbound_trunk_id": "ST_xxxxxxxxxxxx",
      "outbound_trunk_id": "ST_yyyyyyyyyyyy",
      "created_at": "2026-03-31T10:00:00.000000Z",
      "updated_at": "2026-03-31T10:00:00.000000Z"
    }
  }
  ```

  ```json 201 Phone number (DID) with IP auth theme={null} theme={null}
  {
    "message": "SIP trunk created successfully.",
    "data": {
      "id": 43,
      "phone_number": "+14155551234",
      "nickname": null,
      "sip_username": "trunk_user",
      "sip_address": "sip.provider.com",
      "sip_calling_format": "e164",
      "inbound_authorization_type": "ip",
      "allowed_inbound_ips": ["203.0.113.10", "198.51.100.20"],
      "outbound_proxy": true,
      "country_code": "US",
      "inbound_trunk_id": "ST_xxxxxxxxxxxx",
      "outbound_trunk_id": "ST_yyyyyyyyyyyy",
      "created_at": "2026-03-31T10:00:00.000000Z",
      "updated_at": "2026-03-31T10:00:00.000000Z"
    }
  }
  ```

  ```json 409 Duplicate theme={null} theme={null}
  {
    "error": "A SIP trunk with the same phone number, username, and address already exists."
  }
  ```

  ```json 422 Validation Error theme={null} theme={null}
  {
    "message": "The given data was invalid.",
    "errors": {
      "sip_address": ["SIP server address is required."],
      "sip_calling_format": ["SIP calling format must be one of: +e164, e164, national."]
    }
  }
  ```

  ```json 500 Provisioning Error theme={null} theme={null}
  {
    "error": "Failed to create SIP trunk. Please try again or contact support."
  }
  ```
</ResponseExample>

### Ce qui se passe après la création

Lorsque vous créez un trunk SIP, la plateforme effectue automatiquement les actions suivantes :

1. **Provisionne un trunk entrant** sur l’infrastructure vocale - en utilisant soit l’authentification par nom d’utilisateur/mot de passe, soit l’authentification basée sur l’IP selon votre paramètre `inbound_authorization_type`
2. **Provisionne un trunk sortant** - en utilisant l’adresse SIP et les identifiants que vous avez fournis, éventuellement via le proxy sortant

Si le provisionnement échoue, le trunk SIP n’est pas enregistré et une erreur `500` est renvoyée.

### Étapes suivantes

Après avoir créé un trunk SIP, assignez-le à un assistant IA :

* **[Créer un assistant](/fr/api-v1/assistants/create)** - Utilisez le paramètre `phone_number_id`
* **[Mettre à jour un assistant](/fr/api-v1/assistants/update)** - Modifiez le numéro de téléphone d’un assistant existant
