#!/usr/bin/php -q $cola) { $query = sprintf("select dac from pbx_supervisor_dacs WHERE dac = %s", QuotedStr($key)); $result = pg_query($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($key)); $result = pg_query($query); } else { $query = "insert into pbx_supervisor_dacs (atendidas, abandonadas, espera, tempo_espera, tempo_nivel_servico,percentual_nivel_servico, dac)values(%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($key)); $result = pg_query($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 assistido. */ //@LimpaAbandonadas($dbcon); @FechaPendenciaDiscador(); pg_close(); 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(); fwrite($fp, $data); fwrite($fp, $msg); fclose($fp); } ?>