The subscriber sends the SUBSCRIBE_NAMESPACE control message to a publisher to request the current set of matching announcements 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 (tuple),
Number of Parameters (i),
Parameters (..) ...,
}
-
Request ID: See Section 8.1.
-
Track Namespace Prefix: An ordered N-Tuple of byte fields which are matched against track namespaces known to the publisher. For example, if the publisher is a relay that has received ANNOUNCE 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 tuple with an N of 0 or more than 32, it MUST close the session with a Protocol Violation.
-
Parameters: The parameters are defined in Section 8.2.1.
The publisher will respond with SUBSCRIBE_NAMESPACE_OK or SUBSCRIBE_NAMESPACE_ERROR. If the SUBSCRIBE_NAMESPACE is successful, the publisher will immediately forward existing ANNOUNCE and PUBLISH messages that match the Track Namespace Prefix that have not already been sent to this subscriber. If the set of matching ANNOUNCE messages changes, the publisher sends the corresponding ANNOUNCE or UNANNOUNCE 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 is a prefix of, suffix of, or equal to an active SUBSCRIBE_NAMESPACE, it MUST respond with SUBSCRIBE_NAMESPACE_ERROR, with error code Namespace 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 ANNOUNCE, UNANNOUNCE 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 announcements and tracks.