s.connect(config.AXXESS_IP, config.AXXESS_PORT) # Introduce ourselves s.send("02000000".decode("hex")) s.send("8400".decode("hex")) # Receive data forever while (1): line = s.receive(RECORD_LENGTH) cleaned_line = clean_line(line) if (raw_file is not None): f = open(raw_file, "a") if (f is not None): f.write(cleaned_line) f.close() cdr = line_to_cdr(cleaned_line, None) if (cdr is not False): status = insert_cdr_record(cdr, cursor) if (status is 1): conn.commit() s.close() conn.close()
def test_line_to_cdr(self): header_1 = "Station Message Detailed Recording 00:00:04 07-03-2012" header_2 = "TYP EXT# TRUNK DIALED DIGITS START ELAPSED COST ACCOUNT CODE" self.assertFalse(line_to_cdr(header_1, None)) self.assertFalse(line_to_cdr(header_2, None)) ring_1 = " ***** 94129 RG 612-804-4082 8907 00:29 S=5 *" ring_2 = " 181 94129 RING......0063 06:46 S=9 " ring_3 = " 110 94129 RG 525530894016 0061 08:34 S=4 " self.assertTrue(line_to_cdr(ring_1, None)) self.assertTrue(line_to_cdr(ring_2, None)) self.assertTrue(line_to_cdr(ring_3, None)) outgoing_1 = "TLC 104 94151 952-474-1742 08:52 S=226 $00.00 " outgoing_2 = "O/I 104 94151 011-49618296260 09:00 S=193 $00.00 *" outgoing_3 = "TLD 116 94151 1-631-220-3707 09:33 S=65 $00.00 " outgoing_4 = "LOC 104 94151 1-877-244-1771 11:03 S=649 $00.00 " self.assertTrue(line_to_cdr(outgoing_1, None)) self.assertTrue(line_to_cdr(outgoing_2, None)) self.assertTrue(line_to_cdr(outgoing_3, None)) self.assertTrue(line_to_cdr(outgoing_4, None)) incoming_1 = "IN 110 94129 525530894016 0061 08:48 S=1 $00.00 *" incoming_2 = "IN 181 94129 0063 09:19 S=80 $00.00 " self.assertTrue(line_to_cdr(incoming_1, None)) self.assertTrue(line_to_cdr(incoming_2, None))
fileName = basename(fileWithPath) m = re.match(r'phone_log_(\d+?)-(\d+?)-(\d+?)\.log', fileName) if (m is None): logging.critical("Log file name is malformed.") logging.critical("Name must conform to phone_log_yyyy-mm-dd.log") sys.exit(1) # Assemble datetime from filename logYear = int(m.group(1)) logMonth = int(m.group(2)) logDay = int(m.group(3)) log_date = datetime.date(logYear, logMonth, logDay) conn = sqlite3.connect(config.DATABASE_NAME) cursor = conn.cursor() f = open(fileWithPath) for line in f: line = clean_line(line) cdr = line_to_cdr(line, log_date) insert_cdr_record(cdr, cursor) f.close() conn.commit() conn.close()