# ActiveCalls Estrutura de dados do contrato OpenAPI. ## Campos | Campo | Tipo | Presença | Descrição | |---|---|---|---| | `calls` | `array` | obrigatório | — | | `calls[].callId` | `string` | obrigatório | — | | `calls[].direction` | `string` | obrigatório | Valores: `"inbound"`, `"outbound"` | | `calls[].number` | `string` | obrigatório | Identidade telefônica canônica, quando conhecida. | | `calls[].jid` | `string` | opcional | — | | `calls[].status` | `string` | obrigatório | Valores: `"ringing"`, `"connecting"`, `"active"`, `"ended"` | | `calls[].startedAt` | `string` | obrigatório | Formato: `date-time` | | `calls[].answeredAt` | `string` | opcional | Momento do aceite remoto ou do atendimento local; não depende do primeiro áudio. Formato: `date-time` | | `calls[].endedAt` | `string` | opcional | Formato: `date-time` | | `calls[].endReason` | `string` | opcional | hangup, rejected, ring_timeout, closed ou motivo do motor. | | `calls[].endedBy` | `string` | opcional | Valores: `"local"`, `"remote"` | | `calls[].answered` | `boolean` | opcional | Verdadeiro a partir do aceite, mesmo antes de o áudio iniciar. | | `calls[].mediaStartedAt` | `string` | opcional | Momento em que o motor confirmou mídia recebida. Formato: `date-time` | | `calls[].durationSeconds` | `number` | opcional | Tempo entre atendimento e encerramento; zero para chamadas sem atendimento ou ainda em curso. Mínimo: `0` | | `calls[].recording` | `object` | opcional | Modelo: [CallRecording](https://wpp.atendro.cloud/docs/modelos/call-recording.md). | ## Definição OpenAPI ```json { "type": "object", "properties": { "calls": { "type": "array", "items": { "$ref": "#/components/schemas/Call" } } }, "required": [ "calls" ] } ```