# Table of contents:
# Introduction
UBN is a command introduced with MSNP13.
It is a Notification Server command, WITH a response payload.
Retrieves a special message sent by another user from the Notification Server.
For the version of the command that is sent by the client, read UUN.
# Client/Request
This command can not be sent from the client.
# Server/Response
UBN user-handle{:machine-guid} type length
payload
Where user-handle is the user handle of the user who sent this to you.
Where machine-guid is the target sub-recipient of your user handle.
Where type is one of the following values:
1: XML data (usually<SNM>elements).2: SIP invitation.3: MSNP2P SLP data.4: Log out from other machine. (Since MSNP16)5: Closing a conversation window. (TODO: Please confirm this)6: Address Book Service or Contact Sharing Service resynchronization.7: Clear Reverse List Prompts? (TODO: Please confirm this)8: Forward to other connections. (Since MSNP16)9: Reserved.10: TURN setup request.11: Metadata channel for SIP? (TODO: Please confirm this)12: Tunneled SIP invitation.
Where length is the size (in bytes) of the payload.
Where payload is the data you'd like to send to the other user,
of which the format of data depends on the type parameter.
# XML data
<SNM opcode="opcode" csid="guid" {priority="priority"} {reason="reason"}/>
Where opcode is one of the following:
SNM: Request to share new media.ACK: Acknowledge (accept) aSNMrequest.NAK: Unacknowledge (decline) aSNMrequest.INFO: Unknown. May just be used to provide non-authorative information.
Where csid is a bracketed GUID that represents the relationship of this transaction.
Where priority, which is only seen with the opcode value set to SNM, is always set to 0.
Where reason, which is only seen with the opcode value set to either NAK or INFO,
is set to a capitallized, prefixed hexadecimal representation of a HRESULT:
0x80070002: System Error2, file not found.0x80070490: System Error1168, element not found.0x8F450001: Sharing folders are disabled.- (TODO: get a list of these that are actually used)
# Log out from other machine
Since MSNP16.
Either use the value goawyplzthxbye or gtfo when using this mode.
# Examples
NOTE: The XML in these examples has been exploded for visibility and formatting reasons. The payload sizes provided are to represent the size of the unexploded payloads.
# XML data
# Initial request
S: UBN example@hotmail.com 1 78
<SNM
opcode="SNM"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
priority="0"
/>
# Accept request
S: UBN example@hotmail.com 1 65
<SNM
opcode="ACK"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
/>
# Decline request
S: UBN example@hotmail.com 1 85
<SNM
opcode="NAK"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
reason="0x80070490"
/>
# Send Information
S: UBN example@hotmail.com 1 86
<SNM
opcode="INFO"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
reason="0x8F450001"
/>
# Log out other machine
Since MSNP16.
C: UBN example@hotmail.com;{44bfd5a4-7450-4bda-ba3a-c51b3031126d} 4 14
goawyplzthxbye
Client disconnects from server.
# Invalid context
Inherited from being an unimplemented command.
C: UBN 1 example@hotmail.com 1 0
Server disconnects client.
# Known changes
- MSNP16: UBN commands can now be received from other machines logged in as your user specifying the Machine GUID. Types 4 (Log out other machine) and 8 (Forward to other machine) have been implemented.