Exemplo n.º 1
0
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
Exemplo n.º 2
0
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