DocumentationBlogSupport
Log inSign up
Log inSign up
BlogSupport
Build
Getting StartedPlatform Introduction
Embedded Apps
What's NewOverviewDeveloper GuideSidebar API Quick StartSubmission Checklist for Embedded Apps
Design Guidelines
MessagingMeetingsDevicesSidebarSidebar on Mobile
API Reference
BotsButtons and CardsIntegrationsBYODSService AppsService App GuestsService Apps G2GGuest IssuerWidgetsWebex ConnectLogin with WebexInstant ConnectInstant Connect Meeting LinksDeveloper SandboxBeta ProgramSubmit Your AppSupport PolicyFAQs
APIs
API Behavior ChangesPartners API GuideXML API DeprecationAccess the APIREST API BasicsCompliance
Webex APIs
Reference
Data Sources
Admin
OverviewAdmin APIsHybrid ServicesAuthentication
Guides
Hybrid ServicesWebhooksReal-time File DLP BasicsProvisioning APIsBackground ImagesAudit Events Error Reference
Reference
Admin Audit EventsAuthorizationsEventsGroupsHistorical AnalyticsHybrid ClustersHybrid ConnectorsLicensesMeeting QualitiesOrganization ContactsOrganizationsPartner ManagementPartner Reports/TemplatesPartner TagsPeopleRecording ReportRecordingsReport TemplatesReportsResource Group MembershipsResource GroupsRolesSecurity Audit EventsSession TypesSettingsSpace ClassificationsTracking CodesWorkspace LocationsWorkspace Metrics
Webex Calling Beta
Overview
Guides
Integrations and AuthorizationMetadata and Samples
Webex Calling
OverviewSDKs and ToolsWhat's New
Guides
Integrations and AuthorizationProvisioning APIsMetadata and SamplesBackground Images
Reference
Call ControlsCall RoutingCall Settings For MeCalling Service SettingsClient Call SettingsConference ControlsConverged RecordingsDECT Devices SettingsDevice Call SettingsDevicesEmergency Services SettingsFeatures: Announcement PlaylistFeatures: Announcement RepositoryFeatures: Auto AttendantFeatures: Call ParkFeatures: Call PickupFeatures: Call QueueFeatures: Call RecordingFeatures: Customer Experience EssentialsFeatures: Hunt GroupFeatures: Operating ModesFeatures: Paging GroupFeatures: Single Number ReachLocation Call SettingsLocation Call Settings: Call HandlingLocation Call Settings: SchedulesLocation Call Settings: VoicemailLocationsNumbersPSTNPartner Reports/TemplatesPeopleRecording ReportReportsReports: Detailed Call HistorySend Activation EmailUser Call SettingsVirtual Line Call SettingsWorkspace Call SettingsWorkspaces
Webex for Broadworks
Overview
Guides
Integrations and AuthorizationDeveloper's Guide
Reference
BroadWorks Billing ReportsBroadWorks EnterprisesBroadWorks SubscribersBroadWorks Workspaces
Webex for Wholesale
Overview
Guides
Developer's Guide
Reference
Wholesale Billing ReportsWholesale Provisioning
Webex for UCM
Guides
Integrations and Authorization
Reference
UCM Profile
Contact Center
Overview
Reference
Data Sources
Customer Journey Data
Overview
Guides
Getting StartedFAQ
Devices
Overview
Guides
Devices
Reference
Device Call SettingsDevice ConfigurationsDevicesWorkspace LocationsWorkspace MetricsWorkspace PersonalizationWorkspacesxAPI
Directory Services
Reference
Domain ManagementIdentity Organization
Meetings
Overview
Guides
Integrations and AuthorizationWebhooksWebinar GuideMeeting Resource Guide
Reference
Meeting ChatsMeeting Closed CaptionsMeeting InviteesMeeting MessagesMeeting ParticipantsMeeting PollsMeeting PreferencesMeeting Q and AMeeting QualitiesMeeting TranscriptsMeetingsMeetings Summary ReportPeopleRecording ReportRecordingsSession TypesTracking CodesVideo MeshWebhooks
Messaging
Overview
Guides
BotsIntegrations and AuthorizationWebhooksButtons and Cards
Reference
Attachment ActionsEventsMembershipsMessagesPeopleRoom TabsRoomsTeam MembershipsTeamsWebhooks
SCIM 2
Overview
Reference
SCIM 2 BulkSCIM 2 GroupsSCIM 2 Users
Workspace Integrations
OverviewTechnical DetailsControl Hub Features
Webex Status API
Full API Reference
Admin Audit EventsAttachment ActionsAuthorizationsBroadWorks Billing ReportsBroadWorks EnterprisesBroadWorks SubscribersBroadWorks WorkspacesCall ControlsCall RoutingCall Settings For MeCalling Service SettingsClient Call SettingsConference ControlsConverged RecordingsDECT Devices SettingsData SourcesDevice Call SettingsDevice ConfigurationsDevicesDomain ManagementEmergency Services SettingsEventsFeatures: Announcement PlaylistFeatures: Announcement RepositoryFeatures: Auto AttendantFeatures: Call ParkFeatures: Call PickupFeatures: Call QueueFeatures: Call RecordingFeatures: Customer Experience EssentialsFeatures: Hunt GroupFeatures: Operating ModesFeatures: Paging GroupFeatures: Single Number ReachGroupsGuests ManagementHistorical AnalyticsHybrid ClustersHybrid ConnectorsIdentity OrganizationIssuesLicensesLocation Call SettingsLocation Call Settings: Call HandlingLocation Call Settings: SchedulesLocation Call Settings: VoicemailLocationsMeeting ChatsMeeting Closed CaptionsMeeting InviteesMeeting MessagesMeeting ParticipantsMeeting PollsMeeting PreferencesMeeting Q and AMeeting QualitiesMeeting TranscriptsMeetingsMeetings Summary ReportMembershipsMessagesNumbersOrganization ContactsOrganizationsPSTNPartner ManagementPartner Reports/TemplatesPartner TagsPeopleRecording ReportRecordingsReport TemplatesReportsReports: Detailed Call HistoryResource Group MembershipsResource GroupsRolesRoom TabsRoomsSCIM 2 BulkSCIM 2 GroupsSCIM 2 UsersSecurity Audit EventsSend Activation EmailSession TypesSettingsSiteSpace ClassificationsTeam MembershipsTeamsTracking CodesUCM ProfileUser Call SettingsVideo MeshVirtual Line Call SettingsWebhooksWholesale Billing ReportsWholesale ProvisioningWorkspace Call SettingsWorkspace LocationsWorkspace MetricsWorkspace PersonalizationWorkspacesxAPI
API Changelog
SDKs
Space Meetings Migration
Calling
Introduction
Platform
Web
IntroductionQuickstart
Basics
AuthorizationCore ConceptsCalls
Advanced Features
Call SettingsContactsSupplementary ServicesVoicemailBackground Noise Reduction
Kitchen Sink
Meetings
Introduction
Platform
Web
IntroductionQuickstart
Basics
AuthorizationJoin a MeetingMigration To Improved MeetingsPasswords & CaptchasUnified Space Meetings
Advanced Features
Advanced ControlsDialing In and OutStreams & EffectsVideo Resolution
Multistream
Multistream Comprehensive GuideMultistream Quickstart
Migrating SDK V2 to V3
iOSAndroidBrowserNode.jsClick to Call
Developer CommunityCertifications

