def timerB(self, t): #print 'timerB', t t.teB = None if t.teA != None: t.teA.cancel() t.teA = None t.state = TERMINATED #print '2: Timeout(self.timerC, 32.0, 1, t)', t t.teC = Timeout(self.timerC, 32.0, 1, t) if t.resp_cb == None: return fake_resp = SipRequest(t.data).genResponse(408, 'Request Timeout') fake_resp.rtime = time() t.resp_cb(fake_resp)
try: req = SipRequest(data) tids = req.getTIds() except Exception, exception: print datetime.now( ), 'can\'t parse SIP request from %s:%d: %s:' % ( address[0], address[1], str(exception)) print '-' * 70 print_exc(file=sys.stdout) print '-' * 70 print data print '-' * 70 sys.stdout.flush() self.l1rcache[checksum] = (None, None, None) return req.rtime = rtime via0 = req.getHFBody('via') ahost, aport = via0.getAddr() rhost, rport = address if self.nat_traversal and rport != aport and check1918(ahost): req.nated = True if ahost != rhost: via0.params['received'] = rhost if via0.params.has_key('rport') or req.nated: via0.params['rport'] = str(rport) if self.nat_traversal and req.countHFs( 'contact') > 0 and req.countHFs('via') == 1: try: cbody = req.getHFBody('contact') except Exception, exception: print datetime.now(
if self.req_cb == None: return try: req = SipRequest(data) tids = req.getTIds() except Exception, exception: print datetime.now(), 'can\'t parse SIP request from %s:%d: %s:' % (address[0], address[1], str(exception)) print '-' * 70 print_exc(file = sys.stdout) print '-' * 70 print data print '-' * 70 sys.stdout.flush() self.l1rcache[checksum] = (None, None) return req.rtime = rtime via0 = req.getHFBody('via') ahost, aport = via0.getAddr() rhost, rport = address if self.nat_traversal and rport != aport and check1918(ahost): req.nated = True if ahost != rhost: via0.params['received'] = rhost if via0.params.has_key('rport') or req.nated: via0.params['rport'] = str(rport) if self.nat_traversal and req.countHFs('contact') > 0 and req.countHFs('via') == 1: curl = req.getHFBody('contact').getUrl() if check1918(curl.host): curl.host, curl.port = address req.nated = True req.setSource(address)