Recibiendo llamadas al móvil cuando la aplicación de softphone está en segundo plano o cerrada
El reciente artículo Softphone para Android: ¿dejarlo dormir o no dormir? ha conmovido al público: hemos recibido muchos mensajes con preguntas y casos a los que se han enfrentado sus autores. Diferentes softphones, diferentes países, diferentes proveedores. Y el mismo dolor: se durmieron y nunca se despertaron. Como resultado, llamadas perdidas, pérdida de beneficios, reputación dañada de una persona a la que es imposible contactar.
Fue bastante sorprendente ver que cada uno escribió sobre ello en sus propios términos. Parece que en nuestro ámbito de TI debería haber una terminología establecida desde hace mucho tiempo... pero no en este caso: algunos escribieron que el softphone se está anulando el registro (getting unregistered), otros dijeron que el softphone pierde la conexión (loses connection) y afirmaron que el softphone no puede despertar (cannot wake up).
Sorprendentemente, en los foros reina la misma variedad: Google nos lleva a Reddit, Quora, Stack Overflow, así como a las comunidades de Asterisk, FreePBX y Microsoft. Estas son las preguntas y los temas más frecuentes:
...softphone app cannot wake up (no puede despertar);
...cannot receive calls (no puede recibir llamadas);
...cannot connect to the network (no puede conectarse a la red);
...getting unregistered (dando de baja);
...loses connection during sleep (pierde la conexión durante el sueño);
...dropping connection when not in use (pierde la conexión cuando no está en uso);
...logs out (cierra la sesión);
...goes offline after a few minutes of inactivity (desconecta después de unos minutos de inactividad);
...won't receive calls after some time (no quiere recibir llamadas después de un tiempo);
...issues waking up (problemas para despertarse).
El tema parece sensible: allí se pueden encontrar fácilmente palabras como “¡ayuda!”, “dolor”, “asesinato” y muchas otras palabras expresivas y emotivas. Por ejemplo, ¿cómo encuentras el tema Help with softphone woes android?
Pero nuestro premio se lo lleva este hilo brillante. La discusión comienza con calma, nada presagiaba:
Every time I background the app, close it or allow my phone to go to sleep, the app unregisters my VoIP account. (Cada vez que pongo la aplicación en segundo plano, la cierro o permito que mi teléfono entre en modo de suspensión, la aplicación anula el registro de mi cuenta de VoIP.)
Alguien deja un comentario:
That's the nature of the beast (Esa es la naturaleza de la bestia).
Vaya. De entrada. ¿Creías que estabas en un cuento de hadas, amigo? Como en el Hotel California: they stab it with their steely knives, but they just can't kill the beast… La vida es dolor, memento mori.
Otro comentarista escribe:
Apps are not normally allowed to maintain a constant connection in the background because it would... (Normalmente no se permite que las aplicaciones mantengan una conexión constante en segundo plano porque...)
Y de repente
...murder battery (eso mata la batería).
Maravilloso. Un asesinato inglés. Los crímenes de la calle Morgue. Sigue escribiendo, sigue con las nobles tradiciones de Edgar Poe y Agatha Christie. Eres increíble.
Una visión más: se requiere...
an external server that maintains the actual VoIP connection and then pings the phone through the platform's notification system to tell it to wake up (un servidor externo que mantenga la conexión VoIP real y luego envíe un ping al teléfono a través del sistema de notificaciones de la plataforma para indicarle que se active).
Según el siguiente comentario,
you need to be connected to a service that supports Apple/Android Push (necesitas estar conectado a un servicio que admita Apple/Android Push).
Y este es exactamente el método que utilizamos para el desarrollo del softphone White Label para dispositivos móviles, descrito en el artículo Softphone para Android: ¿dejarlo dormir o no dormir?. No hace falta decir que los distintos sistemas operativos necesitan diferentes push: Apple Push para iOS y Android Push para el sistema operativo de Google (dad al César lo que es del César y a Dios lo que es de Dios, como está dicho).
¡El gran avance está cerca! La comunidad emite un dictamen: nos guste o no, hoy en día es
impossible to have a standard SIP client that "just works" without external infrastructure (imposible tener un cliente SIP estándar que "simplemente funcione" sin una infraestructura externa).
En cuanto a la infraestructura externa, el ya mencionado Google/Android Push desempeña este papel; actúa en conjunto con el servidor push y el proxy push. El esquema general es el siguiente:
Hemos pasado por la ira, la depresión y otras etapas del duelo, ahora estamos cerca de la aceptación. Necesitamos seguir adelante. Tal vez incluso con el mismo proveedor:
I’m using voip.ms (Estoy usando voip.ms)
Una buena elección. VOIP.ms es un proveedor decente y nuestro socio, entre otros. Tenemos una larga trayectoria, puedes verlos en nuestro sitio web y nuestro softphone está presente en su Wiki.
Por cierto: el proxy push no tiene por qué estar necesariamente en el sitio web del proveedor de la centralita. La infraestructura de Mobile Softphone.Pro incluye tanto el proxy push como el servidor push. Lo importante es que la centralita admita el protocolo SIP.
Entonces el algoritmo es el siguiente:
- En el momento de la llamada el PBX le dice al push-proxy: ¡Tenemos una llamada entrante!
- Entonces el push-proxy pregunta al softphone: ¿estás despierto?
- Si el softphone está en vela, recibe inmediatamente la llamada (y ahí termina la historia). De lo contrario, el softphone está dormido, hay que despertarlo:
- El servidor push se suma a la fiesta y trae un amigo, el Apple/Google Push, el que actúa como despertador.
- El Softphone despierta, todos están felices.
Realmente queremos que un día en todos los foros la gente discuta no fallas y problemas sino ejemplos de cómo su softphone
...puede despertar
...puede recibir llamadas
...ya no pierde la conexión
...permanece conectado
...recibe todas las llamadas
y no tiene problemas de activación.
Disfruta de Softphone.Pro y mantén la calma 💙
TAMBIÉN TE PUEDE INTERESAR
Blog
Softphone para Android: ¿dejarlo dormir o no dormir?
Blog
Softphone para Android: tecnologías que utilizamos
Blog
Softphone en realidad: lo que dice la gente