From afa3936c2eaf9539149d05bb3ed5033c9ec0ba22 Mon Sep 17 00:00:00 2001 From: Tayler Porter Date: Tue, 15 Feb 2022 17:52:48 -0600 Subject: [PATCH] Fixes #18 in 1.5 --- pyVoIP/SIP.py | 5 ++++- pyVoIP/VoIP.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pyVoIP/SIP.py b/pyVoIP/SIP.py index e6531f1..0c05c70 100644 --- a/pyVoIP/SIP.py +++ b/pyVoIP/SIP.py @@ -481,7 +481,7 @@ def parseSIPMessage(self, data): class SIPClient(): def __init__(self, server, port, username, password, myIP=None, myPort=5060, callCallback=None): - self.NSD = True + self.NSD = False self.server = server self.port = port self.hostname = socket.gethostname() @@ -569,6 +569,9 @@ def parseMessage(self, message): debug("TODO: Add 400 Error on non processable request") def start(self): + if self.NSD == True: + raise RunTimeError("Attempted to start already started SIPClient") + self.NSD = True self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #self.out = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.s.bind((self.myIP, self.myPort)) diff --git a/pyVoIP/VoIP.py b/pyVoIP/VoIP.py index 5852c15..ffd1429 100644 --- a/pyVoIP/VoIP.py +++ b/pyVoIP/VoIP.py @@ -350,7 +350,11 @@ def callback(self, request): self.sip.out.sendto(ack.encode('utf8'), (self.server, self.port)) def start(self): - self.sip.start() + try: + self.sip.start() + except Exception: + self.sip.stop() + raise def stop(self): for x in self.calls.copy(): @@ -372,4 +376,4 @@ def call(self, number): request, call_id, sess_id = self.sip.invite(number, medias, pyVoIP.RTP.TransmitType.SENDRECV) self.calls[call_id] = VoIPCall(self, CallState.DIALING, request, sess_id, self.myIP, ms = medias) - return self.calls[call_id] \ No newline at end of file + return self.calls[call_id]