diff --git a/index.bs b/index.bs index e226bc7..dc1ec6a 100644 --- a/index.bs +++ b/index.bs @@ -265,8 +265,6 @@ mechanisms, such as querying for the same DNS-SD records via unicast DNS. OSP agents must use the DNS-SD [=Service Name=] `_openscreen._udp`. -Issue(107): Define suspend and resume behavior for discovery protocol. - An advertising agent is one that responds to mDNS queries for `_openscreen._udp.local`. Such an agent should have a display name (a non-empty string) that is a human readable description of the @@ -312,6 +310,10 @@ Note: `at` prevents off-LAN parties from attempting authentication; see [[#remote-active-mitigations]]. `at` should have at least 32 bits of true entropy to make brute force attacks impractical. +NOTE: If an OSP agent suspends its network connectivity (e.g. for power saving +reasons) it should attempt to retain cached and valid mDNS records so that +discovery state is preserved when the network connection is resumed. + Future extensions to this QUIC-based protocol can use the same metadata @@ -347,7 +349,7 @@ be used to communicate with a specific OSP Agent using OSP. An OSP Agent may refuse incoming connections that lack these parameters. * The [[!RFC7301|ALPN]] used must be "osp". -* The [[!RFC6066|server_name extension]] must be set to the following `host_name`: +* The [[!RFC6066|server_name extension]] must be set to the following `host_name`: `._openscreen._udp`. * `` must be substituted with the [=agent fingerprint=] as used in mDNS TXT. @@ -417,7 +419,7 @@ The [=agent certificate=] must have the following characteristics:
  1. `1.2.840.10045.2.1` (ECC)
  2. `1.3.132.0.34` (ECDSA P384)
  3. -
+ DER representation: `301006072a8648ce3d020106052b81040022`

@@ -554,7 +556,7 @@ The various capabilities have the following meanings: protocols may report more specific capabilities, such as support for certain audio codecs in the streaming protocol. -: receive-video +: receive-video :: The agent can receive video via the other protocols it supports. Those other protocols may report more specific capabilities, such as support for certain video codecs in the streaming protocol. @@ -579,12 +581,10 @@ The various capabilities have the following meanings: : send-streaming :: The agent can send streaming using the streaming protocol. -Note: See the -[Capabilities Registry](https://w3c.github.io/openscreenprotocol/capabilities.html) +NOTE: See the [Capabilities Registry](https://github.com/w3c/openscreenprotocol/blob/main/capabilities.md) for a list of all known capabilities (both defined by this specification, and through [[#protocol-extensions]]). - If a listening agent wishes to receive messages from an advertising agent or an advertising agent wishes to send messages to a listening agent, it may wish to keep the QUIC connection alive. Once neither side needs to keep the connection @@ -603,7 +603,10 @@ If a listening agent wishes to send messages to an advertising agent, the listening agent can connect to the advertising agent "on demand"; it does not need to keep the connection alive. -Issue(108): Define suspend and resume behavior for connection protocol. +If an OSP agent suspends its network connectivity (e.g. for power saving +reasons), it should attempt to resume QUIC connections to the OSP agents to +which it was previously connected once network connectivity is restored. Once +reconnected, it should send `agent-status-request` messages to those agents. The [=agent-info=] and [=agent-status-response=] messages may be extended to include additional information not defined in this spec, as described in @@ -1166,7 +1169,7 @@ requirements for a remote-playback-id. :: The [=media resources=] that the controller has selected for playback on the receiver. Each source must include a <{source/src|source URL}> and should include an <{source/type|extended MIME type}>. - + Issue(265): Should media resource URLs be optional? : text-track-urls @@ -1336,7 +1339,7 @@ intentionally mirror settable attributes and methods of the {{HTMLMediaElement/src|HTMLMediaElement.src}} for more details. Must not be used in the initial controls of the [=remote-playback-start-request=] message (which already contains a list of URLs). - + Issue(223): Codec switching when remoting. : preload @@ -1598,7 +1601,7 @@ changed. All times, time ranges, and durations (such as position, duration, and seekable-time-ranges) used above use a common [=media-time=] value (see Appendix A) -which includes a [=time scale=]. +which includes a [=time scale=].
@@ -1856,7 +1859,7 @@ Each stream offer contains the following fields: : audio :: A list of audio encodings offered. An audio encoding is a series of encoded audio frames. Encodings define fields needed by - the receiver to know how to decode the encoding, such as codec. + the receiver to know how to decode the encoding, such as codec. They can differ by codec and related fields, but should be different encodings of the same audio. @@ -2894,7 +2897,3 @@ To decode a PSK `P` given a QR code, follow these steps: 1. Obtain the string `N` by decoding the QR code. 2. Parse `N` as a hexadecimal number to obtain `P`. - - - -