'Initiates by storing the protocol on itself and trying to
determine if the client supports MSDP.
Args:
protocol (Protocol): The active protocol.'

def __init__(self, protocol):

    self.protocol = protocol
    self.protocol.protocol_flags['OOB'] = False
    self.MSDP = False
    self.GMCP = False
    self.protocol.negotiationMap[MSDP] = self.decode_msdp
    self.protocol.negotiationMap[GMCP] = self.decode_gmcp
    self.protocol.will(MSDP).addCallbacks(self.do_msdp, self.no_msdp)
    self.protocol.will(GMCP).addCallbacks(self.do_gmcp, self.no_gmcp)
    self.oob_reported = {}
