Cordova VoIP-Anrufe
Pushwoosh unterstützt VoIP-Anrufbenachrichtigungen für iOS und Android über das pushwoosh-cordova-plugin. Dies ermöglicht native VoIP-Anruffunktionen, einschließlich der Benutzeroberfläche für eingehende Anrufe und Ereignisse zur Anrufsteuerung.
Integrieren Sie das Plugin vorab mit Ihrem Pushwoosh Application Code, wie im Leitfaden zur grundlegenden Integration beschrieben.
1. Fügen Sie das Pushwoosh Cordova-Plugin mit aktivierter VoIP-Funktion hinzu
Anchor link toInstallieren Sie das Plugin mit aktiviertem VoIP-Flag:
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=trueDadurch wird das Plugin so konfiguriert, dass es die VoIP-Funktionalität unter iOS unterstützt.
2. Prüfen Sie die PushwooshVoIP-Abhängigkeit
Anchor link toDas Plugin bindet das Modul PushwooshVoIP automatisch ein. Unter cordova-ios 8 fügt es das Swift-Paket PushwooshVoIP hinzu und ändert die Podfile nicht. Unter früheren cordova-ios-Versionen fügt es Ihrer Podfile diese Zeile hinzu:
pod 'PushwooshXCFramework/PushwooshVoIP'Dieses Modul ist erforderlich, um PushKit-basierte VoIP-Benachrichtigungen und die Anrufverarbeitung auf Systemebene zu unterstützen.
3. Aktivieren Sie den VoIP-Hintergrundmodus in Xcode
Anchor link toÖffnen Sie Ihr Projekt in Xcode und folgen Sie diesen Schritten:
- Gehen Sie zu Signing & Capabilities.
- Fügen Sie die Background Modes-Fähigkeit hinzu.
- Aktivieren Sie die Option Voice over IP.
Dies ermöglicht Ihrer App, eingehende VoIP-Pushes zu empfangen, während sie sich im Hintergrund befindet.
4. Anrufberechtigung auf Android anfordern
Anchor link toUnter Android benötigt die App die Berechtigung des Benutzers, um Anrufe zu empfangen. Fordern Sie sie mit requestCallPermission() an. Lehnt der Benutzer ab, ignoriert die App eingehende VoIP-Anrufe.
pushwoosh.requestCallPermission();5. Benutzerdefinierten Klingelton festlegen (optional)
Anchor link toDas Plugin initialisiert VoIP automatisch. Um für eingehende Anrufe einen benutzerdefinierten Klingelton abzuspielen, übergeben Sie den Namen einer Sounddatei aus dem App-Bundle:
pushwoosh.setRingtone("incoming.caf");6. Verfügbare VoIP-Callbacks und -Methoden
Anchor link toVideounterstützung und das Format der Anrufer-ID werden pro Anruf im Payload des VoIP-Pushes festgelegt: video und unter iOS handleType (1 für generisch, 2 für Telefonnummer, 3 für E-Mail).
Das Cordova-Plugin unterstützt die folgenden VoIP-bezogenen Methoden und Ereignisse:
answer– wird aufgerufen, wenn ein Benutzer einen eingehenden Anruf annimmtendCall– wird aufgerufen, wenn ein Benutzer den aktuellen Anruf beendethangup– wird aufgerufen, wenn ein Anruf aufgelegt wirdreject– wird aufgerufen, wenn ein eingehender Anruf abgewiesen wirdmuted– Stummschaltung umschalten, nur für iOSheld– Haltestatus umschalten, nur für iOSvoipPushPayload– gibt die Push-Payload für den eingehenden VoIP-Anruf zurückincomingCallSuccess– wird aufgerufen, wenn die Systemanruf-Benutzeroberfläche erfolgreich angezeigt wird, nur für iOSincomingCallFailure– wird aufgerufen, wenn die Anzeige der Systemanruf-Benutzeroberfläche fehlschlägt, nur für iOSspeakerOn– Lautsprecher einschaltenspeakerOff– Lautsprecher ausschaltenplayDTMF– DTMF-Ton während eines Anrufs abspielen, nur für iOSvoipDidRegisterTokenSuccessfully– wird aufgerufen, wenn das VoIP-Token bei Pushwoosh registriert wurde, nur für iOSvoipDidFailToRegisterTokenWithError– wird aufgerufen, wenn die Registrierung des VoIP-Tokens fehlschlägt, nur für iOSvoipDidCancelCall– wird aufgerufen, wenn ein Anruf per VoIP-Push aus der Ferne abgebrochen wirdvoipDidFailToCancelCall– wird aufgerufen, wenn ein Versuch, einen Anruf abzubrechen, fehlschlägt
Diese können über das PushNotification-Objekt von Cordova eingehängt werden, sodass Sie den Status von VoIP-Anrufen steuern und darauf reagieren können.
Unter Android können Sie diese Ereignisse auch in Ihrer eigenen nativen Java-Klasse verarbeiten, zum Beispiel um Ihren eigenen Anrufbildschirm zu öffnen, wenn der Benutzer den Anruf annimmt. Siehe Benutzerdefinierter Handler für Anrufereignisse auf Android.