SDKs

Web Calling SDK | Call Settings

This article explains the various call settings that are available in the Calling SDK.

The Calling SDK consists of various modules which are created at the time of its initialization--CallSettingsClient is one of those modules. Refer to the Getting Started documentation to understand how a calling instance is created and different modules are instantiated.

The CallSettingsClient lets you fetch and update user-specific settings for the following features:

  • Do not disturb (DND)
  • Call Forwarding
  • Voicemail
  • Call Waiting

anchorInstantiating the CallSettingsClient

anchor

To instantiate a new CallSettingsClient:

const callSettings = calling.callSettingsClient;

Developers have the option to select from multiple backends when working with the Calling SDK, including UCM, Broadworks, and WXCalling. Those backends share similar APIs and implementation methodologies, ensuring a consistent development experience. However, it's important to be aware that certain APIs are specific to particular backends, such as getCallForwardAlways, which is exclusive to the UCM backend.

anchorCallSettingResponse Object

anchor

All methods within callSettingsClient return a standardized response type known as the CallSettingResponse. This response type encompasses three key components: the status code, data, and message. The data component of this response object serves as a container for either the callSettings object or the error object, depending on whether the API call was successful or encountered an issue.

The callSettings object, present in the data field, contains a variety of data types, each specific to the API invoked. These data types are as follows:

  • ToggleSetting
  • CallForwardSetting
  • VoicemailSetting
  • CallForwardAlwaysSetting
