def __init__(self, we_invited, p2p, slp=None): '''context, slp and bin_header are from the INVITE message''' Base.__init__(self, p2p) if slp: self.via = slp.via self.call_id = slp.call_id self.session_id = int(slp.body['SessionID']) self.p2p = p2p self.we_invited = we_invited self.connect_handler(p2p) self.app_id = '4' self.context = 'ewBCADgAQgBFADcAMABEAEUALQBFADIAQwBBAC0ANAA0ADA' + \ 'AMAAtAEEARQAwADMALQA4ADgARgBGADgANQBCADkARgA0AEUAOAB9AA==' p2p.start_new_conv() self.received_producer_xml = False self.webcam_thread = None msn = self.p2p.manager.msn self.external_ip = msn.demographics['ClientIP'] if we_invited: self.debug('Sending invite to receive webcam') message = msn_slp.invite(self, self.context, msn_slp.SLPMessage.EUFGUID_WEBCAM_ASK) self.emit('msnp2p-message-ready', message, 0) else: self.debug('Received webcam invite') p2p.emit('webcam-invite', int(self.session_id), self.from_)
def __init__(self, p2p, filename): Base.__init__(self, p2p) self.app_id = '2' self.context = FTContext() self.context.filename = filename self.context.file_size = os.stat(filename).st_size self.data = open(filename, "rb") self.connect_handler(p2p) self.current_transfer = 0 message = msn_slp.invite(self, base64.b64encode(str(self.context)), msn_slp.SLPMessage.EUFGUID_FILE) self.emit('msnp2p-message-ready', message, 0)
def __init__(self, p2p, msnobj): '''p2p is a P2PUser, msnobj is a Msnobj''' if p2p.last_requested_msnobj == msnobj: return Base.__init__(self, p2p) p2p.last_requested_msnobj = msnobj self.msnobj = msnobj if self.msnobj.type == Msnobj.Msnobj.DISPLAY_PICTURE: self.app_id = '1' elif self.msnobj.type == Msnobj.Msnobj.CUSTOM_EMOTICON: self.app_id = '12' self.connect_handler(p2p) context = base64.b64encode(str(msnobj) + '\0') self.emit('msnp2p-message-ready', msn_slp.invite(self, context), 0)