SDK for generating VoIP calls to Voxbone's network direct from an iOS app
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


(supports iOS 9+, Android support coming soon!)

Get Started in 4 Easy Steps

1. Get your API keys

Enable WebRTC on Voxbone portal and setup your API keys. Click here to follow the tutorial. Not a Voxbone customer? Register here.

2. Include our SDK in your project

Make sure your app and end user is trusted to make the call using our secure authentication mechanism using your API keys. You can download it here.

3. Prepare your Data for the call

Prepare for the call and specify caller data such as caller id, custom context data to deliver superior customer service.

4. Make the call!

Initiate the call and connect your users to your business with voice through the Voxbone cloud with a single tap.

What you will need

  • iOS app using Swift 3
  • Xcode 8.0 or later
  • iOS 9 or later
  • CocoaPods
  • Voxbone Account (for WebRTC API credentials, refer to documentation here to set up)
  • iOS SDK credentials (contact us for access)

Installation Steps:

To integrate VoxboneSDK into your Xcode project using CocoaPods, specify it in your Podfile:

source ''
platform :ios, '9.0'

target '<Your Target Name>' do
    pod 'VoxboneSDK'

Then, run the following command:

pod install

Getting Started:


import VoxboneSDK

Log Level


Shared instance & delegate

var voxbone: Voxbone = Voxbone.shared
voxbone.setVoxboneDelegate(delegate: self)

Connect action


Login action

voxbone.loginToVoxbone(withUsername: "your username", andPassword: "your password", andUser: "your user", andAppName: "your app name", andSecret: "your secret")

Start Call action

if let callId = voxbone.createVoxboneCall("phone number") {
        voxbone.startCall(callId, withHeaders: nil)

End Call action

if callId != nil {
        voxbone.disconnectCall(callId!, withHeaders: nil)

Sending DTMF

  • callId : id of previously created call
  • digit : Digit can be 0-9 for 0-9, 10 for * and 11 for #
if callId != nil {
            voxbone.sendDTMF(callId, digit: digit)

Using Speaker

  • value : boolean. True if speaker is used as audio output

Getting User Feedback

You can ask users anything at the end of the call (i.e., How was the quality of your call? Were our agents helpful? Would you like to learn more about X product?)

  • rating : Number from 1-5, as in stars
  • comments : Free text field to get feedback
public func postRatingToVoxbone(_ rating: NSNumber, andComments comments: String, andResponse ratingResponse: ((_ result: String?, _ error: Error?) -> Void)?) {
     voxbone.postRatingToVoxbone(callId!, withPhone: phoneNumber!, andRating: rating, andComments: comments, andResponse: { (result: String?, error: Error?) in
            self.callId = nil
            self.phoneNumber = nil
            ratingResponse?(result, error)