#!/usr/bin/php -q $cola) { $info = GetNomeOrganizacao($key); $nome = $info['nome']; $org_id = $info['org_id']; $query = sprintf("SELECT dac FROM pbx_supervisor_dacs WHERE dac = %s", QuotedStr($nome)); $result = pg_query($dbcon, $query); $exists = pg_num_rows($result); if ($exists) { $query = "UPDATE pbx_supervisor_dacs set atendidas = %s, abandonadas = %s, espera = %s, tempo_espera = %s, tempo_nivel_servico = %s, percentual_nivel_servico = %s WHERE dac = %s"; $query = sprintf($query, QuotedStr($cola['Completed']), QuotedStr($cola['Abandoned']), QuotedStr($cola['Calls']), QuotedStr(($cola['Calls'] ? $cola['Holdtime'] : 0)), QuotedStr($cola['ServiceLevel']), QuotedStr($cola['ServicelevelPerf']), QuotedStr($nome)); $result = pg_query($dbcon, $query); } else { $query = "INSERT INTO pbx_supervisor_dacs (atendidas, abandonadas, espera, tempo_espera, tempo_nivel_servico, percentual_nivel_servico, dac, org_id) VALUES(%s,%s,%s,%s,%s,%s,%s,%s)"; $query = sprintf($query, QuotedStr($cola['Completed']), QuotedStr($cola['Abandoned']), QuotedStr($cola['Calls']), QuotedStr(($cola['Calls'] ? $cola['Holdtime'] : 0)), QuotedStr($cola['ServiceLevel']), QuotedStr($cola['ServicelevelPerf']), QuotedStr($nome), $org_id); $result = pg_query($dbcon, $query); } if (!$result) { GravaLogAtuDacs("Erro ao executar cmd no banco de dados! Cmd: $query\n Erro: " . pg_last_error() . "\n"); } } /* * Elimina evento abandon gerado pelo transbordo assistid */ //@LimpaAbandonadas($dbcon); @FechaPendenciaDiscador(); pg_close($dbcon); function exec_cmd($comando, $socket, $evento_fin) { $actionid = rand(000000000, 9999999999); $actionid = "actionid: " . $actionid . "\r\n"; $comando .= $actionid . "\r\n"; $paquete_mio = false; $data = ""; $respuesta = array(); fwrite($socket, $comando); while (!feof($socket)) { $bufer = fgets($socket); $data .= $bufer; if (strtolower($bufer) == strtolower($actionid)) { $paquete_mio = true; } if (strtolower($bufer) == "\r\n" && $paquete_mio == true) { $paquete_mio = false; $respuesta['eventos'][] = arma_paquete($data); if (stristr($data, $evento_fin)) { $data = ""; //echo("Respuesta a '".$comando."' completa

"); return $respuesta; break; } elseif (stristr($data, "Error")) { //detectamos una respueta de error al comnado return $respuesta; break; } else { $data = ""; } } } } function arma_paquete($data) { $items = preg_split("/[\n\r]/", $data); foreach ($items as $item) { if (strlen($item) > 0) { $tmp = explode(": ", $item); $clave = $tmp[0]; $valor = $tmp[1]; $evento[$clave] = $valor; } } return $evento; } function ArmaArrayColas($qs_response) { $events = $qs_response['eventos']; $queues = array(); foreach ($events as $event) { $nomeEvt = (array_key_exists('Event', $event)) ? $event["Event"] : ''; if ($nomeEvt == 'QueueParams') { $queues[$event["Queue"]] = $event; } else if ($nomeEvt == 'QueueEntry') { $queues[$event["Queue"]]["Holdtime"] += $event["Wait"]; } } return $queues; } function GravaLogAtuDacs($msg) { $fp = fopen('/var/log/atualiza-dacs.log', 'a'); $data = date('Y-m-d'); fwrite($fp, $data); fwrite($fp, $msg); fclose($fp); } ?>