> 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/autenticacao-sip.md).

# Autenticação SIP

Cada **device** (sessão WhatsApp) pode ter credenciais SIP independentes.

### Via painel DigiCalls

1. Abra o device na tela **Dispositivos**
2. Seção **Tronco SIP**
3. Anote:
   * **Servidor SIP** (host:porta UDP)
   * **WebSocket** (`wss://…/sipws`) para sip.js
   * **Username** / **Password** que você definiu

### REGISTER (softphone / PABX)

| Campo            | Valor                                   |
| ---------------- | --------------------------------------- |
| Servidor / Proxy | `sipServer` da API (ex.: `SEU_IP:8045`) |
| Usuário          | username configurado                    |
| Senha            | password configurado                    |
| Caller ID (From) | Número WhatsApp pareado (dígitos)       |

Se o Caller ID não bater com o número conectado, a chamada pode falhar.

### Via API

```bash
curl -X PUT "https://calls.digitalsac.io/api/sessions/{sid}/sip-config" \
  -H "Authorization: Bearer <token_login>" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"username":"linha1","password":"senha-forte","codec":"pcmu"}'
```

`codec`: `"pcmu"` (default) ou `"pcma"`.

### sip.js (WebRTC)

Use `wsServer` retornado em `sip-config`:

```
wss://calls.digitalsac.io/sipws
```

Autentique com o mesmo username/password. Mídia via WebRTC — configure TURN no servidor.

### Token como credencial (alternativa)

Alguns integradores usam o **device token** (`dev_…`) como username e password em cenários específicos — o padrão suportado é **username/password** dedicados por device via `sip-config`.

### Status

`registered: true` em `GET sip-config` indica REGISTER ativo.

Veja FreePBX para passo a passo.
