RTCRtpTransceiver: direction property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
The RTCRtpTransceiver
property direction
is a string that indicates the transceiver's preferred directionality.
The directionality indicates whether the transceiver will offer to send and/or receive RTP data, or whether it is inactive or stopped (terminated).
When setting the transceiver's direction, the value is not applied immediately.
The current direction is indicated by the currentDirection
property.
Value
A string with one of the following values:
"sendrecv"
-
Transceiver offers to send and receive RTP data:
RTCRtpSender
: Offers to send RTP data, and will do so if the remote peer accepts the connection and at least one of the sender's encodings is active.RTCRtpReceiver
: Offers to receive RTP data, and does so if the remote peer accepts.
"sendonly"
-
Transceiver offers to send but not receive RTP data:
RTCRtpSender
: Offers to send RTP data, and will do so if the remote peer accepts the connection and at least one of the sender's encodings is active.RTCRtpReceiver
: Does not offer to receive RTP data and will not do so.
"recvonly"
-
Transceiver offers to receive but not set RTP data:
RTCRtpSender
: Does not offer to send RTP data, and will not do so.RTCRtpReceiver
: Offers to receive RTP data, and will do so if the remote peer offers.
"inactive"
-
Transceiver is inactive:
RTCRtpSender
: Does not offer to send RTP data, and will not do so.RTCRtpReceiver
: Does not offer to receive RTP data and will not do so.
"stopped"
-
This is the terminal state of the transceiver. The transceiver is stopped and will not send or receive RTP data or offer to do so. Setting this value when the transceiver is not already stopped raises a
TypeError
.RTCRtpSender
: Does not offer to send RTP data, and will not do so.RTCRtpReceiver
: Does not offer to receive RTP data and will not do so.
Exceptions
When setting the value of direction
, the following exception can occur:
InvalidStateError
DOMException
-
The receiver's
RTCPeerConnection
is closed or theRTCRtpReceiver
is stopped. TypeError
-
The value is being set to
stopped
when the current value is anything other thanstopped
.
Description
The direction
property can be used to set or get the transceiver's preferred directionality.
Updating the directionality does not take effect immediately.
If the new value of direction
is different from the existing value, renegotiation of the connection is required, so a negotiationneeded
event is sent to the RTCPeerConnection
.
A direction
value (other than stopped
) is then used by RTCPeerConnection.createOffer()
or RTCPeerConnection.createAnswer()
in order to generate the SDP message created those methods.
For example, if the direction
is specified as "sendrecv"
, the corresponding SDP a-line indicates the directionality:
a=sendrecv
The new directionality takes effect once the negotiation process is completed and the new session description is successfully applied.
The transceiver's current direction is indicated by the currentDirection
property.
Specifications
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcrtptransceiver-direction |
Browser compatibility
BCD tables only load in the browser