forked from SimplesIP/pabx-app
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.
123 lines
5.1 KiB
123 lines
5.1 KiB
#!/usr/bin/php -q |
|
<?php |
|
include('bd.php'); |
|
include('funcoes/shared.php'); |
|
include('util/util.php'); |
|
|
|
/* |
|
* Incializa variaveis com informaçõ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ção retorna informações sobre o contrato e preç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'); |
|
} |
|
?>
|
|
|