
Protege a tus hijos en Internet con Voice API de Vonage y Android 10
Tiempo de lectura: 5 minutos
Crear una aplicación proxy para ocultar Numbers de teléfono confidenciales
Vivimos en un mundo cada vez más digitalizado, y los niños suelen ser los primeros en utilizar las nuevas tecnologías y aplicaciones. Puede que sean competentes en el uso de las tecnologías digitales, pero no siempre entienden la seguridad en línea, incluidos los datos que pueden compartir con extraños y los que no.
En esta publicación, te mostraremos cómo puedes usar la Voice API de Vonage para proteger uno de sus activos de datos más valiosos: su número de teléfono. En unos sencillos pasos construiremos una aplicación de control parental que enmascarará el número de teléfono de tus hijos utilizando la Voice API y Android 10. Para ello, construiremos una aplicación Android delgada y la conectaremos a un servidor webhook NodeJS.
Puede encontrar el código completo del tutorial aquí.
Conceptos
Este tutorial te ayudará a construir dos componentes: una aplicación Android y un servidor webhook NodeJS. Al terminar, tendrás una aplicación básica de control parental que puede realizar llamadas proxy con la Voice API de Vonage en dispositivos Android 10.
Función de redirección de llamadas de Android 10
Para redirigir las llamadas utilizaremos una nueva función de Android 10: Roles. Los roles conceden a una aplicación acceso a determinadas funciones del sistema, como la redirección de llamadas. Android 10 introdujo el RoleManagerque controla el acceso a esos roles.
En nuestro caso, utilizaremos ROLE_CALL_REDIRECTIONjunto con un CallRedirectionService (Servicio de redirección de llamadas). Agruparemos ambos con la Voice API para enmascarar el número de teléfono del usuario.
Usuario
El usuario (en este caso un padre en el dispositivo de su hijo) descargará e instalará una aplicación Android. A continuación, la configurará con el número de teléfono del niño, de modo que una vez que se ejecute una llamada desde el dispositivo, un método método hook que redirigirá la llamada a un número de Vonage.
Para determinar a qué número redireccionar, por cada llamada saliente la aplicación enviará una solicitud HTTP a tu servidor webhook, que crea una asignación entre el número de destino y el número de teléfono del usuario. Como respuesta, el servidor devolverá el número de Vonage al que se debe llamar.
Por último, el dispositivo ejecutará la llamada al número de Vonage y el servidor webhook devolverá la asignación adecuada para conectar la llamada, a través de Vonage, con el destino original.
Android Proxy Call
Requisitos previos
Voice API
La Voice API de Vonage se utilizará para enmascarar nuestras llamadas y crear el proxy.
Para este tutorial necesitarás:
Una aplicación de voz
Un número que haya vinculado a su solicitud
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Herramientas
Recomendamos utilizar ngrok para exponer su servidor de webhooks y Android Studio para trabajar en la aplicación Android.
Configurar
Servidor Webhook
El código fuente completo del servidor webhook puede encontrarse aquí.
El archivo example.env contiene todos los parámetros necesarios para preparar el servidor webhook. Para este tutorial todo lo que necesitas hacer es rellenar el número que has vinculado a tu aplicación en el dashboard.
Así que primero, rellena example.env, VONAGE_PROXY_NUMBER es el número que ha asignado a su solicitud. VONAGE_PROXY_NUMBER_LOCAL es el mismo número, pero formateado para uso local. Así es como quieres que tu dispositivo Android marque tu número de Vonage, y es importante porque se usará para las llamadas salientes.
En segundo lugar, copie el archivo en .env:
cp example.env .env`En tercer lugar, instale y ejecute su servidor mediante el siguiente comando:
npm install && npm run start`
Su servidor debería ejecutarse ahora localmente.
NOTA: En nuestra implementación, la devolución de llamada sólo está disponible después de que el usuario (o el niño, en su caso) haya iniciado una llamada.
Aplicaciones Android
Cubriremos los puntos principales para construir la aplicación. Si usted no está familiarizado con Android en absoluto se recomienda el uso de esta guía para crear tu primera aplicación.
El código fuente completo de la aplicación de ejemplo puede encontrarse aquí.
Manifiesto
Abrir AndroidManifest.xml en /app/src/main y añada el BIND_CALL_REDIRECTION_SERVICE permiso. Permitirá que tu servicio reciba una notificación cuando se ejecute una nueva llamada y la redirija.
<service
android:name=".CallRedirectionServiceImplementation"
android:permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.CallRedirectionService" />
</intent-filter>
</service>
Servicio
Ampliar el CallRedirectionService (CallRedirectionServiceImplementation' en nuestro caso), y anular el método método 'onPlaceCall . Este método será llamado en cada llamada GSM saliente.
class CallRedirectionServiceImplementation : CallRedirectionService() {
override fun onPlaceCall(handle: Uri, initialPhoneAccount: PhoneAccountHandle allowInteractiveResponse: Boolean) {
//redirection logic here
}
}Tenga en cuenta las limitaciones del desvío de llamadas:
Tiempo - La implementación de tu método debe terminar de ejecutarse antes de cinco segundos, o fallará. Ruta - Para cualquier llamada del sistema a onPlaceCall debe asegurarse de que todas las rutas posibles terminan en uno de los métodos: placeCallUnmodified, cancelCall o redirectCall.
Interfaz de usuario
Crea una actividad para controlar tu servicio de redirección. La actividad debe adquirir el rol y solicitar la aprobación del usuario, y también debe permitir al usuario activar y desactivar la redirección.
Adquisición de funciones:
Comprueba que el rol está disponible antes de intentar adquirirlo (isRoleAvailable)
Dispara la intent creada por createRequestRoleIntent
Recibir el resultado en 'OnActivityResult'. Verify the result before proceeding.
Un gran poder conlleva una gran responsabilidad
Después de adquirir un rol no puedes devolverlo al sistema. La propiedad del rol significa que tienes ciertos privilegios que se revocarán inmediatamente en cuanto pierdas la propiedad del rol. En un sistema Android sólo puede haber una aplicación que adquiera un rol específico en un momento determinado.
Cuadro de mandos
Inicia sesión en el Panel de Vonage y navega hasta tu aplicación de voz. Completa la URL de "respuesta" con la dirección de tu servidor +. /answer. Debería verse como http://${server_adress}/answer. Del mismo modo, rellene la URL de "evento" con http://${server_adress}/event.
NOTA: Si está utilizando ngrok, la dirección debe parecerse a https://${your_ngrok_id}.ngrok.io
Guía del usuario
Ahora que tienes tu servidor webhook en funcionamiento, tu aplicación de voz configurada para solicitar NCCOs de él, y una aplicación Android construida, es el momento de jugar con tu solución.
Instala la aplicación en tu dispositivo Android y ábrela.
Configúralo introduciendo el número de teléfono del dispositivo.
Pulse 'habilitar'. Debería ver un aviso que le pide que conceda el permiso de redirección a la aplicación, por favor acepte.
Llame a cualquier número, utilizando el marcador nativo, y su llamada será proxy.
Para seguir el flujo de eventos, eche un vistazo a los registros del webhook.
android screen
El marcador nativo indicará que su llamada es a través de su aplicación
Recapitulemos
En las secciones anteriores hemos aprendido a aprovechar la Voice API junto con la función 'Call Redirection' de Android 10 para construir una solución de enmascaramiento de llamadas sin fisuras.
Proteger a los niños es una gran causa, pero sin duda es sólo una pequeña parte de lo que puedes conseguir con la solución que hemos creado: crea un proxy de llamadas para más casos de uso, o incluso amplía tu solución y añade un proxy de SMS.
La flexibilidad de Voice API le permite crear soluciones para muchas necesidades, pero quizás lo más importante es que le permite aumentar las capacidades de voz de próxima generación sobre su lógica e infraestructura existentes.
Puede encontrar una versión completa de este tutorial en en GitHub.
Si desea obtener más información sobre lo que puede hacer con nuestras API, visite nuestro portal para desarrolladores.
