pub enum Negotiation {
Absent,
Ice {
credentials: Credentials,
candidates: Vec<Candidate>,
lite: bool,
},
Mismatch,
}Expand description
What a peer’s description says about ICE for one stream.
Variants§
Absent
No usable a=candidate: the peer is not doing ICE (spec §13.3).
Nothing is offered back, no check is sent, no timer runs, and the stream is carried by symmetric RTP exactly as it is today. This is the common case and must stay the common case — a stack that requires ICE to place a call has regressed.
Ice
ICE is on for this stream, with these parameters.
Fields
credentials: CredentialsThe peer’s a=ice-ufrag and a=ice-pwd, media level winning over session level
(RFC 8839 §5.4).
Mismatch
RFC 8839 §5.3: the offer’s default destination for a component matched none of its candidates for that component.
The answer carries ICE_MISMATCH for the stream and ICE MUST NOT be used for it; the
stream falls back to RFC 3264 — which is to say to Negotiation::Absent’s behaviour,
arrived at by a different route and reported differently, because the offerer needs to
know that something between the two of us rewrote the address it advertised.
Implementations§
Source§impl Negotiation
impl Negotiation
Sourcepub fn answer_attributes(&self) -> Vec<Attribute>
pub fn answer_attributes(&self) -> Vec<Attribute>
The attributes this decision adds to the answer’s media section.
Only §5.3’s flag today: the ICE attributes an answer carries for a stream that is doing
ICE are the local description’s (super::LocalDescription::attributes), not the
remote’s, so they come from the other side of the exchange.
Trait Implementations§
Source§impl Clone for Negotiation
impl Clone for Negotiation
Source§fn clone(&self) -> Negotiation
fn clone(&self) -> Negotiation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Negotiation
impl Debug for Negotiation
Source§impl PartialEq for Negotiation
impl PartialEq for Negotiation
Source§fn eq(&self, other: &Negotiation) -> bool
fn eq(&self, other: &Negotiation) -> bool
self and other values to be equal, and is used by ==.impl Eq for Negotiation
impl StructuralPartialEq for Negotiation
Auto Trait Implementations§
impl Freeze for Negotiation
impl RefUnwindSafe for Negotiation
impl Send for Negotiation
impl Sync for Negotiation
impl Unpin for Negotiation
impl UnsafeUnpin for Negotiation
impl UnwindSafe for Negotiation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more