# 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) aSNM
request.NAK
: Unacknowledge (decline) aSNM
request.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.