Een-op-een-oproepen en pushmeldingen instellen in de UI-bibliotheek
De UI-bibliotheek biedt kant-en-klare ondersteuning voor het maken van een-op-een-oproepen met behulp van de deelnemers-id's van Azure Communication Services. Ter ondersteuning van een-op-een-oproepen biedt de UI-bibliotheek binnenkomende oproepmeldingen. U kunt Azure Communication Services ook gebruiken als een Azure Event Grid-gebeurtenisbron voor aanroepen.
In dit artikel leert u hoe u een-op-een-aanroepen correct uitvoert met behulp van de UI-bibliotheek in uw toepassing.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een geïmplementeerde Communication Services-resource. Een Communication Services-resource maken.
- Een gebruikerstoegangstoken om de aanroepclient in te schakelen. Een toegangstoken voor gebruikers ophalen.
- Optioneel: Voltooiing van de quickstart om aan de slag te gaan met de samengestelde UI-bibliotheek.
De functies instellen
Zie de opensource-uibibliotheek voor Android en de voorbeeldtoepassingscode voor meer informatie.
Machtigingen instellen voor pushmeldingen
Als u pushmeldingen wilt instellen, hebt u een Firebase-account nodig waarvoor Firebase Cloud Messaging (FCM) is ingeschakeld. Uw FCM-service moet zijn verbonden met een Azure Notification Hubs-exemplaar. Zie Communication Services-meldingen voor meer informatie. U moet ook Android Studio versie 3.6 of hoger gebruiken om uw toepassing te bouwen.
Voordat de Android-toepassing meldingsberichten van FCM ontvangt, heeft deze een set machtigingen nodig. Voeg in het AndroidManifest.xml
bestand de volgende set machtigingen toe na de <manifest ...>
of </application>
tag.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
Binnenkomende meldingen toevoegen aan uw mobiele app
Azure Communication Services kan worden geïntegreerd met Azure Event Grid en Azure Notification Hubs, zodat u pushmeldingen kunt toevoegen aan uw apps in Azure.
Registreren/registratie opheffen voor pushmeldingen van Notification Hub
Als u zich wilt registreren voor pushmeldingen, moet de toepassing een CallComposite
exemplaar aanroepen registerPushNotification()
met een apparaatregistratietoken.
Als u het apparaatregistratietoken wilt ophalen, voegt u de Firebase SDK toe aan het exemplaar van build.gradle
uw toepassingsmodule. Als u meldingen van Firebase wilt ontvangen, integreert u Azure Notification Hubs door de instructies in Communication Services-meldingen te volgen.
val deviceRegistrationToken = "" // From Firebase
callComposite.registerPushNotification(deviceRegistrationToken).whenComplete { _, throwable ->
if (throwable != null) {
// Handle error
}
}
Pushmeldingen verwerken die zijn ontvangen van Event Grid of Notification Hub
Als u pushmeldingen wilt ontvangen voor binnenkomende oproepen, roept handlePushNotification
u een CallComposite
exemplaar aan met een nettolading.
Als u de nettolading van FCM wilt ophalen, begint u met het maken van een nieuwe service (File>New>Service Service>) die de FirebaseMessagingService
Firebase SDK-klasse uitbreidt en de onMessageReceived
methode overschrijft. Deze methode is de gebeurtenis-handler die wordt aangeroepen wanneer FCM de pushmelding aan de toepassing levert.
// On Firebase onMessageReceived
val pushNotification = CallCompositePushNotification(remoteMessage.data)
callComposite.handlePushNotification(pushNotification).whenComplete { _, throwable ->
if (throwable != null) {
// Handle error
}
}
Registreren voor binnenkomende oproepmeldingen
Als u binnenkomende oproepmeldingen wilt ontvangen, handlePushNotification
meldt u zich aan CallCompositeIncomingCallEvent
en CallCompositeIncomingCallCancelledEvent
. CallCompositeIncomingCallEvent
bevat de inkomende callId en bellergegevens. CallCompositeIncomingCallCancelledEvent
bevat callId en annuleringscode voor aanroepen in Azure Communication Services.
private var incomingCallEvent: IncomingCallEvent? = null
private var incomingCallCancelledEvent: IncomingCallCancelledEvent? = null
class IncomingCallEvent : CallCompositeEventHandler<CallCompositeIncomingCallEvent> {
override fun handle(eventArgs: CallCompositeIncomingCallEvent?) {
// Display incoming call UI to accept/decline a call
// CallCompositeIncomingCallEvent contains call id and caller information
}
}
class IncomingCallCancelledEvent : CallCompositeEventHandler<CallCompositeIncomingCallCancelledEvent> {
override fun handle(eventArgs: CallCompositeIncomingCallCancelledEvent?) {
// Call-ended event when a call is declined or not accepted
}
}
// Event subscription
incomingCallEvent = IncomingCallEvent()
callComposite.addOnIncomingCallEventHandler(incomingCallEvent)
incomingCallCancelledEvent = IncomingCallCancelledEvent()
callComposite.addOnIncomingCallCancelledEventHandler(incomingCallEndEvent)
// Event unsubscribe
callComposite.removeOnIncomingCallEventHandler(incomingCallEvent)
callComposite.removeOnIncomingCallCancelledEventHandler(incomingCallEndEvent)
Oproepen verwerken
Als u gesprekken wilt accepteren, belt u naar accept
. Als u oproepen wilt weigeren, belt u naar reject
.
// Accept call
callComposite.accept(applicationContext, incomingCallId, localOptions)
// Decline call
callComposite.reject(incomingCallId)
Andere deelnemers bellen
Als u gesprekken met andere deelnemers wilt starten, maakt u CallCompositeStartCallOptions
de onbewerkte id's van deelnemers van CommunicationIdentity
en launch
.
Zie de opensource iOS UI-bibliotheek en de voorbeeldtoepassingscode voor meer informatie.
Pushmeldingen instellen
Een mobiele pushmelding is de pop-upmelding die u op het mobiele apparaat ontvangt. Dit artikel is gericht op voIP-pushmeldingen (Voice over Internet Protocol).
In de volgende secties wordt beschreven hoe u pushmeldingen registreert, verwerkt en de registratie ervan ongedaan kunt maken. Voordat u deze taken start, moet u deze vereisten voltooien:
- Ga in Xcode naar de mogelijkheden voor ondertekening en mogelijkheden. Voeg een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Pushmeldingen te selecteren.
- Voeg nog een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Achtergrondmodi te selecteren.
- Schakel onder Achtergrondmodi de selectievakjes Voice over IP en Externe meldingen in.
Binnenkomende meldingen toevoegen aan uw mobiele app
Azure Communication Services kan worden geïntegreerd met Azure Event Grid en Azure Notification Hubs, zodat u pushmeldingen kunt toevoegen aan uw apps in Azure.
Pushmeldingen voor Notification Hub registreren/de registratie ervan opheffen
Als u zich wilt registreren voor pushmeldingen, moet de toepassing een CallComposite
exemplaar aanroepen registerPushNotifications()
met een apparaatregistratietoken.
// to register
let deviceToken: Data = pushRegistry?.pushToken(for: PKPushType.voIP)
callComposite.registerPushNotifications(
deviceRegistrationToken: deviceToken) { result in
switch result {
case .success:
// success
case .failure(let error):
// failure
}
}
// to unregister
callComposite.unregisterPushNotification()
Pushmeldingen verwerken die zijn ontvangen van Event Grid of Notification Hub
Als u pushmeldingen wilt ontvangen voor binnenkomende oproepen, roept u handlePushNotification()
een exemplaar aan met een payload van een CallComposite
woordenlijst.
Wanneer u de opties voor CallKit gebruikt handlePushNotification()
en CallKit instelt, krijgt u een CallKit-melding om oproepen te accepteren of te weigeren.
// App is in the background
// push notification contains from/to communication identifiers and event type
let pushNotification = PushNotification(data: payload.dictionaryPayload)
let callKitOptions = CallKitOptions(...//CallKit options)
CallComposite.reportIncomingCall(pushNotification: pushNotification,
callKitOptions: callKitOptions) { result in
if case .success() = result {
DispatchQueue.global().async {
// You don't need to wait for a Communication Services token to handle the push because
// Communication Services common receives a callback function to get the token with refresh options
// create call composite and handle push notification
callComposite.handlePushNotification(pushNotification: pushNotification)
}
}
}
// App is in the foreground
let pushNotification = PushNotification(data: dictionaryPayload)
callComposite.handlePushNotification(pushNotification: pushNotification) { result in
switch result {
case .success:
// success
case .failure(let error):
// failure
}
}
Registreren voor binnenkomende oproepmeldingen bij push-ingang
Als u binnenkomende oproepmeldingen wilt ontvangen, handlePushNotification
meldt u zich aan onIncomingCall
en onIncomingCallCancelled
. IncomingCall
bevat de inkomende callId en bellergegevens. IncomingCallCancelled
bevat callId en annuleringscode voor aanroepen in Azure Communication Services.
let onIncomingCall: (IncomingCall) -> Void = { [] incomingCall in
// Incoming call id and caller info
}
let onIncomingCallEnded: (IncomingCallCancelled) -> Void = { [] incomingCallCancelled in
// Incoming call cancelled code with callId
}
callComposite.events.onIncomingCall = onIncomingCall
callComposite.events.onIncomingCallEnded = onIncomingCallEnded
Interne push uitschakelen voor binnenkomende oproep
Als u alleen pushmeldingen wilt ontvangen van EventGrid
en APNS
wilt instellen op disableInternalPushForIncomingCall
waar in CallCompositeOptions
. Als disableInternalPushForIncomingCall
waar is, wordt de gebeurtenis voor pushmeldingen van de ui-bibliotheek alleen ontvangen wanneer handlePushNotification
deze wordt aangeroepen. De optie disableInternalPushForIncomingCall
helpt om het ontvangen van meldingen vanaf CallComposite
de voorgrondmodus te stoppen. Deze instelling heeft geen EventGrid
controle en NotificationHub
instellingen.
let options = CallCompositeOptions(disableInternalPushForIncomingCall: true)
Start samengesteld op binnenkomende oproep die is geaccepteerd door het aanroepen van SDK CallKit
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.
Abonneer u op onIncomingCallAcceptedFromCallKit
als CallKit van het aanroepen van SDK is ingeschakeld. Start bij gesprek geaccepteerd callComposite
met gespreks-id.
let onIncomingCallAcceptedFromCallKit: (callId) -> Void = { [] callId in
// Incoming call accepted call id
}
callComposite.events.onIncomingCallAcceptedFromCallKit = onIncomingCallAcceptedFromCallKit
// launch composite with/without local options
// Note: as call is already accepted, setup screen will not be displayed
callComposite.launch(callIdAcceptedFromCallKit: callId)
Oproepen verwerken met CallComposite
Als u gesprekken wilt accepteren, belt u naar accept
. Als u oproepen wilt weigeren, belt u naar reject
.
// Accept call
callComposite.accept(incomingCallId,
... // CallKit and local options
)
// Decline call
callComposite.reject(incomingCallId)
Andere deelnemers bellen
Als u gesprekken met andere deelnemers wilt starten, start u callComposite
met de lijst met deelnemers van CommunicationIdentifier
.
// [CommunicationIdentifier]
// use createCommunicationIdentifier(fromRawId: "raw id")
callComposite.launch(participants: <list of CommunicationIdentifier>,
localOptions: localOptions)