$_SESSION['SSTokenChat'], "id_number" => $numbers[0]['id'], "id_empresa" => $numbers[0]['id_empresa'], "servidor" => $_SESSION['prm_chat_api'], "websocket" => $_SESSION['prm_sk_host_chat'], "matricula" => $matricula, "fila" => $request['selectqueue'], "expire" => strtotime('+1 days', time()) ]; $token = $crypt->encrypt(json_encode($info, true)); $url = $chatApi . ":8001/index.php?t=" . $token; $jsStartup[] = sprintf('window.open("%s", "popupWindow", "width=1450, height=950, resizable=NO,scrollbars=YES");', $url); } } catch (Exception $ex) { $jsStartup[] = sprintf("alert('%s')", $ex->getMessage()); } $smarty->assign("options", $options); $smarty->assign("jsonApp", json_encode( [ 'matricula' => GetMatricula(), 'server_api' => $_SESSION['prm_chat_api'], 'server_ws' => $_SESSION['prm_sk_host_chat'], 'supervisor' => IsSupervisor($dbcon) ] )); GetTemplate($smarty, 'simpleschat/connect.tpl'); function number($chatApi, $token) { $response = curl("{$chatApi}/api/v1/number", null, $token); if (!$response['data']) { throw new Exception('Não foi encontrar os números.'); } return $response['data']; } function queues($chatApi, $token) { $response = curl("{$chatApi}/api/v1/filas", null, $token); $option = null; if (!$response['data']) { throw new Exception('Não foi possível listar as filas.'); } foreach ($response['data'] as $v) { $option .= ""; } return $option; } function login($chatApi, $email) { $json = json_encode(['email' => $email, "matricula" => md5(GetMatricula())]); $response = curl("{$chatApi}/access/login", $json); if ($response['status'] == 'success' || strpos($response['message'], 'autenticado') !== false) { return $response['data']['token']; } throw new Exception('Não foi possível gerar o token.'); } function curl($url, $params = null, $token = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); if ($params) { curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $params); } curl_setopt($curl, CURLOPT_TIMEOUT, 30); $header[] = 'Content-Type:application/json'; if ($token) { $header[] = 'Authorization: Bearer ' . $token; } curl_setopt($curl, CURLOPT_HTTPHEADER, $header); $content = curl_exec($curl); if (curl_errno($curl)) { curl_close($curl); return false; } $info = curl_getinfo($curl); if ($info['http_code'] == 403) { unset($_SESSION['SSTokenChat']); } curl_close($curl); return json_decode($content, true); } function getEmailAgente($dbcon, $matricula) { $query = "SELECT email FROM pbx_usuarios WHERE matricula = '$matricula';"; $result = pg_query($dbcon, $query); return pg_fetch_assoc($result); }