Поделиться через


Интеграция CallKit в библиотеку пользовательского интерфейса

Библиотека пользовательского интерфейса Службы коммуникации Azure предоставляет поддержку callKit вне поля. Разработчики могут предоставить собственную конфигурацию для CallKit, которая будет использоваться для библиотеки пользовательского интерфейса.

В этой статье вы узнаете, как правильно настроить CallKit с помощью библиотеки пользовательского интерфейса в приложении.

Важно!

Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии.

Предварительные версии API и пакеты SDK предоставляются без соглашения об уровне обслуживания. Рекомендуется не использовать их для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности.

Дополнительные сведения см . в дополнительных условиях использования для предварительных версий Microsoft Azure.

Необходимые компоненты

Дополнительные сведения см. в библиотеке пользовательского интерфейса iOS с открытым исходным кодом и образце кода приложения.

Настройка интеграции CallKit

Пакет SDK для вызовов iOS Службы коммуникации Azure поддерживает интеграцию CallKit. Эту интеграцию можно включить в библиотеке пользовательского CallCompositeCallKitOptionинтерфейса, настроив экземпляр. Дополнительные сведения см. в разделе "Интеграция с 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. Библиотека пользовательского интерфейса также предоставляет поставщик по умолчанию: CallCompositeCallKitOption.getDefaultCXProviderConfiguration() Дополнительные сведения см. в документации разработчика Apple по CXProviderConfiguration.

let cxProvider = CallCompositeCallKitOption.getDefaultCXProviderConfiguration()

Настройка звукового сеанса

Настройте звуковой сеанс для вызова перед размещением или принятием входящих вызовов и перед возобновлением вызова, который находится на удержании. Дополнительные сведения см. в документации разработчика Apple по AVAudioSession.

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
)

Следующие шаги