[AsteriskBrasil] Cálculo de tarifação CDR em PHP

Danilo @ ezVoice mawkee em gmail.com
Segunda Dezembro 28 21:12:29 BRST 2015


Cara, sem entrar em muitos detalhes, segue código em python que faz isso

connection_cost = custo de conexão (geralmente 0, muito raro ter algum...
por exemplo, tinha um plano da TIM que cobrava R$ 0,25 a conexão e não
cobrava o minuto)
minimum_duration = a fração mínima (geralmente 30 segundos)
fraction = a fração que é bilhetada (6 pra bilhetar de 6 em 6 segundos)
minute_cost = o custo por minuto

round( float(connection_cost) + ( max( math.ceil( billsec/float(fraction)
)*float(fraction), minimum_duration ) )/float(60)*float(minute_cost), 2)


2015-12-28 16:48 GMT-02:00 Junior Freitas <jrfreitas83 at gmail.com>:

> Sres, boa tarde.
>
> Poderiam me ajudar, estou precisando tarifar o campo billsec do
> asteriskcdrdb para comparar com a enviada pela operadora, mas não estou
> conseguindo chegar a fórmula de tarifação.
>
> Meu provedor me cobra no formato 30/6 com custo de 0,13 centavos o minuto
>
> A regra seria:
> Tempo mínimo de tarifação: 30 segundos;
> Unidade de tarifação: 06 segundos
> Custo Minuto: 0.13
>
> Exemplo:
>
> Ligação de 25 segundos: serão tarifados 30 segundos
> Ligação de 31 segundos: serão tarifados 30 + 06 = 36 segundos
> Ligação de 37 segundos: serão tarifados 30 + 06 + 06 = 42 segundos
>
> Alguém teria esses cálculos ou algo parecido que eu pudesse seguir como
> modelo e chegar a esse resultado.
>
> No google quase não tem essa informação, e os que eu achei tentei fazer
> mas sem sucesso, segue abaixo o exemplo da fórmula que estou usando e como
> está o relatório em anexo.
>
> Não sei programar em php, e sim curioso, logo peço desculpa pelo código.
>
> tarifador.php
>
> $query = "SELECT calldate, src, dst, duration, billsec, disposition,
> uniqueid FROM $tablename WHERE calldate >= '".$dtinicial."' AND billsec > 0
> ORDER BY calldate DESC LIMIT 20 ";
> $result = mysql_query($query);
>
> // Return the results, loop through them and echo
>
> while($row  = mysql_fetch_array($result))
>
> {
>
> $segundos = $row['billsec'];
> $val_minuto = 0.13;
> $val_minuto30 = $val_minuto /2;
> $val_minuto2 = $val_minuto / 10;
> $val_minuto3 = $val_minuto2 * $segundos + $val_minuto;
>
>         if ($segundos <= 30){
>             $x = "{$val_minuto30}";
>
>         }else{
>             $x = "{$val_minuto3}";
> }
>
>
>
> Obrigado a todos pela ajuda e Feliz Ano Novo!!!
>
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7
> Intercomunicador e acesso remoto via rede IP e telefones IP
> Conheça todo o portfólio em www.Khomp.com
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe at listas.asteriskbrasil.org
>



-- 


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CC/G/IT/L/M/MU d+(-)@> s:+> !a C++++$ UBL*++++$ P+ L+++(++++)>+++++ E+
W+++ !N !o+ K-- !w--- O++ M++ !V PS++ PE- Y+ PGP++ t++ 5++ !X R+++ tv--
b+++ DI+++ D+++ G++ e h- r+++ y++**
------END GEEK CODE BLOCK------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20151228/c82803ec/attachment.html>


Mais detalhes sobre a lista de discussão AsteriskBrasil