forked from Claudio/integracao
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
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; |
|
} |
|
?>
|
|
|