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

# Crear troncal SIP

> Crea una nueva troncal SIP con credenciales, dirección y configuración de proxy

<Warning>
  **API de Famulor 1.0 (legado).** Esta página se aplica únicamente a Famulor 1.0 (`app.famulor.de`) y se conserva por compatibilidad. Para la plataforma actual, usa la [referencia de la API de Famulor 2.0](/es/api-reference/introduction).
</Warning>

Este endpoint crea una nueva troncal SIP. La plataforma aprovisiona automáticamente las troncales entrante y saliente en la infraestructura de voz utilizando las credenciales proporcionadas.

### Cuerpo de la solicitud

<ParamField body="sip_trunk_type" type="string" required>
  El tipo de troncal SIP: `extension` para una extensión SIP, o `number` para un número de teléfono (DID). Esto determina el formato esperado del campo `phone_number`.
</ParamField>

<ParamField body="phone_number" type="string" required>
  La extensión SIP (1-15 caracteres, p. ej., `1000`) cuando `sip_trunk_type` es `extension`, o un número de teléfono en formato E.164 (p. ej., `+14155551234`) cuando `sip_trunk_type` es `number`.
</ParamField>

<ParamField body="nickname" type="string" optional>
  Una etiqueta corta y descriptiva para la troncal (p. ej., «Proveedor X — Principal»). Máximo 50 caracteres.
</ParamField>

<ParamField body="sip_username" type="string" required>
  Nombre de usuario para la autenticación SIP (3-128 caracteres)
</ParamField>

<ParamField body="sip_password" type="string" required>
  Contraseña para la autenticación SIP (mínimo 3 caracteres)
</ParamField>

<ParamField body="sip_address" type="string" required>
  La dirección del servidor SIP sin puerto (p. ej., `sip.provider.com`)
</ParamField>

<ParamField body="sip_calling_format" type="string" required>
  El formato del número de llamada saliente:

  * `+e164` - Internacional con prefijo `+` (p. ej., `+12025550123`)
  * `e164` - Internacional sin prefijo `+` (p. ej., `12025550123`)
  * `national` - Formato nacional sin código de país (p. ej., `0741926265`)
</ParamField>

<ParamField body="inbound_authorization_type" type="string" required>
  Cómo se autentican las llamadas entrantes:

  * `auth` - Usa el mismo nombre de usuario y contraseña SIP configurados para el tráfico saliente
  * `ip` - Incluye en la lista blanca direcciones IP específicas (requiere `allowed_inbound_ips`)
</ParamField>

<ParamField body="allowed_inbound_ips" type="array" optional>
  Array de direcciones IP autorizadas a enviar llamadas entrantes. **Obligatorio** cuando `inbound_authorization_type` es `ip`. Debe contener al menos una dirección IP válida.
</ParamField>

<ParamField body="country_code" type="string" required>
  Código de país ISO 3166-2 donde se encuentra la troncal SIP (p. ej., `US`, `GB`, `DE`). Cuando `sip_trunk_type` es `number`, el país se detecta automáticamente a partir del número de teléfono si es posible.
</ParamField>

<ParamField body="outbound_proxy" type="boolean" optional>
  Enruta las llamadas salientes a través de una dirección IP fija. Predeterminado: `false`. Actívalo solo si tu proveedor SIP requiere autenticación basada en IP para el tráfico saliente.
</ParamField>

### Respuesta

<ResponseField name="message" type="string">
  Mensaje de éxito
</ResponseField>

<ResponseField name="data" type="object">
  El objeto de troncal SIP creado (los mismos campos que [Obtener troncal SIP](/es/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>

### Qué ocurre después de la creación

Al crear una troncal SIP, la plataforma automáticamente:

1. **Aprovisiona una troncal entrante** en la infraestructura de voz, usando autenticación por nombre de usuario/contraseña o basada en IP según tu configuración de `inbound_authorization_type`
2. **Aprovisiona una troncal saliente**, usando la dirección SIP y las credenciales que proporcionaste, opcionalmente a través del proxy saliente

Si el aprovisionamiento falla, la troncal SIP no se guarda y se devuelve un error `500`.

### Próximos pasos

Después de crear una troncal SIP, asígnala a un asistente de IA:

* **[Crear asistente](/es/api-v1/assistants/create)** - Usa el parámetro `phone_number_id`
* **[Actualizar asistente](/es/api-v1/assistants/update)** - Cambia el número de teléfono en un asistente existente
