summaryrefslogtreecommitdiffstats
path: root/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'Controller')
-rw-r--r--Controller/ControllerClass.py177
-rw-r--r--Controller/classClient.py74
-rw-r--r--Controller/classClient.pycbin2780 -> 0 bytes
-rw-r--r--Controller/classDb.py212
-rw-r--r--Controller/classDb.pycbin5666 -> 0 bytes
-rw-r--r--Controller/classPing.py28
-rw-r--r--Controller/gsmselftest.py271
7 files changed, 0 insertions, 762 deletions
diff --git a/Controller/ControllerClass.py b/Controller/ControllerClass.py
deleted file mode 100644
index 04c9614..0000000
--- a/Controller/ControllerClass.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import sys
-import os
-import subprocess
-
-import ClientClass
-
-import LogFileClass
-logger = LogFileClass.Logging('classController.log')
-
-from time import sleep
-
-
-class test:
-
- def __init__(self, callFrom, callAdd, callTo, recAdd, destNo):
-
- self.callFrom = callFrom
- self.dest = callTo
- self.destNo = destNo
- self.repeatTest = None
- self.portCaller = None
- self.portDest = None
- self.resultCaller = None
- self.resultDest = None
- self.testResult = None
- self.callAdd = callAdd
- self.recAdd = recAdd
- self.receiver = None
- self.caller = None
- self.connected = None
-
-
- def FuncTest(self):
-
- logger.logEvent('')
-
- self.initCaller()
- sleep(3)
-
- self.callerGreeting()
-
- if self.connected == 'OK':
-
- self.caller.sendData('CALLER|'+self.destNo)
- callerHandler = self.caller.receiveData(60)
-
- if callerHandler == "CALLER READY":
- logger.logEvent('Caller handler : Ready')
-
- self.initReceiver()
- sleep(3)
- self.receiverGreeting()
-
- if self.connected == 'OK':
-
- self.receiver.sendData('RECEIVER')
- destHandler = self.receiver.receiveData(60)
-
- if destHandler == 'RECEIVER READY':
- logger.logEvent('Receiver handler : Ready')
-
- self.startCall()
- self.waitingFeedback()
-
- else:
- self.testResult = 604
- logger.logEvent('604 General Handler Error: Destination handler no respond timeout')
- self.caller.sendData('TERMINATE CONNECTION')
- self.receiver.closeConnection()
-
- else:
- logger.logEvent('998 General Handler Error: Could not connect Destination handler')
- self.testResult = 998
- self.caller.sendData('TERMINATE CONNECTION')
- self.caller.closeConnection()
- else:
- self.testResult = 605
- logger.logEvent('605 General Handler Error: caller handler no respond timeout')
-
- self.caller.closeConnection()
-
- else:
- self.testResult = 999
- logger.logEvent('999 General Handler Error: Could not connect to Caller handler')
-
-
-
- def waitingFeedback(self):
- logger.logEvent('Waiting Feedback')
- self.resultCaller = self.caller.receiveData(60)
- self.resultDest = self.receiver.receiveData(60)
-
- if self.resultCaller <> 'CALL OK' or self.resultDest <> 'CALL OK':
-
- logger.logEvent('Test Failed')
- self.testResult = 486
- self.repeatTest = True
- self.initTerminate()
-
- else:
- logger.logEvent('Test Succeed')
- self.testResult = 200
- self.initTerminate()
-
-
- def startCall(self):
- logger.logEvent('Start Call')
- self.receiver.sendData('RECEIVE START')
- self.caller.sendData('CALL START')
-
-
- def initCaller(self):
- logger.logEvent('init Caller')
-
- if self.callFrom =="gsmr1":
- self.portCaller = 50008
-
- elif self.callFrom =="gsmr2":
- self.portCaller = 50008 #temp
-
- elif self.callFrom =="gsmr3":
- self.portCaller = 50097
-
- else:
- self.portCaller = 50099
- subprocess.Popen(args=["gnome-terminal", '--command=python sipHandler.py '+self.callFrom+ ' ' +str(self.portCaller)])
-
- def initReceiver(self):
- logger.logEvent('init Receiver')
-
- if self.dest =="gsmr1":
- self.portDest = 50008
-
- elif self.dest =="gsmr2":
- self.portDest = 50008 #temp
-
- elif self.dest =="gsmr3":
- self.portDest = 50103
-
- else:
- self.portDest = 50100
- subprocess.Popen(args=['gnome-terminal', '--command=python sipHandler.py '+self.dest+ ' ' +str(self.portDest)])
-
- def initTerminate(self):
- self.caller.sendData('TERMINATE CONNECTION')
- self.receiver.sendData('TERMINATE CONNECTION')
-
- def callerGreeting(self):
- self.connected = None
- self.caller = ClientClass.Connection(self.callAdd,self.portCaller)
- self.caller.connect()
-
- if self.caller.connected == 1:
- logger.logEvent('Connected to Caller Handler')
- self.caller.sendData('HELLO HANDLER')
- if self.caller.receiveData(30) == 'HELLO CONTROLLER':
- logger.logEvent('Caller Handler respond')
- self.connected = 'OK'
- else:
- logger.logEvent('Cannt connect to Caller')
- self.connected = 'NOT OK'
-
- def receiverGreeting(self):
- self.connected = None
- self.receiver = ClientClass.Connection(self.recAdd, self.portDest)
- self.receiver.connect()
-
- if self.receiver.connected == 1:
- logger.logEvent('Connected to Receiver Handler')
- self.receiver.sendData('HELLO HANDLER')
- if self.receiver.receiveData(30) == 'HELLO CONTROLLER':
- logger.logEvent('Receiver Handler respond')
- self.connected = 'OK'
- else:
- logger.logEvent('Cannt connect to Receiver')
- self.connected = 'NOT OK'
-
diff --git a/Controller/classClient.py b/Controller/classClient.py
deleted file mode 100644
index 625e48e..0000000
--- a/Controller/classClient.py
+++ /dev/null
@@ -1,74 +0,0 @@
-import socket
-import sys
-import os
-import string
-
-class Connection:
- def __init__(self, h, p):
- self.host = h
- self.port = p
- self.s = None
- self.connected = 0
-
- def connect(self):
- self.s = None
-
- alive = self.ping()
- if alive == 0:
- return 'The machine is not alive'
- for res in socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM):
- af, socktype, proto, canonname, sa = res
- try:
- self.s = socket.socket(af, socktype, proto)
- self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #this resolves the bug with live packets
- except socket.error, msg:
- self.s = None
- self.connected = 0
- continue
- try:
- self.s.connect(sa)
- except socket.error, msg:
- self.s.close()
- self.connected = 0
- self.s = None
- continue
- break
- if self.s is None:
- self.connected = 0
- return 'Could not open socket'
- else:
- self.connected = 1
- return 'Connected'
-
- def sendData(self, data):
- if self.connected == 1:
- self.s.send(data)
-
- def receiveData(self):
- if self.connected == 1:
- return self.s.recv(1024)
- else:
- return 'Not connected'
-
- def closeConnection(self):
- if self.connected == 1:
- self.s.close()
- self.connected = 0
- return 'Closed'
-
- def ping(self):
- ping_cmd = os.popen('ping '+ self.host + ' -c 1 -W 1').read()
- pingAlive = int(string.find(ping_cmd, '1 received'))
- if pingAlive != -1:
- return 1
- else:
- return 0
-
-#MAIN PART
-x = Connection('localhost',50008)
-print x.connect()
-x.sendData('hello server :)')
-print x.receiveData()
-x.sendData('I send you another message')
-x.closeConnection()
-
diff --git a/Controller/classClient.pyc b/Controller/classClient.pyc
deleted file mode 100644
index f0a0323..0000000
--- a/Controller/classClient.pyc
+++ /dev/null
Binary files differ
diff --git a/Controller/classDb.py b/Controller/classDb.py
deleted file mode 100644
index 615b868..0000000
--- a/Controller/classDb.py
+++ /dev/null
@@ -1,212 +0,0 @@
-import MySQLdb
-import string
-
-class DBMySQLConnection:
- def __init__(self, username, password, host, dbname):
- #initialize at the start all the user parameters
- self.usern = username
- self.passw = password
- self.host = host
- self.db = dbname
- self.connectionCreated = 0
- self.tasksList = list()
- global debugMode
- debugMode = 0
-
- def connectDB(self):
- try:
- #try the connection
- self.datBaseConn=MySQLdb.connect(self.host,self.usern, self.passw,self.db)
- self.datBaseConn.paramstyle = 'format'
- self.cur = self.datBaseConn.cursor() #make the cursor, used for sending queries
- self.connectionCreated = 1 #use it as an indicator that the connection was created
- return 1
-
- except MySQLdb.Error, e:
- #if we have an error then try to catch it
- error=str(e)
- if error[1:5] == '1045':
- #wrong username or password
- return 0
- elif error[1:5] == '2002':
- #can't connect to mysql, mysql shutdown or wrong host
- return 2
- else:
- if debugMode == 1:
- print error
- return 3
-
- def closeDBConn(self):
- #close the connection to the database here
- if self.connectionCreated == 1:
- try:
- #close the cursor and then the connection to the DB
- self.cur.close()
- self.datBaseConn.close()
- return 1
- except MySQLdb.Error, e:
- #in case of an error
- if debugMode == 1:
- error = str(e)
- print error
- return 3
- else:
- #I never really had a connection
- return 0
-
- def anyTasksToDo(self):
- #see are there any jobs to be executed and make a list out of it
- if self.connectionCreated == 1:
- try:
- self.cur.execute("SELECT * FROM TempTaskTable")
- output = self.cur.fetchall() #get the mysql response
- #parse the output from the mysql by creating a list
- #with lists where each attribue(column) gets independent
- #element of the list
- for record in output:
- columns = list()
- for entry in record:
- columns.append(str(entry))
- self.tasksList.append(columns)
- return 1
- except MySQLdb.Error, e:
- error = str(e)
- if error[1:5] == '1146':
- return 2 #the table doesn't exist
- if debugMode == 1:
- print str(e)
- return 3
- else:
- return 0
-
- def cleanTasksList(self):
- if self.connectionCreated == 1:
- del self.tasksList[:]
- return 1
- else:
- return 0
-
- def removeTaskFromList(self, taskID):
- #remove only one task from the task list
- if self.connectionCreated == 1:
- for index in range(len(self.tasksList)):
- item = self.tasksList[index]
- if item[0] == str(taskID):
- #self.tasksList.remove(index)
- #print 'found it'
- del self.tasksList[index]
- return 1 #deleted taskID
-
- return 2 #didn't find that taskID
- else:
- return 0
-
- def deviceAddress(self,deviceName):
- if self.connectionCreated == 1:
- try:
- successful = self.cur.execute("SELECT `deviceIP` FROM DeviceAddress where `deviceName`=%s", deviceName)
- #self.cur.execute()
- output = self.cur.fetchall() #get the mysql response
- #parse the output from the mysql by creating a list
- #with lists where each attribue(column) gets independent
- #element of the list
- deviceAddr = ''
- for record in output:
- columns = list()
- for entry in record:
- deviceAddr = str(entry)
- return deviceAddr
- except MySQLdb.Error, e:
- error = str(e)
- if error[1:5] == '1146':
- return 2 #the table doesn't exist
- if debugMode == 1:
- print str(e)
- return 3 #some error happened
- else:
- return 0 #I am not connected
-
- def updateTaskResult(self, taskID, status):
- if self.connectionCreated == 1:
- try:
- successful = self.cur.execute("UPDATE TaskTable SET status=%i WHERE taskID=%i"%(int(status), int(taskID)))
- output = self.cur.fetchone()
-
- if debugMode == 1:
- print output
- if successful == 0:
- return 1 #update successful
- else:
- return 4 #taskID doesn't exist
-
- except MySQLdb.Error, e:
- if debugMode == 1:
- print str(e)
- return 3
- else:
- return 0
-
- def updatePingResult(self, taskNo, sipServer, sipGate, sipLoc, gsmBox1, gsmBox2):
- if self.connectionCreated == 1:
- try:
- successful = self.cur.execute("UPDATE PingResultTable SET sipServer=%i, sipGate=%i, sipLoc=%i, gsmBox1=%i, gsmBox2=%i WHERE taskNo=%i"%(int(sipServer), int(sipGate), int(sipLoc), int(gsmBox1), int(gsmBox2), int(taskNo)))
- output = self.cur.fetchone()
-
- if debugMode == 1:
- print output
- if successful == 0:
- return 1 #ping table updated
- else:
- return 4 #the taskNo didn't exist
-
-
- except MySQLdb.Error, e:
- if debugMode == 1:
- print str(e)
- return 3
- else:
- return 0
-
- def deleteTempTask(self, taskID):
- if self.connectionCreated == 1:
- try:
- successful = self.cur.execute("DELETE FROM TempTaskTable WHERE taskID=%i"%(int(taskID)))
- output = self.cur.fetchone()
-
- if debugMode == 1:
- print output
-
- if successful == 1:
- return 1 #deleted it
- else:
- return 4 #that taskID didn't exist or something else
- except MySQLdb.Error, e:
- if debugMode == 1:
- print str(e)
- return 3
-
- else:
- return 0
-
- def addResult(self, taskID, result):
- if self.connectionCreated == 1:
- try:
- successful = self.cur.execute("INSERT INTO ResultTable(taskID, result) VALUES ('%i', '%i')"%(int(taskID), int(result)))
- output = self.cur.fetchone()
-
- if debugMode == 1:
- print output
- if successful == 1:
- return 1 #successfully added the result
- else:
- return 4 #hmmm
- except MySQLdb.Error, e:
- error = str(e)
- if error[1:5] == '1062':
- return 2 #duplicate entry for the key
- if debugMode == 1:
- print str(e)
- return 3
- else:
- return 0
-
diff --git a/Controller/classDb.pyc b/Controller/classDb.pyc
deleted file mode 100644
index 522034d..0000000
--- a/Controller/classDb.pyc
+++ /dev/null
Binary files differ
diff --git a/Controller/classPing.py b/Controller/classPing.py
deleted file mode 100644
index e13b32b..0000000
--- a/Controller/classPing.py
+++ /dev/null
@@ -1,28 +0,0 @@
-import subprocess
-import string
-
-class Ping:
-
- def __init__(self, pingAddress):
- self.pingAddress = pingAddress
-
- def ping(self,numberTries):
- tried = 1
- while numberTries >= tried:
- tried += 1
- #the parameter c 1 means only one ping to be sent, parameter W 3 means how many seconds the time out should be, 3 seconds
- ping_cmd = subprocess.Popen(['ping', self.pingAddress, '-c', '1', '-W', '2'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0]
-
- pingAlive = int(string.find(ping_cmd, '1 received'))
- unknownHost = int(string.find(ping_cmd, 'unknown host'))
-
-
- if pingAlive != -1:
- break
-
- if unknownHost != -1:
- return 2 #unknown host
- if pingAlive != -1:
- return 1 #ping works fine
- else:
- return 0 #no ping response
diff --git a/Controller/gsmselftest.py b/Controller/gsmselftest.py
deleted file mode 100644
index 400970f..0000000
--- a/Controller/gsmselftest.py
+++ /dev/null
@@ -1,271 +0,0 @@
-#! /usr/bin/env python
-import sys
-import ControllerClass
-import DbClass
-import PingClass
-import DeviceAddress
-from time import sleep
-
-def ping(handler):
-
- global serverStatus
-
- if handler == 'landline':
- server = PingClass.Ping('sipgate.de')
- serverStatus = server.ping(3)
-
- elif handler == 'sip':
- server = PingClass.Ping('132.230.4.8')
- serverStatus = server.ping(3)
-
- elif handler == 'unisip':
- server = PingClass.Ping('132.230.252.228')
- serverStatus = server.ping(3)
-
- elif handler == 'gsmr1':
- server = PingClass.Ping('localhost')
- serverStatus = server.ping(3)
-
- elif handler == 'gsmr2':
- server = PingClass.Ping('132.230.4.64')
- serverStatus = server.ping(3)
-
-
-def doTest(callFrom,callTo):
- global testResult
-
- ping(callFrom)
- device = DeviceAddress.DeviceAddress()
-
- if serverStatus <> 0:
-
- ping(callTo)
- if serverStatus <> 0:
- device.findDevice(callTo)
- recAdd = device.add
- destNo = str(device.num)
-
- device.findDevice(callFrom)
- callAdd = device.add
-
- print '\n'
- print "Caller: ", callFrom
- print 'Destination: ', callTo
- makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo)
- makeTest.FuncTest()
-
- #db.addResult(taskID, makeTest.testResult)
-
- if makeTest.repeatTest == True:
- testRepeat = True
-
- print "Result :", makeTest.testResult
-
- #db.deleteTempTask(taskID)
- #db.tasksList.remove(item)
- #db.tasksList.insert(i,'')
- sleep(3)
- else:
- print "[failed] 500 "+callTo+ " Server Internal Error"
- else:
- print "[failed] 500 "+callFrom+ " Server Internal Error"
-
-def doSipTest():
-
- print '--SIP Part Test--'
- destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE']
- #destList = ['unisip']
- for callTo in destList:
-
- callFrom = 'sip'
- if callFrom <> callTo:
- doTest(callFrom, callTo)
-
-def doLandlineTest():
-
- print '--Landline Part Test--'
- destList = ['gsmr1', 'gsmr2', 'gsmr3', 'sip']
-
- for callTo in destList:
-
- callFrom = 'landline'
- doTest(callFrom, callTo)
-
-def doGsmrzTest():
-
- print '--GSM Part Test--'
- destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE']
- calllist = ['gsmr1','gsmr2', 'gsmr3']
-
- for callFrom in calllist:
-
- for callTo in destList:
- if callTo <> callFrom:
- doTest(callFrom, callTo)
-
- doGsmExtTest()
-
-def doGsmExtTest():
-
- destList = ['sip', 'gsmr1','gsmr2', 'gsmr3']
-
- for callTo in destList:
-
- callFrom = 'gsmeO'
- doTest(callFrom, callTo)
-
- callFrom = 'gsmeV'
- doTest(callFrom, callTo)
-
- callFrom = 'gsmeT'
- doTest(callFrom, callTo)
-
- callFrom = 'gsmeE'
- doTest(callFrom, callTo)
-
-def doAllTest():
-
- doSipTest()
- doLandlineTest()
- doGsmTest()
-
-if len(sys.argv) > 1:
-
- command = sys.argv[1]
- print '\n'
-
- if command == '--all':
- doAllTest()
-
- elif command == '--sip':
- doSipTest()
-
- elif command == '--gsm':
- doGsmTest()
-
- elif command == '--landline':
- doLandlineTest()
-
- elif command == '--help':
- file = open('help.txt', 'r')
- print file.read()
-
- else:
- print "command not found, Type '--help', '--copyright', '--credits' or '--license' for more information."
- print '\n'
-else:
- print '\n'
- db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting')
- db.connectDB()
- dbStatus = db.connectDB()
-
- if dbStatus == 1:
-
- if db.anyTasksToDo() == 1:
-
- allPing()
- i=0
- for item in db.tasksList:
- taskID = item[0]
- taskNo = item[1]
- callFrom = item[2]
- callTo = item[3]
-
- destination = db.deviceAddress(str(callTo))
-
- caller = db.deviceAddress(str(callFrom))
-
- callAdd = caller[0]
- recAdd = destination[0]
- destNo = destination[1]
-
- #if i == 0:
- # db.updatePingResult(taskNo, sipServer, sipGate, sipLoc, gsmBox1, gsmBox2)
-
- if callFrom == 'unisip':
- destNo = destNo[7:]
-
- print '\n'
- print "Task ID: ", taskID
- print "Calling From: ", callFrom
- print "To: ", callTo
- print "number: ", destNo
-
- ping(callFrom)
-
- if serverStatus <> 0:
-
- ping(callTo)
- if serverStatus <> 0:
-
- makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo)
- makeTest.FuncTest()
-
- db.addResult(taskID, makeTest.testResult)
-
- if makeTest.repeatTest == True:
- db.insertTaskIn2(callTo,callFrom,taskNo)
-
- print "Result :", makeTest.testResult
-
- db.deleteTempTask(taskID)
- db.tasksList.remove(item)
- db.tasksList.insert(i,'')
- i = i+1
-
- sleep(3)
- else:
- print "[failed] 500 "+callTo+ " Server Internal Error"
- else:
- print "[failed] 500 "+callFrom+ " Server Internal Error"
- db.cleanTasksList()
- else:
- print "No job at all"
- else:
- sys.exit(5)
-
-
-
-def allPing():
-
- global sipGate
- global sipServer
- global sipLoc
- global gsmBox1
- global gsmBox2
-
- server = PingClass.Ping('sipgate.de')
- sipGate = server.ping(3)
-
- server = PingClass.Ping('132.230.4.8')
- sipServer = server.ping(3)
-
- server = PingClass.Ping('132.230.252.228')
- sipLoc = server.ping(3)
-
- server = PingClass.Ping('localhost')
- gsmBox1 = server.ping(3)
-
- server = PingClass.Ping('132.230.4.64')
- gsmBox2 = server.ping(3)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-