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

Webex Calling

Conferences and Transfers

This article offers a deep dive into the sophisticated features that allow for the expansion and redirection of calls within a network.

It explores the mechanisms behind adding participants to an ongoing call, facilitating assisted transfers with the involvement of a third party, and executing direct transfers for immediate call redirection. Whether it's merging multiple calls into a conference or deftly transferring a call to another participant, these features ensure that conversations can evolve and adapt without missing a beat.

anchorAdd a Participant to a Call

anchor

To add a participant to a call:

  1. Hold the current active call:

    oldCall?.holdCall(putOnHold: true)
    
  2. Initiate a call with the new participant:

    Prompt the user with a dial pad to capture the new participant's number and initiate a new call that can be merged later.

    call.startAssociatedCall(dialNumber: "+1800123457", associationType: .Merge, isAudioCall: true, completionHandler: { [weak self] result in
        switch result {
        case .success(let call):
            // Call association is successful.
            let newCall: Call? = call
            // Store this call object.
        case .failure(let error):
            // Call association failed.
        }
    })
    
  3. Merge the old call with the new one:

    newCall.mergeCall(targetCallId: oldCall.callId)
    

It is possible to add a participant to one call while keeping another call on hold, even when two calls are active.

anchorMake an Assisted Transfer

anchor

In an assisted transfer, the initiator (User A) connects with a third party (User C) and transfers the call so that the original party (User B) and the third party (User C) remain connected, while the initiator drops out after establishing the connection.

  1. Hold the current active call:

    oldCall?.holdCall(putOnHold: true)
    
  2. Start a call with the new participant for the transfer:

    Prompt the user with a dial pad to capture the new participant's number and initiate a new call that can be transferred.

    call.startAssociatedCall(dialNumber: "+1800123457", associationType: .Transfer, isAudioCall: true, completionHandler: { [weak self] result in
        switch result {
        case .success(let call):
            // Call association is successful.
            let newCall: Call? = call
            // Store this call object.
        case .failure(let error):
            // Call association failed.
        }
    })
    
  3. Transfer the call to the new participant:

    oldCall.transferCall(toCallId: newCall.callId)
    

Assisted transfers can be performed with two active calls, allowing a user to transfer one call while resuming another call in the queue.

anchorMake a Direct Transfer

anchor

To transfer a call directly to another participant without establishing a call:

call?.directTransferCall(toPhoneNumber: phoneNumber, completionHandler: { err in
    if err == nil {
        // Direct transfer is successful.
    }
    else
    {
        // Direct transfer failed.
    }
})

Direct transfers are immediate and do not require the new call to be answered before completing the transfer.

In This Article
  • Add a Participant to a Call
  • Make an Assisted Transfer
  • Make a Direct Transfer

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.