repositório com os arquivos utilizados para integração entre o sistema SimplesIP e diversos sistemas.
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.
 
 

116 lines
3.6 KiB

<?php
include_once '/var/lib/asterisk/scripts/integracao/custom/funcoesCustom.php';
$scrpt = $argv[0];
/*
* Variaveis para o status da integração.
*/
$reg_retorno = $numero;
$reg_msg = '';
$reg_status_exec = '1';
$retorno_cliente = '';
$ura = 'REALCONSIG';
//$ura = 'HOMOLOGACAO_SIMPLESIP';
/*
* Registra o inicio da integração. As variaveis passadas na funções são iniciali-
* zadas em serverAgi.php.
*/
@RegistraIntegracao($idMetodo, $uid, $uidOld, $numero);
try {
$conexao = ConnectPG();
$idCrm = ConsultaListaDiscador($conexao, $numero, $matricula);
__logStr("Chamadas Discador Finaz", "Telefone ".print_r($numero,true), $scrpt, true);
__logStr("Chamadas Discador Finaz", "Consulta de lista - ". print_r($idCrm,true), $scrpt, true);
$callDiscador = ChamadaDiscador($idCrm, $numero, $ramalAgente, $uid);
__logStr("Chamadas Discador Finaz", "Retorn da API - ". print_r($callDiscador['result'],true), $scrpt, true);
__logStr("Chamadas Discador Finaz", "URL da chamada - ". print_r($callDiscador['url'],true), $scrpt, true);
ConnectPG($conexao);
} catch (Exception $ex) {
$reg_msg = $ex->getMessage();
$reg_status_exec = 'Er';
__logStr("Chamadas Discador Finaz", $reg_msg, $scrpt, true);
}
@AtualizaIntegracao($uid, $reg_retorno, $reg_msg, $reg_status_exec, $retorno_cliente);
if (!$dadosIntegra)
@grava_dadosIntegra($reg_retorno);
function ChamadaDiscador($contIdentificador, $telefone, $ramalAgente, $uniqueid) {
try {
$url = "https://api.finaz.com.br/telephony-proxy/atendimentodiscador?"
. "pid={$contIdentificador['cont_identificador']}&num={$telefone}&cid={$uniqueid}&ramal={$ramalAgente}&empresaId=3013";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$content = trim(curl_exec($ch));
curl_close($ch);
$retorno = json_decode($content);
if (!$retorno) {
throw new Exception("Erro ao consultar a api - " . $retorno);
}
$info = array(
"url" => $url,
"result" => $retorno
);
return $info;
} catch (Exception $ex) {
$msg = $ex->getMessage();
return $msg;
}
}
function ConsultaListaDiscador($connect, $telCliente, $matricula) {
try {
$query = "SELECT b.cmp_id, a.cmp_descricao, a.list_nome, a.cont_identificador, a.cont_param1, c.nome
FROM pbx_campanha_operacao a
INNER JOIN pbx_campanha b ON a.cmp_id = b.cmp_id
INNER JOIN pbx_dacs c ON c.id = b.id_dac
WHERE c.nome = 'REALCONSIG'
AND a.conf_fone = '{$telCliente}'
AND cmpo_id = (SELECT MAX(cmpo_id) from pbx_campanha_operacao WHERE matricula = '{$matricula}')";
$resultado = pg_query($connect, $query);
$resLista = pg_fetch_assoc($resultado);
if (!$resultado) {
throw new Exception("Erro ao realizar a criação da tabela de listas!");
}
return $resLista;
} catch (Exception $ex) {
return $ex->getMessage();
}
}
function ConnectPG($connection = null) {
$dbPort = "5432";
$dbHost = "127.0.0.1";
$dbName = "pbx";
$dbUser = "contacte";
$dbPassword = "ctepgSQL";
if (!$connection) {
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'";
return pg_connect($str);
} else {
pg_close($connection);
}
return null;
}
?>