The RTCSessionDescription interface describes one end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session.

The process of negotiating a connection between two peers involves exchanging RTCSessionDescription objects back and forth, with each description suggesting one combination of connection configuration options that the sender of the description supports. Once the two peers agree upon a configuration for the connection, negotiation is complete.


The RTCSessionDescription interface doesn't inherit any properties.

RTCSessionDescription.type 只读
An enum of type RTCSdpType describing the session description's type.
RTCSessionDescription.sdp 只读
A DOMString containing the SDP describing the session.



This enum defines strings that describe the current state of the session description, as used in the type property. The session description's type will be specified using one of these values.

Value Description
answer The SDP contained in the sdp property is the definitive choice in the exchange. In other words, this session description describes the agreed-upon configuration, and is being sent to finalize negotiation.
offer The session description object describes the initial proposal in an offer/answer exchange. The session negotiation process begins with an offer being sent from the caller to the callee.
pranswer The session description object describe a provisional answer; that is, it's a response to a previous offer or provisional answer.
rollback This special type with an empty session description is used to roll back to the previous stable state.


The RTCSessionDescription doesn't inherit any methods.

This constructor returns a new RTCSessionDescription. The parameter is a RTCSessionDescriptionInit dictionary containing the values to assign the two properties.
Returns a JSON description of the object. The values of both properties, type and sdp, are contained in the generated JSON.


signalingChannel.onmessage = function (evt) {
    if (!pc)

    var message = JSON.parse(evt.data);
    if (message.sdp)
        pc.setRemoteDescription(new RTCSessionDescription(message), function () {
            // if we received an offer, we need to answer
            if (pc.remoteDescription.type == "offer")
                pc.createAnswer(localDescCreated, logError);
        }, logError);
        pc.addIceCandidate(new RTCIceCandidate(message.candidate),
            function () {}, logError);


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
Candidate Recommendation Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) -moz 未实现 (Yes) ?
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? (Yes) ? 未实现 ? ?

See also


此页面的贡献者: mdnwebdocs-bot, SolitudeRA
最后编辑者: mdnwebdocs-bot,