2.2.6.1 FanoutOpen Command Fields

FanoutOpen command fields are defined as follows:


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

CommandId

CommandLength

SessionId

...

A

...

B

C

D

E

F

G

H

I

NumFanoutDeviceEntries

J

...

Reserved

CommandId (1 byte): The command identifier. This field MUST be set to 0x06.

CommandLength (2 bytes): The total length of the command, in bytes.

SessionId (4 bytes): The identifier for the SSTP session as specified in section 3.1.1.3.

A - ResourceURL (variable): A variable length ASCII string terminated by 0x00 containing the URL of the resource handler for all messages on this SSTP session. This field MUST NOT be an empty string.

B - r1 (1 bit): This field is reserved and MUST be set to zero.

C - r2 (1 bit): This field is reserved and MUST be set to zero.

D - r3 (1 bit): This field is reserved and MUST be set to zero.

E - r4 (1 bit): This field is reserved and MUST be set to zero.

F - r5 (1 bit): This field is reserved and MUST be set to zero.

G - r6 (1 bit): This field is reserved and MUST be set to zero.

H - r7 (1 bit): This field is reserved and MUST be set to zero.

I - I (1 bit): This field is reserved and SHOULD<6> be zero. A receiver MUST ignore this bit.

NumFanoutDeviceEntries (2 bytes): The total number of entries in the FanoutDeviceEntries field.

J - FanoutDeviceEntries (variable): A variable length list of fanout device entries. The FanoutDeviceEntries list MUST contain exactly as many entries as indicated in the preceding NumFanoutDeviceEntries field.

FanoutDeviceEntries command variable fields are defined as shown in the following table.


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

FanoutDeviceEntry[1] (variable)

...

FanoutDeviceEntry[2] (variable)

...

FanoutDeviceEntry[n] (variable)

...

FanoutDeviceEntry[1] (variable): First FanoutDeviceEntry.

FanoutDeviceEntry[2] (variable): Second FanoutDeviceEntry.

FanoutDeviceEntry[n] (variable): Last FanoutDeviceEntry.

In SSTP 1.5, each fanout device entry is composed of the three variable-length ASCII strings, each terminated by 0x00: identity URL, device URL and relay URL. Each string indicates (to the relay server) the destination resource handler that will process sent messages received on the fanout session. The IdentityURL field of each entry MUST NOT be empty. The DeviceURL field of each entry MAY<7> be empty. If the resource handler associated with the recipient relay server is the destination of messages on this session, the RelayURL field<8> MUST be empty. If the RelayURL field is empty, a resource handler associated with the recipient relay server is the destination of messages on this session.

In SSTP 1.6, the fanout device entry is composed of four variable-length ASCII strings, each terminated by 0x00. A new FailoverDeviceURLs is included, in addition to the IdentityURL, DeviceURL, and RelayURL fields described in the preceding paragraph. The FailoverDeviceURLs field MUST be set to 0x00.

The SSTP 1.5 FanoutDeviceEntries consisting of IdentityURL, DeviceURL, and RelayURL fields are defined as shown in the following table.


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

FanoutDeviceEntry[i].IdentityURL (variable)

...

FanoutDeviceEntry[i].DeviceURL (variable)

...

FanoutDeviceEntry[i].RelayURL (variable)

...

FanoutDeviceEntry[i].IdentityURL (variable): ASCII string terminated by 0x00.

FanoutDeviceEntry[i].DeviceURL (variable): ASCII string terminated by 0x00.

FanoutDeviceEntry[i].RelayURL (variable): ASCII string terminated by 0x00.

The SSTP 1.6 FanoutDeviceEntries consisting of IdentityURL, DeviceURL, RelayURL, and FailoverDeviceURLs fields are defined as shown in the following table.


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

FanoutDeviceEntry[i].IdentityURL (variable)

...

FanoutDeviceEntry[i].DeviceURL (variable)

...

FanoutDeviceEntry[i].RelayURL (variable)

...

FanoutDeviceEntry[i].FailoverDeviceURLs (variable)

...

FanoutDeviceEntry[i].IdentityURL (variable): ASCII string terminated by 0x00.

FanoutDeviceEntry[i].DeviceURL (variable): ASCII string terminated by 0x00.

FanoutDeviceEntry[i].RelayURL (variable): ASCII string terminated by 0x00.

FanoutDeviceEntry[i].FailoverDeviceURLs (variable): ASCII string terminated by 0x00.

Reserved (2 bytes): This field is reserved and MUST be 0x0000.