def getTransaction( self, event, createIfMissing ): #FIXME: transaction key is more complex than call-id. key = event.message['Call-ID'] try: transaction = self.transactions[key] except KeyError: if createIfMissing: # No transaction available, create a new one. transaction = Transaction( key, self, event ) if transaction: transaction.addListener( self ) self.transactions[key] = transaction else: transaction = None return transaction