Ir para o conteúdo

Tempos e atendimento

call.timing

Campo Tipo Presença Formato/semântica
startedAt string obrigatório Início da chamada, ISO 8601 UTC.
answeredAt string condicional Momento de atendimento técnico/PSTN, ISO 8601 UTC. Não prova atendimento humano.
endedAt string obrigatório Término da chamada, ISO 8601 UTC.
durationSeconds integer obrigatório Duração total da chamada, em segundos.
talkTimeSeconds integer obrigatório Tempo técnico de conversação usado pelo CDR/billing, em segundos. Não é necessariamente conversa humana.
timeToHumanAnswerSeconds integer condicional Segundos entre startedAt e o atendimento por uma pessoa em um ramal Moonu. Só existe quando esse atendimento é conhecido.
humanTalkTimeSeconds integer condicional Segundos em que ao menos uma pessoa em um ramal Moonu esteve efetivamente conectada à chamada.

humanTalkTimeSeconds mede o período em que pelo menos uma pessoa esteve em um ramal Moonu conectado à chamada. Em transferências, períodos consecutivos são somados; períodos sobrepostos não são contados duas vezes. Se não há um intervalo completo confiável, o campo é omitido — ele não é estimado pelo fim da chamada.

Em uma chamada realizada (outbound), o campo pode existir quando o ramal Moonu que iniciou a chamada esteve conectado. Isso não comprova que o destino PSTN seja uma pessoa.

Atendimento humano

Campo Tipo Presença Semântica
call.humanAnswered boolean inbound/internal true somente se uma pessoa atendeu em um ramal Moonu; false quando não há esse atendimento humano. Omitido em outbound.
call.answeredBy object ou null inbound/internal Ramal que atendeu, quando conhecido; null sem atendimento humano. Omitido em outbound.
call.answeredBy.extension string quando objeto Ramal do atendente.
call.answeredBy.name string condicional Nome do atendente.

URA atende tecnicamente, sem atendimento humano

Uma URA pode atender a ligação e resultar em status: "answered", answeredAt preenchido e humanAnswered: false. Nesse caso, answeredBy é null e timeToHumanAnswerSeconds não aparece.

Fila sem atendimento humano

A entrada em uma Fila também não comprova atendimento humano. Quando nenhum endpoint atende, o evento contém humanAnswered: false e answeredBy: null; a Fila participante, quando conhecida, aparece em uma etapa routing.steps[] com type: "queue".

Não confunda as métricas

Não calcule conversa humana como endedAt - answeredAt. Após uma URA, a chamada pode continuar tocando em um ramal ou Grupo de atendimento; talkTimeSeconds também conserva a semântica técnica de cobrança.