Relatorio de Chamadas - CDR

Relatorio de Chamadas - CDR

Visão Geral

Esta API fornece acesso aos registros detalhados de chamadas (CDR) do sistema, permitindo consultar e analisar o histórico de ligações com diferentes níveis de detalhamento conforme o tipo de usuário.

Endereço de Chamada da API

/api/cdr/API_TOKEN/API_KEY(/id_assinante)

 

Este Ponto de Acesso irá fornecer uma listagem do CDR (Relatório de Ligações). Se estiver utilizando Tokens de Acesso do Nível Master ou Nível Revenda, poderá especificar o ID DO CLIENTE como último parâmetro da URL para obter o CDR de um Cliente de ID especifico.
Caso essa API seja chamada utilizando os Tokens de Acesso do Nível Assinante, não é necessário informar o ID e será retornado o CDR do Assinante em questão.

Para nosso exemplo, iremos deduzir que o endereço do servidor será sip.nextbilling.com.br. Nesse caso, o endereço da API seria:

Endereço da API exemplo

https://sip.nextbilling.com.br/api/cdr/API_TOKEN/API_KEY
 ou
https://sip.nextbilling.com.br/api/cdr/API_TOKEN/API_KEY/id_assinante?date_ini=2015-03-01&date_end=2015-03-30&start=0&limit=100&time_ini=08:00:00&time_end=23:50:00

Parâmetros da Query

Parâmetro

Tipo

Obrigatório

Descrição

Valor Padrão

Parâmetro

Tipo

Obrigatório

Descrição

Valor Padrão

date_ini

string (YYYY-MM-DD)

Não

Data inicial

Data atual

date_end

string (YYYY-MM-DD)

Não

Data final

Data atual

time_ini

string (HH:MM:SS)

Não

Hora inicial

00:00:00

time_end

string (HH:MM:SS)

Não

Hora final

23:59:59

start

integer

Não

Registro inicial para paginação

0

limit

integer

Não

Limite de registros por página

100

id_assinante

integer

Não*

ID do assinante (via URL)

-

id_device

integer

Não

Filtrar por ID específico de linha

-

  • Obrigatório para níveis Master/Revenda quando desejar filtrar por cliente específico

Níveis de Acesso

Token Master (Nível 1)

  • Acesso completo a todos os registros

  • Pode filtrar por qualquer assinante usando id_assinante

  • Visualiza custos, revenda e preço final

Token Revenda (Nível 2)

  • Acesso aos registros dos seus clientes

  • Pode filtrar por cliente específico usando id_assinante

  • Visualiza informações de custo e revenda

Token Assinante (Nível 4)

  • Apenas visualiza suas próprias chamadas

  • Não precisa informar id_assinante

  • Dados limitados a consumo e custos

Exemplos de Uso

Consulta Básica (Todos os Registros)

bash

curl -X GET 'https://sip.nextbilling.com.br/api/cdr/7cb40d54-4ebf-55a6-875a-5f57234e97cc-9990/b12c87a7-6dd6-5f99-9b47-c7c3be66fe73-8629?date_ini=2018-01-01&date_end=2018-02-01'

Consulta com Filtro por Assinante

bash

curl -X GET 'https://sip.nextbilling.com.br/api/cdr/7cb40d54-4ebf-55a6-875a-5f57234e97cc-9990/b12c87a7-6dd6-5f99-9b47-c7c3be66fe73-8629/4?date_ini=2018-01-01&date_end=2018-01-31'

Consulta com Paginação e Horário

bash

curl -X GET 'https://sip.nextbilling.com.br/api/cdr/API_TOKEN/API_KEY/4?date_ini=2015-03-01&date_end=2015-03-30&start=0&limit=100&time_ini=08:00:00&time_end=23:50:00'

Consulta com Filtro por Dispositivo

bash

curl -X GET 'https://sip.nextbilling.com.br/api/cdr/API_TOKEN/API_KEY?id_device=123&date_ini=2024-01-01&time_ini=08:00:00'

Utilizando essa chamada, você obteria o retorno em JSON semelhante a saída a seguir:

