def on_webcam_accepted(self, p2p, session, sender): '''callback for P2PUser file-transfer-accepted, sends a 200ok message starting the transfer''' if int(session) == int(self.session_id) and \ sender == self.from_: self.debug('Accepting webcam invitation') self.emit('msnp2p-message-ready', msn_slp.ok(self), 0) self.emit('msnp2p-message-ready', msn_slp.webcam_invite(self), 0)
def on_file_transfer_accepted(self, p2p, session, context, sender): '''callback for P2PUser file-transfer-accepted, sends a 200ok message starting the transfer''' if int(session) == int(self.session_id) and \ context == self.context and \ sender == self.from_: self.debug('accepting FT') self.emit('msnp2p-message-ready', msn_slp.ok(self), 0)
def __init__(self, p2p, bin_header, slp, data): Base.__init__(self, p2p) self.data = data self.via = slp.via self.call_id = slp.call_id self.session_id = slp.body['SessionID'] self.connect_handler(p2p) self.emit('msnp2p-message-ready', msn_slp.ok(self), 0) self.emit('msnp2p-message-ready', '\0\0\0\0', self.session_id) #dpm self.emit('msnp2p-file-ready', bin_header.EACH_FLAG, self.data, Base.DP_FOOTER, self.on_transfer_complete)
def handle_invite(self, bin_header, slp): '''Handles a invite message''' if slp.content_type == msn_slp.SLPMessage.CONTENT_TRANS_REQ: message = msn_slp.ok(self) message.content_type = msn_slp.SLPMessage.CONTENT_TRANS_RESP message.body = { 'Bridge': 'TCPv1', 'Listening': 'false', 'Nonce': '{00000000-0000-0000-0000-000000000000}', } self.emit('msnp2p-message-ready', message, 0) elif slp.content_type == msn_slp.SLPMessage.CONTENT_TRANS_RESP: pass
def handle_invite(self, bin_header, slp): '''Handles a invite message''' if slp.content_type == msn_slp.SLPMessage.CONTENT_TRANS_REQ: # params after \r\n\r\n: #Bridges: TRUDPv1 TCPv1 SBBridge TURNv1 #NetID: -1689699384 #Conn-Type: Port-Restrict-NAT #TCP-Conn-Type: Port-Restrict-NAT #UPnPNat: false #ICF: false #Hashed-Nonce: {44C4DB18-98AC-2025-1404-1998BEE1C437} #SessionID: 10958830 #SChannelState: 0 #Capabilities-Flags: 1 message = msn_slp.ok(self) message.content_type = msn_slp.SLPMessage.CONTENT_TRANS_RESP message.body = { 'Bridge': 'TCPv1', 'Listening': 'false', 'Nonce': '{00000000-0000-0000-0000-000000000000}', } self.emit('msnp2p-message-ready', message, 0) elif slp.content_type == msn_slp.SLPMessage.CONTENT_TRANS_RESP: # the second invite is a TRANSRESP. body: # # Bridge: TCPv1 # Listening: true # Conn-Type: Direct-Connect # TCP-Conn-Type: Direct-Connect # Nonce: {A10AE850-D3DD-4A4A-A69D-C41F01D41F94} # IPv4Internal-Addrs: 5.127.##.## 169.254.##.### 201.255.###.## # IPv4Internal-Port: 3660 # <alt> # IPv4Internal-Addrs: 190.183.##.## # IPv4Internal-Port: 1434 # SessionID: 278241011 # SChannelState: 0 # Capabilities-Flags: 1 # this is auto acked pass