jueves, 9 de octubre de 2008

Guia Definitiva: VOIP o cómo llamar (gratis) con el iPhone

En este tutorial, a parte de aprender como funciona VoIP y ver ejemplos prácticos, veremos un ejemplo de como hacer llamadas gratuitas VoIP a través de la red 3G del iPhone, sin necesidad de una red Wi-Fi.

VoIP, siglas que en inglés significa Protocolo de voz a través de Internet, no es un programa, ni un protocolo, ni un servicio, sino una tecnología que permite que la voz “viaje por Internet”. VoIP, como tecnología, agrupa diferentes conceptos, como protocolos, puertos, dispositivos, …

Al igual que otras tecnologías, como la mensajería o el intercambio de archivos, se utilizan protocolos específicos, servidores auxiliares, y otros elementos que conforman en su totalidad el concepto de VoIP.

Muchas empresas han desarrollado sus propios protocolos para transferir la voz por internet, como Skype, protocolos cerrados y propietarios que sólo pueden ser usados a través de sus propios productos o a través de sus propias redes. También podemos encontrarnos protocolos abiertos como Jingle, una extensión del conocido protocolo Jabber (diseñado por Google y popularizado a través de Google Talk) pero adaptado para la transmisión de datos multimedia. Y por supuesto nos encontramos también con los protocolos “oficiales” que han sido diseñados por organismos internacionales para la creación de estándares, como es el SIP, diseñado por el IETF (Internet Engineering Task Force, o Grupo de Trabajo en Ingeniería de Internet), y usado con sistemas tan conocidos como Windows Messenger para las comunicaciones de voz.

El protocolo SIP

SIP, siglas de Protocolo de Inicio de sesión (Session Initiation Protocol), se encarga de iniciar, modificar y finalizar una sesión (conexión), así como determinar la ubicación de los usuarios, los puertos y codecs a usar, etc… El protocolo SIP adopta el modelo cliente-servidor, comportándose como un sistema P2P, por lo que siempre habrá un servidor entre las personas que se comuniquen.
En el SIP, los que emiten y reciben la comunicación, ya sea un software o un teléfono, se les denomina Agente de usuarios, y diferencia a los que emiten la señal (clientes, o también llamados UAC, User Agent Client) y los que la reciben (servidores, oUAS). Entre ellos están los servidores de registro, los proxys y los redirectores.
Los servidores de registro (llamados Registrar), son los que nos permiten identificar nuestra ubicación. Para usar el protocolo SIP, he de darme de alta en un servidor SIP, facilitándome un identificador o nombre de usuario, tal que cada vez que se iniciarse en nuestro PC o iPhone el software de conexión por SIP, le comunica al servidor SIP que IP tenemos. Este paso es fundamental pues es el que nos permite asociar nuestra identificación SIP con nuestra ubicación en internet en todo momento (dirección IP).
Los servidores proxy o redirectores se encargan de dirigir el tráfico de datos (voz) entre el UAC y el UAS. La diferencia entre proxy y redirector es básicamente que el redirector puede decidir cual es la ruta más corta y/o eficiente, reasignando el mejor proxy. A efectos prácticos, lo que nos interesa es que este servidor proxy es el que nos transmite. Sus prestaciones sin duda determinarán la calidad de la voz.
Los nombres de usuario no son necesariamente compartidos por los diferentes servidores de registro, y cada servidor de registro suele disponer de su propia red de proxys.
Como conclusión, para usar SIP hemos de estar registrados en un servidor SIP, el cual nos proporcionará un identificador o nombre de usuario, y un proxy. La elección del servidor SIP determinará la calidad y sostenibilidad de la voz.
VoIP en el iPhone
VoIP en el iPhone representa la unión de tres elementos:

* Una aplicación VoIP para el iPhone
* Una red de comunicación (3G/Wi-Fi)
* Un operador VoIP.

