# Tencent RTC Call — iOS > Call documentation for iOS platform. ## UIKit ### Get Started - [Run the Demo](https://pre.trtc.io/document/60416.md): The iOS Quickstart Guide for the audio and video call Demo provides step-by-step instructions to set up the environment, activate the service, download and configure the demo, and perform login and call operations. Designed for developers using iOS devices with Xcode and CocoaPods, this guide enables running a complete audio and video call experience within minutes while addressing common issues such as signature errors and purchase prompts. - [Integration](https://pre.trtc.io/document/50992.md): The TUICallKit iOS SDK guide provides step-by-step instructions for developers to quickly integrate audio and video call features into their iOS apps. It covers environment setup, service activation with SDKAppID and SecretKey, component installation via CocoaPods, project permissions configuration, user login, and call handling. This guide enables iOS developers to implement a complete audio and video call interface efficiently on Apple devices running iOS 13.0 or later. ### Basic Features - [UserSig Authentication](https://pre.trtc.io/document/35166.md): This guide explains how to calculate UserSig, a security signature for Tencent-RTC services, during the debugging phase. It covers obtaining SDKAppID and SDKSecretKey from the Tencent-RTC console and generating UserSig using client sample code on multiple platforms including Android, iOS, Web, Windows, Flutter, and Mac. The steps ensure secure authentication for developers testing Tencent-RTC SDKs before official deployment. - [In-call Chat](https://pre.trtc.io/document/66906.md): The Chat SDK offers multi-platform chat APIs and UI components to quickly build chat applications on iOS. This guide covers the steps to activate audio and video call services and integrate TUICallKit, enabling seamless audio and video calling features with minimal code. Key steps include service activation in the chat console and adding TUICallKit to your project via CocoaPods. - [UI Customization](https://pre.trtc.io/document/50996.md) - [Group Calls](https://pre.trtc.io/document/59837.md): TUICallKit SDK offers group call capabilities for Android, iOS, and Flutter platforms. This quickstart guide helps developers initiate multiplayer calls and join existing group calls by demonstrating the necessary API calls and usage examples in Kotlin, Java, Swift, Objective-C, and Dart. Key steps include creating a call with user lists and joining calls via call IDs to enable seamless multiplayer audio communication. - [APNs](https://pre.trtc.io/document/54923.md): TUICallKit components provide an SDK for implementing offline push notifications on iOS through the TIMPush plugin. This guide helps developers integrate offline push in their apps by detailing steps such as activating remote push, generating Apple Push Notification service certificates, uploading certificates to the Tencent RTC console, configuring project settings and push parameters, and enabling offline push calls. The TIMPush plugin supports fast integration, data analytics, targeted push, and cross-platform frameworks like uni-app and Flutter. - [VoIP (Apple CallKit)](https://pre.trtc.io/document/51000.md): The VoIP Push integration guide for iOS using Apple CallKit and PushKit frameworks details how to enable system-level VoIP call notifications. This quickstart covers applying for a VoIP Push certificate, uploading it to the Chat Console, configuring your project, and integrating the TUICallKitVoIPExtension component to enable reliable VoIP call notifications on iOS devices. - [VoIP (Apple LiveCommunicationKit)](https://pre.trtc.io/document/72208.md): TUICallKit VoIP Push SDK provides iOS developers with two methods to integrate VoIP push notifications using the TUIVoIPExtension/LiveCommunicationKit plugin or self-integration. This guide covers activating the TIMPush service, applying for VoIP Push certificates on Apple Developer Center, vendor configuration, and completing project setup to enable reliable VoIP call notifications on iOS 17.4 and above. Key steps include certificate application, uploading to IM Console, and integrating the TUIVoIPExtension component. - [Switch Bluetooth Headset](https://pre.trtc.io/document/72205.md): The Switch Bluetooth Headset feature in TUICallKit SDK enables users to select audio output devices including speaker, earpiece, and Bluetooth headphones on iOS. It uses the Apple AVRoutePickerView component to manage audio route switching when Bluetooth headphones are connected. This feature is designed for iOS users who need flexible audio device control during calls. - [Configuring Nicknames and Avatars](https://pre.trtc.io/document/59834.md): The TUICallKit SDK guide explains how developers can set and update user nicknames and avatars across Android, iOS, Flutter, Web, and uni-app platforms. It provides step-by-step API usage instructions to customize user profile information, including handling potential update delays during calls between non-friend users due to privacy settings. - [Floating Window](https://pre.trtc.io/document/59841.md): TUICallKit SDK enables Android, iOS, and Flutter developers to integrate the Floating Window feature, allowing users to minimize voice and video call interfaces into a floating window. This guide provides step-by-step instructions to activate the floating window button using the enableFloatWindow method during TUICallKit initialization, enhancing user experience during calls. - [Custom Ringtones](https://pre.trtc.io/document/59846.md): TUICallKit SDK for iOS enables developers to customize incoming call ringtones by replacing audio files or using provided interfaces. This guide explains how to set the application ringtone, enable mute mode, and configure offline push ringtones with step-by-step instructions and code samples in Swift and Objective-C. It helps developers personalize call alerts and manage notification sounds effectively on iOS devices. - [Call State Monitoring](https://pre.trtc.io/document/59851.md): TUICallKit SDK offers call status and member update callback APIs for Android, iOS, and Flutter platforms. These APIs enable developers to monitor key call lifecycle events and participant actions in real-time, such as call start, end, user join, leave, invite, and reject. Proper observer registration is essential, especially on Android, to ensure callback persistence throughout the call lifecycle. - [Localization](https://pre.trtc.io/document/63263.md): TUICallKit iOS SDK guide explains how to switch supported languages such as Simplified Chinese, English, Japanese, and Arabic, and how to add new language packs like Spanish. It covers source code integration steps, modifying language resource files, and updating dependencies to enable multilingual support in your application. - [Server-initiated Calls](https://pre.trtc.io/document/71845.md): Tencent RTC provides a server-side SDK and API guide to initiate audio and video calls and input uplink media streams. This quickstart explains how to send HTTPS POST requests to start calls with parameters like SDKAppID, user identifier, and call details. It also covers pushing online media streams into rooms using the stream push API, detailing differences in RoomIdType parameters for server-initiated calls and media input. This guide is intended for developers integrating server-side call control and media streaming capabilities. - [Multi-device Login](https://pre.trtc.io/document/78558.md): TUICallKit Audio and Video Call SDK enables multi-device login, allowing users to log in on multiple devices simultaneously with the same UserID. This feature is designed for scenarios where users need seamless call reception across devices such as phones and PCs. To enable multi-device login, developers must integrate TUICallKit and call the enableMultiDeviceAbility API after login. This guide provides step-by-step instructions to activate and use multi-device login, ensuring all devices ring on incoming calls and only one device connects when answered. ### Advanced Features - [Virtual Background](https://pre.trtc.io/document/60491.md): TUICallKit Video Call SDK for iOS enables users to set blurry or image virtual backgrounds during video calls to protect privacy and enhance interaction. This guide covers preparation steps including service activation, model file setup, and SDK version matching, followed by instructions to enable blurry backgrounds and set image backgrounds with code examples. - [AI Noise Suppression](https://pre.trtc.io/document/60481.md): AI Noise Suppression is an advanced noise reduction SDK developed from Tencent Tianlai Laboratory's AI algorithms. It is designed for developers and users seeking to improve audio clarity by intelligently detecting and removing noise interference in transmitted signals. Integrated within TUICallKit, this technology ensures clear and stable sound across diverse environments such as offices, internet cafes, malls, and outdoor settings. Users can experience its effects online through the Tencent RTC Demo, with the feature enabled by default for seamless high-quality noise reduction. - [Cloud Recording](https://pre.trtc.io/document/51001.md): TUICallKit Call Recording is a cloud-based SDK feature designed for automatic recording of audio and video calls. It supports full-call recording with zero-code integration and automatic lifecycle management, making it ideal for industries requiring call archiving, compliance auditing, and playback. This guide explains how to enable cloud recording globally or for specific calls, including configuration steps and code examples for Android and iOS platforms. ### Client APIs - [API Reference](https://pre.trtc.io/document/51010.md): TUICallKit and TUICallEngine are audio and video call SDK components provided by Tencent RTC. TUICallKit includes UI elements for rapid development of call applications, while TUICallEngine offers customizable call functionalities without UI. The APIs enable developers to manage calls, control media devices, handle user profiles, and monitor call events via TUICallObserver callbacks. Key data types such as call media type, role, status, and network quality are also defined to support comprehensive call management. - [TUICallKit](https://pre.trtc.io/document/51011.md): TUICallKit is an audio/video call SDK with integrated UI components designed for developers to quickly build applications similar to WeChat. It provides APIs for creating instances, setting user profiles, initiating and joining calls, and customizing call features such as mute mode, floating windows, virtual backgrounds, and screen orientation. This reference details each API method, its parameters, and usage to facilitate seamless integration and control of real-time communication functions. - [TUICallObserver](https://pre.trtc.io/document/51013.md): TUICallObserver is the callback class of TUICallEngine, providing an API to listen for real-time audio and video call events. It is designed for developers integrating Tencent RTC to handle call lifecycle events, user actions, error notifications, and network quality changes. The API includes callbacks such as onCallReceived, onCallBegin, onCallEnd, onUserJoin, onUserLeave, and onError, enabling comprehensive call event management on iOS and other supported platforms. - [Type Definitions](https://pre.trtc.io/document/54902.md): The TUICallDefine and TUICommonDefine type definitions provide structured data types and enumerations for Tencent RTC Call SDK on iOS. These definitions cover call parameters, offline push vendor configurations, video rendering and encoding settings, network quality information, and call status enums. This reference is essential for developers implementing real-time communication features with detailed control over call behavior and push notifications. - [TUICallEngine](https://pre.trtc.io/document/51012.md): TUICallEngine is an audio and video call SDK component that excludes UI elements, enabling developers to customize call functionalities beyond TUICallKit. It provides comprehensive APIs for managing call sessions, user interactions, media control, and advanced features such as multi-device login and video rendering parameters. This reference details the methods available to create, initialize, and control audio/video calls within applications using Tencent RTC technology. ### Solutions - [WhatsApp Clone](https://pre.trtc.io/document/64301.md): WhatsApp Clone is a cross-platform instant messaging project that replicates WhatsApp's chat and high-quality audio/video call capabilities using Tencent's ChatUIkit and CallKit. Designed for developers targeting iOS, Android, Web, and Flutter, it offers secure, efficient communication with features such as group management, AI-powered noise cancellation, and global deployment compliant with GDPR. This overview introduces its core functionalities and software management tools. ### FAQ - [General](https://pre.trtc.io/document/53565.md): TUICallKit FAQ provides detailed explanations and solutions for common voice and video call errors such as package subscription issues, invalid UserIDs, inviteID errors, and region restrictions. This guide helps developers and users across iOS, Android, Flutter, Web, and Mini Programs platforms troubleshoot call failures, obtain call room numbers, and manage version compatibility in integrated TUIChat scenarios. - [iOS](https://pre.trtc.io/document/51023.md): TUICallKit for iOS is an audio and video call SDK that enables developers to integrate calling capabilities into their applications. This FAQ page helps iOS developers troubleshoot common problems including package activation errors, modifying source code, Xcode 15 compiler issues, conflicts with Tencent Cloud audio and video libraries, background operation support, and viewing TRTC logs. It provides step-by-step guidance to resolve these issues and optimize TUICallKit integration. - [Error Codes](https://pre.trtc.io/document/54901.md): Tencent RTC provides a comprehensive error code reference for audio and video call issues encountered during real-time communication. This guide helps developers identify and resolve common problems related to permissions, device access, SDK versions, signaling failures, and package support across TUICallDefine, Chat SDK, TRTC SDK, and CallKit Server. It is essential for ensuring smooth integration and operation of Tencent Cloud's real-time communication services. ## Core SDK ### Get Started - [Making Your First Call](https://pre.trtc.io/document/78013.md): AtomicXCore SDK is an audio and video calling SDK designed for iOS developers to integrate multi-party calling features. This quickstart guide walks through activating the service, integrating the SDK via CocoaPods, initializing and logging in users, and implementing call functions such as creating call interfaces, managing permissions, and controlling calls. Key steps include setting up CallStore, CallCoreView, and DeviceStore modules to enable seamless call experiences. - [Answering Your First Call](https://pre.trtc.io/document/78012.md): The AtomicXCore SDK quickstart guide provides step-by-step instructions for iOS developers to implement the answer call feature. It covers activating the service, integrating the SDK via CocoaPods, initializing CallStore, logging in users, and creating a call screen with controls for answering and rejecting calls. The guide leverages core modules like CallCoreView for UI rendering, CallStore for managing call states, and DeviceStore for controlling audio/video devices, enabling multi-party audio/video call scenarios. - [Integration Offline Push](https://pre.trtc.io/document/78014.md): This guide provides a step-by-step quickstart for integrating VoIP Push functionality in iOS apps using the TIMPush service. It covers prerequisites such as activating the TIMPush service and applying for a dedicated VoIP Push certificate through the Apple Developer portal. The guide details configuring project capabilities, adding dependencies, initializing PushKit, managing VoIP tokens, and handling incoming call notifications. Designed for apps using LiveCommunicationKit on iOS 17.4 or later, it enables native call experiences with full-screen incoming call interfaces even when the app is terminated or the device is locked. ### Client APIS - [CallStore](https://pre.trtc.io/document/78020.md): CallStore is an SDK component that enables real-time audio and video call interactions between users. It provides a full set of APIs to manage call lifecycle events such as initiating, answering, rejecting, and ending calls, as well as handling group calls and call history. The API supports event-driven updates and real-time state subscriptions to facilitate seamless UI integration and call management within applications. - [CallCoreView](https://pre.trtc.io/document/81727.md): CallCoreView is a key SDK component for managing call interfaces, offering multi-layout switching, call waiting animations, status visualization, and user personalization by mapping participant avatars. Designed for developers integrating real-time audio and video calls, it enables flexible UI configurations through APIs for layout templates, volume and network quality icons, and avatar settings. This component works in conjunction with CallStore to ensure accurate call state updates and display. ### FAQs - [All Platform](https://pre.trtc.io/document/53565.md): TUICallKit FAQ provides detailed explanations and solutions for common voice and video call errors such as package subscription issues, invalid UserIDs, inviteID errors, and region restrictions. This guide helps developers and users across iOS, Android, Flutter, Web, and Mini Programs platforms troubleshoot call failures, obtain call room numbers, and manage version compatibility in integrated TUIChat scenarios. - [iOS](https://pre.trtc.io/document/51023.md): TUICallKit for iOS is an audio and video call SDK that enables developers to integrate calling capabilities into their applications. This FAQ page helps iOS developers troubleshoot common problems including package activation errors, modifying source code, Xcode 15 compiler issues, conflicts with Tencent Cloud audio and video libraries, background operation support, and viewing TRTC logs. It provides step-by-step guidance to resolve these issues and optimize TUICallKit integration. - [ErrorCode](https://pre.trtc.io/document/54901.md): Tencent RTC provides a comprehensive error code reference for audio and video call issues encountered during real-time communication. This guide helps developers identify and resolve common problems related to permissions, device access, SDK versions, signaling failures, and package support across TUICallDefine, Chat SDK, TRTC SDK, and CallKit Server. It is essential for ensuring smooth integration and operation of Tencent Cloud's real-time communication services. - [Android&iOS](https://pre.trtc.io/document/51020.md): The TUICallEngine SDK for Android and iOS is a real-time communication SDK that enables developers to integrate audio and video call functionalities into their applications. This release notes document covers detailed version histories, new features, bug fixes, API changes, and optimization improvements from the initial release to version 3.3.0.1081. It provides guidance for resolving common upgrade issues and highlights enhancements in call stability, push notification handling, and multi-threading performance, supporting developers in maintaining and upgrading their apps effectively.