# Get started with the Contact Center SDK for iOS The Contact Center SDK for iOS lets users engage with agents directly through video and chat without leaving your app. ## Requirements - A physical 64-bit iOS device (iPhone or iPad) with iOS 13.0+ - A Contact Center license and an [entry ID](https://support.zoom.us/hc/en-us/articles/4470447059597) (used to start a video or chat flow). - Since the Contact Center SDK is built on our Video SDK, your Contact Center SDK needs to be at least version **4.11.0** and will need to be updated at least every nine months. > Bitcode is not supported. > As of version 1.4.0, Contact Center SDK for iOS does not support 32-bit devices. ## Download the Contact Center SDK for iOS If you **don't already have at least one registered app**, follow these steps to create an app and download the SDK files.
  1. Sign in to your developer account on the Zoom App Marketplace.
  2. On the **Created apps** page, select the blue plus sign in the upper left corner next to the word **Developer**.
  3. Select **Build App > General app**, and then select **Create**.
  4. Go to **Features** and select **Embed**.
  5. On the **Embed** page, enable **Contact Center SDK**.
  6. Under the **Contact Center SDK** section, configure the settings as appropriate for your app.
  7. To download the SDK files, select the platform **iOS**. This page displays available SDK versions for the selected platform, along with links to their corresponding release notes.
  8. Finally, select the **Download** button.
If you **already have at least one registered app**, follow these steps to download the SDK files using your existing app.
  1. Sign in to your developer account on the Zoom App Marketplace.
  2. On the **Created Apps** page, select your SDK app to open its configuration pages.
  3. Go to **Features** and select **Embed**.
  4. On the **Embed** page, go to the **Contact Center SDK** section.
  5. To download the SDK files, select the platform **iOS**. This page displays available SDK versions for the selected platform, along with links to their corresponding release notes.
  6. Finally, select the **Download** button.
## Install Drag these files and folders into your project. - `ZoomCCSDK.framework` - `ZoomVideoSDK.framework` - `ZoomCCSDKResources.bundle` - `CptShare.xcframework` - `ZoomVideoSDKScreenShare.xcframework` (Optional. Add if you want to offer mobile screen sharing.) - `zm_annoter_dynamic.xcframework` (Optional. Add if you want to support annotation functions during screen sharing.) ## Set up Follow these steps to set up the project. - [Requirements](#requirements) - [Download](#download) - [Install](#install) - [Set up](#set-up) - [Import the head file](#import-the-head-file) - [Set up the Contact Center SDK context](#set-up-the-contact-center-sdk-context) - [Use background modes in meetings](#use-background-modes-in-meetings) ### Import the head file ```objectivec #import ``` ```objectivec #import // Prepare accounts and variables #define APP_GROUPID @"<#Your app group id#>" #define APP_DEVICE_SHARE_BUNDLE_ID @"<#Your app share extension bundle id#>" #define APP_CHAT_ENTRY_ID @"<#Your app chat entry id#>" #define APP_VIDEO_ENTRY_ID @"<#Your app video entry id#>" #define APP_USR_NAME @"<#Your app user name#>" ``` ```swift let APP_GROUPID = "[#Your App group id#]" let APP_DEVICE_SHARE_BUNDLE_ID = "[#Your App share screen extension bundle id#]" let APP_CHAT_ENTRY_ID = "[#Your App chat entry id#]" let APP_VIDEO_ENTRY_ID = "[#Your App video entry id#]" let APP_USER_NAME = "[#Your App user name#]" ``` ### Set up the Contact Center SDK context ```objectivec /// set up the ZoomCCSDK context - (void)configCCSDKContext { ZoomCCContext *userContext = [[ZoomCCContext alloc] init]; userContext.cacheFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; userContext.appGroupID = APP_GROUPID; userContext.deviceShareBundleID = APP_DEVICE_SHARE_BUNDLE_ID; userContext.userName = APP_USR_NAME; // This is the default domain type. If user's account entryId is registered in the Europe cluster, set the domainType should be set to ZoomCCSDKDomainType_EU01. userContext.domainType = ZoomCCSDKDomainType_US01; [[ZoomCCInterface sharedInstance] setContext:userContext]; } ``` ```swift /// set up the ZoomCCSDK context func configCCSDKContext() { let userContext = ZoomCCContext.init() userContext.cacheFolder = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! userContext.appGroupID = APP_GROUPID userContext.deviceShareBundleID = APP_DEVICE_SHARE_BUNDLE_ID userContext.userName = APP_USER_NAME // This is the default domain type. If user's account entryId is registered in the Europe cluster, set the domainType to ZoomCCSDKDomainType_EU01. userContext.domainType = .US01 ZoomCCInterface.sharedInstance().context = userContext } ``` ## Use background modes in meetings If **Background Modes** is added and the **Audio, AirPlay, and Picture in Picture** option is on, users can stay in meetings when the app goes to the background or the iOS device exits to the lock screen. 1. In Xcode, open your project and go to **Targets**, then go to the **Signing Capabilities** tab. 2. Press the **Add Capability** button. Under Background Modes, check the options **Audio, AirPlay, and Picture in Picture** and **Voice over IP**.