2.2.4.17 LinkViewerToMacConnect

The LinkViewerToMacConnect message is sent by the client to request a connection to a server.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

chunkLen

MID

playIncarnation

MacToViewerProtocolRevision

ViewerToMacProtocolRevision

subscriberName (variable)

...

chunkLen (4 bytes): Length of the message in chunks. A chunk is 8 bytes.

MID (4 bytes): Message identifier. For this message, the value MUST be 0x00030001.

playIncarnation (4 bytes): A 32-bit field. The field specifies the type of packet-pair bandwidth estimation that is used, if any. The field SHOULD be set to one of the following values:<15>

Value

Meaning

MMS_DISABLE_PACKET_PAIR

0xf0f0f0ef

 Packet-pair bandwidth estimation not requested.

MMS_USE_PACKET_PAIR

0xf0f0f0f0

 Requests that packet-pair bandwidth estimation be performed.

MacToViewerProtocolRevision (4 bytes): A 32-bit field. It MUST be set to 0x0004000B.

ViewerToMacProtocolRevision (4 bytes): A 32-bit field. It MUST be set to 0x0003001C.

subscriberName (variable): An array of Unicode characters that specifies the major and minor version numbers of the Microsoft software product that is sending the LinkViewerToMacConnect message.

If the LinkViewerToMacConnect message is sent through a proxy server, the subscriberName field MUST specify the name and port number of the server using the host-param syntax element (defined below), and SHOULD also specify the name and port number of the server using the host-string syntax element.<16>

If a proxy server forwards a LinkViewerToMacConnect message, and the subscriberName field does not contain the host-string syntax element, it MUST insert that syntax element into the field. Also, each proxy server MUST add information identifying its product name and version into the via-string syntax element. If the subscriberName field does not contain a via-string syntax element, the proxy server MUST add it. Otherwise, the proxy server appends its information to the existing information using a comma character as the separator, as specified by the following syntax.

The ABNF (as specified in [RFC4234]) syntax of the subscriberName field is defined as follows.

 host-info        = host                     ; as defined in [RFC3986]
   [ ":" port ]          ; as defined in [RFC3986]
 host-param       = "; Host: " host-info
 host-string             = "HOST: " host-info
 via-info                = token [ "/" token ] *( "," [SP] token [ "/" token ] )
 via-string       = "VIA: " via-info
 client-guid             = "; {" 8HEXDIG "-" 4HEXDIG "-" 4HEXDIG "-" 
                                               4HEXDIG "-" 12HEXDIG "}"
 major = 1*2DIGIT
 minor = 1*2DIGIT ["." 1*4DIGIT "." 1*4DIGIT]
 client-token     = "Spooooon!" / 
   ( "NSPlayer" "/" major "." minor client-guid )
 subscriberName   = client-token [ host-param ] %x0000
 [ host-string %x0000 ] [ via-string %x0000 ]
            

Clients MUST assign the values of the client-token, major, and minor ABNF syntax elements according to the table below. <17>

Client-token

Major

Minor

Spoooon!

Spoooon!

NSPlayer

4

1

NSPlayer

7

0

NSPlayer

7

1

NSPlayer

8

0

NSPlayer

9

0

NSPlayer

10

0

Example:

 NSPlayer/4.1.0.3928; {68c0a090-8797-11d2-a2b3-00a0c9b60551}