CallSettingResponse Example
{
  statusCode: number;
  data: {
    callSetting?: ToggleSetting | CallForwardSetting | VoicemailSetting | CallForwardAlwaysSetting;
    error?: string;
  };
  message: string | null;
};

anchorDo Not Disturb (DND)

anchor

The DND feature allows users to temporarily disable notifications or incoming communication on their devices. This feature comprises two available methods: getDoNotDisturbSetting() and setDoNotDisturbSetting().

Fetch DND Status Method

This method retrieves the Do Not Disturb (DND) setting for a user. By default, DND is disabled for users. However, should a user choose to modify their DND setting, this method returns the updated value. The method returns a ToggleSetting object in the callSetting object of the response.

const response = await callSettings.getDoNotDisturbSetting();

Parameters--
ReturnsPromise<CallSettingResponse>
ToggleSetting Object

When the API response is successful, it includes a specific data structure called ToggleSetting within the callSettings object. The ToggleSetting object contains various attributes that provide information related to the Do Not Disturb (DND) setting.

The following table covers the attributes present in the ToggleSetting object:

NameDescriptionTypeRequired
enabledtrue if the Do Not Disturb feature is enabled.BooleanYes
ringSplashEnabledEnables a Ring Reminder to play a brief tone on a desktop phone when an incoming call is received.BooleanYes

Here's an example of a response for a successful getDoNotDisturbSetting() retrieval of the DND settings:

{
    "statusCode": 200,
    "data": {
        "callSetting": {
            "enabled": false,
            "ringSplashEnabled": false
        }
    },
    "message": "SUCCESS"
}
Set DND Status Method

The setDoNotDisturbSetting() method configures the Do Not Disturb (DND) status for a user. Using this method, you can let users adjust their DND status as needed. The method accepts a boolean parameter which, when to true, activates DND, and when set to false, deactivates DND.

const response = await callSettings.setDoNotDisturbSetting(true);

ParametersBoolean
ReturnsPromise<CallSettingResponse>

If method call is successful, it returns a new ToggleSetting object in the callSetting object of the response.

Here's an example of the response for the setDoNotDisturbSetting(flag) method:

{
    "statusCode": 204,
    "data": {
        "callSetting": {
            "enabled": false,
            "ringSplashEnabled": false
        }
    },
    "message": "SUCCESS"
}

anchorCall Forwarding

anchor

The Call Forwarding feature allows you to redirect incoming calls to a different phone number or extension, ensuring users never miss important calls. This feature comprises two methods getCallForwardSetting() and setCallForwardSetting().

Get Call Forwarding Settings Method

The getCallForwardSetting() method facilitates the retrieval of call-forwarding settings for a user. Within the Calling SDK, developers have the flexibility to configure call forwarding preferences, including settings for scenarios such as when the user is engaged in another call, when an incoming call remains unanswered, and even when the user wishes to forward all incoming calls.

Upon a successful method call, the response includes the CallForwardSetting in the callSetting object.

const response = await callSettings.getCallForwardSetting();

Parameters--
ReturnsPromise<CallSettingResponse>

Here's an example of the response for a successful getCallForwardSetting() method call:

{
  "statusCode": 200,
  "data": {
    "callSetting": {
      "callForwarding": {
        "always": {
          "enabled": false,
          "ringReminderEnabled": false,
          "destinationVoicemailEnabled": false
        },
        "busy": {
          "enabled": false,
          "destinationVoicemailEnabled": false
        },
        "noAnswer": {
          "enabled": false,
          "numberOfRings": 3,
          "systemMaxNumberOfRings": 20,
          "destinationVoicemailEnabled": false
        }
      },
      "businessContinuity": {
        "enabled": false,
        "destinationVoicemailEnabled": false
      }
    }
  },
  "message": "SUCCESS"
}
Get Call Forward Always Settings Method

