{
  "code": 53,
  "class": "Voice WebRTC",
  "subclasses": [
    {
      "class": "Signaling",
      "errors": [
        {
          "code": 0,
          "name": "ConnectionError",
          "description": "Signaling connection error",
          "explanation": "Raised whenever a signaling connection error occurs that is not covered by a more specific error code."
        },
        {
          "code": 1,
          "name": "ConnectionDisconnected",
          "description": "Signaling connection disconnected",
          "explanation": "Raised whenever the signaling connection is unexpectedly disconnected.",
          "causes": [
            "The device running your application lost its Internet connection."
          ],
          "solutions": [
            "Ensure the device running your application has access to a stable Internet connection."
          ]
        }
      ]
    },
    {
      "code": 4,
      "class": "Media",
      "errors": [
        {
          "code": 0,
          "name": "ClientLocalDescFailed",
          "description": "Client is unable to create or apply a local media description",
          "explanation": "Raised whenever a Client is unable to create or apply a local media description.",
          "causes": [
            "The Client may not be using a supported WebRTC implementation.",
            "The Client may not have the necessary resources to create or apply a new media description."
          ],
          "solutions": [
            "If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation."
          ]
        },
        {
          "code": 1,
          "name": "ServerLocalDescFailed",
          "description": "Server is unable to create or apply a local media description",
          "explanation": "Raised whenever the Server is unable to create or apply a local media description.",
          "causes": [
            "A server-side error has occurred."
          ],
          "solutions": [
            "If the problem persists, try connecting to another region."
          ]
        },
        {
          "code": 2,
          "name": "ClientRemoteDescFailed",
          "description": "Client is unable to apply a remote media description",
          "explanation": "Raised whenever the Client receives a remote media description but is unable to apply it.",
          "causes": [
            "The Client may not be using a supported WebRTC implementation.",
            "The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.",
            "The Client may not have the necessary resources to apply a new media description."
          ],
          "solutions": [
            "If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation."
          ]
        },
        {
          "code": 3,
          "name": "ServerRemoteDescFailed",
          "description": "Server is unable to apply a remote media description",
          "explanation": "Raised whenever the Server receives a remote media description but is unable to apply it.",
          "causes": [
            "The Client may not be using a supported WebRTC implementation.",
            "The Client may not have the necessary resources to apply a new media description.",
            "A Server-side error may have caused the Server to generate an invalid media description."
          ],
          "solutions": [
            "If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.",
            "If the problem persists, try connecting to another region."
          ]
        },
        {
          "code": 4,
          "name": "NoSupportedCodec",
          "description": "No supported codec",
          "explanation": "Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.",
          "causes": [
            "The C++ SDK was built without the recommended set of codecs.",
            "The JavaScript SDK is running in a browser that does not implement the recommended set of codecs."
          ],
          "solutions": [
            "If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.",
            "If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser."
          ]
        },
        {
          "code" : 5,
          "name": "ConnectionError",
          "description": "Media connection failed",
          "explanation": "Raised by the Client or Server whenever a media connection fails.",
          "causes": [
            "The Client was unable to establish a media connection.",
            "A media connection which was active failed liveliness checks."
          ],
          "solutions" : [
            "If the problem persists, try connecting to another region.",
            "Check your Client's network connectivity.",
            "If you've provided custom ICE Servers then ensure that the URLs and credentials are valid."
          ]
        },
        {
          "code" : 7,
          "name": "MediaDtlsTransportFailedError",
          "description": "The media connection failed due to DTLS handshake failure",
          "explanation": "There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.",
          "causes": [
            "One or both of the DTLS peers have an invalid certificate.",
            "One or both of the DTLS peers have an outdated version of DTLS.",
            "One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake."
          ],
          "solutions" : [
            "Ensure that your certificate is valid.",
            "Ensure that you have a stable internet connection.",
            "Ensure that the browser or the Mobile SDK supports newer versions of DTLS."
          ]
        }
      ]
    }
  ]
}
