|
|
|
<?php
|
|
|
|
|
|
|
|
function connect_db() {
|
|
|
|
|
|
|
|
$conexao = pg_connect("dbname=desenvolvimento port=5432 host=192.168.80.95 user=contacte password=ctepgSQL");
|
|
|
|
|
|
|
|
if (!$conexao) {
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$timeout = 50;
|
|
|
|
$socket = fsockopen("127.0.0.1", "5038", $errno, $errstr, $timeout);
|
|
|
|
|
|
|
|
fwrite($socket, "action: login" . chr(13) . chr(10));
|
|
|
|
fwrite($socket, "username: manager" . chr(13) . chr(10));
|
|
|
|
fwrite($socket, "secret: sugamanager" . chr(13) . chr(10) . chr(13) . chr(10));
|
|
|
|
// $actionid=rand(000000000,9999999999);
|
|
|
|
// fwrite($socket, "actionid: ".$actionid."\r\n\r\n");
|
|
|
|
$gr = true;
|
|
|
|
$x = 0;
|
|
|
|
$evento = '';
|
|
|
|
while (true) {
|
|
|
|
$bufer = fgets($socket);
|
|
|
|
if (trim($bufer) != '') {
|
|
|
|
//print_r($bufer."<br>");
|
|
|
|
$tmp = explode(": ", $bufer);
|
|
|
|
$campo = ($tmp[0]);
|
|
|
|
$valor = trim($tmp[1]);
|
|
|
|
if (($valor != 'Cdr')) {
|
|
|
|
if ($campo == 'Event') {
|
|
|
|
connect_db();
|
|
|
|
$evento = trim($valor);
|
|
|
|
$query = "INSERT INTO pbx_monitor_evento (EVENTO) VALUES ('" . strtolower($valor) . "')";
|
|
|
|
pg_query($query);
|
|
|
|
$query = "SELECT ID FROM pbx_monitor_evento order by id desc limit 1";
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
|
|
|
while ($dados = pg_fetch_array($result)) {
|
|
|
|
$id = $dados['id'];
|
|
|
|
}
|
|
|
|
pg_close();
|
|
|
|
} else if ($id > 0) {
|
|
|
|
connect_db();
|
|
|
|
if ((strtolower($campo) != 'cause-txt') && (strtolower($campo) != 'cid-callingpres')) {
|
|
|
|
$query = "update pbx_monitor_evento set " . strtolower($campo) . "='$valor' where id=$id";
|
|
|
|
} else if (strtolower($campo) == 'cid-callingpres') {
|
|
|
|
$query = "update pbx_monitor_evento set \"cid-callingpres\"='$valor' where id=$id";
|
|
|
|
} else {
|
|
|
|
$query = "update pbx_monitor_evento set \"cause-txt\"='$valor' where id=$id";
|
|
|
|
}
|
|
|
|
pg_query($query);
|
|
|
|
pg_close();
|
|
|
|
}
|
|
|
|
if (($campo == 'Uniqueid') or ( ($campo == 'Cause-txt') && ($evento == 'Hangup')) or ( ($campo == 'PeerStatus') && ($evento == 'PeerStatus')) or ( ($campo == 'HoldTime') && ($evento == 'QueueCallerAbandon')) or ( ($campo == 'DestUniqueID') && ($evento == 'Dial')) or ( ($campo == 'Newcallerid') && ($evento == 'CID-CallingPres')) or ( ($campo == 'CallerID2') && ($evento == 'Link')) or ( ($campo == 'CallerID2') && ($evento == 'Unlink'))) {
|
|
|
|
//echo $campo .'->'. $valor."<br>";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//print_r($bufer."<br>");
|
|
|
|
flush();
|
|
|
|
}
|
|
|
|
fclose($socket);
|
|
|
|
?>
|