---
title: "Enrutar las llamadas entrantes del trunk según el origen y el número de quien llama"
description: "Usa las reglas de enrutamiento de trunks de SIP para enviar a quienes llaman desde móvil y desde fijo a gateways distintos, enrutar por país de quien llama o añadir un prefijo según su origen."
canonical: "https://bird.com/es-es/documentacion/guides/voice/trunk-routing-rules"
---

# Enrutar las llamadas entrantes del trunk según el origen y el número de quien llama

El **Inbound routing** de un trunk de SIP puede tratar las llamadas de forma distinta según quién llama y a qué número ha marcado. Las reglas comprueban datos de cada llamada, como el tipo de línea o el país de quien llama, y deciden qué ocurre: enviar la llamada a un grupo de gateways, cambiar el número que recibe tu equipo, rechazarla o desviarla. Esta página muestra configuraciones funcionales para los casos más habituales.

## Antes de empezar

- Un trunk de SIP con las llamadas entrantes activadas, sus gateways en al menos un grupo y tus números apuntando a él. [Configurar un trunk de SIP](/docs/guides/voice/sip-trunk-setup) explica los tres pasos.
- Abre **Voice** > [**SIP Trunks**](https://bird.com/dashboard/w/voice/sip-trunks), abre el trunk y ve a **Inbound routing** > **Rules**.

## Cómo funcionan las reglas

Bird comprueba las reglas de arriba abajo en cada llamada entrante. La primera regla cuyo **When** coincide decide qué pasa con la llamada; una llamada que no coincide con ninguna regla usa la **Default route** (**No rule above matched**). Cada regla y la ruta predeterminada tienen un **Then**: **Route to group**, **Reject** o **Forward to number**. Un trunk admite hasta 50 reglas.

Un **When** es una condición sobre estos datos de la llamada. Elige un dato de la lista o usa **Edit expression** para escribir tú la condición.

| Dato              | Qué contiene                                                                                                     |
| ----------------- | ---------------------------------------------------------------------------------------------------------------- |
| `orig.line_type`  | El tipo de línea de quien llama: `LINE_FIXED`, `LINE_MOBILE`, `LINE_TOLL_FREE`, `LINE_PAYPHONE` o `LINE_UNKNOWN` |
| `orig.country`    | El código de país de dos letras de quien llama, como `GB`. Vacío cuando quien llama oculta su número             |
| `orig.anonymous`  | `true` cuando quien llama oculta su número                                                                       |
| `orig.number`     | El número de quien llama en formato E.164, con `+`                                                               |
| `orig.digits`     | El número de quien llama sin el `+` inicial                                                                      |
| `dest.number`     | El número marcado, en formato E.164, con `+`                                                                     |
| `dest.digits`     | El número marcado, sin el `+` inicial                                                                            |
| `call.local_hour` | La hora de la llamada, de 0 a 23, en la zona horaria del enrutamiento                                            |
| `call.weekday`    | El día de la llamada, en la zona horaria del enrutamiento                                                        |

Escribe los tipos de línea como constantes, por ejemplo `orig.line_type == LINE_MOBILE`. Una constante desconocida provoca un error al guardar, mientras que una cadena mal escrita como `"LINE_MOBLE"` se acepta y nunca coincide.

## Enviar a quienes llaman desde móviles y desde fijos a gateways distintos

Usa esta configuración cuando, por ejemplo, las llamadas desde móviles deban llegar a un SBC y el resto a otro.

1. En **Groups**, crea un grupo para cada destino, por ejemplo `mobile` con tu SBC para móviles y `landline` con el otro.
2. En **Rules**, selecciona **Add rule** y llámala _Mobile callers_. Configura **When** como **Line type** con el valor `LINE_MOBILE`.
3. Configura **Then** como **Route to group** y elige `mobile`.
4. Configura la **Default route** con **Route to group** y elige `landline`. Esta ruta recibe todas las llamadas que no coinciden con la regla.
5. Selecciona **Review and save** y después confirma.

El mismo esquema sirve para enrutar por país: con **Edit expression**, define en **When** una condición como `orig.country == GB`.

## Añadir un prefijo según el origen de quien llama

Es posible que tu SBC espere delante del número marcado un prefijo que le indique el origen de quien llama, por ejemplo `801` para fijo, `802` para móvil y `800` para cualquier otro caso. Bird cambia la parte de usuario de la Request-URI que envía a tu gateway; el host y el puerto del gateway no cambian. Así, en una llamada a `+44 808 157 0123`, una persona que llama desde un móvil llega como `sip:802448081570123@198.51.100.20`.

Puedes configurarlo de dos formas equivalentes.

### Una regla por origen

Usa esta opción si quieres que cada origen aparezca como una entrada propia en el editor, o si los orígenes se diferencian en algo más que el prefijo, como un grupo distinto.

1. En **Rules**, selecciona **Add rule**, llámala _Landline_ y configura **When** con **Line type** y el valor `LINE_FIXED`.
2. Configura **Then** con **Route to group**, elige tu grupo en **Group** y selecciona **Override R-URI user part**. Escribe `801` y usa **Insert** para añadir `dest.digits` a continuación.
3. Repite los pasos para _Mobile_ (`LINE_MOBILE`, prefijo `802`).
4. Configura la **Default route** con **Route to group** y la parte de usuario `800` seguida de `dest.digits`.
5. Selecciona **Review and save** y confirma.

### Una sola expresión

Usa esta opción cuando solo cambia el prefijo. Deja **Rules** vacío, configura la **Default route** como **Route to group** con tu grupo, selecciona **Override R-URI user part**, inserta esta expresión y añade `dest.digits` después de ella:

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

Ambas configuraciones entregan el mismo `INVITE`. El campo **R-URI user part** propio de un gateway solo acepta texto fijo alrededor del número marcado, así que coloca el prefijo que depende de quien llama en una regla o en la ruta predeterminada, como se indica arriba.

## Comprueba tu configuración

1. **Review and save** comprueba cada condición y plantilla, y enumera los errores junto con su ubicación. No se guarda nada hasta que los corrijas.
2. Llama a uno de tus números desde un móvil, desde un fijo y con tu número oculto. En tu SBC, compara la Request-URI de cada `INVITE` recibido con lo que esperas.
3. Abre cada llamada en **Voice** > [**Legs**](https://bird.com/dashboard/w/voice/legs) y usa su **SIP Call-ID** para encontrar la misma llamada en los registros de tu SBC.

## Próximos pasos

| Página                                                          | Qué trata                                                                                       |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [Recibir llamadas](/docs/guides/voice/receiving-calls)          | Rutas de números, grupos, la ruta predeterminada y llamadas rechazadas                          |
| [Configurar un troncal SIP](/docs/guides/voice/sip-trunk-setup) | La configuración completa de un troncal en orden, desde su creación hasta una llamada de prueba |
| [Realizar llamadas](/docs/guides/voice/placing-calls)           | Qué espera Bird en el `INVITE` que envía tu equipo                                              |

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