def connectClient(reactor, config, onClient): addr, port = config['serverAddress'] bindAddress = config.get('bindAddress', None) sccpPhone = SCCPDumbPhone(addr, config['device']) sccpPhone.createClient() queue = Queue() def queueMessage(message): queue.put(message) sccpPhone.client.handleUnknownMessage(queueMessage) def createTimer(intervalSecs,timerCallback): reactor.callLater(intervalSecs, timerCallback) sccpPhone.createTimer = createTimer def onRegistered(): client = Client(queue, sccpPhone, [], reactor, None) onClient(client) sccpPhone.onRegistered = onRegistered connection = reactor.connectTCP(addr, port, sccpPhone.client, bindAddress=bindAddress) return connection
def runTestCase(reactor, config, func, superviseFunc): addr, port = config['serverAddress'] queue = Queue() sccpPhone = SCCPDumbPhone(addr, config['device']) sccpPhone.createClient() def queueMessage(message): queue.put(message) # for captureMessage in config['capture']: # sccpPhone.client.addHandler(captureMessage, queueMessage) sccpPhone.client.handleUnknownMessage(queueMessage) def createTimer(intervalSecs,timerCallback): reactor.callLater(intervalSecs, timerCallback) sccpPhone.createTimer = createTimer connection = reactor.connectTCP(addr, port, sccpPhone.client) def onRegistered(): client = Client(queue, sccpPhone, [], reactor, None) softKeySetMessage = SCCPMessage(SCCPMessageType.SoftKeySetReqMessage) softKeyTemplateMessage = SCCPMessage(SCCPMessageType.SoftKeyTemplateReqMessage) sendMessage(client, softKeyTemplateMessage) sendMessage(client, softKeySetMessage) def superviseWrapper(): try: func(client) finally: reactor.callFromThread(superviseFunc, connection) Thread(target=superviseWrapper).start() sccpPhone.onRegistered = onRegistered