iOS Calling UI Framework is built on top of Callkit API that provides a native telecom UI interface for iOS users or simulates similar experience for App to App calling.

Release Date: December 15, 2024

Table of Contents

Overview

A Calling UI Framework is now available for iOS native app developers, designed to simplify and minimize coding efforts when integrating a CallKit interface. Using this framework, developers can enable app-to-app calling features within minutes through a UIKit-based solution.

Note that the UIKit Framework is built on top of UIKit, providing a powerful solution for creating audio and video UI with minimal code.. Know more…

Pre-requisites

Here are the pre-requisites for enabling the Calling UI Framework in your existing application:

  • Application must have enabled VoIP feature in background mode.
  • You need to integrate your own notification service, as no built-in notification service is provided.

How to integrate in IOS Native App?

For Calling UI Framework integration in iOS, follow the given steps below:

  • Install Enx_CallKit_iOS framerork either through pod or manually. To install through pod, open terminal and go to your project directory.
cd /path-to/project-dir/
pod install
  • Open your App.
  • Go to the class where you receive push notification.
  • Import the library.
import Enx_CallKit_iOS
  • Create an object of EnxCallKit class.
var callManager = EnxCallKit(self) 
// self: Sets the the callback delegate
  • On receiving notificatIon, call APIs.
let backGroundTaskIndet = UIApplication.shared.beginBackgroundTask(expirationHandler: nil) 
callManager.reportIncomingCall(uuid: UUID(), callerName: "Caller Name", hasVideo: true) { 
	_in UIApplication.shared.endBackgroundTask(backGroundTaskIndet)
}  
  • Add background task before loading the Calling UI.
  • End the background task once Calling UI is loaded.
  • To end call, use the following method. This will close Call-kit UI.
callManager.endCall()

List of Callbacks

You need to make use of the following call backs to create create user-experience:

  • func callAnswer(): When you receive incoming call
  • func callReject(): When you reject incoming call
  • func callTimeOut(): When you didn’t respond to incoming call notification, it times out in 45 seconds.
  • func callEnd(): When you ended the call
  • func callHold(): When you keep the call on hold