The subscriber sends the SUBSCRIBE_NAMESPACE control message to a publisher to request the current set of matching published namespaces and established subscriptions, as well as future updates to the set.
SUBSCRIBE_NAMESPACE Message {
Type (i) = 0x11,
Length (16),
Request ID (i),
Track Namespace Prefix (..),
Number of Parameters (i),
Parameters (..) ...
}
-
Request ID: See Section 9.1.
-
Track Namespace Prefix: A Track Namespace structure as described in Section 2.4.1 with between 1 and 32 Track Namespace Fields. This prefix is matched against track namespaces known to the publisher. For example, if the publisher is a relay that has received PUBLISH_NAMESPACE messages for namespaces ("example.com", "meeting=123", "participant=100") and ("example.com", "meeting=123", "participant=200"), a SUBSCRIBE_NAMESPACE for ("example.com", "meeting=123") would match both. If an endpoint receives a Track Namespace Prefix consisting of 0 or greater than than 32 Track Namespace Fields, it MUST close the session with a
PROTOCOL_VIOLATION. -
Parameters: The parameters are defined in Section 9.2.1.
The publisher will respond with REQUEST_OK or REQUEST_ERROR. If the SUBSCRIBE_NAMESPACE is successful, the publisher will immediately forward existing PUBLISH_NAMESPACE and PUBLISH messages that match the Track Namespace Prefix that have not already been sent to this subscriber. If the set of matching PUBLISH_NAMESPACE messages changes, the publisher sends the corresponding PUBLISH_NAMESPACE or PUBLISH_NAMESPACE_DONE message.
A subscriber cannot make overlapping namespace subscriptions on a single
session. Within a session, if a publisher receives a SUBSCRIBE_NAMESPACE with a
Track Namespace Prefix that shares a common prefix with an established namespace
subscription, it MUST respond with REQUEST_ERROR with error code
PREFIX_OVERLAP.
The publisher MUST ensure the subscriber is authorized to perform this namespace subscription.
SUBSCRIBE_NAMESPACE is not required for a publisher to send PUBLISH_NAMESPACE, PUBLISH_NAMESPACE_DONE or PUBLISH messages to a subscriber. It is useful in applications or relays where subscribers are only interested in or authorized to access a subset of available namespaces and tracks.
If the FORWARD parameter (Section 9.2.1.10) is present in this message and equal to 0, PUBLISH messages resulting from this SUBSCRIBE_NAMESPACE will set the FORWARD parameter to 0. If the FORWARD parameter is equal to 1 or omitted from this message, PUBLISH messages resulting from this SUBSCRIBE_NAMESPACE will set the FORWARD parameter to 1, or indicate that value by omitting the parameter (see Section 5.1).