import sys import os import subprocess import ClientClass import LogFileClass logger = LogFileClass.Logging('TestProcessLog.log') from time import sleep class test: def __init__(self, callFrom, callAdd, accCaller, callTo, recAdd, destNo, accDest): self.callFrom = callFrom self.dest = callTo self.destNo = destNo self.accDest = accDest self.accCaller = accCaller self.repeatTest = None self.portAdd = 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(30) 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(30) 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(30) self.resultDest = self.receiver.receiveData(30) 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') logger.logEvent(self.callFrom) if self.callFrom =="gsmr1": self.portCaller = 50007 self.portAdd = '' self.initGSM(self.portCaller, self.portAdd) elif self.callFrom =="gsmr2": self.portCaller = 50008 elif self.callFrom =="gsmr3": self.portCaller = 50009 elif self.callFrom =="gsmeO": self.portCaller = 50010 self.portAdd = '/dev/ttyUSB0' self.initGSM(self.portCaller, self.portAdd) elif self.callFrom =="gsmeV": self.portCaller = 50011 self.portAdd = '/dev/ttyUSB1' self.initGSM(self.portCaller, self.portAdd) elif self.callFrom =="gsmeT": self.portCaller = 50012 self.portAdd = '' self.initGSM(self.portCaller, self.portAdd) elif self.callFrom =="gsmeE": self.portCaller = 50013 self.portAdd = '/dev/ttyUSB2' self.initGSM(self.portCaller, self.portAdd) else: self.portCaller = 50099 subprocess.Popen(args=["gnome-terminal", '--command=python SIPHandler.py '+self.accCaller+ ' ' +str(self.portCaller)]) def initReceiver(self): logger.logEvent('init Receiver') logger.logEvent(self.dest) if self.dest =="gsmr1": self.portDest = 50007 self.portAdd = '' self.initGSM(self.portDest, self.portAdd) elif self.dest =="gsmr2": self.portDest = 50008 elif self.dest =="gsmr3": self.portDest = 50009 elif self.dest =="gsmeO": self.portDest = 50010 self.portAdd = '/dev/ttyUSB0' self.initGSM(self.portDest, self.portAdd) elif self.dest =="gsmeV": self.portDest = 50011 self.portAdd = '/dev/ttyUSB1' self.initGSM(self.portDest, self.portAdd) elif self.dest =="gsmeT": self.portDest = 50012 self.portAdd = '' self.initGSM(self.portDest, self.portAdd) elif self.dest =="gsmeE": self.portDest = 50013 self.portAdd = '/dev/ttyUSB2' self.initGSM(self.portDest, self.portAdd) else: self.portDest = 50100 subprocess.Popen(args=['gnome-terminal', '--command=python SIPHandler.py '+self.accDest+ ' ' +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' def initGSM(self, portCommunication, portDevice): subprocess.Popen(args=["gnome-terminal", '--command=python GSMHandler.py '+str(portCommunication)+ ' ' +str(portDevice)])