Интеграция CallKit в библиотеку пользовательского интерфейса
Библиотека пользовательского интерфейса Службы коммуникации Azure предоставляет поддержку callKit вне поля. Разработчики могут предоставить собственную конфигурацию для CallKit, которая будет использоваться для библиотеки пользовательского интерфейса.
В этой статье вы узнаете, как правильно настроить CallKit с помощью библиотеки пользовательского интерфейса в приложении.
Важно!
Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии.
Предварительные версии API и пакеты SDK предоставляются без соглашения об уровне обслуживания. Рекомендуется не использовать их для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности.
Дополнительные сведения см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Необходимые компоненты
- Учетная запись 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
)