Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Resources:
- // https://community.asterisk.org/t/how-do-i-import-var-log-asterisk-queue-log-1-into-mysql/6751/2
- // https://www.plus2net.com/sql_tutorial/mysql_connect.php
- // http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/ACD_id289009.html
- // https://stackoverflow.com/questions/30161384/asterisk-11-queue-log-to-mysql/30203264
- // describe asterisk.queues_log_old;
- // +-----------+----------------------+------+-----+-------------------+----------------+
- // | Field | Type | Null | Key | Default | Extra |
- // +-----------+----------------------+------+-----+-------------------+----------------+
- // | id | bigint(255) unsigned | NO | PRI | NULL | auto_increment |
- // | time | varchar(255) | NO | | | |
- // | callid | varchar(255) | NO | | | |
- // | queuename | varchar(255) | NO | MUL | | |
- // | agent | varchar(255) | NO | | | |
- // | event | varchar(255) | NO | MUL | | |
- // | data | varchar(255) | NO | | | |
- // | data1 | varchar(255) | NO | | | |
- // | data2 | varchar(255) | NO | | | |
- // | data3 | varchar(255) | NO | | | |
- // | data4 | varchar(255) | NO | | | |
- // | data5 | varchar(255) | NO | | | |
- // | created | timestamp | NO | | CURRENT_TIMESTAMP | |
- // +-----------+----------------------+------+-----+-------------------+----------------+
- // 13 rows in set (0.00 sec)
- include 'mysql_connect.php';
- $logfile = '/var/log/asterisk/queue_log';
- $delimiter = '|';
- $data=file($logfile);
- $numlines = count($data);
- $num_rows = explode($delimiter, $data[0]);
- print "\n\n";
- print "=======================================================================\n";
- print "START OF FILE - $numlines RECORDS ON $logfile\n\n";
- if (count($num_rows) >= 5) {
- for($i=1; $i<$numlines; $i++) {
- //print "$data[$i]\n";
- $row = explode($delimiter, preg_replace("[\'\"]", "", $data[$i]));
- $epoch = trim($row[0]);
- $uniqueid = trim($row[1]);
- $queuename = trim($row[2]);
- $agent = trim($row[3]);
- $event = trim($row[4]);
- $arg1 = trim($row[5]);
- if( ISSET($row[6]) ) { $arg2 = trim($row[6]); } else {$arg2 = '';}
- if( ISSET($row[7]) ) { $arg3 = trim($row[7]); } else {$arg3 = '';}
- if( ISSET($row[8]) ) { $arg4 = trim($row[8]); } else {$arg4 = '';}
- if( ISSET($row[9]) ) { $arg5 = trim($row[9]); } else {$arg5 = '';}
- $time=date("Y-m-d H:i:s",$epoch);
- $check_log = "SELECT callid FROM asterisk.queues_log_old WHERE time='$time' AND callid='$uniqueid' AND event='$event' AND agent='$agent'";
- //print "$check_log\n";
- $result = mysqli_query($link, $check_log);
- $num_rows = mysqli_num_rows($result);
- //print "$num_rows\n";
- if($num_rows == 0) {
- $sql = "INSERT INTO queues_log_old (`time`,`callid`,`queuename`,`agent`,`event`,`data1`,`data2`,`data3`,`data4`,`data5`)
- VALUES ('$time','$uniqueid','$queuename','$agent','$event','$arg1','$arg2','$arg3','$arg4','$arg5')";
- //print "$sql\n";
- $result = mysqli_query($link, $sql);
- }
- if ( ($i % 100) == 0) { print str_pad($i,6," ",STR_PAD_LEFT); }
- if ( ($i % 3000) == 0) { print "\n"; }
- }
- }
- mysqli_close($link);
- print "\n\n";
- print "=======================================================================\n";
- print "END OF FILE - $i RECORDS PROCESSED FOR $logfile\n";
- print "=======================================================================\n\n";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement