Browse Source

ipcall

master
Lucas Awade 2 years ago
parent
commit
d3979a64f1
  1. 169
      IPCall/IPCall.php
  2. 19
      IPCall/enviarSMS.php
  3. 27
      IPCall/gerarProtocolo.php
  4. 8
      IPCall/smsteste.php
  5. 11
      IPCall/teste.php

169
IPCall/IPCall.php

@ -0,0 +1,169 @@
<?php
require_once 'Integracao.php';
include "config.php";
class IPCall extends Integracao {
private $token;
private $url;
private $metodo;
private $query;
private $curl;
private $debug;
private $params = array();
########################################################################
## FUNCOES DA API ##
########################################################################
public function gerarProtocolo($empresa) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params['cliente'] = $empresa;
$this->setMetodo('blank_gerador_protocolo');
return $this->setParams();
} else {
return false;
}
}
public function sendsms($cliente, $numero, $protocolo){
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params['cliente'] = $cliente;
$this->params['numero'] = $numero;
$this->params['protocolo'] = $protocolo;
$this->setMetodo('api_sms_pbx');
return $this->setParams();
} else {
return false;
}
}
########################################################################
## FUNCOES DEFAULT DA CLASSE ##
########################################################################
/**
* Coleta as informacoes iniciais para o inicio da integracao com a API.
*
* @param string $token
* @param string $url
* @param boolean $log
*/
public function __construct() {
$this->url = CONF_URL_API;
$this->setLog(CONF_LOGGER_ATIVO);
$this->integracaoReg();
$this->log->info("Iniciando integracao", debug_backtrace());
}
/**
* Parametriza o metodo utilizado para a consulta.
*
* @param type $metodo
*/
private function setMetodo($metodo) {
$this->metodo = $metodo;
}
/**
* Escreve a query para ser passada para o curl
*
* @param string $query
*/
private function setQuery($query) {
return $this->query .= $query;
}
/**
* retorna a string pronta da query do curl e limpa a variavel.
*
* @return string $query
*/
private function getQuery() {
$query = $this->query;
unset($this->query);
return $query;
}
/**
* Informa o tipo de requisicao que sera feita pela cURL
* @param bool $request
*/
private function request($request = null) {
}
/**
* Constroi de forma dinamica a string para ser passada para a execucao do Curl
*
* @void
*/
private function curl() {
$this->curl = curl_init();
curl_setopt($this->curl, CURLOPT_URL, $this->url . "/" . $this->metodo . "/");
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->curl, CURLOPT_POST, true);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $this->params);
/*
* Final da linha para pegar os dados da variavel
*/
$this->log->debug("Curl: {$this->curl}", debug_backtrace());
}
/**
* Recebe array de forma de indice e valor
*
* @example array("qtype" => 'test_api', "query" => '123', "oper" => '=')
*
* @obs sempre chamar a funcoes debug_backtrace() para ser disponivel em log
*
* @param type $params
* @debug_track function debug_backtrace()
*/
private function setParams() {
$this->params = http_build_query($this->params);
$this->curl();
unset($this->params);
return $this->exec();
}
/**
* Recebe as informacoes e realiza a execucao da API
*
* @void
*/
private function exec() {
/**
* Caso tenha problema de requisicao
*/
$content = curl_exec($this->curl);
if (curl_errno($this->curl)) {
$this->log->error(curl_error($this->curl), debug_backtrace());
curl_close($this->curl);
$this->audioError();
return false;
}
curl_close($this->curl);
return $this->response($content);
}
/**
* Prepara dos dados para ser transmitidos para o metodo a ser retornado a
* integracao.
*
* @return array
*/
private function response($data) {
$this->log->debug("Reponse API: " . print_r($data, true), $this->debug);
if ($data) {
return json_decode($data, true);
} else {
return false;
}
}
}

19
IPCall/enviarSMS.php

@ -0,0 +1,19 @@
<?php
include "IPCall.php";
$ipcall = new IPCall();
$protocolo = $agi->get_variable('PROTOCOLO_ANS', true);
$clientid = $agi->get_variable('CLIENTID', true);
$ipcall->log()->debug("enviarSMS | " . print_r([
'protocolo' => $protocolo,
'clientid' => $clientid
], true));
if($protocolo && $clientid){
$ipcall->sendsms($clientid, $numero, $protocolo);
}
?>

27
IPCall/gerarProtocolo.php

@ -0,0 +1,27 @@
<?php
include "IPCall.php";
$ipcall = new IPCall();
$nomenclatura = $ipcall->agi()->get_variable('NOMENCLATURA', true);
$resp = $ipcall->db()->getServiceByUniqueid($uid);
if($resp['serv_id']){
$protocolo = $ipcall->gerarProtocolo($resp['serv_id']);
$ipcall->agi()->set_variable('PROTOCOLO_ANS', $protocolo["protocolo_ans"]);
$ipcall->agi()->set_variable('CLIENTID', $resp['serv_id']);
if($protocolo['codigo'] == '200'){
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "SUCESSO", $nomenclatura);
}else {
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "FALHA", $nomenclatura);
}
} else {
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "OUTRO", $nomenclatura);
}
$ipcall->executarFluxo($redirecionamento_dados["TIPO"], $redirecionamento_dados["NOME"]);
?>

8
IPCall/smsteste.php

@ -0,0 +1,8 @@
<?php
include "IPCall.php";
$ipcall = new IPCall();
$ipcall->sendsms('2', '83988166902', '1234567890');
?>

11
IPCall/teste.php

@ -0,0 +1,11 @@
<?php
include "IPCall.php";
$ipcall = new IPCall();
$nomenclatura = $ipcall->agi()->get_variable('NOMENCLATURA', true);
$resp = $ipcall->gerarProtocolo(2);
print_r($resp);
?>
Loading…
Cancel
Save