[swift] CallKit과 통화 전환(transfer) 기능

이번 기술 블로그에서는 CallKit과 통화 전환(transfer) 기능에 대해 알아보겠습니다.

CallKit이란?

CallKit은 iOS 기반 앱에서 전화와 관련된 기능을 통합할 수 있도록 Apple이 제공하는 프레임워크입니다. 이를 통해 사용자는 앱을 사용하는 동안 통화를 받거나 걸 때 iOS 기본 전화 앱과 유사한 경험을 할 수 있습니다.

통화 전환(transfer) 기능

통화 전환(transfer) 기능은 사용자가 앱에서 발생한 통화를 전화 네트워크로 전환하여 계속할 수 있는 기능입니다. 이를 통해 앱 사용자는 앱을 사용하는 동안 통화를 수신하거나 발신할 수 있으며, 통화 전환 기능을 통해 iOS 기본 전화 앱으로 통화를 전환하고 다양한 기능을 이용할 수 있습니다.

통화 전환 기능을 구현하기 위해서는 CallKit 프레임워크의 CXProviderCXCallController 클래스를 사용하여 앱의 통화 관리를 할 수 있습니다. 또한 CallKit의 이벤트들을 처리하고 적절한 UI를 구성하여 사용자에게 편리한 통화 경험을 제공할 수 있습니다.

통화 전환 기능을 구현한 예시 코드는 다음과 같습니다.

import CallKit

let provider = CXProvider(configuration: CXProviderConfiguration(localizedName: "My App"))
let controller = CXCallController()

let uuid = UUID()

let update = CXCallUpdate()
update.remoteHandle = CXHandle(type: .phoneNumber, value: "1234567890")
provider.reportIncomingCall(with: uuid, update: update) { error in
    // handle error
}

// ...

let callAction = CXSetHeldCallAction(call: call.uuid, onHold: false)
controller.requestTransaction(with: [callAction], completion: { error in
    // handle error
})

마치며

CallKit을 사용하여 통화 전환 기능을 구현하면 앱 사용자에게 편리한 통화 경험을 제공할 수 있습니다. 이를 통해 앱의 사용성을 더욱 향상시킬 수 있으며, 사용자들은 iOS 기본 전화 앱과 유사한 경험을 얻을 수 있게 됩니다.

이상으로 CallKit과 통화 전환 기능에 대해 알아보았습니다.

참고문헌: Apple Developer Documentation - CallKit