Reconnect timer toegevoegd voor 10 minuten timeout lmw1
This commit is contained in:
41
lmwsip.py
41
lmwsip.py
@@ -28,7 +28,8 @@ Support for:
|
||||
|
||||
def __init__(self, user=None, password=None,
|
||||
host="sip-lmw.rws.nl", port=443, meetnet="LMW", ssl = True,
|
||||
check_ssl = True, timeout = 10, log = None, cleartelnet = False):
|
||||
check_ssl = True, timeout = 10, log = None, cleartelnet = False,
|
||||
reconnecttime=540):
|
||||
"""LmwSip(user, password, [host], [port], [meetnet], [ssl], [check_ssl], [timeout], [log])
|
||||
|
||||
user(optinal): Lmw user name
|
||||
@@ -37,12 +38,13 @@ host(optional): Default sip-lmw.rws.nl
|
||||
port(optional): Default 443
|
||||
meetnet(optional): Default LMW
|
||||
ssl(optional): Default true
|
||||
check_ssl(optional): true
|
||||
timeout(optional): 10
|
||||
log(optional): None
|
||||
cleartelnet: False
|
||||
check_ssl(optional): Default true
|
||||
timeout(optional): Default 10
|
||||
log(optional): Default None
|
||||
cleartelnet(optional): Default False
|
||||
reconnecttime(optional): Default 540
|
||||
|
||||
Opens the connection and logs in
|
||||
Opens the connection and logs in.
|
||||
"""
|
||||
self.user = user
|
||||
self.password = password
|
||||
@@ -52,8 +54,10 @@ Opens the connection and logs in
|
||||
self.ssl = ssl
|
||||
self.check_ssl = check_ssl
|
||||
self.timeout = timeout
|
||||
self._socket = None
|
||||
self.cleartelnet = cleartelnet
|
||||
self.reconnecttime = reconnecttime
|
||||
self._connecttime = time.time()
|
||||
self._socket = None
|
||||
if (log != None):
|
||||
self.log = log
|
||||
self.log.debug("LmwSip.init")
|
||||
@@ -67,6 +71,8 @@ Opens the connection and logs in
|
||||
self.connect()
|
||||
if (self.user != None):
|
||||
self.login()
|
||||
else:
|
||||
self.reconnecttime = 0
|
||||
|
||||
def lasttime(self, parameter):
|
||||
#
|
||||
@@ -106,6 +112,7 @@ connects to lmw with tcp using the values of the object creation.
|
||||
"""
|
||||
try:
|
||||
self._tcp = socket.create_connection((self.host, self.port))
|
||||
self._connecttime = time.time()
|
||||
except Exception as e:
|
||||
self.log.error("LmwSip.connect(%s, %s) failed: %s",
|
||||
self.host, self.port, e)
|
||||
@@ -134,11 +141,31 @@ connects to lmw with tcp using the values of the object creation.
|
||||
pass
|
||||
self._socket = None
|
||||
|
||||
def reconnectcheck(self):
|
||||
"""Checks if the connection is longer open than the reconnect time.
|
||||
After this time a logout is sent and a new connection is created.
|
||||
|
||||
This prevents the 10 minute server timeout"""
|
||||
if self.reconnecttime > 0:
|
||||
ct = time.time() - self._connecttime
|
||||
if ct > self.reconnecttime:
|
||||
self.log.debug("LmwSip.reconnectcheck: reconnect after %i seconds" % ct)
|
||||
#
|
||||
# Disable check for the reconnect
|
||||
#
|
||||
self.reconnecttime = - self.reconnecttime
|
||||
self.logout()
|
||||
time.sleep(1)
|
||||
self.connect()
|
||||
self.login()
|
||||
self.reconnecttime = - self.reconnecttime
|
||||
|
||||
def send(self, sipcmd):
|
||||
"""send(sipcmd)
|
||||
|
||||
send a sip command to the server
|
||||
"""
|
||||
self.reconnectcheck()
|
||||
if self._socket != None:
|
||||
try:
|
||||
logcmd = sipcmd.strip('\r')
|
||||
|
Reference in New Issue
Block a user