https://s3.amazonaws.com/a.storyblok.com/f/270183/84363/b249aeb846/blog_parental-control_1200x600.png

Schützen Sie Ihre Kinder online mit Vonage Voice API und Android 10

Zuletzt aktualisiert am May 24, 2021

Lesedauer: 5 Minuten

Erstellen einer Proxy-App zum Maskieren sensibler Telefonnummern

Wir leben in einer zunehmend digitalen Welt, und Kinder sind oft die ersten, die neue Technologien und Anwendungen nutzen. Sie mögen zwar kompetent im Umgang mit digitalen Technologien sein, aber sie verstehen nicht immer die Online-Sicherheit, z. B. welche Daten sie mit Fremden teilen können und welche nicht.

In diesem Beitrag zeigen wir Ihnen, wie Sie die Vonage Voice API nutzen können, um eines der wertvollsten Datengüter zu schützen - ihre Telefonnummer. In ein paar einfachen Schritten werden wir eine Anwendung zur elterlichen Kontrolle erstellen, die die Telefonnummer Ihres Kindes mithilfe der Voice API und Android 10 maskiert. Zu diesem Zweck erstellen wir eine schlanke Android-Anwendung und verbinden sie mit einem NodeJS-Webhook-Server.

Den vollständigen Code des Tutorials finden Sie hier.

Konzept

Dieses Tutorial wird Ihnen helfen, zwei Komponenten zu erstellen - eine Android-Anwendung und einen NodeJS-Webhook-Server. Nach der Fertigstellung werden Sie eine grundlegende Anwendung zur Kindersicherung haben, die Anrufe mit der Vonage Voice API auf Android 10-Geräten vermitteln kann.

Android 10 Funktion zur Anrufumleitung

Um Anrufe umzuleiten, werden wir eine neue Funktion von Android 10 verwenden: Rollen. Rollen gewähren einer Anwendung Zugriff auf bestimmte Systemfunktionen, wie z. B. die Umleitung von Anrufen. Mit Android 10 wurde der RoleManagereingeführt, der den Zugriff auf diese Rollen kontrolliert.

In unserem Fall werden wir ROLE_CALL_REDIRECTIONzusammen mit einem CallRedirectionService (CallRedirectionService). Wir werden beides mit der Sprach-API bündeln, um die Telefonnummer des Benutzers zu maskieren.

Benutzer

Der Nutzer (in diesem Fall ein Elternteil auf dem Gerät seines Kindes) lädt eine Android-Anwendung herunter und installiert sie. Als Nächstes wird sie mit der Telefonnummer des Kindes konfiguriert, so dass, sobald ein Anruf vom Gerät aus ausgeführt wird, eine Hook-Methode aufgerufen und der Anruf an eine Vonage-Nummer weitergeleitet wird.

Um festzustellen, an welche Nummer umgeleitet werden soll, sendet die Anwendung bei jedem ausgehenden Anruf eine HTTP-Anfrage an Ihren Webhook-Server, der eine Zuordnung zwischen der Zielnummer und der Telefonnummer des Benutzers erstellt. Als Antwort gibt der Server die anzurufende Vonage-Nummer zurück.

Schließlich führt das Gerät den Anruf an die Vonage-Nummer aus und der Webhook-Server gibt die entsprechende Zuordnung zurück, um den Anruf über Vonage mit dem ursprünglichen Ziel zu verbinden.

Android Proxy CallAndroid Proxy Call

Voraussetzungen

Sprach-API

Die Vonage Sprach-API wird verwendet, um unsere Anrufe zu maskieren und den Proxy zu erstellen.

Für dieses Tutorial benötigen Sie:

  1. Eine Sprachanwendung

  2. Eine Nummer, die Sie mit Ihrer Bewerbung verknüpft haben

Werkzeuge

Wir empfehlen die Verwendung von ngrok zu verwenden, um Ihren Webhook-Server zu veröffentlichen und Android Studio für die Arbeit an der Android-Anwendung.

Einrichtung

Webhook-Server

Der vollständige Quellcode des Webhook-Servers ist zu finden hier.

Die Datei example.env Datei enthält alle erforderlichen Parameter, um den Webhook-Server einzurichten. Für dieses Tutorial müssen Sie lediglich die Nummer, die Sie mit Ihrer Anwendung verknüpft haben, in die Datei Dashboard.

Füllen Sie also zunächst example.env, VONAGE_PROXY_NUMBER ist die Nummer, die Sie Ihrer Anwendung zugewiesen haben. VONAGE_PROXY_NUMBER_LOCAL ist die gleiche Nummer, aber für den lokalen Gebrauch formatiert. Dies ist die Art und Weise, wie Ihr Android-Gerät Ihre Vonage-Nummer wählen soll, und sie ist wichtig, weil sie für ausgehende Anrufe verwendet wird.

Zweitens: Kopieren Sie die Datei nach .env:

cp example.env .env`

Drittens: Installieren und starten Sie Ihren Server mit dem folgenden Befehl:

npm install && npm run start`

Ihr Server sollte nun lokal laufen.

HINWEIS: In unserer Implementierung ist ein Rückruf nur möglich, wenn der Benutzer (oder das Kind) einen Anruf initiiert hat.

Android-Anwendung

Wir werden die wichtigsten Punkte für die Erstellung der Anwendung behandeln. Wenn Sie mit Android überhaupt nicht vertraut sind, empfehlen wir diesen Leitfaden für die Erstellung Ihrer ersten App.

Den vollständigen Quellcode der Beispielanwendung finden Sie hier.

