---
title: "Roteie chamadas de entrada do trunk pela origem e pelo número de quem liga"
description: "Use as regras de roteamento de trunk SIP para enviar quem liga de celular e de telefone fixo a gateways diferentes, rotear pelo país de quem liga ou adicionar um prefixo conforme a origem de quem liga."
canonical: "https://bird.com/pt-br/documentacao/guides/voice/trunk-routing-rules"
---

# Roteie chamadas de entrada do trunk pela origem e pelo número de quem liga

O **Inbound routing** de um trunk SIP pode tratar as chamadas de forma diferente conforme quem liga e o número discado. As regras verificam dados de cada chamada, como o tipo de linha ou o país de quem liga, e definem o que acontece: enviar a chamada a um grupo de gateways, alterar o número que seu equipamento recebe, rejeitá-la ou encaminhá-la. Esta página traz configurações prontas para os casos mais comuns.

## Antes de começar

- Um trunk SIP com chamadas de entrada ativadas, seus gateways em pelo menos um grupo e seus números apontados para ele. [Configure um trunk SIP](/docs/guides/voice/sip-trunk-setup) explica os três itens.
- Acesse **Voice** > [**SIP Trunks**](https://bird.com/dashboard/w/voice/sip-trunks), abra o trunk e vá até **Inbound routing** > **Rules**.

## Como as regras funcionam

O Bird verifica as regras de cima para baixo em cada chamada de entrada. A primeira regra cujo **When** corresponde decide a chamada. Uma chamada que não corresponde a nenhuma regra usa a **Default route** (**No rule above matched**). Cada regra e a rota padrão têm um **Then**: **Route to group**, **Reject** ou **Forward to number**. Um trunk comporta até 50 regras.

Um **When** é uma condição sobre estes dados da chamada. Selecione um dado na lista ou use **Edit expression** para escrever a condição você mesmo.

| Dado              | O que contém                                                                                                   |
| ----------------- | -------------------------------------------------------------------------------------------------------------- |
| `orig.line_type`  | O tipo de linha de quem liga: `LINE_FIXED`, `LINE_MOBILE`, `LINE_TOLL_FREE`, `LINE_PAYPHONE` ou `LINE_UNKNOWN` |
| `orig.country`    | O código de país de duas letras de quem liga, como `GB`. Fica vazio quando quem liga ocultou o número          |
| `orig.anonymous`  | `true` quando quem liga ocultou o número                                                                       |
| `orig.number`     | O número de quem liga em E.164, com `+`                                                                        |
| `orig.digits`     | O número de quem liga sem o `+` inicial                                                                        |
| `dest.number`     | O número discado, em E.164, com `+`                                                                            |
| `dest.digits`     | O número discado, sem o `+` inicial                                                                            |
| `call.local_hour` | A hora da chamada, de 0 a 23, no fuso horário do roteamento                                                    |
| `call.weekday`    | O dia da chamada, no fuso horário do roteamento                                                                |

Escreva os tipos de linha como constantes, como `orig.line_type == LINE_MOBILE`. Uma constante desconhecida gera erro ao salvar, enquanto uma string com erro de digitação, como `"LINE_MOBLE"`, é aceita e nunca corresponde.

## Enviar chamadas de celulares e de telefones fixos para gateways diferentes

Use esta configuração quando, por exemplo, as chamadas de celulares devem chegar a um SBC e todas as outras a outro.

1. Em **Groups**, crie um grupo para cada destino, por exemplo `mobile` com o SBC para celulares e `landline` com o outro.
2. Em **Rules**, selecione **Add rule** e dê a ela o nome _Mobile callers_. Defina **When** como **Line type** com o valor `LINE_MOBILE`.
3. Defina **Then** como **Route to group** e escolha `mobile`.
4. Defina a **Default route** como **Route to group** e escolha `landline`. Ela recebe todas as chamadas que a regra não capturou.
5. Selecione **Review and save** e confirme.

O mesmo padrão roteia por país: defina **When** com **Edit expression** como uma condição do tipo `orig.country == GB`.

## Adicionar um prefixo conforme a origem de quem liga

Seu SBC pode esperar, antes do número discado, um prefixo que indique a origem de quem liga, por exemplo `801` para telefone fixo, `802` para celular e `800` para os demais casos. O Bird altera a parte de usuário da Request-URI que envia ao seu gateway; o host e a porta do gateway continuam os mesmos. Assim, em uma chamada para `+44 808 157 0123`, quem liga de um celular chega como `sip:802448081570123@198.51.100.20`.

Você pode configurar isso de duas formas equivalentes.

### Uma regra por origem

Use esta forma quando cada origem precisar aparecer como uma entrada própria no editor ou quando as origens diferirem em mais do que o prefixo, como um grupo diferente.

1. Em **Rules**, selecione **Add rule**, dê o nome _Landline_ e defina **When** como **Line type** com o valor `LINE_FIXED`.
2. Defina **Then** como **Route to group**, escolha seu grupo em **Group** e selecione **Override R-URI user part**. Digite `801` e use **Insert** para adicionar `dest.digits` logo depois.
3. Repita para _Mobile_ (`LINE_MOBILE`, prefixo `802`).
4. Defina a **Default route** como **Route to group** com a parte de usuário `800` seguida de `dest.digits`.
5. Selecione **Review and save** e confirme.

### Uma expressão

Use esta opção quando apenas o prefixo muda. Deixe **Rules** vazio, defina a **Default route** como **Route to group** com o seu grupo, selecione **Override R-URI user part**, insira esta expressão e adicione `dest.digits` depois dela:

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

As duas configurações entregam o mesmo `INVITE`. O campo **R-URI user part** do próprio gateway aceita apenas texto fixo ao redor do número discado, então coloque um prefixo que dependa de quem liga em uma regra ou na rota padrão, como mostrado acima.

## Verifique sua configuração

1. **Review and save** verifica cada condição e cada modelo e lista os erros com a localização de cada um. Nada é salvo até que eles sejam corrigidos.
2. Ligue para um dos seus números a partir de um celular, de um telefone fixo e com o seu número oculto. No seu SBC, compare a Request-URI de cada `INVITE` recebido com o que você espera.
3. Abra cada chamada em **Voice** > [**Legs**](https://bird.com/dashboard/w/voice/legs) e use o **SIP Call-ID** dela para encontrar a mesma chamada nos logs do seu SBC.

## Próximos passos

| Página                                                        | O que aborda                                                                      |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [Recebimento de chamadas](/docs/guides/voice/receiving-calls) | Rotas por número, grupos, a rota padrão e chamadas recusadas                      |
| [Configure um tronco SIP](/docs/guides/voice/sip-trunk-setup) | A configuração completa de um tronco, em ordem, da criação a uma chamada de teste |
| [Fazer chamadas](/docs/guides/voice/placing-calls)            | O que o Bird espera no `INVITE` que seu equipamento envia                         |

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