The subscriber sends the SUBSCRIBE_ANNOUNCES 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_ANNOUNCES 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_ANNOUNCES 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_ANNOUNCES_OK or SUBSCRIBE_ANNOUNCES_ERROR. If the SUBSCRIBE_ANNOUNCES 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_ANNOUNCES with a Track Namespace Prefix that is a prefix of, suffix of, or equal to an active SUBSCRIBE_ANNOUNCES, it MUST respond with SUBSCRIBE_ANNOUNCES_ERROR, with error code Namespace Prefix Overlap.
The publisher MUST ensure the subscriber is authorized to perform this namespace subscription.
SUBSCRIBE_ANNOUNCES 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.