CreateBlogSupport
Log inSign up
Home
Webex Calling
  • Guides
  • Webex Calling Beta
  • Webex Cloud Calling
  • Broadworks Calling
  • UCM Calling
  • AI Assistant for Developers
  • Troubleshoot the API
  • Beta Program
  • Webex Status API

Webex Calling

Additional Methods

This article describes additional methods available in the Webex Calling iOS SDK.

The Mobile SDK supports a maximum of two concurrent incoming calls. A third incoming call is automatically ignored or silently dismissed. Only one call can be in a resumed state at any time.

anchorSign In to Phone Services

anchor

To connect to Webex calling phone services:

webex.phone.connectPhoneServices(completionHandler: { result in
    switch result {
    case .success:
        // PhoneServices connected successfully.
    case .failure:
        // PhoneServices connection failed.
    }
})

The phone service status updates are provided via the onUCServerConnectionStateChanged callback.

anchorSign Out of Phone Services

anchor

To disconnect from Webex calling phone services:

webex.phone.disconnectPhoneServices(completionHandler: { result in
    switch result {
    case .success:
        // PhoneServices disconnected successfully.
    case .failure:
        // PhoneServices disconnection failure.
    }
})

The phone service status updates are provided via the onUCServerConnectionStateChanged callback.

anchorCheck the User Calling Type

anchor

The SDK supports various calling types, such as CUCM and WebexCalling. A user is associated with one calling type at most. Use webex.phone.getCallingType() method to check the user's calling type:

if(webex.phone.getCallingType() == Phone.CallingType.WebexCalling){
    // Indicates Webex Calling is supported for the signed-in user.
}

anchorExternal Tracking ID Retrieval

anchor

To obtain an externalTrackingId for call logging and metrics:

call.externalTrackingId
// Use the trackingId after the onInfoChanged callback has fired.

anchorRetrieve Video Enabled Status

anchor

The isVideoEnabled() method determines whether video calling is enabled for a user in the Control Hub, affecting the availability of local and remote video features for calls. It is applicable to Locus, CUCM, WebexCalling, and WebexForBroadworks calls only. This setting does not influence video availability for meetings. Available since v3.9.0:

let isVideoEnabled = Call.isVideoEnabled
// True if video is enabled, false otherwise.

anchorBandwidth Extension / Speech Enhancement

anchor

The Bandwidth Extension Support feature allows developers to enhance receiver-side audio quality during WebexCalling and CUCM calls. These APIs are available from SDK v3.14 onwards.

Phone Class APIs (Before a Call)
Enable Legacy Receiver Noise Removal
// Enable legacy receiver noise removal
Webex.phone.useLegacyReceiverNoiseRemoval(useLegacy: true)

// Disable legacy receiver noise removal to use new speech enhancement
Webex.phone.useLegacyReceiverNoiseRemoval(useLegacy: false)
Check if Speech Enhancement Is Enabled by Default
// Check if speech enhancement is enabled by default
let isEnabled = Webex.phone.isReceiverSpeechEnhancementEnabled
Enable/Disable Speech Enhancement by Default
// Enable speech enhancement by default for all calls
Webex.phone.enableReceiverSpeechEnhancement(shouldEnable: true) { result in
    switch result {
    case .success:
        print("Speech enhancement enabled by default")
    case .failure(let error):
        print("Failed to enable speech enhancement: \(error)")
    }
}

// Disable speech enhancement by default for all calls
Webex.phone.enableReceiverSpeechEnhancement(shouldEnable: false) { result in
    switch result {
    case .success:
        print("Speech enhancement disabled by default")
    case .failure(let error):
        print("Failed to disable speech enhancement: \(error)")
    }
}
Call Class APIs (During a Call)
Check if Speech Enhancement Is Enabled for the Current Call
// Check if speech enhancement is enabled for the current call
let isEnabled = Webex.call.isReceiverSpeechEnhancementEnabled
Enable/Disable Speech Enhancement for the Current Call
// Enable speech enhancement for the current call
Webex.call.enableReceiverSpeechEnhancement(shouldEnable: true) { result in
    switch result {
    case .success:
        print("Speech enhancement enabled for the call")
    case .failure(let error):
        print("Failed to enable speech enhancement: \(error)")
    }
}

// Disable speech enhancement for the current call
Webex.call.enableReceiverSpeechEnhancement(shouldEnable: false) { result in
    switch result {
    case .success:
        print("Speech enhancement disabled for the call")
    case .failure(let error):
        print("Failed to disable speech enhancement: \(error)")
    }
}
In This Article
  • Sign In to Phone Services
  • Sign Out of Phone Services
  • Check the User Calling Type
  • External Tracking ID Retrieval
  • Retrieve Video Enabled Status
  • Bandwidth Extension / Speech Enhancement

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

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