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'