CallKit を UI ライブラリに統合する
Azure Communication Services UI ライブラリでは、CallKit をすぐに使用できます。 開発者は、UI ライブラリで使用する CallKit 用の独自の構成を提供できます。
この記事では、アプリケーションで UI ライブラリを使用して CallKit を正しく設定する方法について説明します。
重要
Azure Communication Services のこの機能は、現在プレビュー段階にあります。
プレビューの API と SDK は、サービス レベル アグリーメントなしに提供されます。 運用環境のワークロードには使用しないことをお勧めします。 一部の機能はサポート対象ではなく、機能が制限されることがあります。
詳細については、「Microsoft Azure プレビューの追加利用規約」を確認してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services リソースを作成します。
- 通話クライアントを有効にするためのユーザー アクセス トークン。 ユーザー アクセス トークンを取得します。
- 省略可能: UI ライブラリの複合の概要に関するクイック スタートの完了。
詳細については、オープンソースの iOS UI ライブラリとサンプル アプリケーション コードを参照してください。
CallKit の統合を設定する
Azure Communication Services Calling iOS SDK では、CallKit 統合がサポートされています。 のインスタンス CallCompositeCallKitOption
を構成することで、UI ライブラリでこの統合を有効にすることができます。 詳細については、「CallKit との統合」を参照してください。
着信および発信通話の通話受信者情報を指定する
呼び出し受信者の情報を指定するには、CallCompositeCallKitRemoteInfo
のインスタンスを作成します。
通話受信者の displayName
表示名をカスタマイズするための値を割り当てます。 指定された displayName
値は、最後にダイヤルされた呼び出しログに表示される正確な方法です。
値も cxHandle
割り当てます。 これは、ユーザーがその連絡先に電話をかけ直したときにアプリケーションが受け取るものです。
let cxHandle = CXHandle(type: .generic, value: "VALUE_TO_CXHANDLE")
var displayName = "DISPLAY_NAME"
let callKitRemoteInfo = CallCompositeCallKitRemoteInfo(displayName: displayName, cxHandle: cxHandle)
指定 CallCompositeCallKitRemoteInfo
しない場合、参加者識別子の生の値が既定で表示されます。
プロバイダーを構成する
必要に応じて、次のインスタンスを CallCompositeCallKitRemoteInfo
指定します CallCompositeCallKitOption
。 UI ライブラリには、既定のプロバイダーも用意されています CallCompositeCallKitOption.getDefaultCXProviderConfiguration()
。 詳細については、CXProviderConfiguration に 関する Apple 開発者向けドキュメントを参照してください。
let cxProvider = CallCompositeCallKitOption.getDefaultCXProviderConfiguration()
オーディオ セッションを構成する
着信通話を発信または受け入れる前、および保留中の通話を再開する前に、音声セッションを呼び出されるように構成します。 詳細については、AVAudioSession に 関する Apple 開発者向けドキュメントを参照してください。
public func configureAudioSession() -> Error? {
let audioSession = AVAudioSession.sharedInstance()
var configError: Error?
do {
try audioSession.setCategory(.playAndRecord)
} catch {
configError = error
}
return configError
}
CallKit を有効にする
CallKit を有効にするには、インスタンス CallCompositeCallKitOption
を作成して指定します RemoteOptions
。
let isCallHoldSupported = true // enable call hold (default is true)
let callKitOptions = CallCompositeCallKitOption(
cxProvideConfig: cxProvider,
isCallHoldSupported: isCallHoldSupported,
remoteInfo: callKitRemoteInfo,
configureAudioSession: configureAudioSession
)
let remoteOptions = RemoteOptions(
..., // Other options for Azure Communication Service
callKitOptions: callKitOptions
)