Struct mediasoup::plain_transport::PlainTransport[][src]

pub struct PlainTransport { /* fields omitted */ }

A plain transport represents a network path through which RTP, RTCP (optionally secured with SRTP) and SCTP (DataChannel) is transmitted.

Implementations

impl PlainTransport[src]

pub async fn connect(
    &self,
    remote_parameters: PlainTransportRemoteParameters
) -> Result<(), RequestError>
[src]

Provide the PlainTransport with remote parameters.

Notes on usage

  • If comedia is enabled in this plain transport and SRTP is not, connect() must not be called.
  • If comedia is enabled and SRTP is also enabled (enable_srtp was set in the Router::create_plain_transport options) then connect() must be called with just the remote srtp_parameters.
  • If comedia is disabled, connect() must be eventually called with remote ip, port, optional rtcp_port (if RTCP-mux is not enabled) and optional srtp_parameters (if SRTP is enabled).

Examples

use mediasoup::plain_transport::PlainTransportRemoteParameters;

// Calling connect() on a PlainTransport created with comedia and rtcp_mux set.
plain_transport
    .connect(PlainTransportRemoteParameters {
        ip: Some("1.2.3.4".parse().unwrap()),
        port: Some(9998),
        rtcp_port: None,
        srtp_parameters: None,
    })
    .await?;
use mediasoup::plain_transport::PlainTransportRemoteParameters;

// Calling connect() on a PlainTransport created with comedia unset and rtcp_mux
// also unset.
plain_transport
    .connect(PlainTransportRemoteParameters {
        ip: Some("1.2.3.4".parse().unwrap()),
        port: Some(9998),
        rtcp_port: Some(9999),
        srtp_parameters: None,
    })
    .await?;
use mediasoup::plain_transport::PlainTransportRemoteParameters;
use mediasoup::srtp_parameters::{SrtpParameters, SrtpCryptoSuite};

// Calling connect() on a PlainTransport created with comedia set and
// enable_srtp enabled.
plain_transport
    .connect(PlainTransportRemoteParameters {
        ip: None,
        port: None,
        rtcp_port: None,
        srtp_parameters: Some(SrtpParameters {
            crypto_suite: SrtpCryptoSuite::AesCm128HmacSha180,
            key_base64: "ZnQ3eWJraDg0d3ZoYzM5cXN1Y2pnaHU5NWxrZTVv".to_string(),
        }),
    })
    .await?;
use mediasoup::plain_transport::PlainTransportRemoteParameters;
use mediasoup::srtp_parameters::{SrtpParameters, SrtpCryptoSuite};

// Calling connect() on a PlainTransport created with comedia unset, rtcpMux
// set and enableSrtp enabled.
plain_transport
    .connect(PlainTransportRemoteParameters {
        ip: Some("1.2.3.4".parse().unwrap()),
        port: Some(9998),
        rtcp_port: None,
        srtp_parameters: Some(SrtpParameters {
            crypto_suite: SrtpCryptoSuite::AesCm128HmacSha180,
            key_base64: "ZnQ3eWJraDg0d3ZoYzM5cXN1Y2pnaHU5NWxrZTVv".to_string(),
        }),
    })
    .await?;

pub async fn set_max_incoming_bitrate(
    &self,
    bitrate: u32
) -> Result<(), RequestError>
[src]

Set maximum incoming bitrate for media streams sent by the remote endpoint over this transport.

pub fn tuple(&self) -> TransportTuple[src]

The transport tuple. If RTCP-mux is enabled (rtcp_mux is set), this tuple refers to both RTP and RTCP.

Notes on usage

  • Once the plain transport is created, transport.tuple() will contain information about its local_ip, local_port and protocol.
  • Information about remote_ip and remote_port will be set:
    • after calling connect() method, or
    • via dynamic remote address detection when using comedia mode.

pub fn rtcp_tuple(&self) -> Option<TransportTuple>[src]

The transport tuple for RTCP. If RTCP-mux is enabled (rtcp_mux is set), its value is None.

Notes on usage

  • Once the plain transport is created (with RTCP-mux disabled), transport.rtcp_tuple() will contain information about its local_ip, local_port and protocol.
  • Information about remote_ip and remote_port will be set:
    • after calling connect() method, or
    • via dynamic remote address detection when using comedia mode.

pub fn sctp_parameters(&self) -> Option<SctpParameters>[src]

Current SCTP state. Or None if SCTP is not enabled.

pub fn sctp_state(&self) -> Option<SctpState>[src]

Current SCTP state. Or None if SCTP is not enabled.

pub fn srtp_parameters(&self) -> Option<SrtpParameters>[src]

Local SRTP parameters representing the crypto suite and key material used to encrypt sending RTP and SRTP. Note that, if comedia mode is set, these local SRTP parameters may change after calling connect() with the remote SRTP parameters (to override the local SRTP crypto suite with the one given in connect()).

pub fn on_tuple<F: Fn(&TransportTuple) + Send + Sync + 'static>(
    &self,
    callback: F
) -> HandlerId
[src]

Callback is called after the remote RTP origin has been discovered. Only if comedia mode was set.

pub fn on_rtcp_tuple<F: Fn(&TransportTuple) + Send + Sync + 'static>(
    &self,
    callback: F
) -> HandlerId
[src]

Callback is called after the remote RTCP origin has been discovered. Only if comedia mode was set and rtcp_mux was not.

pub fn on_sctp_state_change<F: Fn(SctpState) + Send + Sync + 'static>(
    &self,
    callback: F
) -> HandlerId
[src]

Callback is called when the transport SCTP state changes.

pub fn downgrade(&self) -> WeakPlainTransport[src]

Downgrade PlainTransport to WeakPlainTransport instance.

Trait Implementations

impl Clone for PlainTransport[src]

impl Debug for PlainTransport[src]

impl Transport for PlainTransport[src]

impl TransportGeneric for PlainTransport[src]

type Dump = PlainTransportDump

type Stat = PlainTransportStat

Stats data structure specific to each transport.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.