> For the complete documentation index, see [llms.txt](https://digitalsac.gitbook.io/digicalls/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://digitalsac.gitbook.io/digicalls/sip/freepbx.md).

# FreePBX

Guia resumido para tronco SIP DigiCalls no FreePBX (chan\_pjsip).

### Pré-requisitos

* Device WhatsApp pareado no DigiCalls
* SIP habilitado com username/password únicos
* Porta UDP SIP aberta no firewall (`WACALLS_SIP_PORT`, ex.: 8045)
* Range RTP aberto conforme config do servidor

### 1. Adicionar tronco

**Conectividade → Troncos → Adicionar tronco SIP (chan\_pjsip)**

#### Aba Geral

* Nome do tronco: `DigiCalls`
* Outbound CallerID: número WhatsApp pareado (DDI+DDD+número)

#### pjsip Settings — General

| Campo           | Valor                     |
| --------------- | ------------------------- |
| Username        | username do sip-config    |
| Auth username   | idem                      |
| Secret          | password                  |
| SIP Server      | host público do DigiCalls |
| SIP Server Port | porta SIP (ex.: 8045)     |
| Context         | `from-pstn`               |
| Transport       | UDP                       |

#### pjsip Settings — Advanced

* **From User:** username SIP

Salve e aplique config.

### 2. Rota de entrada

**Connectivity → Inbound Routes**

* DID: em branco (qualquer)
* Destination: fila, ramal ou URA desejada

Chamadas WhatsApp entrantes (via DigiCalls) chegam pelo tronco.

### 3. Rota de saída

**Connectivity → Outbound Routes**

* Trunk sequence: tronco DigiCalls
* Dial patterns: ex. `X.` para números internacionais com DDI

Discagem: número completo com código do país (ex.: `5511999998888`).

### 4. Verificar registro

**Admin → Asterisk CLI:**

```
pjsip show registrations
```

Status `Registered` confirma tronco.

No DigiCalls: `GET sip-config` → `"registered": true`.

### Codecs

Prefira **ulaw (PCMU)** se configurou `"codec":"pcmu"`. PCMA (`pcma`) também suportado.

### WebRTC (sip.js)

Para agentes no browser sem softphone desktop, use `wsServer` (`wss://…/sipws`) — caminho separado do tronco UDP FreePBX.

### Troubleshooting

| Problema          | Verificar                          |
| ----------------- | ---------------------------------- |
| 403 / auth failed | user/senha                         |
| Sem áudio         | RTP firewall, `SIP_PUBLIC_IP`      |
| 404 caller        | CallerID = número WhatsApp pareado |
