Icono del sitio Sinologic

Como hacer un softphone web

Un compañero de otra empresa me preguntaba hace unos días sobre cómo debía de actuar si quisiera desarrollar un teléfono vía web y pese a que tengo claro cual es la respuesta rápida, dándole vueltas a más posibilidades el resultado no deja de ser, cuanto menos, interesante.

Hace unos años, para hacer una aplicación web que pudiera hacer llamadas a móviles, se hacía uso de una librería comercial llamada PortSIP. Esta utilizaba un ActiveX lo que lo hacía compatible únicamente con sistemas operativos Windows. La alternativa a esto, era utilizar un applet de Java llamado JIAXClient y utilizar el protocolo IAX para hacer llamadas.  El problema era que ActiveX requería, no solo de Windows, si no también de una versión concreta de Internet Explorer, por lo que no era compatible en el 90% de los sistemas. JIAXClient utilizaba el sistema de Applet de Java, un subsistema que tras pasar por varias manos, acabó en Oracle y los navegadores dejaron de dar soporte y apoyo…

Posteriormente y para hacer compatible a otros sistemas operativos y otros navegadores distintos de Internet Explorer, muchas empresas optaron por utilizar un componente Flash que, unido al protocolo RTMP (RealTime Media Protocol) que utiliza este sistema, precisaba de un gateway que convirtiera RTMP a SIP y pudiera hacer llamadas SIP. Hoy día Flash está condenado y son pocos los navegadores que lo soportan nativamente, y solo si necesitas ejecutar una aplicación creada en Flash, necesitas confirmar su ejecución en una ventana aparte.

Los nuevos navegadores como Chrome o Firefox han «expulsado» cualquier librería externa que intente acceder al hardware del sistema sin pasar por ellos, de manera que ya no sirven los medios habituales que se utilizaban antaño (DLL, OCX, y extensiones del navegador que hacían uso de librerías de terceros para acceder al hardware). Hoy día parece que la única manera con vistas de futuro, pasa por WebRTC.

Aún así, hablar de WebRTC es hablar de los cimientos que hacen falta para tener un softphone web, ya que a partir de ahí hay que desarrollar bastante código antes de tener algo disponible para los usuarios. A partir de aquí, tenemos varias posibilidades:

Soy consciente que hay muchas más empresas que desarrollan soluciones WebRTC, Gateways, APIs, librerías y servicios WebRTC para empresas y para facilitar la vida a todo aquel que quiera desarrollar un click2call o un softphone web, pero estas son las más conocidas que me vienen a la mente.

Tampoco he hablado de soluciones web que ofrecen sistemas cerrados y propietarios. Son muchos los fabricantes que ofrecen WebRTC como un reclamo para atraer nuevos clientes, un canto de sirena que habría que evitar si no quieres depender de esa empresa y que te obliguen a cambiar todo el sistema cada cierto tiempo con el miedo de que deje de funcionar si no aceptas las nuevas normas, cobros, certificados, mantenimientos o a saber qué…

Es un error mayúsculo confundir WebRTC con un softphone web. WebRTC es un nuevo paradigma dentro del mundo de la VoIP y por lo tanto aunque hay ciertos conceptos que son comunes a la VoIP que conocemos (protocolos, códecs, puertos, etc..) a efectos prácticos es como volver a empezar de cero, por lo que desarrollar algo WebRTC que se conecte a nuestro sistema SIP de toda la vida no es algo rápido, fácil ni trivial, si no que requiere de mucho esfuerzo, pruebas y conocimientos que, por lo general, no son fáciles de aprender y si deseamos algo «rápido y fiable», tampoco será barato.

 

Salir de la versión móvil