Voltar para o menu: Playground & APPs | Obter senha de teste para implementar as APIs | Preço e loja online para contratar as APIs
Documentação
A APP Menu facilita recursos de telefonia em Relatórios e Cadastros de softwares web. É aplicável em páginas HTML através de JavaScript e CSS. É um plugin baseado na biblioteca jQuery, portanto muito simples de utilizar, bastando usar um seletor jQuery e invocar o menu e todos os elementos selecionados terão o menu aplicado.
NOTA: Se o seu software é DESKTOP nós temos uma solução similar baseada em DLLs +Inf.
Dependências
Os scripts necessários para o uso do menu devem ser adicionados dentro da tag <head> da página.
...
<?php
/**
* Requisições para a API de telefonia da Directcall
*/
class DirectcallMenuApi
{
/**
* Domínio da API
*/
const DOMAIN = 'http://api.directcallsoft.com/';
/**
* Requisição de uma url via post
* @param string $url
* @param array $data
* @return string
*/
public static function curlPost($url, $data)
{
if ( is_array($data) ) {
$data = http_build_query($data);
}
$curlOptions = array(
CURLOPT_URL => $url,
//CURLOPT_TIMEOUT => 10, // tempo máximo de espera por resposta //
CURLOPT_HEADER => 0, // retorna o header //
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: ".strlen($data),
),
CURLOPT_RETURNTRANSFER => 1, // força o retorno da resposta
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data,
CURLOPT_SSL_VERIFYPEER => 0, // não verifica SSL
//CURLOPT_FOLLOWLOCATION => 1,
//CURLINFO_REDIRECT_COUNT => 2,
//CURLINFO_REDIRECT_TIME => 5,
);
$curlHandle = curl_init();
curl_setopt_array($curlHandle, $curlOptions);
$curlResponse = curl_exec($curlHandle);
$resposta = ( curl_errno($curlHandle) > 0 ) ? curl_error($curlHandle) : $curlResponse;
curl_close($curlHandle);
return utf8_decode($resposta);
}
/**
* Requisição para a API
* @param array $data
* @return string
*/
public static function request($data) {
if ( isset($data["format"]) ) {
if ( $data["format"] == "json" ) {
header('Content-Type: application/json');
} elseif ( $data["format"] == "xml") {
header('Content-Type: application/xml');
}
}
return self::curlPost(self::DOMAIN . (isset($data['action']) ? $data['action'] : ''), $data);
}
/**
* Busca informações de localização baseadas no IP
* @access public
* @param string $ip
* @return string
*/
public static function geolocation($ip) {
return trim(file_get_contents("http://freegeoip.net/json/{$ip}"));
}
}
// imprime o resultado da requisição da API //
if ( isset($_REQUEST['tooltip']) && is_numeric($_REQUEST['tooltip']) )
{
// informações dos tooltips //
echo DirectcallMenuApi::curlPost('https://www.directcallsoft.com/ecommerce/webservice/tooltips.php',
array('identifier' => $_REQUEST['tooltip']));
}
elseif ( isset($_REQUEST['action']) && ($_REQUEST['action'] == 'geolocation') )
{
// informações sobre localização //
$ip = $_SERVER['REMOTE_ADDR'];
$ip = '';
echo DirectcallMenuApi::geolocation($ip);
}
else
{
// requisições de telefonia //
$request = DirectcallMenuApi::request($_REQUEST);
if ( isset($_REQUEST['action']) ) {
$ok = false;
switch ( preg_replace('/^.+?([a-z]+)$/', '$1', $_REQUEST['action']) ) {
case 'calls': $ok = true; $titulo = "ligações"; break;
case 'sms': $ok = true; $titulo = "SMS"; break;
case 'recordings': $ok = true; $titulo = "gravações"; break;
}
if ( $ok ) {
$request = preg_replace('/(<body>)[\s\r\n]*(<table)/',
'$1<div style="font-family:arial;font-size:12px;font-weight:bold;margin-bottom:30px;">Directcall - Relatório de '.$titulo.'</div>$2',
$request);
}
}
echo $request;
}
?>
NOTA: O MENU sugerido acima pode ser implantado também em aplicativos DESKTOP + Inf.
Teste grátis
Obter senha de teste para implementar esta APP | Preço e loja online para contratar as APIs da Directcall