Relatório de Chamadas com Erro (CDR Error)
Endereço de Chamada da API:
/api/cdrError/API_TOKEN/API_KEY(/id_cliente)
Este Ponto de Acesso fornece a listagem e totalizadores do CDR Error (Relatório de Ligações que não foram completadas devido a erros, ocupado, cancelamentos, rotas não encontradas, etc).
- Nível Assinante: Retorna apenas as falhas de chamadas do próprio assinante autenticado (não é necessário informar ID na URL).
- Nível Revenda: Retorna as falhas de todos os clientes pertencentes à revenda. É possível especificar o ID do Cliente como último parâmetro da URL para filtrar um assinante específico.
- Nível Master (Admin): Retorna os erros de todo o sistema. Permite filtrar por Cliente (passando o ID na URL) e por Provedor/Terminador (via parâmetro
id_provider).
Para os exemplos abaixo, deduziremos que o endereço do servidor seja call.voipper.com.br.
Exemplo de Endereços da API
Sem filtro específico (Traz dados de acordo com o nível da credencial):
[https://call.voipper.com.br/api/cdrError/API_TOKEN/API_KEY](https://call.voipper.com.br/api/cdrError/API_TOKEN/API_KEY)
Com filtros de data, hora e paginação:
[https://call.voipper.com.br/api/cdrError/API_TOKEN/API_KEY?date_ini=2023-10-01&date_end=2023-10-31&limit=100&offset=0](https://call.voipper.com.br/api/cdrError/API_TOKEN/API_KEY?date_ini=2023-10-01&date_end=2023-10-31&limit=100&offset=0)
Parâmetros Suportados
A chamada para obter os dados é realizada utilizando o método HTTP GET.
Parâmetros de Rota (Path)
| Parâmetro | Tipo | Descrição |
id_cliente |
Inteiro |
(Opcional) Passado no final da URL. Filtra o relatório para um Assinante específico. Válido apenas para credenciais Nível Revenda ou Admin. |
Parâmetros de Consulta (Query String)
| Parâmetro | Tipo | Padrão | Descrição |
date_ini |
String |
Data atual | Data Inicial da busca no formato YYYY-MM-DD. |
date_end |
String |
Data atual | Data Final da busca no formato YYYY-MM-DD. |
time_ini |
String |
00:00:00 |
Hora Inicial da busca no formato HH:MM:SS. |
time_end |
String |
23:59:59 |
Hora Final da busca no formato HH:MM:SS. |
id_provider |
Inteiro |
0 |
Filtra as falhas por um ID de Terminador/Provedor específico. (Apenas Nível Admin) |
limit |
Inteiro |
(Padrão da API) | Limite de registros a serem retornados na chamada. |
offset |
Inteiro |
0 |
Exibir registros a partir desta contagem (Paginação). |
Exemplo de Requisição (cURL)
curl -X GET "https://call.voipper.com.br/api/cdrError/7cb40d54-4ebf-55a6-875a-5f57234e97cc-9990/b12c8?date_ini=2023-10-01&date_end=2023-10-15"
Estrutura de Retorno (JSON)
A API retornará um objeto JSON contendo o bloco de informações da requisição, um bloco totals com estatísticas agregadas do período, e um array data com os registros.
Dicionário de Dados do Retorno
| Campo | Descrição |
error |
0 em caso de sucesso, 1 em caso de erro. |
reason |
OK ou Descrição/Motivo caso tenha ocorrido algum erro (Ex: UNKNOWN). |
limit |
Limite de paginação aplicado na consulta. |
offset |
Deslocamento (offset) atual da paginação. |
records |
Total de registros retornados especificamente nesta chamada/página. |
totals |
Objeto contendo os totalizadores globais do filtro aplicado. |
totals.total_records |
Quantidade total de chamadas com erro no período filtrado. |
totals.total_404 |
Quantidade de erros do tipo "404 Not Found" (Destino não encontrado). |
totals.total_noanswer |
Quantidade de chamadas "Não Atendidas". |
totals.total_busy |
Quantidade de chamadas com destino "Ocupado". |
totals.total_cancel |
Quantidade de chamadas "Canceladas" pelo originador antes do atendimento. |
totals.total_congestion |
Quantidade de chamadas que falharam por "Congestionamento" ou outros motivos não listados acima. |
Dicionário do array data (Detalhes da Chamada)
| Campo | Descrição |
data.id |
ID único do registro do erro. |
data.customer_id |
ID do Cliente (Assinante). |
data.provider_id |
ID do Terminador/Provedor utilizado na tentativa. |
data.calldate |
Data e hora em que a tentativa de chamada ocorreu. |
data.callerid |
Identificador de chamadas (Bina) utilizado na origem. |
data.source |
Ramal ou conta SIP de origem da chamada. |
data.destination |
Número de destino discado (limpo, sem caracteres especiais). |
data.city |
Cidade/Região identificada pela tarifação (se aplicável). |
data.type |
Tipo de chamada tentada (Ex: Fixo, Móvel, DDI, Interna). |
data.disposition |
Status principal da falha (Ex: BUSY, NOANSWER, CANCEL, CONGESTION ou 404 NOT FOUND). |
data.hangup_desc |
Descrição técnica detalhada ou código SIP do motivo do desligamento/falha. |
data.is_404 |
1 caso seja erro de rota inexistente (404), 0 caso não. |
data.ip_address |
Endereço IP externo do dispositivo/ramal que tentou originar a chamada. |
data.useragent |
User-Agent (Software/Telefone IP) do dispositivo de origem. |
Exemplo de Resposta de Sucesso
{
"error": 0,
"reason": "OK",
"limit": 100,
"offset": 0,
"records": 2,
"totals": {
"total_records": 2,
"total_404": 0,
"total_noanswer": 1,
"total_busy": 1,
"total_cancel": 0,
"total_congestion": 0
},
"data": [
{
"id": 10452,
"customer_id": 45,
"provider_id": 2,
"calldate": "2023-10-05 14:32:01",
"callerid": "11999999999",
"source": "1001",
"destination": "1133334444",
"city": "Sao Paulo",
"type": "Fixo",
"disposition": "BUSY",
"hangup_desc": "Destino Ocupado",
"is_404": 0,
"ip_address": "177.10.20.30",
"useragent": "Yealink SIP-T21P_E2"
},
{
"id": 10453,
"customer_id": 45,
"provider_id": 3,
"calldate": "2023-10-05 15:10:45",
"callerid": "11999999999",
"source": "1002",
"destination": "11988887777",
"city": "Sao Paulo",
"type": "Movel",
"disposition": "NOANSWER",
"hangup_desc": "Ninguem Atendeu",
"is_404": 0,
"ip_address": "177.10.20.30",
"useragent": "Zoiper rv2.10.11"
}
]
}