RTCPeerConnection: currentLocalDescription property

The currentLocalDescription read-only property of the RTCPeerConnection interface returns an RTCSessionDescription object describing the local end of the connection as it was most recently successfully negotiated since the last time the RTCPeerConnection finished negotiating and connecting to a remote peer. Also included is a list of any ICE candidates that may already have been generated by the ICE agent since the offer or answer represented by the description was first instantiated.

To change the currentLocalDescription, call RTCPeerConnection.setLocalDescription(), which triggers a series of events which leads to this value being set. For details on what exactly happens and why the change isn't necessarily instantaneous, see Pending and current descriptions in the WebRTC Connectivity page.

Note: Unlike RTCPeerConnection.localDescription, this value represents the actual current state of the local end of the connection; localDescription may specify a description which the connection is currently in the process of switching over to.


The current description of the local end of the connection, if one has been set. If none has been successfully set, this value is null.


This example looks at the currentLocalDescription and displays an alert containing the RTCSessionDescription object's type and sdp fields.

const pc = new RTCPeerConnection();
// ...
const sd = pc.currentLocalDescription;
if (sd) {
  alert(`Local session: type='${sd.type}'; sdp description='${sd.sdp}'`);
} else {
  alert("No local session yet.");


WebRTC: Real-Time Communication in Browsers
# dom-peerconnection-currentlocaldesc

Browser compatibility

BCD tables only load in the browser

Note: The addition of currentLocalDescription and pendingLocalDescription to the WebRTC spec is relatively recent. In browsers which don't support them, just use localDescription.

See also