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

# Mettre à jour un trunk SIP

> Met à jour la configuration d’un trunk SIP existant dans Famulor via l’API. Modifiez les identifiants, les règles de routage et les numéros de téléphone assignés pour votre téléphonie vocale IA.

<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 met à jour un trunk SIP existant. N’incluez que les champs que vous souhaitez modifier - les mises à jour partielles sont prises en charge. Modifier les identifiants, l’adresse ou les paramètres de proxy re-provisionne automatiquement les trunks d’infrastructure vocale concernés.

### Paramètres de chemin

<ParamField path="id" type="integer" required>
  L’identifiant unique du trunk SIP à mettre à jour
</ParamField>

### Paramètres du corps

Tous les champs sont optionnels. N’envoyez que les champs que vous souhaitez mettre à jour.

<ParamField body="phone_number" type="string" optional>
  L’extension SIP ou le numéro de téléphone (1 à 15 caractères)
</ParamField>

<ParamField body="nickname" type="string" optional>
  Une étiquette courte et conviviale pour le trunk. 50 caractères maximum. Envoyez `null` pour l’effacer.
</ParamField>

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

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

<ParamField body="sip_address" type="string" optional>
  L’adresse du serveur SIP sans le port
</ParamField>

<ParamField body="sip_calling_format" type="string" optional>
  Le format du numéro appelant sortant : `+e164`, `e164` ou `national`
</ParamField>

<ParamField body="inbound_authorization_type" type="string" optional>
  Comment les appels entrants sont authentifiés : `auth` ou `ip`. Lors du passage à `ip`, vous devez également fournir `allowed_inbound_ips`. Lors du passage à `auth`, toute liste blanche d’IP existante est effacée.
</ParamField>

<ParamField body="allowed_inbound_ips" type="array" optional>
  Tableau des adresses IP autorisées pour les appels entrants. **Requis** lorsque `inbound_authorization_type` est défini sur `ip`.
</ParamField>

<ParamField body="country_code" type="string" optional>
  Code pays ISO 3166-2
</ParamField>

<ParamField body="outbound_proxy" type="boolean" optional>
  Achemine les appels sortants via une adresse IP fixe
</ParamField>

### Réponse

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

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

<ResponseExample>
  ```json 200 Updated credentials theme={null} theme={null}
  {
    "message": "SIP trunk updated successfully.",
    "data": {
      "id": 42,
      "phone_number": "1000",
      "nickname": "Provider X — Main",
      "sip_username": "new_username",
      "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_newtrunkid1",
      "outbound_trunk_id": "ST_newtrunkid2",
      "created_at": "2026-03-31T10:00:00.000000Z",
      "updated_at": "2026-03-31T12:00:00.000000Z"
    }
  }
  ```

  ```json 200 Switched to IP auth theme={null} theme={null}
  {
    "message": "SIP trunk updated 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": "ip",
      "allowed_inbound_ips": ["203.0.113.10"],
      "outbound_proxy": false,
      "country_code": "US",
      "inbound_trunk_id": "ST_newtrunkid1",
      "outbound_trunk_id": "ST_yyyyyyyyyyyy",
      "created_at": "2026-03-31T10:00:00.000000Z",
      "updated_at": "2026-03-31T12:00:00.000000Z"
    }
  }
  ```

  ```json 404 Not Found theme={null} theme={null}
  {
    "error": "SIP trunk not found."
  }
  ```

  ```json 422 Validation Error theme={null} theme={null}
  {
    "message": "The given data was invalid.",
    "errors": {
      "allowed_inbound_ips": ["At least one allowed IP address is required when authorization type is \"ip\"."]
    }
  }
  ```

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

### Comportement de re-provisionnement

Les modifications des champs suivants déclenchent un re-provisionnement automatique des trunks d’infrastructure vocale :

| Champ modifié                | Trunk entrant | Trunk sortant |
| ---------------------------- | :-----------: | :-----------: |
| `sip_username`               |     Recréé    |     Recréé    |
| `sip_password`               |     Recréé    |     Recréé    |
| `sip_address`                |       -       |     Recréé    |
| `phone_number`               |     Recréé    |     Recréé    |
| `inbound_authorization_type` |     Recréé    |       -       |
| `allowed_inbound_ips`        |     Recréé    |       -       |
| `outbound_proxy`             |       -       |     Recréé    |

Des champs comme `sip_calling_format` et `country_code` sont stockés localement et ne déclenchent pas de re-provisionnement.
