{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/webex/main/json-schema/webex-voicemail-info-schema.json",
  "title": "VoicemailInfo",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/webex-call-settings-for-me-api-openapi.yml#/components/schemas/VoicemailInfo",
  "type": "object",
  "required": [
    "enabled",
    "sendAllCalls",
    "sendBusyCalls",
    "sendUnansweredCalls",
    "notifications",
    "transferToNumber",
    "emailCopyOfMessage",
    "messageStorage",
    "faxMessage"
  ],
  "properties": {
    "enabled": {
      "type": "boolean",
      "description": "Voicemail is enabled or disabled."
    },
    "sendAllCalls": {
      "type": "object",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "All calls will be sent to voicemail."
        }
      },
      "description": "Settings for sending all calls to voicemail."
    },
    "sendBusyCalls": {
      "type": "object",
      "required": [
        "enabled",
        "greeting",
        "greetingUploaded"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Calls will be sent to voicemail when busy."
        },
        "greeting": {
          "type": "string",
          "enum": [
            "DEFAULT",
            "CUSTOM"
          ],
          "description": "`DEFAULT` indicates the default greeting will be played. `CUSTOM` indicates a custom `.wav` file will be played.\n * `DEFAULT` - The default greeting will be played.\n * `CUSTOM` - Designates that a custom `.wav` file will be played.\n"
        },
        "greetingUploaded": {
          "type": "boolean",
          "description": "A custom greeting has been uploaded."
        }
      },
      "description": "Settings for sending calls to voicemail when the line is busy."
    },
    "sendUnansweredCalls": {
      "type": "object",
      "required": [
        "enabled",
        "greeting",
        "greetingUploaded",
        "numberOfRings",
        "systemMaxNumberOfRings"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enables and disables sending unanswered calls to voicemail."
        },
        "greeting": {
          "type": "string",
          "enum": [
            "DEFAULT",
            "CUSTOM"
          ],
          "description": "`DEFAULT` indicates the default greeting will be played. `CUSTOM` indicates a custom `.wav` file will be played.\n * `DEFAULT` - The default greeting will be played.\n * `CUSTOM` - Designates that a custom `.wav` file will be played.\n"
        },
        "greetingUploaded": {
          "type": "boolean",
          "description": "A custom greeting has been uploaded"
        },
        "numberOfRings": {
          "type": "number",
          "description": "Number of rings before unanswered call will be sent to voicemail."
        },
        "systemMaxNumberOfRings": {
          "type": "number",
          "description": "System-wide maximum number of rings allowed for `numberOfRings` setting."
        }
      }
    },
    "notifications": {
      "type": "object",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Notifications for voicemails will be sent if enabled."
        },
        "destination": {
          "type": "string",
          "description": "Email address for notification delivery. For US/Canada text messages, use the `smsDestination` field rather than providing a SMS gateway address like `12025551212@txt.example.net` here."
        },
        "smsDestination": {
          "type": "string",
          "description": "SMS destination for notification delivery. Must be a US or Canada phone number in E.164 format (e.g., +12025551212)."
        }
      },
      "description": "Settings for notifications when there are any new voicemails."
    },
    "transferToNumber": {
      "type": "object",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enabled or disabled state of giving caller option to transfer to destination when pressing zero (0)."
        },
        "destination": {
          "type": "string",
          "description": "Number voicemail caller will be transferred to when they press zero (0)."
        }
      },
      "description": "Settings for voicemail caller to transfer to a different number by pressing zero (0)."
    },
    "emailCopyOfMessage": {
      "type": "object",
      "required": [
        "enabled",
        "emailId"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "When `true` copy of new voicemail message audio will be sent to the designated email."
        },
        "emailId": {
          "type": "string",
          "description": "Email address to which the new voicemail audio will be sent."
        }
      },
      "description": "Settings for sending a copy of new voicemail message audio via email."
    },
    "messageStorage": {
      "type": "object",
      "required": [
        "mwiEnabled",
        "storageType",
        "externalEmail"
      ],
      "properties": {
        "mwiEnabled": {
          "type": "boolean",
          "description": "When `true` desktop phone will indicate there are new voicemails."
        },
        "storageType": {
          "type": "string",
          "enum": [
            "INTERNAL",
            "EXTERNAL"
          ],
          "description": "Designates which type of voicemail message storage is used.\n * `INTERNAL` - For message access via phone or the Calling User Portal.\n * `EXTERNAL` - For sending all messages to the person's email.\n"
        },
        "externalEmail": {
          "type": "string",
          "description": "External email address to which the new voicemail audio will be sent.  A value for this field must be provided in the request if a `storageType` of `EXTERNAL` is given in the request."
        }
      }
    },
    "faxMessage": {
      "type": "object",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "When `true` FAX messages for new voicemails will be sent to the designated number."
        },
        "phoneNumber": {
          "type": "string",
          "description": "Designates phone number for the FAX. A value for this field must be provided in the request if faxMessage `enabled` field is given as `true` in the request."
        },
        "extension": {
          "type": "string",
          "description": "Designates optional FAX extension."
        }
      }
    }
  }
}