diff --git a/sippy/UA.py b/sippy/UA.py index 366ac8e39..01eacce30 100644 --- a/sippy/UA.py +++ b/sippy/UA.py @@ -106,6 +106,19 @@ class UA(object): compact_sip = False uas_lossemul = 0 + if 'UasStateTrying' not in globals(): from UasStateTrying import UasStateTrying + if 'UacStateTrying' not in globals(): from UacStateTrying import UacStateTrying + if 'UacStateRinging' not in globals(): from UacStateRinging import UacStateRinging + if 'UasStateRinging' not in globals(): from UasStateRinging import UasStateRinging + if 'UasStateRingingRel' not in globals(): from UasStateRingingRel import UasStateRingingRel + if 'UaStateFailed' not in globals(): from UaStateFailed import UaStateFailed + if 'UaStateConnected' not in globals(): from UaStateConnected import UaStateConnected + if 'UacStateCancelling' not in globals(): from UacStateCancelling import UacStateCancelling + if 'UasStateUpdating' not in globals(): from UasStateUpdating import UasStateUpdating + if 'UacStateUpdating' not in globals(): from UacStateUpdating import UacStateUpdating + if 'UaStateDisconnected' not in globals(): from UaStateDisconnected import UaStateDisconnected + if 'UaStateDead' not in globals(): from UaStateDead import UaStateDead + def __init__(self, global_config, event_cb = None, username = None, password = None, nh_address = None, credit_time = None, \ conn_cbs = None, disc_cbs = None, fail_cbs = None, ring_cbs = None, dead_cbs = None, ltag = None, extra_headers = None, \ expire_time = None, no_progress_time = None, nh_transport = SipConf.my_transport): diff --git a/sippy/UaStateConnected.py b/sippy/UaStateConnected.py index e5b556d50..103d34e44 100644 --- a/sippy/UaStateConnected.py +++ b/sippy/UaStateConnected.py @@ -90,12 +90,12 @@ def recvRequest(self, req): if self.ua.on_remote_sdp_change != None: body = self.ua.on_remote_sdp_change(body, partial(self.ua.delayed_remote_sdp_update, event)) if body is None: - return (UasStateUpdating,) + return (self.ua.UasStateUpdating,) self.ua.rSDP = body.getCopy() else: self.ua.rSDP = None self.ua.equeue.append(event) - return (UasStateUpdating,) + return (self.ua.UasStateUpdating,) if req.getMethod() == 'BYE': req.sendResponse(200, 'OK') #print('BYE received in the Connected state, going to the Disconnected state') @@ -111,7 +111,7 @@ def recvRequest(self, req): self.ua.equeue.append(event) self.ua.cancelCreditTimer() self.ua.disconnect_ts = req.rtime - return (UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) if req.getMethod() == 'INFO': req.sendResponse(200, 'OK') event = CCEventInfo(req.getBody(), rtime = req.rtime, origin = self.ua.origin) @@ -176,7 +176,7 @@ def recvEvent(self, event): self.ua.newTransaction(req) self.ua.cancelCreditTimer() self.ua.disconnect_ts = event.rtime - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) if isinstance(event, CCEventUpdate): body = event.getData() fake_laddr = (('127.0.0.1', None), None) @@ -211,7 +211,7 @@ def recvEvent(self, event): max_forwards = max_forwards_hf) self.ua.lSDP = body self.ua.newUacTransaction(req) - return (UacStateUpdating,) + return (self.ua.UacStateUpdating,) if isinstance(event, CCEventInfo): body = event.getData() req = self.ua.genRequest('INFO', body, extra_headers = eh) @@ -294,10 +294,3 @@ def onStateChange(self, newstate): def rComplete(self, resp): req = self.ua.genRequest('BYE') self.ua.newTransaction(req) - -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected -if 'UasStateUpdating' not in globals(): - from sippy.UasStateUpdating import UasStateUpdating -if 'UacStateUpdating' not in globals(): - from sippy.UacStateUpdating import UacStateUpdating diff --git a/sippy/UaStateDisconnected.py b/sippy/UaStateDisconnected.py index c8b6704e2..2498f9673 100644 --- a/sippy/UaStateDisconnected.py +++ b/sippy/UaStateDisconnected.py @@ -46,7 +46,4 @@ def recvRequest(self, req): def goDead(self): #print('Time in Disconnected state expired, going to the Dead state') - self.ua.changeState((UaStateDead,)) - -if 'UaStateDead' not in globals(): - from sippy.UaStateDead import UaStateDead + self.ua.changeState((self.ua.UaStateDead,)) diff --git a/sippy/UaStateFailed.py b/sippy/UaStateFailed.py index cac2ccd52..80639dec9 100644 --- a/sippy/UaStateFailed.py +++ b/sippy/UaStateFailed.py @@ -38,7 +38,4 @@ def __init__(self, ua): def goDead(self): #print('Time in Failed state expired, going to the Dead state') - self.ua.changeState((UaStateDead,)) - -if 'UaStateDead' not in globals(): - from sippy.UaStateDead import UaStateDead + self.ua.changeState((self.ua.UaStateDead,)) diff --git a/sippy/UacStateCancelling.py b/sippy/UacStateCancelling.py index 0b609e0c8..a3d99a9df 100644 --- a/sippy/UacStateCancelling.py +++ b/sippy/UacStateCancelling.py @@ -44,7 +44,7 @@ def __init__(self, ua): def goIdle(self): #print('Time in Cancelling state expired, going to the Dead state') self.te = None - self.ua.changeState((UaStateDead,)) + self.ua.changeState((self.ua.UaStateDead,)) def recvResponse(self, resp, tr): code, reason = resp.getSCode() @@ -91,14 +91,9 @@ def recvResponse(self, resp, tr): self.ua.rUri.setTag(resp.getHFBody('to').getTag()) req = self.ua.genRequest('BYE') self.ua.newTransaction(req) - return (UaStateDisconnected,) - return (UaStateDead,) + return (self.ua.UaStateDisconnected,) + return (self.ua.UaStateDead,) def recvEvent(self, event): #print('wrong event %s in the Cancelling state' % event) return None - -if 'UaStateDead' not in globals(): - from sippy.UaStateDead import UaStateDead -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected diff --git a/sippy/UacStateIdle.py b/sippy/UacStateIdle.py index 37b8b013f..f922518de 100644 --- a/sippy/UacStateIdle.py +++ b/sippy/UacStateIdle.py @@ -101,16 +101,11 @@ def recvEvent(self, event): self.ua.no_progress_timer = TimeoutAbsMono(self.ua.no_progress_expires, self.ua.no_progress_mtime) elif self.ua.expire_time != None: self.ua.expire_timer = TimeoutAbsMono(self.ua.expires, self.ua.expire_mtime) - return (UacStateTrying,) + return (self.ua.UacStateTrying,) if isinstance(event, CCEventFail) or isinstance(event, CCEventRedirect) or isinstance(event, CCEventDisconnect): if self.ua.setup_ts is None or event.rtime >= self.ua.setup_ts: self.ua.disconnect_ts = event.rtime else: self.ua.disconnect_ts = MonoTime() - return (UaStateDead, self.ua.disc_cbs, event.rtime, event.origin) + return (self.ua.UaStateDead, self.ua.disc_cbs, event.rtime, event.origin) return None - -if 'UacStateTrying' not in globals(): - from sippy.UacStateTrying import UacStateTrying -if 'UaStateDead' not in globals(): - from sippy.UaStateDead import UaStateDead diff --git a/sippy/UacStateRinging.py b/sippy/UacStateRinging.py index d88070edb..8534ef77c 100644 --- a/sippy/UacStateRinging.py +++ b/sippy/UacStateRinging.py @@ -75,19 +75,19 @@ def _recvResponse(self, resp, tr): self.ua.disconnect_ts = resp.rtime else: self.ua.disconnect_ts = MonoTime() - return (UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, scode[0]) self.ua.rUri.setTag(tag) if not self.ua.late_media or body is None: self.ua.late_media = False event = CCEventConnect(scode, rtime = resp.rtime, origin = self.ua.origin) self.ua.startCreditTimer(resp.rtime) self.ua.connect_ts = resp.rtime - rval = (UaStateConnected, self.ua.conn_cbs, resp.rtime, self.ua.origin) + rval = (self.ua.UaStateConnected, self.ua.conn_cbs, resp.rtime, self.ua.origin) else: event = CCEventPreConnect(scode, rtime = resp.rtime, origin = self.ua.origin) tr.uack = True self.ua.pending_tr = tr - rval = (UaStateConnected,) + rval = (self.ua.UaStateConnected,) if body is not None: if self.ua.on_remote_sdp_change != None: body = self.ua.on_remote_sdp_change(body, partial(self.ua.delayed_remote_sdp_update, event)) @@ -116,7 +116,7 @@ def _recvResponse(self, resp, tr): self.ua.disconnect_ts = resp.rtime else: self.ua.disconnect_ts = MonoTime() - return (UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, code) + return (self.ua.UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, code) def recvEvent(self, event): if isinstance(event, CCEventFail) or isinstance(event, CCEventRedirect) or isinstance(event, CCEventDisconnect): @@ -128,13 +128,6 @@ def recvEvent(self, event): self.ua.disconnect_ts = event.rtime else: self.ua.disconnect_ts = MonoTime() - return (UacStateCancelling, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) + return (self.ua.UacStateCancelling, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) #print('wrong event %s in the Ringing state' % event) return None - -if 'UaStateFailed' not in globals(): - from sippy.UaStateFailed import UaStateFailed -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UacStateCancelling' not in globals(): - from sippy.UacStateCancelling import UacStateCancelling diff --git a/sippy/UacStateTrying.py b/sippy/UacStateTrying.py index a680bc548..538b2b55c 100644 --- a/sippy/UacStateTrying.py +++ b/sippy/UacStateTrying.py @@ -69,13 +69,13 @@ def _recvResponse(self, resp, tr): body = self.ua.on_remote_sdp_change(body, partial(self.ua.delayed_remote_sdp_update, event)) if body is None: self.ua.p1xx_ts = resp.rtime - return (UacStateRinging, self.ua.ring_cbs, resp.rtime, self.ua.origin, code) + return (self.ua.UacStateRinging, self.ua.ring_cbs, resp.rtime, self.ua.origin, code) self.ua.rSDP = body.getCopy() else: self.ua.rSDP = None self.ua.equeue.append(event) self.ua.p1xx_ts = resp.rtime - return (UacStateRinging, self.ua.ring_cbs, resp.rtime, self.ua.origin, code) + return (self.ua.UacStateRinging, self.ua.ring_cbs, resp.rtime, self.ua.origin, code) if self.ua.expire_timer != None: self.ua.expire_timer.cancel() self.ua.expire_timer = None @@ -92,19 +92,19 @@ def _recvResponse(self, resp, tr): self.ua.disconnect_ts = resp.rtime else: self.ua.disconnect_ts = MonoTime() - return (UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, scode[0]) self.ua.rUri.setTag(tag) if not self.ua.late_media or body is None: self.ua.late_media = False event = CCEventConnect(scode, rtime = resp.rtime, origin = self.ua.origin) self.ua.startCreditTimer(resp.rtime) self.ua.connect_ts = resp.rtime - rval = (UaStateConnected, self.ua.conn_cbs, resp.rtime, self.ua.origin) + rval = (self.ua.UaStateConnected, self.ua.conn_cbs, resp.rtime, self.ua.origin) else: event = CCEventPreConnect(scode, rtime = resp.rtime, origin = self.ua.origin) tr.uack = True self.ua.pending_tr = tr - rval = (UaStateConnected,) + rval = (self.ua.UaStateConnected,) if body is not None: if self.ua.on_remote_sdp_change != None: body = self.ua.on_remote_sdp_change(body, partial(self.ua.delayed_remote_sdp_update, event)) @@ -138,7 +138,7 @@ def _recvResponse(self, resp, tr): self.ua.disconnect_ts = resp.rtime else: self.ua.disconnect_ts = MonoTime() - return (UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, code) + return (self.ua.UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, code) def recvEvent(self, event): if isinstance(event, CCEventFail) or isinstance(event, CCEventRedirect) or isinstance(event, CCEventDisconnect): @@ -156,7 +156,7 @@ def recvEvent(self, event): self.ua.disconnect_ts = event.rtime else: self.ua.disconnect_ts = MonoTime() - return (UacStateCancelling, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) + return (self.ua.UacStateCancelling, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) #print('wrong event %s in the Trying state' % event) return None @@ -200,13 +200,4 @@ def recvResponse(self, resp, tr): self.genBYE() self.ua.equeue.append(event) self.ua.disconnect_ts = resp.rtime - return (UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, ex.code) - -if 'UacStateRinging' not in globals(): - from sippy.UacStateRinging import UacStateRinging -if 'UaStateFailed' not in globals(): - from sippy.UaStateFailed import UaStateFailed -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UacStateCancelling' not in globals(): - from sippy.UacStateCancelling import UacStateCancelling + return (self.ua.UaStateFailed, self.ua.fail_cbs, resp.rtime, self.ua.origin, ex.code) diff --git a/sippy/UacStateUpdating.py b/sippy/UacStateUpdating.py index e8d6b0d9b..071b9a2a3 100644 --- a/sippy/UacStateUpdating.py +++ b/sippy/UacStateUpdating.py @@ -51,7 +51,7 @@ def recvRequest(self, req): self.ua.equeue.append(event) self.ua.cancelCreditTimer() self.ua.disconnect_ts = req.rtime - return (UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) #print('wrong request %s in the state Updating' % req.getMethod()) return None @@ -80,12 +80,12 @@ def recvResponse(self, resp, tr): 'downstream: "%s"' % str(e)) return self.updateFailed(event) if body is None: - return (UaStateConnected,) + return (self.ua.UaStateConnected,) self.ua.rSDP = body.getCopy() else: self.ua.rSDP = None self.ua.equeue.append(event) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) try: reason_rfc3326 = resp.getHFBody('reason') except: @@ -111,7 +111,7 @@ def recvResponse(self, resp, tr): return self.updateFailed(event) self.ua.equeue.append(event) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) def updateFailed(self, event): self.ua.equeue.append(event) @@ -121,7 +121,7 @@ def updateFailed(self, event): self.ua.disconnect_ts = event.rtime self.ua.equeue.append(CCEventDisconnect(rtime = event.rtime, \ origin = self.ua.origin)) - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) def recvEvent(self, event): if isinstance(event, CCEventDisconnect) or isinstance(event, CCEventFail) or isinstance(event, CCEventRedirect): @@ -130,11 +130,6 @@ def recvEvent(self, event): self.ua.newTransaction(req) self.ua.cancelCreditTimer() self.ua.disconnect_ts = event.rtime - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) #print('wrong event %s in the Updating state' % event) return None - -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected diff --git a/sippy/UasStateIdle.py b/sippy/UasStateIdle.py index 1f23bd7d7..5c0276bee 100644 --- a/sippy/UasStateIdle.py +++ b/sippy/UasStateIdle.py @@ -103,13 +103,10 @@ def recvRequest(self, req): body = self.ua.on_remote_sdp_change(body, partial(self.ua.delayed_remote_sdp_update, event)) if body is None: self.ua.setup_ts = req.rtime - return (UasStateTrying,) + return (self.ua.UasStateTrying,) self.ua.rSDP = body.getCopy() else: self.ua.rSDP = None self.ua.equeue.append(event) self.ua.setup_ts = req.rtime - return (UasStateTrying,) - -if 'UasStateTrying' not in globals(): - from sippy.UasStateTrying import UasStateTrying + return (self.ua.UasStateTrying,) diff --git a/sippy/UasStateRinging.py b/sippy/UasStateRinging.py index 9644fa02c..5ac71c096 100644 --- a/sippy/UasStateRinging.py +++ b/sippy/UasStateRinging.py @@ -69,11 +69,11 @@ def recvEvent(self, event): self.ua.expire_timer = None self.ua.startCreditTimer(event.rtime) self.ua.connect_ts = event.rtime - return (UaStateConnected, self.ua.conn_cbs, event.rtime, event.origin) + return (self.ua.UaStateConnected, self.ua.conn_cbs, event.rtime, event.origin) else: self.ua.sendUasResponse(code, reason, body, (self.ua.lContact,), ack_wait = True, \ extra_headers = eh) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) elif isinstance(event, CCEventRedirect): scode = event.getData() contacts = None @@ -87,7 +87,7 @@ def recvEvent(self, event): self.ua.expire_timer.cancel() self.ua.expire_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) elif isinstance(event, CCEventFail): scode = event.getData() if scode == None: @@ -97,7 +97,7 @@ def recvEvent(self, event): self.ua.expire_timer.cancel() self.ua.expire_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) elif isinstance(event, CCEventDisconnect): #import sys, traceback #traceback.print_stack(file = sys.stdout) @@ -106,7 +106,7 @@ def recvEvent(self, event): self.ua.expire_timer.cancel() self.ua.expire_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) #print('wrong event %s in the Ringing state' % event) return None @@ -129,7 +129,7 @@ def recvRequest(self, req): self.ua.expire_timer.cancel() self.ua.expire_timer = None self.ua.disconnect_ts = req.rtime - return (UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) return None def cancel(self, rtime, req): @@ -140,12 +140,5 @@ def cancel(self, rtime, req): except: pass self.ua.disconnect_ts = rtime - self.ua.changeState((UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) + self.ua.changeState((self.ua.UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) self.ua.emitEvent(event) - -if 'UaStateFailed' not in globals(): - from sippy.UaStateFailed import UaStateFailed -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected diff --git a/sippy/UasStateTrying.py b/sippy/UasStateTrying.py index e1c464a6f..b7e090ce2 100644 --- a/sippy/UasStateTrying.py +++ b/sippy/UasStateTrying.py @@ -57,7 +57,7 @@ def recvEvent(self, event): self.ua.expire_timer = TimeoutAbsMono(self.ua.expires, self.ua.expire_mtime) if self.ua.p1xx_ts == None: self.ua.p1xx_ts = event.rtime - return (UasStateRinging, self.ua.ring_cbs, event.rtime, event.origin, code) + return (self.ua.UasStateRinging, self.ua.ring_cbs, event.rtime, event.origin, code) elif isinstance(event, CCEventConnect) or isinstance(event, CCEventPreConnect): code, reason, body = event.getData() if body is not None and self.ua.on_local_sdp_change != None and body.needs_update: @@ -75,11 +75,11 @@ def recvEvent(self, event): self.ua.expire_timer = None self.ua.startCreditTimer(event.rtime) self.ua.connect_ts = event.rtime - return (UaStateConnected, self.ua.conn_cbs, event.rtime, event.origin) + return (self.ua.UaStateConnected, self.ua.conn_cbs, event.rtime, event.origin) else: self.ua.sendUasResponse(code, reason, body, (self.ua.lContact,), ack_wait = True, \ extra_headers = eh) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) elif isinstance(event, CCEventRedirect): scode = event.getData() contacts = None @@ -96,7 +96,7 @@ def recvEvent(self, event): self.ua.no_progress_timer.cancel() self.ua.no_progress_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) elif isinstance(event, CCEventFail): scode = event.getData() if scode == None: @@ -109,7 +109,7 @@ def recvEvent(self, event): self.ua.no_progress_timer.cancel() self.ua.no_progress_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) + return (self.ua.UaStateFailed, self.ua.fail_cbs, event.rtime, event.origin, scode[0]) elif isinstance(event, CCEventDisconnect): #import sys, traceback #traceback.print_stack(file = sys.stdout) @@ -121,7 +121,7 @@ def recvEvent(self, event): self.ua.no_progress_timer.cancel() self.ua.no_progress_timer = None self.ua.disconnect_ts = event.rtime - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin, self.ua.last_scode) #print('wrong event %s in the Trying state' % event) return None @@ -133,14 +133,5 @@ def cancel(self, rtime, req): except: pass self.ua.disconnect_ts = rtime - self.ua.changeState((UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) + self.ua.changeState((self.ua.UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) self.ua.emitEvent(event) - -if 'UasStateRinging' not in globals(): - from sippy.UasStateRinging import UasStateRinging -if 'UaStateFailed' not in globals(): - from sippy.UaStateFailed import UaStateFailed -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected diff --git a/sippy/UasStateUpdating.py b/sippy/UasStateUpdating.py index f6f056f8e..13a9a0ecb 100644 --- a/sippy/UasStateUpdating.py +++ b/sippy/UasStateUpdating.py @@ -50,7 +50,7 @@ def recvRequest(self, req): self.ua.equeue.append(event) self.ua.cancelCreditTimer() self.ua.disconnect_ts = req.rtime - return (UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) elif req.getMethod() == 'REFER': if req.countHFs('refer-to') == 0: req.sendResponse(400, 'Bad Request') @@ -61,7 +61,7 @@ def recvRequest(self, req): self.ua.equeue.append(CCEventDisconnect(also, rtime = req.rtime, origin = self.ua.origin)) self.ua.cancelCreditTimer() self.ua.disconnect_ts = req.rtime - return (UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, req.rtime, self.ua.origin) #print('wrong request %s in the state Updating' % req.getMethod()) return None @@ -86,7 +86,7 @@ def recvEvent(self, event): self.ua.lSDP = body self.ua.sendUasResponse(code, reason, body, (self.ua.lContact,), \ extra_headers = eh) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) elif isinstance(event, CCEventRedirect): scode = event.getData() contacts = None @@ -102,14 +102,14 @@ def recvEvent(self, event): scode = (500, 'Failed') self.ua.rSDP = None self.ua.sendUasResponse(scode[0], scode[1], extra_headers = eh) - return (UaStateConnected,) + return (self.ua.UaStateConnected,) elif isinstance(event, CCEventDisconnect): self.ua.sendUasResponse(487, 'Request Terminated', extra_headers = eh) req = self.ua.genRequest('BYE', extra_headers = eh) self.ua.newTransaction(req) self.ua.cancelCreditTimer() self.ua.disconnect_ts = event.rtime - return (UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) + return (self.ua.UaStateDisconnected, self.ua.disc_cbs, event.rtime, event.origin) #print('wrong event %s in the Updating state' % event) return None @@ -118,7 +118,7 @@ def cancel(self, rtime, inreq): self.ua.newTransaction(req) self.ua.cancelCreditTimer() self.ua.disconnect_ts = rtime - self.ua.changeState((UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) + self.ua.changeState((self.ua.UaStateDisconnected, self.ua.disc_cbs, rtime, self.ua.origin)) event = CCEventDisconnect(rtime = rtime, origin = self.ua.origin) if inreq is not None: try: @@ -126,8 +126,3 @@ def cancel(self, rtime, inreq): except: pass self.ua.emitEvent(event) - -if 'UaStateConnected' not in globals(): - from sippy.UaStateConnected import UaStateConnected -if 'UaStateDisconnected' not in globals(): - from sippy.UaStateDisconnected import UaStateDisconnected