# Trocar SDP WebRTC

`POST /call/webrtc`

Pasta: **Chamadas**

## Autenticação

```http
token: {{token}}
```

## Descrição

# Trocar SDP WebRTC

Envia o SDP offer do navegador/cliente e recebe o SDP answer para estabelecer o áudio/vídeo via bridge WebRTC da API.

## Endpoint

`POST {{baseUrl}}/call/webrtc`

## Autenticação

Envie o token da instância no header `token: {{token}}`.

## Corpo da requisição

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `call_id` | string | Sim | ID da chamada ativa. |
| `sdp_offer` | string | Sim | SDP offer completo (WebRTC). |

## Exemplo de Requisição

```bash
curl --request POST '{{baseUrl}}/call/webrtc' \
  --header 'token: {{token}}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "call_id": "{{callId}}",
  "sdp_offer": "v=0\r\no=- 0 0 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n..."
}'
```

## Resposta de Sucesso

```json
{
  "success": true,
  "sdp_answer": "v=0\r\no=- 0 0 IN IP4 127.0.0.1\r\n..."
}
```

## Erros comuns

- `401 Unauthorized`: o header `token` não foi enviado ou é inválido.
- `400 Bad Request`: JSON inválido ou campo obrigatório ausente.
- `500 Internal Server Error`: chamada não encontrada, já há chamada ativa, ou a instância está em modo mobile (a maioria das rotas de chamada exige companion).

## Observações

Exige conexão **companion** e chamada ativa. Usado pelo widget/webcall após accept/make.

## Corpo (exemplo)

```json
{
  "call_id": "{{callId}}",
  "sdp_offer": "v=0\n..."
}
```

## cURL

```bash
curl -X POST "{{baseUrl}}/call/webrtc" \
  -H "token: {{token}}" \
  -H "Content-Type: application/json" \
  -d '{
  "call_id": "{{callId}}",
  "sdp_offer": "v=0\n..."
}'
```

---

[Índice da pasta](./index.md) · [Índice geral](../index.md) · [UI](https://gozap.dev/docs?op=chamadas/trocar-sdp-webrtc)
