RTCDtlsTransport.state

The state read-only property of the RTCDtlsTransport interface provides information which describes a Datagram Transport Layer Security (DTLS) transport state.

Syntax

let myState = dtlsTransport.state;

Value

A string whose value is taken from the RTCDtlsTransportState enumerated type. Its value is one of the following:

new
The initial state when DTLS has not started negotiating yet.
connecting
DTLS is in the process of negotiating a secure connection and verifying the remote fingerprint.
connected
DTLS has completed negotiation of a secure connection and verified the remote fingerprint.
closed
The transport has been closed intentionally as the result of receipt of a close_notify alert, or calling RTCPeerConnection.close().
failed
The transport has failed as the result of an error (such as receipt of an error alert or failure to validate the remote fingerprint).

Examples

This example presents a function, tallySenders(), which iterates over an RTCPeerConnection's RTCRtpSenders, tallying up how many of them are in various states. The function returns an object containing properties whose values indicate how many of the senders are in each state.

let pc = new RTCPeerConnection({ bundlePolicy: "max-bundle" });

/* ... */

function tallySenders(pc) {
  let results = {
    transportMissing: 0,
    connectionPending: 0,
    connected: 0,
    closed: 0,
    failed: 0,
    unknown: 0
  };

  let senderList = pc.getSenders();
  senderList.forEach(sender => {
    let transport = sender.transport;

    if (!transport) {
      results.transportMissing++;
    } else {
      switch(transport.state) {
        case "new":
        case "connecting":
          results.connectionPending++;
          break;
       case "connected":
          results.connected++;
          break;
       case "closed":
          results.closed++;
          break;
       case "failed":
          results.failed++;
          break;
       default:
          results.unknown++;
          break;
      }
    }
  });
  return results;
}

Note that in this code, the new and connecting states are being treated as a single connectionPending status in the returned object.

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCDtlsTransport.state' in that specification.
Candidate Recommendation Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
stateChrome Full support 72Edge Full support 12Firefox No support No
Notes
No support No
Notes
Notes See bug 1307996.
IE No support NoOpera Full support 60Safari No support NoWebView Android Full support 72Chrome Android Full support 72Firefox Android No support No
Notes
No support No
Notes
Notes See bug 1307996.
Opera Android Full support 50Safari iOS No support NoSamsung Internet Android Full support 11.0

Legend

Full support
Full support
No support
No support
See implementation notes.
See implementation notes.

See also