Capabilities
Estrutura de dados do contrato OpenAPI.
Estrutura de dados do contrato OpenAPI.
Campos
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
service | string | obrigatório | Valores: "AtendroZAP" |
status | string | obrigatório | Valores: "laboratory" |
worker | string | opcional | — |
engine | object | opcional | — |
capabilities | object | obrigatório | — |
capabilities.calls | boolean | opcional | Habilitado neste worker por ATENDROZAP_CALLS_ENABLED; exige instância calls. |
capabilities.ptt_transcoding | boolean | opcional | Valores: false |
capabilities.call_history | boolean | opcional | — |
capabilities.call_recording | boolean | opcional | Gravação automática das chamadas atendidas habilitada neste worker. |
capabilities.calls_per_instance_limit | boolean | opcional | Permite configurar callsMaxConcurrent por instância, sem reiniciar a sessão. |
capabilities.calls_video | boolean | opcional | Chamadas de vídeo, upgrade no meio da ligação e ponte GET /call/{id}/video habilitados neste worker por ATENDROZAP_CALLS_VIDEO_ENABLED (exige calls). Recurso experimental até a homologação em laboratório. |
capabilities.calls_settings_webhook | boolean | opcional | Anuncia call_settings com limite/versionamento em outbox atômica e callsConfigVersion em objetos instance. Exige inscrição explícita em call_settings; connection pode trazer o snapshot opcional em instance. |
capabilities.calls_video_recording | boolean | opcional | Captura de vídeo e geração de MP4 lado a lado habilitadas neste worker por ATENDROZAP_CALLS_VIDEO_RECORDING_ENABLED. Opt-in: requer calls_video, call_recording, FFmpeg e ffprobe. Não implica homologação em celulares reais. |
capabilities.calls_incoming_policy | boolean | opcional | Permite configurar incomingCallMode, comparar expectedCallsConfigVersion e receber decisões de recusa automática com metadados por chamada. Não garante envio de mensagem pelo consumidor nem homologação de áudio recebido. |
interactive | object | opcional | — |
webhookEvents | object | opcional | — |
webhookEvents.delivered | array<string> | opcional | — |
webhookEvents.ignored | array<string> | opcional | — |
instance_kinds | array<string> | opcional | — |
calls_max_concurrent | integer | opcional | Padrão do servidor usado na criação e em instâncias antigas sem limite próprio. Consulte instance.callsMaxConcurrent para o limite efetivo. Mínimo: 0 |
calls_recording_retention_days | integer | opcional | Retenção das gravações de áudio em dias; 0 desativa exclusão automática do áudio. Vídeo possui prazo independente. Histórico preservado. Mínimo: 0 |
calls_video_recording_retention_days | integer | opcional | Retenção das gravações MP4 em dias, contados do encerramento da chamada. Padrão 7, independente do áudio. Histórico preservado. Mínimo: 1. Máximo: 3650 |
calls_max_concurrent_range | object | opcional | — |
calls_max_concurrent_range.min | integer | obrigatório | Valor fixo: 1 |
calls_max_concurrent_range.max | integer | obrigatório | Valor fixo: 8 |
Definição OpenAPI
json
{
"type": "object",
"properties": {
"service": {
"type": "string",
"enum": [
"AtendroZAP"
]
},
"status": {
"type": "string",
"enum": [
"laboratory"
]
},
"worker": {
"type": "string"
},
"engine": {
"type": "object"
},
"capabilities": {
"type": "object",
"properties": {
"calls": {
"type": "boolean",
"description": "Habilitado neste worker por ATENDROZAP_CALLS_ENABLED; exige instância calls."
},
"ptt_transcoding": {
"type": "boolean",
"enum": [
false
]
},
"call_history": {
"type": "boolean"
},
"call_recording": {
"type": "boolean",
"description": "Gravação automática das chamadas atendidas habilitada neste worker."
},
"calls_per_instance_limit": {
"type": "boolean",
"description": "Permite configurar callsMaxConcurrent por instância, sem reiniciar a sessão."
},
"calls_video": {
"type": "boolean",
"description": "Chamadas de vídeo, upgrade no meio da ligação e ponte GET /call/{id}/video habilitados neste worker por ATENDROZAP_CALLS_VIDEO_ENABLED (exige calls). Recurso experimental até a homologação em laboratório."
},
"calls_settings_webhook": {
"type": "boolean",
"description": "Anuncia call_settings com limite/versionamento em outbox atômica e callsConfigVersion em objetos instance. Exige inscrição explícita em call_settings; connection pode trazer o snapshot opcional em instance."
},
"calls_video_recording": {
"type": "boolean",
"description": "Captura de vídeo e geração de MP4 lado a lado habilitadas neste worker por ATENDROZAP_CALLS_VIDEO_RECORDING_ENABLED. Opt-in: requer calls_video, call_recording, FFmpeg e ffprobe. Não implica homologação em celulares reais."
},
"calls_incoming_policy": {
"type": "boolean",
"description": "Permite configurar incomingCallMode, comparar expectedCallsConfigVersion e receber decisões de recusa automática com metadados por chamada. Não garante envio de mensagem pelo consumidor nem homologação de áudio recebido."
}
},
"additionalProperties": {
"type": "boolean"
}
},
"interactive": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"webhookEvents": {
"type": "object",
"properties": {
"delivered": {
"type": "array",
"items": {
"type": "string"
}
},
"ignored": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"instance_kinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"whatsapp",
"calls"
]
}
},
"calls_max_concurrent": {
"type": "integer",
"minimum": 0,
"description": "Padrão do servidor usado na criação e em instâncias antigas sem limite próprio. Consulte instance.callsMaxConcurrent para o limite efetivo."
},
"calls_recording_retention_days": {
"type": "integer",
"minimum": 0,
"description": "Retenção das gravações de áudio em dias; 0 desativa exclusão automática do áudio. Vídeo possui prazo independente. Histórico preservado."
},
"calls_video_recording_retention_days": {
"type": "integer",
"minimum": 1,
"maximum": 3650,
"description": "Retenção das gravações MP4 em dias, contados do encerramento da chamada. Padrão 7, independente do áudio. Histórico preservado."
},
"calls_max_concurrent_range": {
"type": "object",
"properties": {
"min": {
"type": "integer",
"const": 1
},
"max": {
"type": "integer",
"const": 8
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"service",
"status",
"capabilities"
]
}