The getCallForwardAlwaysSetting() method allows users to ensure that all incoming calls, regardless of their current status or availability, are automatically redirected to a designated destination. This API is designed for fetching the call forwarding always setting, with an added functionality to verify the call forwarding always setting for voicemail. In cases where call forwarding is configured to a specific destination, that destination takes precedence.

The method accepts a directory number for which you wish to retrieve the settings. On success, the response includes the CallForwardAlwaysSetting in the callSetting object.

const directoryNumber = '123456789';
const response = await callSettings.getCallForwardAlwaysSetting(directoryNumber);

Parametersstring
ReturnsPromise<CallSettingResponse>
CallForwardAlwaysSetting Object

The getCallForwardAlwaysSetting() method returns a CallForwardAlwaysSetting object in a callSetting object. The following table describes the attributes in the CallForwardAlwaysSetting object, followed by an example code block:

S.noNameDescriptionTypeRequired
1.enabled'Always' call forwarding is enabled/disabled.ObjectYes
2.ringReminderEnabledIf true, a brief tone will be played on the person's phone when a call has been forwarded.BooleanNo
3.destinationVoicemailEnabledIndicates the enabled or disabled state of sending incoming calls to voicemail when the destination is an internal phone number and that number has the voicemail service enabled.BooleanNo
4.destinationDestination for 'always' call forwardingStringNo
{
  statusCode: 204,
  data: {
    callSetting: {
      callForwarding: {
        enabled: false,
        destination: '',
        ringReminderEnabled: false,
        destinationVoicemailEnabled: false,
      },
    },
  },
  message: 'SUCCESS',
};
Set Call Forwarding Settings Method

This API configures call-forwarding settings for a specific user. Upon successful execution, it provides a CallForwardSetting object within the callSetting object. The CallForwardSetting object comprises individual objects for three scenarios, "Always", "Busy", and "No Answer". Developers can use this object to indicate their preferences for call forwarding in those specific situations. Additionally, the API supports business continuity by enabling users to forward calls even when they are not currently connected to any network.

const response = await callSettings.setCallForwardSetting(callForwardingSettings);

ParametersCallForwardSetting
ReturnsPromise<CallSettingResponse>
CallForwardSetting Object

The setCallForwarding() method accepts a CallForwardSetting object. The following table covers the attributes in the CallForwardSetting object:

S.noNameDescriptionTypeRequired
1.callForwardingSettings related to "Always", "Busy", and "No Answer" call forwarding.ObjectYes
1.1alwaysSettings for forwarding all incoming calls.ObjectYes
1.1.aenabled"Always" call forwarding is enabled/disabled.BooleanYes
1.1.bdestinationDestination for "Always" call forwarding.StringNo
1.1.cringReminderEnabledIf true, a brief tone will be played on the person's phone when a call has been forwarded.BooleanNo
1.1.ddestinationVoicemailEnabledIndicates the enabled or disabled state of sending incoming calls to voicemail when the destination is an internal phone number and that number has the voicemail service enabled.BooleanNo
1.2busySetting for forwarding incoming calls when a person is busy.ObjectYes
1.2.aenabled"Busy" call forwarding enabled/disabled.BooleanYes
1.2.bdestinationDestination for "Busy" call forwarding.StringNo
1.2.cdestinationVoicemailEnabledIndicates the enabled or disabled state of sending incoming calls to voicemail when the destination is an internal phone number and that number has the voicemail service enabled.BooleanNo
1.3noAnswerSettings for forwarding when the call is not answered.ObjectYes
1.3.aenabled"No Answer" call forwarding enabled/disabled.BooleanYes
1.3.bdestinationDestination for "No Answer" call forwarding.StringNo
1.3.cnumberOfRingsThe number of rings before the call will be forwarded if unanswered.NumberNo
1.3.dsystemMaxNumberOfRingsSystem-wide maximum number of rings allowed for numberOfRings setting.NumberNo
1.3.edestinationVoicemailEnabledIndicates the enabled or disabled state of sending incoming calls to voicemail when the destination is an internal phone number and that number has the voicemail service enabled.BooleanNo
2.businessContinuitySettings for sending calls to a destination of your choice if your phone is not connected to the network.ObjectYes
2.1enabledBusiness Continuity is enabled or disabled.BooleanYes
2.2destinationDestination for Business Continuity.StringNo
2.3destinationVoicemailEnabledIndicates the enabled or disabled state of sending incoming calls to the destination number's voicemail if the destination is an internal phone number and that number has the voicemail service enabled.BooleanNo