Manifest

Öffnen Sie AndroidManifest.xml in /app/src/main und fügen Sie die BIND_CALL_REDIRECTION_SERVICE Berechtigung. Dadurch kann Ihr Dienst benachrichtigt werden, wenn ein neuer Anruf ausgeführt wird, und ihn umleiten.

    <service
        android:name=".CallRedirectionServiceImplementation"
        android:permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
        <intent-filter>
            <action android:name="android.telecom.CallRedirectionService" />
        </intent-filter>
    </service>

Dienst

Erweitern Sie den CallRedirectionService ('CallRedirectionServiceImplementation' in unserem Fall), und überschreiben Sie die 'onPlaceCall' Methode. Diese Methode wird bei jedem ausgehenden GSM-Anruf aufgerufen.

class CallRedirectionServiceImplementation : CallRedirectionService() {
    override fun onPlaceCall(handle: Uri, initialPhoneAccount: PhoneAccountHandle allowInteractiveResponse: Boolean) {
        //redirection logic here
    }
}

Bitte beachten Sie die Einschränkungen der Rufumleitung:

Zeit - Ihre Methodenimplementierung muss die Ausführung innerhalb von fünf Sekunden beenden, sonst schlägt sie fehl. Pfad - Für jeden Aufruf des Systems an onPlaceCall müssen Sie sicherstellen, dass alle möglichen Pfade entweder in einer der Methoden placeCallUnmodified, cancelCall oder redirectCall enden.

Benutzeroberfläche

Erstellen Sie eine Aktivität zur Steuerung Ihres Weiterleitungsdienstes. Die Aktivität sollte die Rolle erfassen und die Zustimmung des Benutzers einholen, und sie sollte es dem Benutzer auch ermöglichen, die Weiterleitung ein- und auszuschalten.

Aneignung von Rollen:

  1. Prüfen Sie, ob die Rolle verfügbar ist, bevor Sie versuchen, sie zu erwerben (isRoleAvailable)

  2. Feuert den Intent, der durch createRequestRoleIntent

  3. Empfangen Sie das Ergebnis bei 'OnActivityResult'. Überprüfen Sie das Ergebnis, bevor Sie fortfahren.

Mit großer Macht kommt große Verantwortung

Nachdem Sie eine Rolle erworben haben, können Sie sie nicht mehr an das System zurückgeben. Der Besitz einer Rolle bedeutet, dass Sie bestimmte Privilegien haben, die sofort widerrufen werden, sobald Sie den Besitz der Rolle verlieren. In einem Android-System kann es nur eine App geben, die eine bestimmte Rolle zu einem bestimmten Zeitpunkt erwirbt.

Dashboard

Anmeldung auf dem Vonage-Dashboard und navigieren Sie zu Ihrer Sprachanwendung. Geben Sie in die "Antwort-URL" die Adresse Ihres Servers ein + /answer. Sie sollte wie folgt aussehen http://${server_adress}/answer. In ähnlicher Weise geben Sie die "Ereignis"-URL ein mit http://${server_adress}/event.

ANMERKUNG: Wenn Sie ngrok verwenden, sollte die Adresse wie https://${Ihre_ngrok_id}.ngrok.io aussehen.

Benutzerhandbuch

Nachdem Sie nun Ihren Webhook-Server eingerichtet und in Betrieb genommen haben, Ihre Sprachanwendung so konfiguriert haben, dass sie NCCOs von ihm anfordert, und eine Android-Anwendung erstellt haben, ist es an der Zeit, mit Ihrer Lösung zu spielen.

  1. Installieren Sie die Anwendung auf Ihrem Android-Gerät und öffnen Sie sie.

  2. Richten Sie es ein, indem Sie die Rufnummer des Geräts eingeben.

  3. Drücken Sie "Aktivieren". Es sollte eine Aufforderung angezeigt werden, die Sie auffordert, der Anwendung die Umleitungserlaubnis zu erteilen, bitte akzeptieren Sie.

  4. Rufen Sie eine beliebige Nummer über das native Wählprogramm an, und Ihr Anruf wird weitergeleitet.

  5. Um den Strom der Ereignisse zu verfolgen, werfen Sie einen Blick auf die Logs des Webhooks!

android screenandroid screen

Der native Dialer zeigt an, dass der Anruf über Ihre Anwendung erfolgt

Rekapitulation

In den vorangegangenen Abschnitten haben wir gelernt, wie man die Sprach-API zusammen mit der Funktion "Anrufumleitung" von Android 10 nutzen kann, um eine nahtlose Lösung zur Maskierung von Anrufen zu erstellen.

Der Schutz von Kindern ist eine großartige Sache, aber es ist definitiv nur ein Bruchteil dessen, was Sie mit der von uns entwickelten Lösung erreichen können - erstellen Sie einen Anruf-Proxy für weitere Anwendungsfälle, oder erweitern Sie Ihre Lösung sogar um einen SMS-Proxy!

Die Flexibilität der Sprach-API ermöglicht es Ihnen, Lösungen für viele Anforderungen zu erstellen. Vor allem aber können Sie damit die Sprachfunktionen der nächsten Generation auf Ihre bestehende Logik und Infrastruktur aufsetzen.

Eine vollständige Version dieses Tutorials finden Sie auf GitHub.

Wenn Sie mehr darüber erfahren möchten, was Sie mit unseren APIs tun können, besuchen Sie bitte unser Entwicklerportal.

Teilen Sie:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Assaf Passal And Roy Ben Shushan

Guest Author