Skip to main content

Module negotiate

Module negotiate 

Source
Expand description

Reading a peer’s description: is ICE on for this stream at all (RFC 8839 §5.3, §6; spec §13.2, §13.3)?

Three answers and no fourth, because the driver has to branch on exactly one of them before it binds anything to the media port:

  • the peer sent no a=candidate, so ICE is off and symmetric RTP carries the call as it does today — RFC 8839 §6: “An agent can determine that its peer supports ICE by the presence of ‘candidate’ attributes for each media session”;
  • the peer sent candidates and they line up with where it says to send, so ICE is on;
  • the peer sent candidates and its default destination for a component matches none of them, which is §5.3’s ice-mismatch: ICE MUST NOT be used for that stream, the answer says so, and RFC 3264’s procedures apply instead.

Pure SDP. No clock and no socket reach this module, which is why it is scanned by the same guard as the agent.

Enums§

Negotiation
What a peer’s description says about ICE for one stream.

Constants§

ICE_MISMATCH
The attribute an answer carries when §5.3’s condition holds. Media level, answer only.

Functions§

negotiate
Read one stream of a peer’s description (RFC 8839 §5.3, §6).