<div dir="ltr"><div><div><div>Utilize:<br><br></div><div>$valor_do_minuto = 0.25; // Exemplo no teu caso<br></div><div>$tempo_minimo = 30;       // Quantos segundos é a tarifação mínima da operadora, normalmente 30 segundos<br></div><div>$tempo_fracao = 6;           // Fraçao em segundos que é contabilizado após o tempo mínimo<br></div><div><br></div>$custo = round ( $valor_do_minuto / 60 * ( $biilsecs &lt;= $tempo_minimo ? $tempo_minimo : ceil ( $billsecs / $tempo_fracao) * $tempo_fracao), 2);<br><br></div>Lembre-se que ainda temos o tempo de descarte no Brasil, que por norma é 3 segundos, ou seja, se o tempo de bilhetagem for menor ou igual a 3 segundos, a ligação não é tarifada.<br><br></div>Abraços,<br clear="all"><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr">--<br>Ernani Azevedo<div>(51) 92425885</div></div></div></div>
<br><div class="gmail_quote">2016-01-04 17:16 GMT-02:00 Danilo Almeida <span dir="ltr">&lt;<a href="mailto:daniloricalmeida@gmail.com" target="_blank">daniloricalmeida@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Fiz um exemplo em PHP  aqui (mais simples), acho que funciona rsrs.<div><br></div><div><div>$duracaoMinima = Variavel;</div><div>$blocoCadencia = Variavel;<span style="white-space:pre-wrap">        </span></div><div>$valorMin = Variavel;</div><div><br></div><div>$valor_cadencia = ($valorMin / (60/$blocoCadencia));</div><div><br></div><div><span style="white-space:pre-wrap">                        </span>if ( $billsec &lt;= $duracaoMinima ) {</div><div>     <span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                                </span>$qtdcadencia = (int)ceil($duracaoMinima / $blocoCadencia);</div><div><span style="white-space:pre-wrap">                        </span>}else{</div><div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                                </span>$qtdcadencia = (int)ceil($billsec / $blocoCadencia);</div><div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                        </span>}</div><div><span style="white-space:pre-wrap">                </span></div><div><span style="white-space:pre-wrap">                </span>$custo_lig = $qtdcadencia * $valor_cadencia;</div></div><div><br></div><div>Dessa forma calcula o valor pelo bloco da cadencia, no seu caso 6. Ele acha a quantidade de blocos e multiplica pelo valor do mesmo.</div><div>creio que fica mais fácil de entender, ou talvez não...kkkkk</div></div><div class="gmail_extra"><br clear="all"><div><div><div dir="ltr"><div><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0000ff">att</font></b><div><b style="background-color:rgb(255,255,255)"><font color="#0000ff">Danilo Almeida</font></b></div><div><b style="background-color:rgb(255,255,255)"><font color="#0000ff">skype: danilo.almeida33</font></b></div></div></div></div></div></div>
<br><div class="gmail_quote"><div><div class="h5">Em 30 de dezembro de 2015 00:14, Hudson Cardoso <span dir="ltr">&lt;<a href="mailto:hudsoncardoso@hotmail.com" target="_blank">hudsoncardoso@hotmail.com</a>&gt;</span> escreveu:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">


<div><div dir="ltr"><font style="font-size:12pt" face="Arial,sans-serif" color="#000000" size="3">Tenho algo assim...<br>Se por acaso servir pra voce, calcula Tempo mínimo, pulsos, arredondamentos, vigência, imposto retroativo,degrau e tipo de data...<br><br>Está em pascal...<br><br>try<br>    pulsos := 0 ;<br>    vcob := timetotempo(abilhetes.duracao);<br>except<br>    pulsos := 0 ;<br>    vcob := 0 ;<br>end;<br>    t_x := vcob - v_Temporizador - tempo_at_simulado ;<br>    if t_x &lt; 0 then t_x := 0 ;<br>    if t_x&lt;&gt;0 then<br>     begin<br>      if t_x &lt;= t_min then t_x := t_min ;<br>      if t_x &gt; t_min then<br>       begin<br>        t_x := t_x - t_min ;<br>        if t_x = 0 then t_x := 1 ;<br>        if t_arr = 0 then t_arr := 1 ;<br>        t_res := (trunc(t_x/t_arr)*t_arr);<br>        pulsos := trunc(t_x/t_arr) ;<br>        if t_x &gt; t_res then pulsos := pulsos + 1 ;<br>        if t_x &gt; (T_res) then t_x:=t_res+t_arr ;<br>        t_x := t_x + t_min ;<br>       end;<br>      if t_x = 0 then t_x := 1 ;<br>      abilhetes.valor := (t_x/60)*valor_prefixo*v_taxa_extra*v_imposto;<br>      if t_min = 0 then t_min := 1 ;<br><br>      if pos(&#39;0-0-&#39;,degrau_b_public)&lt;&gt; 0 then<br>       begin<br>        if abilhetes.duracao &gt; strtotime(&#39;00:02:00&#39;) then<br>              abilhetes.valor := (pulsos + 1 ) * valor_prefixo * v_taxa_extra * v_imposto;<br>        if abilhetes.duracao &lt;= strtotime(&#39;00:02:00&#39;) then if pos(&#39;0-0-&#39;,degrau_b_public)&lt;&gt; 0<br>          then<br>             abilhetes.valor :=  valor_prefixo * v_taxa_extra * v_imposto ;<br><br>        if pos(&#39;0-0-S&#39;,degrau_b_public)&lt;&gt; 0 then<br>             if h_lig &gt; 13 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>        if pos(&#39;0-0-D&#39;,degrau_b_public)&lt;&gt; 0 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>        if h_lig &lt; 7 then abilhetes.valor :=  2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>       end;<br><br>      if pos(&#39;0-1-&#39;,degrau_b_public)&lt;&gt; 0 then<br>       begin<br>        if h_lig &lt; 7 then abilhetes.valor :=  2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>        if pos(&#39;0-1-S&#39;,degrau_b_public)&lt;&gt; 0 then<br>             if h_lig &gt; 13 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>        if pos(&#39;0-1-D&#39;,degrau_b_public)&lt;&gt; 0 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>       end;<br><br>      if dayofweek(abilhetes.data_lig)= 7<br>       then<br>        if ( (degrau_b_public = &#39;0-0-S&#39;) or ( degrau_b_public = &#39;LCR-0-S&#39;) or ( degrau_b_public = &#39;EXC-0-S&#39; ) )<br>         then<br>          if abilhetes.hora_lig &gt; StrToTime(&#39;14:00:00&#39;)<br>           then<br>            abilhetes.valor := (t_min/60) * valor_prefixo * v_taxa_extra * v_imposto ;<br>      if dayofweek(abilhetes.data_lig)= 1<br>       then<br>        begin<br>         if degrau_b_public = &#39;0-0-D&#39;   then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>         if degrau_b_public = &#39;LCR-0-D&#39; then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>         if degrau_b_public = &#39;EXC-0-D&#39; then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>        end;<br>      if abilhetes.duracao&lt;= 0 then abilhetes.valor:= 0 ;<br>     abilhetes.valor:= abilhetes.valor + Sql.fieldbyname(&#39;aoconectar&#39;).AsCurrency ;<br>     if valorunico&lt;&gt;0 then abilhetes.valor:= valorunico ;<br>     end<br>  end;<br>end;<br><br></font><br><br><pre style="line-height:17px;white-space:normal;color:rgb(42,42,42);background-color:rgb(255,255,255)">Hudson <br><a href="tel:%28048%29%208413-7000" value="+554884137000" target="_blank">(048) 8413-7000</a><br>Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova precisa. </pre><br><br><div><hr>Date: Mon, 28 Dec 2015 16:48:46 -0200<br>From: <a href="mailto:jrfreitas83@gmail.com" target="_blank">jrfreitas83@gmail.com</a><br>To: <a href="mailto:asteriskbrasil@listas.asteriskbrasil.org" target="_blank">asteriskbrasil@listas.asteriskbrasil.org</a><br>Subject: [AsteriskBrasil] Cálculo de tarifação CDR em PHP<div><div><br><br><div dir="ltr"><div><div><div><div><div>Sres, boa tarde.<br><br></div>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.<br><br></div>Meu provedor me cobra no formato 30/6 com custo de 0,13 centavos o minuto<br><br></div><div>A regra seria:<br>Tempo mínimo de tarifação: 30 segundos;<br>Unidade de tarifação: 06 segundos<br></div><div>Custo Minuto: 0.13       <br></div><div><br>Exemplo:<br>       <br>Ligação de 25 segundos: serão tarifados 30 segundos<br>Ligação de 31 segundos: serão tarifados 30 + 06 = 36 segundos<br>Ligação de 37 segundos: serão tarifados 30 + 06 + 06 = 42 segundos<br></div><div><br></div>Alguém teria esses cálculos ou algo parecido que eu pudesse seguir como modelo e chegar a esse resultado.<br><br></div>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.<br><br></div><div>Não sei programar em php, e sim curioso, logo peço desculpa pelo código.<br></div><div><br>tarifador.php<br><br>$query = &quot;SELECT calldate, src, dst, duration, billsec, disposition, uniqueid FROM $tablename WHERE calldate &gt;= &#39;&quot;.$dtinicial.&quot;&#39; AND billsec &gt; 0 ORDER BY calldate DESC LIMIT 20 &quot;;<br>$result = mysql_query($query);<br><br>// Return the results, loop through them and echo<br><br>while($row  = mysql_fetch_array($result))<br><br>{<br><br>$segundos = $row[&#39;billsec&#39;];<br>$val_minuto = 0.13;<br>$val_minuto30 = $val_minuto /2;<br>$val_minuto2 = $val_minuto / 10;<br>$val_minuto3 = $val_minuto2 * $segundos + $val_minuto;<br><br>        if ($segundos &lt;= 30){<br>            $x = &quot;{$val_minuto30}&quot;;<br><br>        }else{<br>            $x = &quot;{$val_minuto3}&quot;;<br>}<br><br><br><br></div><div>Obrigado a todos pela ajuda e Feliz Ano Novo!!!<br></div><div><br></div></div>
<br></div></div>_______________________________________________
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 <a href="http://www.Khomp.com" target="_blank">www.Khomp.com</a>
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org" target="_blank">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></div>                                               </div></div>
<br>_______________________________________________<br>
KHOMP: completa linha de placas externas FXO, FXS, GSM e E1<br>
Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7<br>
Intercomunicador e acesso remoto via rede IP e telefones IP<br></div></div>
Conheça todo o portfólio em <a href="http://www.Khomp.com" rel="noreferrer" target="_blank">www.Khomp.com</a><span class=""><br>
_______________________________________________<br>
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org" target="_blank">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
KHOMP: completa linha de placas externas FXO, FXS, GSM e E1<br>
Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7<br>
Intercomunicador e acesso remoto via rede IP e telefones IP<br>
Conheça todo o portfólio em <a href="http://www.Khomp.com" rel="noreferrer" target="_blank">www.Khomp.com</a><br>
_______________________________________________<br>
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><br></blockquote></div><br></div></div>