El iPhone es un caso particular, ya que es teléfono y ordenador a la vez, y es capaz de transmitir las llamadas del teléfono por la misma vía que accede a internet. Esta peculiaridad obliga a que, para no perjuicio de las operadoras, se bloquee la posibilidad de usar VoIP a través del 3G del iPhone, limitándose a usar Wi-Fi sobre otra red ADSL/Cable que no perjudique a las redes de telefonía. Más adelante veremos como podemos realmente hacer llamadas por la red 3G.
El uso de aplicaciones de terceros requieren de la autorización y supervisión de Apple para ser publicada en el AppStore, el cual guarda como es lógico, convenios con las operadoras para regular el (ab)uso de VoIP en el iPhone. El tema de usar aplicaciones no autorizadas pasa por usar un iPhone desbloqueado, y hoy por hoy, no aporta ninguna diferencia.
En cuanto a la red de comunicación, la situación actual es francamente pobre debido a la restricción a no poder usar (oficialmente) la red 3G, teniendo que usar la conexión Wi-Fi, por lo que, o estamos en casa/trabajo con nuestro Wi-Fi, o tenemos una señal Wi-Fi abierta a nuestro alcance. En cualquier caso, si ya de por si VoIP es una tecnología donde la calidad del audio no es su mejor baza, agregar el Wi-Fi no hace más que perjudicar más la calidad de la voz. Las alternativas no son muchas: o se abre la posibilidad de usar la red 3G del iPhone para aplicaciones VoIP, lo que nos permitirá no solo disponer de una señal “estable” sino de una movilidad mucho mayor, ya que no dependeré de estar en una ubicación con cobertura Wi-Fi, o bien usamos el Wi-Fi con la mayor optimización que podamos tener (como una conexión Ad Hoc con un PC). La tercera alternativa es saltarse la prohibición de no poder usar la red 3G…
En cuanto a los operadores VoIP, hay una dependencia directa a que estos ofrezcan una aplicación para el iPhone. Hoy por hoy, las soluciones pasan por el uso de los operadores SIP, o de soluciones populares como Skype.
Aplicaciones VoIP para el iPhone

Apple no va a fastidiar a las operadoras de telefonía permitiendo aplicaciones VoIP en sus terminales que resten los ingresos del uso de la telefonía convencional, eso es evidente, aunque abre (porque no les queda más remedio) la posibilidad de usar VoIP a través de Wi-Fi.

Mucha gente está esperando la llegada de Skype para iPhone. Personalmente dudo que llegue el momento, ya que para ello tendría que tener el beneplácito de Apple para que su software funcionara a través de la red 3G de las operadoras, y estas, obviamente, no quieren. No es que técnicamente no se pueda, es que no se quiere, y Skype tampoco está por la labor.

Hay dos tipos de aplicaciones: la aplicaciones instalables desde AppStore, Cydia o Installer, y las aplicaciones Web.

Las aplicaciones web no son más que páginas web que cubren diferentes servicios a través de la web. Son el caso de por ejemplo de iPhoneGnome, Jajah, Talkety, Raketu. En lo que refiere a VoIP, este tipo de aplicaciones no (me) interesan.

Respecto a las aplicaciones “normales”, nos encontramos con una (desafortunada) situación relacionada con una limitación del software del iPhone: no permite la ejecución de aplicaciones en segundo plano. Por poner un ejemplo, no podrás recibir en tu PC un mensaje por el Messenger, si este no está encendido, y por la misma razón, no podrás recibir una llamada por VoIP en el iPhone si el programa en cuestión no está ejecutándose. La única alternativa para que una aplicación VoIP pueda recibir una llamada es que estando ejecutándose en el iPhone, se pulse el botón de inicio, dejando por tanto la aplicación en modo de reposo (idle), con el consecuente gasto de batería (ver tutorial sobre batería).

Entre las aplicaciones que permiten VoIP en el iPhone, yo destacaría dos: TruPhone y Fring. Existen otros proyectos como RingFree, así como otros todavía en fase de beta cerrada, como iCall o Siphon que pueden ser interesantes candidatos a evaluar en un futuro.

TruPhone

