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 fixosc: Chamadas para telefones móveisi: Chamadas internacionais (DDI)
Observações Importantes
- Paginação: Use
startelimitpara controlar a paginação dos resultados - Fuso Horário: As datas e horas seguem o fuso horário do servidor
- Formato Monetário: Valores retornados no formato decimal (ex: "0,30000")
- Filtro por Dispositivo: Use
id_devicepara filtrar por linha específica - Performance: Para períodos muito longos, use filtros de data para melhor performance
Tratamento de Erros
Em caso de erro, a API retornará:
json