次の方法で共有


CallKit を UI ライブラリに統合する

Azure Communication Services UI ライブラリでは、CallKit をすぐに使用できます。 開発者は、UI ライブラリで使用する CallKit 用の独自の構成を提供できます。

この記事では、アプリケーションで UI ライブラリを使用して CallKit を正しく設定する方法について説明します。

重要

Azure Communication Services のこの機能は、現在プレビュー段階にあります。

プレビューの API と SDK は、サービス レベル アグリーメントなしに提供されます。 運用環境のワークロードには使用しないことをお勧めします。 一部の機能はサポート対象ではなく、機能が制限されることがあります。

詳細については、「Microsoft Azure プレビューの追加利用規約」を確認してください。

前提条件

詳細については、オープンソースの 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
)

次のステップ