{
  "code": 31,
  "class": "Voice Client & Server",
  "subclasses": [
    {
      "code": 2,
      "class": "SignatureValidation",
      "errors": [
        {
          "code": 2,
          "name": "AccessTokenSignatureValidationFailed",
          "description": "Signature validation failed.",
          "explanation": "The provided access token failed signature validation.",
          "causes": [
            "The access token has an invalid Account SID, API Key, or API Key Secret."
          ],
          "solutions": [
            "Ensure the Account SID, API Key, and API Key Secret are valid when generating your access token."
          ]
        }
      ]
    },
    {
      "code": 4,
      "class": "Client",
      "errors": [
        {
          "code": 0,
          "name": "BadRequest",
          "description": "Bad Request (HTTP/SIP)",
          "explanation": "The request could not be understood due to malformed syntax."
        },
        {
          "code": 3,
          "name": "Forbidden",
          "description": "Forbidden (HTTP/SIP)",
          "explanation": "The server understood the request, but is refusing to fulfill it."
        },
        {
          "code": 4,
          "name": "NotFound",
          "description": "Not Found (HTTP/SIP)",
          "explanation": "The server has not found anything matching the request.",
          "causes": [
            "The outbound call was made to an invalid phone number.",
            "The TwiML application sid is missing a Voice URL."
          ],
          "solutions": [
            "Ensure the phone number dialed is valid.",
            "Ensure the TwiML application is configured correctly with a Voice URL link."
          ]
        },
        {
          "code": 8,
          "name": "RequestTimeout",
          "description": "Request Timeout (HTTP/SIP)",
          "explanation": "A request timeout occurred."
        },
        {
          "code": 9,
          "name": "Conflict",
          "description": "Conflict (HTTP)",
          "explanation": "The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress."
        },
        {
          "code": 26,
          "name": "UpgradeRequired",
          "description": "Upgrade Required (HTTP)",
          "explanation": "This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK."
        },
        {
          "code": 29,
          "name": "TooManyRequests",
          "description": "Too Many Requests (HTTP)",
          "explanation": "Too many requests were sent in a given amount of time."
        },
        {
          "code": 80,
          "name": "TemporarilyUnavailable",
          "description": "Temporarily Unavailable (SIP)",
          "explanation": "The callee is currently unavailable."
        },
        {
          "code": 81,
          "name": "CallTransactionDoesNotExist",
          "description": "Call/Transaction Does Not Exist (SIP)",
          "explanation": "The call no longer exists."
        },
        {
          "code": 84,
          "name": "AddressIncomplete",
          "description": "Address Incomplete (SIP)",
          "explanation": "The provided phone number is malformed.",
          "causes": [
            "The outbound call was made with a phone number that has an invalid format."
          ],
          "solutions": [
            "Ensure the phone number dialed is formatted correctly."
          ]
        },
        {
          "code": 86,
          "name": "BusyHere",
          "description": "Busy Here (SIP)",
          "explanation": "The callee is busy."
        },
        {
          "code": 87,
          "name": "RequestTerminated",
          "description": "Request Terminated (SIP)",
          "explanation": "The request has terminated as a result of a bye or cancel."
        }
      ]
    },
    {
      "code": 5,
      "class": "Server",
      "errors": [
        {
          "code": 0,
          "name": "InternalServerError",
          "description": "Internal Server Error (HTTP/SIP)",
          "explanation": "The server could not fulfill the request due to some unexpected condition."
        },
        {
          "code": 2,
          "name": "BadGateway",
          "description": "Bad Gateway (HTTP/SIP)",
          "explanation": "The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request."
        },
        {
          "code": 3,
          "name": "ServiceUnavailable",
          "description": "Service Unavailable (HTTP/SIP)",
          "explanation": "The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL."
        },
        {
          "code": 4,
          "name": "GatewayTimeout",
          "description": "Gateway Timeout (HTTP/SIP)",
          "explanation": "The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server."
        },
        {
          "code": 30,
          "name": "DNSResolutionError",
          "description": "DNS Resolution Error (HTTP/SIP)",
          "explanation": "Could not connect to the server."
        }
      ]
    },
    {
      "code": 6,
      "class": "SIP Server",
      "errors": [
        {
          "code": 0,
          "name": "BusyEverywhere",
          "description": "Busy Everywhere (SIP)",
          "explanation": "All possible destinations are busy."
        },
        {
          "code": 3,
          "name": "Decline",
          "description": "Decline (SIP)",
          "explanation": "The callee does not wish to participate in the call."
        },
        {
          "code": 4,
          "name": "DoesNotExistAnywhere",
          "description": "Does Not Exist Anywhere (SIP)",
          "explanation": "The requested callee does not exist anywhere."
        }
      ]
    }
  ]
}