Descargable a través del AppStore (link directo). No requiere Jailbreak.
TruPhone te permite realizar llamadas a fijos y móviles a través de Wi-Fi a más de 40 países diferentes. No permite el envío de SMS desde la propia aplicación, ni la recepción de llamadas a través de TruPhone, ni el uso de la red 3G. Tampoco permite llamar a otro iPhone que tenga TruPhone (recordamos que el iPhone, a no permitir la ejecución de aplicaciones en segundo plano, imposibilitan que estas respondan a llamadas entrantes).
Tras descargar desde el AppStore y realizar la correspondiente alta, lo primero que he probado es a llamar a un número gratuito de España, con dos noticias: la buena era la calidad de la señal (dentro de lo que cabe para ser VoIP), y la mala, es que me han cobrado 7 céntimos por una llamada gratuita (seguramente porque el último tramo no se ha efectuado desde España). Tras haber gastado el 1€ de crédito gratuito que te dan, la gran pega, como todos, es que sólo puedo llamar usando el Wi-Fi.
En cuanto a los precios (ver tarifas), las llamadas entre usuarios de TruPhone son gratuitas, y para llamadas a fijos y móviles tienen unas tarifas interesantes que no compiten con las llamadas locales o provinciales, ya que están orientadas a reducir el coste de las internacionales.
Respecto a las cuestiones técnicas, TruPhone funciona a través del protocolo SIP, abriendo por tanto la puerta 5060 en el iPhone.

Fring

Descargable desde AppStore (link directo). No requiere Jailbreak. Requiere firmware 2.x
Fring es la aplicación de moda ya que unifica diferentes servicios en una sola aplicación: la mensajería y la telefonía. Fring te permite:

* Comunicarte con redes sociales como Skype, MSN Messenger, Google Talk, ICQ, Twitter, Yahoo! y AIM.
* Realizar y recibir llamadas a través de SkypeOut o de un servidor SIP.

Fring no es un proyecto de VoIP, sino un proyecto de conectividad de servicios de múltiples protocolos. Fring no te va a facturar ni cobrar por las llamadas, lo que hace es permitirte usar otros servicios a través de su aplicación. Si usas Skype con Fring, tendrás que usar los créditos de Skype que compres a ellos. Si usas un servidor SIP, será dicho servidor y su política de precios el que determine los costes.
Al igual que el resto de aplicaciones, las llamadas por la red 3G están “prohibidas”… aunque últimamente algunos medios se han hecho eco de un “parche” que permite usar Fring sobre la red 3G… También probaremos este parche y veremos como termina la cosa :)
Fring esta diseñado modularmente pudiendo crecer a través de Addons, viniendo de serie con un buen nutrido de addons.
A efectos de VoIP, el principal atractivo de Fring es que te permite llamar a través de Skype, y eso es una novedad ya que Skype no tienen una aplicación cliente para iPhone. El segundo atractivo es la posibilidad de realizar llamadas a través de SIP desde un conjunto predeterminado de servidores SIP o pudiendo configurar uno propio. Puedes ver un vídeo demostrativo acerca de las llamadas por SIP. A la hora de realizar una llamada por VoIP, podrás elegir el servicio a usar, como hacer una llamada convencional, a través de Skype o a través de SIP.

Respecto a precios y rendimiento de la comunicación, Fring no puede ofrecerte datos, ya que depende de los servicios y servidores de terceros que configures.
Personalmente he podido llamar gratuitamente teléfonos fijos a través de algunos servidores SIP, como internetcalls. Hagamos una prueba…
Test de llamada gratuita a través de Wi-Fi
Para hacer una prueba usando SIP, he elegido un popular servidor, Internetcalls, en cuyas tarifas podemos encontrar llamadas gratuitas, por ejemplo a España. Lo primero me he descargado el programa, y tras ejecutarlo he creado una nueva cuenta de usuario. En el momento en que tengas el username y password, el programa ya no lo necesitarás más (de hecho puedes desinstalarlo). Con este paso lo que tengo son una credenciales en un proveedor SIP.
Ahora en el iPhone, configuro Fring para usar SIP, indicando las credenciales anteriores, y como servidor proxy, el que te facilitan (en este caso sip.internetcalls.com).

Ahora ya puedo hacer una llamada gratuita a España. Marco, importante con el prefijo del país destino (+34 en el caso de España), y efectúo una llamada. Mientras converso con mi interlocutor, confirmo que la llamada la ha recibido desde un teléfono de una población española, que no se corresponde con el mío, indicando con ello que efectivamente, la llamada la ha hecho otro, en este caso mi servidor SIP.