Here's an example of a CallForwardSetting object:

const callForwardingSettings = {
  callForwarding: {
    always: {
      enabled: false
    },
    busy: {
      enabled: false
    },
    noAnswer: {
      enabled: true,
      destination: '123123',
      numberOfRings: 3
    }
  },
  businessContinuity: {
    enabled: true,
    destination: '321321',
    destinationVoicemailEnabled: false
  }
};

Here's an example of a response for the setCallForwardingSetting() method:

{
  "statusCode": 204,
  "data": {
    "callSetting": {
      "callForwarding": {
        "always": {
          "enabled": false,
          "destination": "",
          "ringReminderEnabled": false,
          "destinationVoicemailEnabled": false
        },
        "busy": {
          "enabled": true,
          "destination": "9075551333",
          "destinationVoicemailEnabled": true
        },
        "noAnswer": {
          "enabled": false,
          "destination": "",
          "numberOfRings": 2,
          "systemMaxNumberOfRings": 20,
          "destinationVoicemailEnabled": false
        }
      },
      "businessContinuity": {
        "enabled": false,
        "destination": "",
        "destinationVoicemailEnabled": false
      }
    }
  },
  "message": "SUCCESS"
}

anchorVoicemail

anchor
Fetch Voicemail Settings Method

The getVoicemailSetting() method is used to retrieve the voicemail configuration settings for a user. If the method call is successful, it returns a VoicemailSetting object within a callSetting object.

const response = await callSettings.getVoicemailSetting();

Parameters--
ReturnsPromise<CallSettingResponse>

Here's an example of a response for a successful getVoicemailSetting() method call:

{
    "statusCode": 200,
    "data": {
        "callSetting": {
            "enabled": true,
            "sendAllCalls": {
                "enabled": false
            },
            "sendBusyCalls": {
                "enabled": true,
                "greeting": "DEFAULT",
                "greetingUploaded": false
            },
            "sendUnansweredCalls": {
                "enabled": true,
                "greeting": "DEFAULT",
                "greetingUploaded": false,
                "numberOfRings": 3,
                "systemMaxNumberOfRings": 20
            },
            "notifications": {
                "enabled": false
            },
            "transferToNumber": {
                "enabled": false
            },
            "emailCopyOfMessage": {
                "enabled": false
            },
            "messageStorage": {
                "mwiEnabled": true,
                "storageType": "INTERNAL",
                "externalEmail": "atlas.test.wxcwebrtc.user50+client5@example.com"
            },
            "faxMessage": {
                "enabled": false
            },
            "voiceMessageForwardingEnabled": true
        }
    },
    "message": "SUCCESS"
}
Set Voicemail Settings Method

The setVoicemailSetting() method lets you make choices regarding call handling: you can route callers to voicemail when a user is occupied, when a call goes unanswered, or choose to direct all incoming calls to voicemail. If the method call is successful it returns a VoicemailSetting object in the callSetting object.

const response = await callSettings.setVoicemailSetting(voicemailSetting);

ParametersVoicemailSetting
ReturnsPromise<CallSettingResponse>
VoicemailSetting Object

setVoicemailSetting() accepts a VoicemailSetting object. The following table covers the attributes in the VoicemailSetting object:

S.noNameDescriptionTypeRequired
1.enabledVoicemail is enabled or disabled.BooleanYes
2.sendAllCallsSettings for sending all calls to voicemail.ObjectYes
2. aenabledAll calls will be sent to voicemail.BooleanYes
3.sendBusyCallsSettings for sending calls to voicemail when the line is busy.ObjectYes
3. aenabledCalls will be sent to voicemail when busy.BooleanYes
3. bgreetingType of greeting to be played, 'default' or 'custom'.StringNo
3. cgreetingUploadedTrue if a custom greeting is uploaded.BooleanNo
4.sendUnansweredCallsSettings for sending calls to voicemail when the line is busy.ObjectYes
4. aenabledUnanswered call sent to voicemail is enabled or disabled.BooleanYes
4. bgreetingType of greeting to be played, 'default' or 'custom'.StringNo
4. cgreetingUploadedTrue if a custom greeting is uploaded.BooleanNo
4. dnumberOfRingsThe number of rings before an unanswered call will be sent to voicemail.NumberYes
4. esystemMaxNumberOfRingsSystem-wide maximum number of rings allowed for the numberOfRings setting.NumberNo
5.notificationsSettings for notifications when there are any new voicemails.ObjectYes
5. aenabledNotifications for voicemails will be sent.BooleanYes
5. bdestinationEmail address to which the notification will be sent.StringNo
6.transferToNumberSettings for voicemail caller to transfer to a different number by pressing zero (0).ObjectNo
6. aenabledEnable or disable voicemail caller transfer to a destination by pressing zero (0).BooleanNo
6. bdestinationThe number voicemail caller will be transferred to when they press zero (0).StringNo
7.emailCopyOfMessageSettings for sending a copy of new voicemail message audio via email.ObjectYes
7. aenabledWhen true copy of the new voicemail message audio will be sent to the designated email.BooleanYes
7. bemailIdEmail address to which the new voicemail audio will be sent.StringNo
8.messageStorageSettings for storage for new voicemails.ObjectYes
8. amwiEnabledWhen true desktop phone will indicate there are new voicemails.BooleanYes
8. bstorageTypeDesignates which type of voicemail message storage is used, 'internal' or 'external'.StringYes
8. cexternalEmailExternal email address to which the new voicemail audio will be sent.StringNo
9.faxMessageSettings for FAX messages for new voicemails.ObjectNo
9. aenabledWhen true FAX messages for new voicemails will be sent to the designated number.BooleanNo
9. bphoneNumberDesignates phone number for FAX.StringNo
9. cextensionDesignates optional extension for FAX.StringNo
10.voiceMessageForwardingEnabledIf true voicemail forwarding is enabled.BooleanNo

Here's an example of a configured VoiceMailSetting object along with a call to the setVoicemailSetting() method:

const voicemailSetting = {
  enabled: true,
  sendAllCalls: {
    enabled: false
  },
  sendBusyCalls: {
    enabled: true
  },
  sendUnansweredCalls: {
    enabled: true,
    numberOfRings: 3
  },
  notifications: {
    enabled: true,
    destination: dummyEmail
  },
  emailCopyOfMessage: {
    enabled: true,
    emailId: dummyEmail
  },
  messageStorage: {
    mwiEnabled: true,
    storageType: 'INTERNAL',
    externalEmail: dummyEmail
  },
  voiceMessageForwardingEnabled: false
};

const response = await callSettingsClient.setVoicemailSetting(voicemailSetting);

Here's an example of a response for a successful setVoicemailSetting() call:

{
    "statusCode": 204,
    "data": {
        "callSetting": {
            "enabled": true,
            "sendAllCalls": {
                "enabled": false
            },
            "sendBusyCalls": {
                "enabled": true
            },
            "sendUnansweredCalls": {
                "enabled": false
            },
            "notifications": {
                "enabled": false
            },
            "emailCopyOfMessage": {
                "enabled": false
            },
            "messageStorage": {
                "mwiEnabled": true
            }
        }
    },
    "message": "SUCCESS"
}

anchorCall Waiting

anchor
Get Call Waiting Settings Method

Call waiting allows users to receive incoming calls while they are already on an active call. When call waiting is enabled, the user is notified of an incoming call and given the option to put the current call on hold temporarily to answer the new call. The getCallWaitingSetting() method retrieves the call waiting settings for a user.

const response = await callSettings.getCallWaitingSetting();

Parameters--
ReturnsPromise<CallSettingResponse>

Here's an example of a response for a successful getCallWaitingSetting() method call:

{
    "statusCode": 200,
    "data": {
        "callSetting": {
            "enabled": true
        }
    },
    "message": "SUCCESS"
}
In This Article
  • Instantiating the CallSettingsClient
  • CallSettingResponse Object
  • Do Not Disturb (DND)
  • Call Forwarding
  • Voicemail
  • Call Waiting

Connect

Support

Developer Community

Developer Events

Contact Sales

Handy Links

Webex Ambassadors

Webex App Hub

Resources

Open Source Bot Starter Kits

Download Webex

DevNet Learning Labs

Terms of Service

Privacy Policy

Cookie Policy

Trademarks

© 2025 Cisco and/or its affiliates. All rights reserved.