(434) 218-3009
Aplicación VoIP para Android

RingNow

Una plataforma de softphone VoIP completa con llamadas SIP, mensajería SMS, gestión de contactos y una aplicación nativa para Android. Diseñada para cualquiera que necesite un número de teléfono estadounidense permanente que pueda llevar a cualquier parte del mundo.

Descripción general del proyecto

RingNow es un completo sistema telefónico VoIP que he creado desde cero. El backend es una aplicación FastAPI que gestiona la autenticación de usuarios, el aprovisionamiento de credenciales SIP, el almacenamiento de contactos, el registro de llamadas y la mensajería SMS a través de webhooks de Telnyx. El panel de control web ofrece a los usuarios una interfaz de tipo softphone directamente en el navegador, impulsada por JsSIP y WebRTC para llamadas de voz en tiempo real a través de una conexión a Internet estándar.

La aplicación para Android está creada con Capacitor, que envuelve el mismo motor de llamadas WebRTC en un shell nativo. Incluye un complemento Java personalizado para el enrutamiento de audio del altavoz/auricular utilizando la API «setCommunicationDevice» de Android 12, la generación de tonos DTMF a través de la API Web Audio y un servicio en primer plano para mantener las llamadas activas cuando la pantalla está apagada. El backend SIP se ejecuta en Asterisk con PJSIP, conectado a un troncal SIP de Telnyx para números de teléfono reales de EE. UU. con capacidad SMS completa.

Los retos de ingeniería más interesantes se centraron en la velocidad de establecimiento de las llamadas y el enrutamiento de audio. El establecimiento inicial de las llamadas tardaba más de 10 segundos debido a la recopilación de ICE/STUN, lo que se resolvió eliminando STUN por completo, ya que Asterisk se encarga de la retransmisión de medios. El conmutador del altavoz de Android requirió tres iteraciones: la API obsoleta setSpeakerphoneOn no funciona en Android 12+, la API más reciente setCommunicationDevice tiene un comportamiento invertido en contextos WebView, y el enrutamiento de audio interno de WebRTC entra en conflicto con la configuración de AudioManager. La solución consiste en forzar repetidamente el auricular después de la confirmación de la llamada para anular los valores predeterminados de WebRTC.

Este proyecto también fue un ejercicio para crear un complemento nativo de Capacitor adecuado desde cero: escribir Java que se comunique con AudioManager de Android, registrarlo en MainActivity y conectarlo a JavaScript a través de la API nativeCallback de Capacitor, ya que el puente WebView global no expone registerPlugin como lo hace el paquete npm.

Por qué es importante: números estadounidenses para expatriados y veteranos en el extranjero

Millones de estadounidenses viven en el extranjero: jubilados, nómadas digitales, veteranos militares y expatriados que trabajan en el extranjero. Todos ellos comparten un problema común: los bancos estadounidenses, el IRS, la VA, la Seguridad Social y otras innumerables instituciones exigen un número de teléfono estadounidense para la autenticación de dos factores, la verificación de cuentas y la confirmación de identidad. Sin él, no se puede acceder a las propias cuentas.

Los números desechables de aplicaciones como Google Voice, TextNow o las tarjetas SIM prepago no sirven. Los bancos marcan los números VoIP de grupos de consumidores conocidos. Google Voice requiere un número estadounidense existente para activarse. Las tarjetas SIM prepago caducan si no se recargan desde el extranjero. Y cuando su banco envía un código de verificación a un número que ya no existe, se enfrenta a semanas de llamadas al servicio de atención al cliente, desde un país extranjero, en horario comercial de EE. UU., a un número que no reconocen.

RingNow resuelve esto con un número de teléfono estadounidense permanente, de calidad operadora, respaldado por la infraestructura de telecomunicaciones de Telnyx, las mismas redes en las que confían los bancos y las agencias gubernamentales. Tu número recibe mensajes SMS reales (no notificaciones de aplicaciones), admite llamadas de voz a través de cualquier conexión a Internet en todo el mundo y permanece activo indefinidamente. Sin tarjeta SIM, sin dirección en EE. UU., sin recargas mensuales para mantener el número activo.

Tanto si es un veterano en Filipinas que recibe códigos de verificación de prestaciones del Departamento de Asuntos de Veteranos, un jubilado en Costa Rica que inicia sesión en su cuenta de Fidelity o un trabajador remoto en Portugal que presenta sus impuestos a través de IRS.gov, RingNow le proporciona un número estadounidense real que funciona en cualquier lugar, en cualquier dispositivo y a través de cualquier conexión a Internet. Su banco ve un número estadounidense legítimo. El IRS puede ponerse en contacto con usted. Sus cuentas siguen siendo accesibles.

Características principales

Llamadas WebRTC

Realiza y recibe llamadas telefónicas reales desde cualquier navegador o la aplicación para Android. Registro SIP a través de WebSocket, sin necesidad de plugins en el escritorio.

Mensajes SMS

Envíe y reciba mensajes de texto a través de su número estadounidense. Los SMS entrantes llegan a través de los webhooks de Telnyx en tiempo real, lo que resulta perfecto para los códigos 2FA.

Aplicación nativa para Android

Aplicación con condensador integrado, con conmutador personalizado de altavoz/auricular, compatibilidad con DTMF para menús IVR, servicio en primer plano para llamadas en segundo plano y notificaciones push.

Números de operador

Números de teléfono reales de EE. UU. de la red de telecomunicaciones de Telnyx, no de grupos de VoIP. Los bancos y las agencias gubernamentales los tratan como números fijos o móviles legítimos.

Compatibilidad con DTMF e IVR

Los tonos DTMF RFC4733 funcionan con sistemas telefónicos automatizados. Navegue por los menús IVR de los bancos, introduzca PIN e interactúe con cualquier sistema de tonos.

Contactos e historial de llamadas

Gestión de contactos integrada y registro automático de llamadas con seguimiento de la duración. Su agenda y su historial se almacenan en el servidor, accesibles desde cualquier dispositivo.

Pila tecnológica

FastAPI Python JsSIP WebRTC Asterisk PBX PJSIP Telnyx Capacitor Android SDK Alpine.js Tailwind CSS SQLite Web Audio API

Proyectos relacionados

Mr. Botsworth

Mr. Botsworth

Hey! I'm Mr. Botsworth, Greg's search bot. Ask me about his projects, skills, or services.