Por supuesto, hay limitaciones, pero no costes. Por ejemplo, en internetcalls los límites son que no puedes consumir más de 300 minutos por semana, límites que como quien dice, son fácilmente salvables (te creas más cuentas en este u otros proveedores SIP).
La calidad de la señal, no es que sea para tirar cohetes (siendo a través de Wi-Fi), pero el objetivo ha sido cumplido: hablar con alguien. Ahora toca hacer la prueba “buena”, llamar desde cualquier lugar a través de la red 3G.
Test de llamada gratuita a través de 3G
Como he comentado, recientemente ha salido un parche que permite usar Fring a través de 3G en vez del Wi-Fi. He decidido hacer exactamente la misma prueba anterior, pero con el parche aplicado. Para ello, desde WinSCP (vertutorial sobre el acceso al sistema de archivos), he renombrado la carpeta original de Fring.app a Fring.app.old y he copiado la versión “parcheada”, tras lo cual he reiniciado el iPhone.

He desconectado el Wi-Fi para asegurarme, y he repetido la llamada, esta vez desde la red de 3G de Movistar…. ¿el resultado? PERFECTO :) Mi primera llamada gratuita desde la calle a un número fijo

Respecto a la calidad, he notado una mejoría en comparación con el Wi-Fi, aunque como se ha comentado antes en el apartado de SIP, el proxy cuenta mucho, y hay que probar diferentes servidores SIP hasta encontrar uno que tenga una calidad superior.
Cómo elegir un buen servidor SIP
Es también habitual que los servicios que ofertan VoIP a través de SIP, compartan servidores proxy para abaratar los costes (y de paso empeorar la calidad de la voz por saturación de tráfico). Por ejemplo, los siguientes servidores SIP, en su mayoría, comparten los mismos servidores proxy.

sip.vyke.com = 66.205.178.59
sip.voipbuster.com, sip.justvoip.com, sip.smsdiscount.com, sip.smslisto.com = 194.120.0.198 y 194.221.62.198 (Betamax)
sip.nonoh.net = 194.221.62.198 (Betamax)

Acerca de Betamax

Betamax, realmente es una empresa suiza llamada Finarea SA, agrupa un gran número de servicios de VoIP. Todos ellos ofrecen VoIP a través de SIP, pero comparten la misma red (mismos proxys), por lo que el servicio y calidad, como es de esperar, no es muy aceptable. Entre los servidores de la red Betamax podemos encontrar a: 12voip, budgetsip, calleasy, dialnow, freecall, internetcalls, intervoip, justvoip, lowratevoip, netappel, nonoh, poivy, sipdiscount, smsdiscount, smslisto, sparvoip, voipbuster, voipbusterpro, voipcheap, voipcheap uk, voipdiscount, voiphit, voipraider, voipstunt, voipwise y webcalldirect.

Es habitual leer reclamaciones de usuarios que han pagado créditos a estos servicios y luego no ha podido disfrutarlos. El consejo es que si has de usar créditos en alguna de las empresas de Betamax, no pagues con tarjetas directamente, sino a través de servicios intermediarios como PayPal.

Puedes consultar una comparativa de tarifas de estos servidores por países.

Para una buena elección de un servidor SIP hay que evaluar diferentes aspectos como que no esté sobresaturado o compartido, que el tiempo de latencia sea bajo, y que haya el menor numero de saltos entre nuestra ubicación y el proxy. También es relevante si el servidor admite tráfico TCP y UDP, así como si actúa como proxy exclusivamente o como redirector, y si permite el registro desde otros dominios… Es difícil poder evaluar todo esto, sobre todo si los resultados son diferentes según la ubicación geográfica donde estés.
Por ejemplo, usando el servicio de http://www.yougetsignal.com/tools/visual-tracert/ podemos comprobar la ruta que tomaría nuestra voz si usáremos el servidor sip de vyke.com
Comprobando el tiempo de respuesta, podemos comprobar que es relativamente alto.
Es importante sin embargo, que si me conecto desde España, la ruta no de muchas vueltas, como es el caso de los servidores compartidos (sip.voipbuster.com por ejemplo) en el cual vemos como de España va a USA y vuelve a Europa de nuevo, realizando 31 saltos.
Sin embargo, su tiempo de respuesta es 3 veces inferior.
Puedes efectuar pruebas de tiempos de respuesta desde diferentes ubicaciones con herramientas como http://www.just-ping.com/

No hay comentarios: