PABX criado para pesquisas
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
5.1 KiB

#!/usr/bin/php -q
<?php
exit;
include('bd.php');
include('funcoes/shared.php');
include('util/util.php');
/*
* Incializa variaveis com informa<EFBFBD><EFBFBD>es do ambiente.
*/
$erro = '';
$gravaLog = 1;
$log = array();
$log[] = 'Tarifa rota saida.';
$info['tronco_id'] = $argv[1];
$info['rota_id'] = $argv[2];
$info['uniqueid'] = $argv[3];
$info['trr_origem'] = $argv[4];
$info['trr_destino'] = $argv[5];
$log[] = sprintf("Destino Inicial: %s\n", $info['trr_destino']);
$info['trr_conta_senha'] = isset($argv[6]) && ($argv[6] == '2') ? 1 : 0;
$info['trr_conta'] = isset($argv[7]) ? $argv[7] : '';
$info['trr_destino'] = Ver0800($info['trr_destino']);
$log[] = sprintf("Destino apos Ver0800: %s\n", $info['trr_destino']);
$dddPadrao = GetDddPadrao();
$tpChamada = GetTipoChamada($info['trr_destino'], $dddPadrao);
$dispositivo = $tpChamada[0];
$tipoChamada = $tpChamada[1];
$numOper = $tpChamada[2];
/*
* Esta fun<EFBFBD><EFBFBD>o retorna informa<EFBFBD><EFBFBD>es sobre o contrato e pre<EFBFBD>os
*/
$infoContrato = GetInfoTarifa($info['tronco_id'], $numOper, $info['trr_destino'], $dispositivo);
$info['contr_id'] = $infoContrato['contr_id'] ? $infoContrato['contr_id'] : 0;
$info['contr_id_dest'] = $infoContrato['contr_id_dest'] ? $infoContrato['contr_id_dest'] : 0;
$info['oper_id'] = $infoContrato['oper_id'];
$info['oper_id_dest'] = $infoContrato['oper_id_dest'] ? $infoContrato['oper_id_dest'] : $infoContrato['oper_id'];
$info['trr_tipo_opera'] = $infoContrato['trr_tipo_opera'];
$info['prc_id'] = $infoContrato['prc_id'] ? $infoContrato['prc_id'] : 0;
$info['trr_preco_tipo'] = $infoContrato['trr_preco_tipo'];
$info['oper_numero'] = $infoContrato['oper_numero'];
$info['oper_numero_dest'] = $infoContrato['oper_numero_dest'];
$info['trr_tarifa_zero'] = $infoContrato['trr_tarifa_zero'];
$info['contr_dia_fechamento'] = $infoContrato['contr_dia_fechamento'];
$info['contr_bloq_franquia'] = $infoContrato['contr_bloq_franquia'];
$info['prc_franquia'] = $infoContrato['prc_franquia'];
$info['trr_tipo_dispositivo'] = $dispositivo;
$info['trr_chamada'] = $tipoChamada;
if (($dispositivo == 'fixo') && ($tipoChamada == 'local')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc1_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc1_ext'];
$info['trr_vc'] = 'vc1';
$info['trr_preco'] = $infoContrato['trr_vc1'];
}
if (($dispositivo == 'fixo') && ($tipoChamada == 'inter')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc2_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc2_ext'];
$info['trr_vc'] = 'vc2';
$info['trr_preco'] = $infoContrato['trr_vc2'];
}
if (($dispositivo == 'fixo') && ($tipoChamada == 'ddi')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc5_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc5_ext'];
$info['trr_vc'] = 'vc5';
$info['trr_preco'] = $infoContrato['trr_vc5'];
}
if (($dispositivo == 'movel') && ($tipoChamada == 'local')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc3_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc3_ext'];
$info['trr_vc'] = 'vc3';
$info['trr_preco'] = $infoContrato['trr_vc3'];
}
if (($dispositivo == 'movel') && ($tipoChamada == 'inter')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc4_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc4_ext'];
$info['trr_vc'] = 'vc4';
$info['trr_preco'] = $infoContrato['trr_vc4'];
}
if (($dispositivo == 'movel') && ($tipoChamada == 'ddi')) {
$info['trr_vc_cad'] = $infoContrato['trr_vc6_cad'];
$info['trr_vc_ext'] = $infoContrato['trr_vc6_ext'];
$info['trr_vc'] = 'vc6';
$info['trr_preco'] = $infoContrato['trr_vc6'];
}
$zerOitocentos = substr($info['trr_destino'], 0, 4) == '0800';
if ($zerOitocentos)
$info['trr_preco'] = 0;
$info['trr_sentido_chamada'] = 'O';
$log[] = sprintf("Inicio query banco%s\n", '');
$query = "insert
into pbx_tarif_registra
(contr_id, contr_id_dest, prc_id, oper_id, oper_id_dest, oper_numero, oper_numero_dest, tronco_id, rota_id, uniqueid, trr_data, trr_origem, trr_destino, trr_inicio, trr_fim,trr_duracao, trr_preco, trr_vc, trr_preco_tipo, trr_tipo_opera, trr_sentido_chamada, trr_link, trr_tarifa_zero, trr_conta_senha, trr_conta, trr_vc_cad, trr_vc_ext, trr_preco_total, trr_tipo_dispositivo, trr_chamada)
values ({contr_id},{contr_id_dest}, {prc_id},{oper_id},{oper_id_dest},{oper_numero}, {oper_numero_dest}, {tronco_id},{rota_id},{uniqueid}, now()::date, {trr_origem},{trr_destino}, now(), null, null, {trr_preco},{trr_vc},{trr_preco_tipo}, {trr_tipo_opera}, {trr_sentido_chamada}, null, {trr_tarifa_zero},{trr_conta_senha},{trr_conta},{trr_vc_cad},{trr_vc_ext}, 0.0, {trr_tipo_dispositivo}, {trr_chamada})";
foreach ($info as $key => $value) {
$query = str_replace('{' . $key . '}', QuotedStr($value), $query);
}
$log[] = sprintf("Query banco: %s\n", $query);
$result = pg_query($query);
if (!$result) {
$erro = error_get_last();
$log[] = "Erro: " . $erro['message'] . "\nCmd: " . $query;
}
$str = sprintf("/var/lib/asterisk/agi-bin/tarifa_monitora.php %s > /dev/null &", $info['uniqueid']);
$log[] = "Monitora: " . $str;
exec($str);
if ($gravaLog || $erro) {
GravaLogApl($log, 'tarifacao_saida');
}
?>