WIP
→ O que é CDR?
Registro de Detalhes da Chamada ou Call Detail Record (CDR) é o log produzido por uma conexão telefônica contendo detalhes da chamada.
→ Qual a utilidade do CDR?
O CDR contém informações, organizadas em forma de dicionário (“chaves” que possuem “valores”), que descrevem os processamentos realizados por aquela chamada e seus resultados.
Serve basicamente para analisar o percurso realizado pela ligação, debugar problemas e extrair informações não disponíveis na interface.
→ CDRs no Studio
As CDRs do Studio são utilizadas para analisar o fluxo da chamada na URA.
Exemplo: Identificar um cliente, verificar quantas vezes a URA solicitou o CPF ao cliente e/ou qual o retorno da requisição de consulta.
As CDRs no Studio podem ser acessadas através do caminho:
Tela Inicial → Studio → Relatórios → Histórico de Chamadas
Após acessar o caminho, realize a busca com base nos parâmetros desejados, clique no botão “Gerar”, selecione a chamada que deseja analisar, clique em e clique no botão “Olhar Jornada”, escolha qual fluxo deseja analisar e clique em "Mostrar CDR”
Info |
---|
Para uma melhor visualização da CDR no Studio, é recomendado instalar a extensão JSON Formatter, que pode ser obtida através desse link. |
Descrições das chaves que compõe o CDR do Studio:
🌎 Informações globais sobre a chamada dentro do fluxo:
...
"source": Módulo de origem (ex: Studio),
"hostname": IP Interno,
"sequence": Posição deste fluxo dentro da jornada,
"call_uuid": ID único da chamada,
"project_id": Número do Projeto no banco de dados,
"who_hangup": Quem desligou a chamada (caller, system ou null),
"exit_reason": Razão do término do fluxo (transfer ou hangup),
"call_flow_id": Número do Fluxo no banco de dados,
"incoming_did": DDR pelo qual a chamada chegou,
"project_name": Nome do Projeto,
"session_uuid": ID único da sessão,
"exported_vars": Variáveis setadas com o recurso de Vincular Variáveis de Chamada ,
"tenant_domain": Nome do tenant,
"call_flow_name": Nome do Fluxo,
"caller_id_name": Número/Nome de quem está ligando,
"executed_tasks": Tarefas (componentes) executados,
"studio_version": Versão do Evolux Studio,
"exit_time_epoch": Horário (em epoch) do fim do fluxo,
"caller_id_number": Número de quem está ligando,
"enter_time_epoch": Horário (em epoch) do início do fluxo,
"call_flow_version": Versão do fluxo,
"destination_number": Número discado pelo originador,
"system_hangup_reason": Razão do desligamento quando este é feito pelo sistema,
"hangup_classification": Em caso de desligamento pelo originador, se foi sucesso ou fracasso,
"exit_transfer_destination": Número do destino da chamada ao finalizar o fluxo,
"exit_transfer_destination_id": ID do destino da chamada no banco de dados
}
⚒️ Informações dos componentes:
...
"task_id": ID único daquela caixinha de componente,
"task_name": Nome do tipo de Componente,
"end_time_epoch": Horário (em epoch) do fim da execução do componente,
"task_raw_params": Configurações inseridas na caixinha (personalizado por componente),
"start_time_epoch": Horário (em epoch) do início da execução do componente,
"task_description": Descrição livre inserida na caixinha,
"task_execution_info": Resultados da execução do componente (aqui ficam os retornos)
}
Exemplos de configuração e execução de alguns componentes:
⁉️ Roteador (router)
{
"task_raw_params":{
"routes":[
...
],
"matched_route_order": Número da condição escolhida dentro da rota
}
},
📨 HTTP:
{
"task_raw_params":{
"url": Endpoint informado na caixinha,
"auth": Tipo de autorização utilizada,
"data": Corpo da requisição em JSON (pode ser substituído por Form-data)
...
{
"status": Mensagem de resultado (http_success ou http_error),
"error_msg": Mensagem do erro, caso tenha havido,
"http_status": Código HTTP retornado (200, 404, 500, etc), Caso seja da classe 2XX é considerado sucesso, todos os outros são considerados fracassos pela caixinha.
"request_data": Aqui estará todo o corpo da resposta, com os dados requisitados, etc.
},
Exemplo de fluxo sendo executado:
Confira o CDR dessa ligação abaixo:
Expand | |||||
---|---|---|---|---|---|
| |||||
|