summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraa1112011-07-15 18:06:40 +0200
committeraa1112011-07-15 18:06:40 +0200
commit883f5e5f9d6ec643d14894d782d50f35f7f24882 (patch)
tree394c56911db7daa93119d9049859a42072781c3e
parentAdded a function that searches for a task inside the task list! (diff)
downloadgsm-selftest-883f5e5f9d6ec643d14894d782d50f35f7f24882.tar.gz
gsm-selftest-883f5e5f9d6ec643d14894d782d50f35f7f24882.tar.xz
gsm-selftest-883f5e5f9d6ec643d14894d782d50f35f7f24882.zip
moving files.
-rw-r--r--Handler/landlineCall.py201
-rw-r--r--Handler/landlineReceiver.py111
-rw-r--r--notFinishedCode/landlineCall.py149
3 files changed, 312 insertions, 149 deletions
diff --git a/Handler/landlineCall.py b/Handler/landlineCall.py
new file mode 100644
index 0000000..332f226
--- /dev/null
+++ b/Handler/landlineCall.py
@@ -0,0 +1,201 @@
+import sys
+import pjsua as pj
+from time import sleep
+import string
+
+server = "sipgate.de"
+username = "1289459"
+password = "MMW9AX"
+number = ""
+
+LOG_LEVEL = 2
+current_call = None
+is486 = False
+isConfirmed = False
+isRinging = False
+isConnected = False
+isStopped = False
+firstTime502 = True
+firstTime100 = True
+TIMEOUT_LIMIT = 30
+userInput = ""
+
+# Logging callback
+def log_cb(level, str, len):
+ print str,
+
+# Callback to receive events from account
+class MyAccountCallback(pj.AccountCallback):
+
+ def __init__(self, account=None):
+ pj.AccountCallback.__init__(self, account)
+
+# Callback to receive events from Call
+class MyCallCallback(pj.CallCallback):
+
+ def __init__(self, call=None):
+ pj.CallCallback.__init__(self, call)
+
+ # Notification when call state has changed
+ def on_state(self):
+ global current_call
+ global isConfirmed
+ global isConnected
+ global isRinging
+ global is486
+
+ if self.call.info().state == pj.CallState.CALLING:
+ print "CALLING..."
+
+ if self.call.info().last_code == 486:
+ is486 = True
+
+ if self.call.info().state == pj.CallState.EARLY:
+ isRinging = True
+
+ if self.call.info().state == pj.CallState.CONFIRMED:
+ isConfirmed = True
+ isConnected = True
+ isRinging = False
+
+ if self.call.info().state == pj.CallState.DISCONNECTED:
+ current_call = None
+ isConnected = False
+
+
+def make_call(uri):
+ try:
+ print "Making call to", uri
+ cb=MyCallCallback()
+ return acc.make_call(uri, cb)
+ except pj.Error, e:
+ print "Exception: " + str(e)
+ return None
+
+print "Whenever something comes from the server (at the moment from you), it will continue. Imitating the server behaviour!"
+
+while not isStopped:
+
+ lib = pj.Lib()
+ lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
+ transport = lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(0))
+ lib.start()
+ lib.set_null_snd_dev()
+
+# server = classServer.ServerHandler(50099)
+# tried = server.openSocket()
+#
+# if server.error != 'No error':
+# print server.error
+# if server.error == '[Errno 98] Address already in use':
+# print "Trying to kill the port"
+# print server.killPort()
+# server.closeConection()
+
+ acc_cfg = pj.AccountConfig(server,username,password)
+ acc = lib.create_account(acc_cfg, cb=MyAccountCallback())
+
+ while acc.info().reg_status == 100:
+ if firstTime100:
+ print "Trying to register."
+ firstTime100 = False
+
+
+ if acc.info().reg_status == 502:
+ if firstTime502:
+ print "CONNECTION ERROR!!"
+ print "Please check your internet connection!\n"
+ firstTime502 = False
+
+ acc.delete()
+ lib.destroy()
+ lib = None
+ acc = None
+# server.sendData('NOT ready')
+ sleep(2)
+ continue
+
+ while acc.info().reg_status == 408:
+ print "408: REGISTRATION FAILED DUE TO TIMEOUT!!"
+ print "Check your internet connection and SIP settings!"
+# server.sendData('NOT ready')
+
+ if acc.info().reg_status == 200:
+ print ("REGISTRATION IS SUCCESSFUL") #server.sendData('ready')
+
+ while 1:
+# try:
+ print "Waiting for server(at the moment YOU!) to send command here:" #This line should be deleted further!
+ startStop = sys.stdin.readline().rstrip("\r\n") #startStop = server.receiveData()
+
+ if startStop == "start":
+ timeCounterRinging = 0
+ firstTimeRinging = True
+
+ while 1:
+ #number = server.receiveData()
+ print "Please enter the number to call:"
+ number = sys.stdin.readline().rstrip("\r\n")
+ if number <> "":
+ numberToCall = "sip:"+number+"@"+server
+ current_call = make_call(numberToCall)
+
+ while 1:
+ if isRinging:
+ sleep(1)
+ timeCounterRinging = timeCounterRinging + 1
+ if firstTimeRinging:
+ print "RINGING..."
+ firstTimeRinging = False
+ if is486:
+ print "THE NUMBER THAT YOU'VE DIALLED IS BUSY!!"
+ isConfirmed = False
+ isConnected = False
+ isRinging = False
+ is486 = False
+ break
+
+ if isConnected and isConfirmed:
+ print "CALL SUCCESSFULLY ESTABLISHED!!"
+ sleep(5)
+ current_call.hangup()
+ print "CALL SUCCESSFULLY TERMINATED!!"
+ isConfirmed = False
+ isConnected = False
+ isRinging = False
+ is486 = False
+ break
+
+ if timeCounterRinging == TIMEOUT_LIMIT and isRinging:
+ current_call.hangup()
+ print "THE NUMBER THAT YOU'VE DIALLED IS NOT ANSWERING!!"
+ isConfirmed = False
+ isConnected = False
+ isRinging = False
+ is486 = False
+ break
+ break
+
+ if startStop == "stop":
+ isStopped = True
+ break
+
+# except ValueError:
+# print "813 General socket layer error: Failed send message"
+# server.closeConnection()
+# del server
+
+# server.closeConnection()
+# del server
+
+# server.closeConnection()
+# del server
+
+sleep(2)
+print "LOGGING OUT..."
+acc.delete()
+lib.destroy()
+lib = None
+acc = None
+print "LOGOUT WAS SUCCESSFULL!!"
+
diff --git a/Handler/landlineReceiver.py b/Handler/landlineReceiver.py
new file mode 100644
index 0000000..22ae872
--- /dev/null
+++ b/Handler/landlineReceiver.py
@@ -0,0 +1,111 @@
+import sys
+import pjsua as pj
+from time import sleep
+import string
+
+server = "sipgate.de"
+username = "1289459"
+password = "MMW9AX"
+current_call = None
+incomingCallNumber = ""
+
+LOG_LEVEL=2
+userInput = ""
+
+# Logging callback
+def log_cb(level, str, len):
+ print str,
+
+
+# Callback to receive events from account
+class MyAccountCallback(pj.AccountCallback):
+
+ def __init__(self, account=None):
+ pj.AccountCallback.__init__(self, account)
+
+# Notification on incoming call
+ def on_incoming_call(self, call):
+ global current_call
+
+ if current_call:
+ call.answer(486, "Busy")
+ return
+
+ incomingCallNumber = call.info().remote_uri
+ print "This number "+incomingCallNumber+" is calling."
+
+ current_call = call
+ call_cb = MyCallCallback(current_call)
+ current_call.set_callback(call_cb)
+ current_call.answer(180)
+
+
+# Callback to receive events from Call
+class MyCallCallback(pj.CallCallback):
+
+ def __init__(self, call=None):
+ pj.CallCallback.__init__(self, call)
+
+ # Notification when call state has changed
+ def on_state(self):
+ global current_call
+
+ if self.call.info().state == pj.CallState.CONNECTING:
+ print "CONNECTING"
+
+ if self.call.info().state == pj.CallState.EARLY:
+ print "RINGING"
+
+ if self.call.info().state == pj.CallState.CONFIRMED:
+ print "CALL CONFIRMED"
+
+ if self.call.info().state == pj.CallState.DISCONNECTED:
+ current_call = None
+ print "CURRENT CALL DISCONNECTED"
+
+
+lib = pj.Lib()
+lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
+transport = lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(0))
+lib.start()
+lib.set_null_snd_dev()
+
+try:
+ acc_cfg = pj.AccountConfig(server,username,password)
+ acc = lib.create_account(acc_cfg, cb=MyAccountCallback())
+
+except ValueError:
+ print "Exception: " + str(e)
+
+print "You want to receive a call then."
+print "Receive another call?"
+userInput = sys.stdin.readline().rstrip("\r\n")
+
+while userInput == "yes":
+
+ if acc.info().reg_status < 700:
+ if not current_call:
+ continue
+ else:
+ sleep(5)
+ current_call.answer(200)
+ sleep(5)
+ current_call.hangup()
+ sleep(3)
+ print "Receive another call? "
+ userInput = sys.stdin.readline().rstrip("\r\n")
+
+ else:
+ print "REGISTRATION ERROR"
+ lib.destroy()
+ lib = None
+ acc = None
+
+sleep(2)
+print "LOGGING OUT..."
+acc.delete()
+lib.destroy()
+lib = None
+acc = None
+print "LOGOUT WAS SUCCESSFULL!!"
+
diff --git a/notFinishedCode/landlineCall.py b/notFinishedCode/landlineCall.py
deleted file mode 100644
index 58ad851..0000000
--- a/notFinishedCode/landlineCall.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import sys
-import pjsua as pj
-from time import sleep
-import string
-
-server = "sipgate.de"
-username = "1289459"
-password = "MMW9AX"
-number = "00497612034661455"
-
-LOG_LEVEL = 2
-current_call = None
-is486 = False
-isConfirmed = False
-isRinging = False
-isConnected = False
-TIMEOUT_LIMIT = 30
-userInput = ""
-
-# Logging callback
-def log_cb(level, str, len):
- print str,
-
-# Callback to receive events from account
-class MyAccountCallback(pj.AccountCallback):
-
- def __init__(self, account=None):
- pj.AccountCallback.__init__(self, account)
-
-# Callback to receive events from Call
-class MyCallCallback(pj.CallCallback):
-
- def __init__(self, call=None):
- pj.CallCallback.__init__(self, call)
-
- # Notification when call state has changed
- def on_state(self):
- global current_call
- global isConfirmed
- global isConnected
- global isRinging
- global is486
-
- if self.call.info().state == pj.CallState.CALLING:
- print "CALLING..."
-
- if self.call.info().last_code == 486:
- is486 = True
-
- if self.call.info().state == pj.CallState.EARLY:
- isRinging = True
-
- if self.call.info().state == pj.CallState.CONFIRMED:
- isConfirmed = True
- isConnected = True
- isRinging = False
-
- if self.call.info().state == pj.CallState.DISCONNECTED:
- current_call = None
- isConnected = False
-
-
-def make_call(uri):
- try:
- print "Making call to", uri
- cb=MyCallCallback()
- return acc.make_call(uri, cb)
- except pj.Error, e:
- print "Exception: " + str(e)
- return None
-
-
-lib = pj.Lib()
-lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
-transport = lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(0))
-lib.start()
-lib.set_null_snd_dev()
-
-try:
- acc_cfg = pj.AccountConfig(server,username,password)
- acc = lib.create_account(acc_cfg, cb=MyAccountCallback())
-
-except ValueError:
- print "Exception: " + str(e)
-
-print "You want to call then."
-
-
-while userInput <> "quit":
-
- timeCounterRinging = 0
- firstTimeRinging = True
-
- if acc.info().reg_status < 700:
- numberToCall = "sip:"+number+"@"+server
- current_call = make_call(numberToCall)
-
- while 1:
-
- if isRinging:
- sleep(1)
- timeCounterRinging = timeCounterRinging + 1
- if firstTimeRinging:
- print "RINGING..."
- firstTimeRinging = False
- if is486:
- print "THE NUMBER THAT YOU'VE DIALLED IS BUSY!!"
- isConfirmed = False
- isConnected = False
- isRinging = False
- is486 = False
- break
-
- if isConnected and isConfirmed:
- print "CALL SUCCESSFULLY ESTABLISHED!!"
- sleep(5)
- current_call.hangup()
- print "CALL SUCCESSFULLY TERMINATED!!"
- isConfirmed = False
- isConnected = False
- isRinging = False
- is486 = False
- break
-
- if timeCounterRinging == TIMEOUT_LIMIT and isRinging:
- current_call.hangup()
- print "THE NUMBER THAT YOU'VE DIALLED IS NOT ANSWERING!!"
- isConfirmed = False
- isConnected = False
- isRinging = False
- is486 = False
- break
-
- else:
- print "REGISTRATION ERROR!!!"
- lib.destroy()
- lib = None
- acc = None
-
- userInput = sys.stdin.readline().rstrip("\r\n")
-
-sleep(2)
-print "LOGGING OUT..."
-acc.delete()
-lib.destroy()
-lib = None
-acc = None
-print "LOGOUT WAS SUCCESSFULL!!"
-