# Table of contents:
# Introduction
UUN is a command introduced with MSNP13.
It is a Notification Server command, WITH a request payload and without a response payload.
Sends a special message via the Notification Server to a user.
For the version of the command that is sent from the server that relates to another user, read UBN.
# Client/Request
UUN TrID user-handle{:machine-guid} type length
payload
Where user-handle is the user handle of the user you'd like to send this message to.
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 values of goawyplzthxbye or gtfo as the payload when using this mode.
# Server/Response
UBN TrID OK
Where OK is always OK.
# 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
C: UUN 1 anotheruser@hotmail.com 1 78
<SNM
opcode="SNM"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
priority="0"
/>
S: UUN 1 OK
# Accept request
C: UUN 2 anotheruser@hotmail.com 1 65
<SNM
opcode="ACK"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
/>
S: UUN 2 OK
# Decline request
C: UUN 3 anotheruser@hotmail.com 1 85
<SNM
opcode="NAK"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
reason="0x80070490"
/>
S: UUN 3 OK
# Send Information
C: UUN 4 anotheruser@hotmail.com 1 86
<SNM
opcode="INFO"
csid="{521A03BE-12AF-452D-A3C5-F7787D7A8267}"
reason="0x8F450001"
/>
S: UUN 4
# Log out other machine
Since MSNP16.
C: UUN 5 example@hotmail.com;{44bfd5a4-7450-4bda-ba3a-c51b3031126d} 4 14
goawyplzthxbye
# Known changes
- MSNP16: UUN commands can now be sent to other machines logged in as your user by specifying the Machine GUID. Types 4 (Log out other machine) and 8 (Forward to other machine) have been implemented.