示例#1
0
文件: sql.php 项目: netfuse/php-iax2
		server char(12),
		source char(12),
		ended char(12),
		server char(12),
		time datetime,
		clear_code char(32)
	);
*/
if (!file_exists('capture.hex')) {
    die;
}
$t = new TCPDUMP_UDP_Decode('capture.hex');
$i = new IAX_Decode();
$blocks = $t->getBlocks();
foreach ($blocks as $block) {
    $i->load($block['data']);
    switch ($i->messagetype) {
        case 'new':
            CallRegister::register($i, $block['header']['dst']['ip'], $block['header']['src']['ip']);
            break;
        case 'hangup':
            $call = CallRegister::retrieve($i->fields['scalli'], $block['header']['dst']['ip']);
            if ($call['user']) {
                print "INSERT INTO call_log SET \n" . " number='{$call['dst']}', \n" . " user='******'user']}', \n" . " server='{$call['server']}', \n" . " source='{$call['source']}', \n" . " ended='{$call['ended']}', \n" . " time='" . date('Y-m-d H:i:s', strtotime($block['header']['time'])) . "', \n" . " clear_code='{$i->data['hangup_cause']}';\n\n";
            }
            CallRegister::unregister($i, $block['header']['dst']['ip'], $block['header']['src']['ip']);
            break;
        case 'accept':
            break;
    }
}