Crate sdp_types

Source
Expand description

Crate for handling SDP (RFC 4566) session descriptions, including a parser and serializer.

§Serializing an SDP

// Create SDP session description
let sdp = sdp_types::Session {
    ...
};

// And write it to an `Vec<u8>`
let mut output = Vec::new();
sdp.write(&mut output).unwrap();

§Parsing an SDP

// Parse SDP session description from a byte slice
let sdp = sdp_types::Session::parse(&data).unwrap();

// Access the 'tool' attribute
match sdp.get_first_attribute_value("tool") {
    Ok(Some(tool)) => println!("tool: {}", tool),
    Ok(None) => println!("tool: empty"),
    Err(_) => println!("no tool attribute"),
}

§Limitations

  • SDP session descriptions are by default in UTF-8 but an optional charset attribute can change this for various SDP fields, including various other attributes. This is currently not supported, only UTF-8 is supported.

  • Network addresses, Phone numbers, E-Mail addresses and various other fields are currently parsed as a plain string and not according to the SDP grammar.

Structs§

Attribute
Attributes for the session or media.
AttributeNotFoundError
Error returned when an attribute is not found.
Bandwidth
Bandwidth information for the session or media.
Connection
Connection data for the session or media.
Key
Encryption key for the session or media.
Media
Media description.
Origin
Originator of the session.
Repeat
Repeat times for timing information.
Session
SDP session description.
Time
Timing information of the session.
TimeZone
Time zone information for the session.

Enums§

ParserError
Parsing errors that can be returned from Session::parse.