Delen via


CallKit integreren in de UI-bibliotheek

De Ui-bibliotheek van Azure Communication Services biedt out-of-the-box-ondersteuning voor CallKit. Ontwikkelaars kunnen hun eigen configuratie opgeven voor CallKit die moet worden gebruikt voor de UI-bibliotheek.

In dit artikel leert u hoe u CallKit correct instelt met behulp van de UI-bibliotheek in uw toepassing.

Vereisten

Zie de opensource iOS UI-bibliotheek en de voorbeeldtoepassingscode voor meer informatie.

CallKit-integratie instellen

De Azure Communication Services Calling iOS SDK ondersteunt CallKit-integratie. U kunt deze integratie inschakelen in de UI-bibliotheek door een exemplaar van CallCompositeCallKitOption. Zie Integreren met CallKit voor meer informatie.

Gegevens van geadresseerden voor uitgaande oproepen opgeven

Als u uitgaande oproepgegevens wilt opgeven, maakt u een exemplaar van CallKitRemoteInfo. Als u dit niet opgeeft CallKitRemoteInfo, wordt de onbewerkte waarde van de deelnemer-id standaard weergegeven.

Wijs een waarde toe om displayName de weergavenaam voor de aanroeper aan te passen. De opgegeven CallKitRemoteInfo waarde is precies hoe deze wordt weergegeven in het laatst gekozen oproeplogboek.

Wijs ook de cxHandle waarde toe. Dit is wat de toepassing ontvangt wanneer de gebruiker terugbelt op die contactpersoon.

let cxHandle = CXHandle(type: .generic, value: "VALUE_TO_CXHANDLE")
let callKitRemoteInfo = CallKitRemoteInfo(displayName: "DISPLAY_NAME", handle: cxHandle)
callComposite.launch(..., // Locator for Azure Communication Service
                     callKitRemoteInfo: callKitRemoteInfo)

Gegevens van geadresseerden voor inkomende oproepen opgeven

Als u binnenkomende oproepoproepgegevens wilt opgeven, maakt u een exemplaar van CallKitOptions. Als u dit niet opgeeft CallKitOptions, wordt de onbewerkte waarde van de deelnemer-id standaard weergegeven.

Wijs een waarde toe om provideRemoteInfo de weergavenaam voor de aanroeper aan te passen. De opgegeven CallKitRemoteInfo waarde is precies hoe deze wordt weergegeven in het laatst gekozen oproeplogboek.

Wijs ook de cxHandle waarde toe. Dit is wat de toepassing ontvangt wanneer de gebruiker terugbelt op die contactpersoon.

public func incomingCallRemoteInfo(info: Caller) -> CallKitRemoteInfo {
    let cxHandle = CXHandle(type: .generic, value: "VALUE_TO_CXHANDLE")
    var remoteInfoDisplayName = "DISPLAY_NAME"
    let callKitRemoteInfo = CallKitRemoteInfo(displayName: remoteInfoDisplayName,
                                                            handle: cxHandle)
    return callKitRemoteInfo
}

Providers configureren

Geef, indien nodig, een CXProviderConfiguration exemplaar op voor CallKitOptions. Zie de Apple-documentatie voor ontwikkelaars over CXProviderConfiguration voor meer informatie.

let providerConfig = CXProviderConfiguration()
providerConfig.supportsVideo = true
providerConfig.maximumCallGroups = 1
providerConfig.maximumCallsPerCallGroup = 1
providerConfig.includesCallsInRecents = true
providerConfig.supportedHandleTypes = [.phoneNumber, .generic]

Een audiosessie configureren

Configureer een audiosessie die moet worden aangeroepen voordat u binnenkomende oproepen plaatst of accepteert en voordat u een gesprek in de wachtstand hervat. Zie de Apple-documentatie voor ontwikkelaars over AVAudioSession voor meer informatie.

public func configureAudioSession() -> Error? {
    let audioSession = AVAudioSession.sharedInstance()
    let options: AVAudioSession.CategoryOptions = .allowBluetooth
    var configError: Error?
    do {
        try audioSession.setCategory(.playAndRecord)
    } catch {
        configError = error
    }
    return configError
}

CallKit inschakelen

Als u CallKit wilt inschakelen, maakt u een exemplaar van CallKitOptions en geeft u deze op.callCompositeOptions

let isCallHoldSupported = true // enable call hold (default is true)
let callKitOptions = CallKitOptions(
    providerConfig: providerConfig,
    isCallHoldSupported: isCallHoldSupported,
    provideRemoteInfo: provideRemoteInfo,
    configureAudioSession: configureAudioSession
)

let options = CallCompositeOptions(
    ..., // Other options for Azure Communication Service
    callKitOptions: callKitOptions
)

Wacht- en cv-API voor CallKit geïntegreerd in de toepassing

Voor CallKit geïntegreerd in toepassingsgebruik hold en resume voor het beheren van de oproepstatus.

    callComposite.hold() { result in
        switch result {
            case .success:
                // success
            case .failure(let error):
                // failure
        }
    }

    callComposite.resume() { result in
        switch result {
            case .success:
                // success
            case .failure(let error):
                // failure
        }
    }

Volgende stappen