Pular para conteúdo

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á call.voipper.com.br. Nesse caso, o endereço da API seria:

Endereço da API exemplo

https://sip.Voipper.com.br/api/cdr/API_TOKEN/API_KEY
 ou
https://sip.Voipper.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
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://call.voipper.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://call.voipper.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://call.voipper.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://call.voipper.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
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
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"
}