Retorno JSON
{ "error":0, "reason":"OK", "total_records":1, "total_time":540, "total_time_text":"9 min 00 seg", "total_value":"2,10000", "total_reseller_time":540, "total_reseller_time_text":"9 min 00 seg", "total_reseller_value":"4,40000", "total_cost_time":540, "total_cost_time_text":"9 min 00 seg", "total_cost_value":"0,00000", "total_profit_on_rev":"4,40000", "total_profit_on_ass":"2,10000", "limit":100, "offset":0, "records":1, "data":[ { "customer_id":4, "calldate":"2018-01-31 18:03:52", "clid":"teste10next <teste10next>", "source":"teste10next", "destination":"5521985699899", "region":"Brasil M\u00f3vel - RJ 02", "type":"c", "type2":"movel_ldn", "real_duration":"10", "duration":"30", "duration2":"0 min 30 seg", "total_price":"0,30000", "price_per_minute":"0,60000", "reseller_duration":"30", "reseller_duration2":"0 min 30 seg", "reseller_total_price":"0,25000", "reseller_price_per_minute":"0,50000", "cost_duration":"30", "cost_duration2":"0 min 30 seg", "cost_total_price":"0,00000", "cost_price_per_minute":"0,00000", "profit_on_customer":"0,30000", "profit_on_reseller":"0,25000", "codec":"g729->g729", "prefix":"55219", "source_ip":"179.236.34.165", "useragent":"PolycomSoundPointIP-SPIP_550-UA\/4.0.13.1445" } ] }

Campo

Descrição

Campo

Descrição

error

1 em caso de erro

reason

Descrição caso tenha ocorrido algum erro

total_records

Total de Registros encontrados na pesquisa sem a paginação solicitada

total_time

Tempo total das Ligações

total_value

Valor total das Ligações

total_reseller_time

Tempo tempo das Ligações para a Revenda

total_reseller_value

Valor total das Ligações para a Revenda

total_cost_time

Tempo total de custo para o Master

total_cost_value

Valor total de Custo para o Master

total_profit_on_rev

Valor total de Lucro sobre a Revenda

total_profit_on_ass

Valor total de Lucro sobre o Assinante

records

Total de registrados retornados nessa chamada

data.customer_id

ID do Assinante

data.type

Tipo da Ligação: f - fixo, c - móvel, i - ddi

data.type2

Tipo de Região da Ligação

data.real_duration

Tempo real da Ligação sem a Tarifação aplicada

data.duration

Tempo da Ligação com a Tarifação aplicada

data.total_price

Valor total da Ligação para o Assinante

data.price_per_minute

Valor por Minuto da Ligação

data.reseller_duration

Tempo da Ligação para a Revenda

data.reseller_total_price

Valor total da Ligação para a Revenda

data.reseller_price_per_minute

Valor por Minuto para a Revenda

data.cost_duration

Tempo Total de Custo para o Master

data.cost_total_price

Valor Total de Custo para o Master

data.cost_price_per_minute

Valor por Minuto para o Master

data.profit_on_customer

Valor de Lucro sobre o Assinante

data.profit_on_reseller

Valor de Lucro sobre a Revenda

Campos por Chamada (data[])

Campo

Descrição

Campo

Descrição

customer_id

ID do Assinante

calldate

Data e hora da chamada

clid

Número de origem (CLID)

source

Source da chamada

destination

Número de destino

region

Região da chamada

type

Tipo: f-fixo, c-móvel, i-DDI

type2

Tipo de região da ligação

real_duration

Tempo real sem tarifação aplicada

duration

Tempo com tarifação aplicada

duration2

Tempo formatado

total_price

Valor total para o assinante

price_per_minute

Valor por minuto

reseller_duration

Tempo para a revenda

reseller_total_price

Valor total para a revenda

reseller_price_per_minute

Valor por minuto para revenda

cost_duration

Tempo de custo para o Master

cost_total_price

Valor de custo para o Master

cost_price_per_minute

Valor por minuto de custo

profit_on_customer

Lucro sobre o assinante

profit_on_reseller

Lucro sobre a revenda

codec

Codec de áudio utilizado

prefix

Prefixo discado

source_ip

IP de origem

useragent

User Agent do dispositivo

Campos Técnicos Adicionais

  • Codec: Formato de compressão de áudio (ex: g729, g711)

  • Prefix: Prefixo numérico para identificação da região

  • Source IP: Endereço IP de origem da chamada

  • User Agent: Identificação do dispositivo/softphone

Tipos de Chamada (type)

  • f: Chamadas para telefones fixos

  • c: Chamadas para telefones móveis

  • i: Chamadas internacionais (DDI)

Observações Importantes

  1. Paginação: Use start e limit para controlar a paginação dos resultados

  2. Fuso Horário: As datas e horas seguem o fuso horário do servidor

  3. Formato Monetário: Valores retornados no formato decimal (ex: "0,30000")

  4. Filtro por Dispositivo: Use id_device para filtrar por linha específica

  5. Performance: Para períodos muito longos, use filtros de data para melhor performance

Tratamento de Erros

Em caso de erro, a API retornará:

json

{ "error": 1, "reason": "DESCRIÇÃO_DO_ERRO", "message": "Mensagem detalhada do erro" }