Archivo de la etiqueta: WebRTC

Videoconferencias en tu propio servidor con SylkServer

Tener un sistema con el que poder hacer videoconferencias ad-hoc en nuestro propio servidor es algo que puede resultarnos interesante.  Hoy vamos ha hacer eso mismo, instalando SylkServer y Sylk WebRTC client en un servidor con Ubuntu 16.04, de manera que el resultado sea el mismo que al visitar ésta web.

Sigue leyendo

VoIP2day 2016 – Videoconferencias: el santo grial de WebRTC

Pasrece que últimamente solo quito el polvo al blog para poner alguna presentación, asi que allá vamos 🙂

Aquí os dejo la presentación que dí en el VoIP2day de hace algunas semanas, el tema fue el rol de WebRTC en democratizar las videoconferencias y cómo lo aprovechamos nosotros con SylkServer:


Para los que lo queráis probar, aquí os dejo unos links de interés:

https://webrtc.sipthor.net
http://sylkserver.com
https://github.com/AGProjects

Espero publicar una guía sobre cómo desplegar Sylk WebRTC en vuestro propio servidor pronto, ¡estad atentos!

VoIP2day 2015: Extendiendo SIP con WebRTC

Como todos los años desde el 2007, he tenido la suerte de asistir al VoIP2day y ademas dar una presentación. Me encanta poder asistir para reencontrarme con viejos amigos, ver a que estamos jugando cada uno, y conocer gente nueva de nuestro pequeño mundillo.

En esta ocasión he presentado “Extendiendo SIP con WebRTC”, en la que he explorado la forma en la que utilizamos WebRTC en AG Projects para extender cualquier infraestructura SIP, utilizando SylkServer.


¡Espero que os sirva!

ElastixWorld 2015: De SIP a WebRTC y vice versa

Si, si hace un mes del tema, ¡lo se! Pero he estado de vacaciones hasta el pasado domingo 🙂

El ElastixWorld 2015 ha sido increíble, como de costumbre, estos chicos consiguen seguir superándose año a año. No voy a poder comentarlo tan elocuentemente como Elio lo ha hecho en su blog, asi que mejor vais allí a leer todo sobre como fue el ElastixWorld 2015.

A continuación os dejo mi presentación “De SIP a WebRTC y vice versa”. En ella comente cual es nuestra idea sobre WebRTC y como aplicarlo en redes SIP tradiciones. Presentamos SylkServer 3, que incluye un gateway a WebRTC.


Podéis leer mas acerca del gateway aquí, y probarlo directamente con una cuenta de SIP2SIP aquí.

¡Nos vemos en Buenos Aires para el ElastixWorld 2016!

SylkServer 3.0.0 disponible, con gateway WebRTC!

Wow, hace casi un año que no escribo por aquí. Tras las labores de mantenimiento correspondientes y pasar a utilizar un theme algo mas minimalista, vamos al grano.

Ayer lanzamos SylkServer 3.0.0, una nueva versión de SylkServer, el servidor de aplicaciones SIP que desarrollamos en AG Projects. La funcionalidad principal que trae la version 3.0.0 es la capacidad de funcionar como un gateway a WebRTC.

En este post vamos a explorar un poco esta nueva versión, instalándola en una maquina virtual o servidor, hasta llegar al punto donde podamos realizar una llamada desde nuestro navegador a un dispositivo SIP de la vieja escuela.

Paso 1: requisitos previos

Lo primero que necesitamos en un sistema en el que instalar SylkServer. Yo voy a basarme en una Debian Jessie.

Una vez nuestro sistema esta instalado / actualizado, tenemos que anyadir los repositorios de AG Projects, siguiendo las instrucciones que se indican aquí.

Paso 2: instalación

Una vez tengamos los repositorios en nuestro sistema, instalaremos un par de paquetes, y el sistema de dependencias se encargará del resto:

sudo apt-get update
sudo apt-get install sylkserver sylkserver-webrtc-gateway

Paso 3: ejecución

Arrancamos los servicios de Janus y SylkServer:

sudo systemctl restart sylkserver
sudo systemctl restart janus

Consultamos syslog para ver que todo se haya arrancado correctamente:

Sep  4 12:11:22 debian-stable sylk-server[10031]: Starting SylkServer 3.0.0, with no configuration file
Sep  4 12:11:22 debian-stable sylk-server[10031]: Using SIP SIMPLE SDK version 2.5.1
Sep  4 12:11:24 debian-stable sylk-server[10031]: SylkServer started, listening on:
Sep  4 12:11:24 debian-stable sylk-server[10031]: 192.168.99.36:5060 (UDP)
Sep  4 12:11:24 debian-stable sylk-server[10031]: 192.168.99.36:5060 (TCP)
Sep  4 12:11:24 debian-stable sylk-server[10031]: 192.168.99.36:5061 (TLS)
Sep  4 12:11:24 debian-stable sylk-server[10031]: Site (TLS) starting on 10888
Sep  4 12:11:24 debian-stable sylk-server[10031]: Web server listening for requests on: https://192.168.99.36:10888
Sep  4 12:11:24 debian-stable sylk-server[10031]: warning: Error loading builtin "sylk.applications.xmppgateway" application: No module named wokkel.disco
Sep  4 12:11:24 debian-stable sylk-server[10031]: Loaded applications: conference, webrtcgateway, playback, echo, ircconference
Sep  4 12:11:24 debian-stable sylk-server[10031]: Default application: conference
Sep  4 12:11:24 debian-stable sylk-server[10031]: Application map:
Sep  4 12:11:24 debian-stable sylk-server[10031]: * echo:
Sep  4 12:11:24 debian-stable sylk-server[10031]: - echo
Sep  4 12:11:24 debian-stable sylk-server[10031]: [webrtcgateway] WebSocket handler started at wss://192.168.99.36:10888/webrtcgateway/ws
Sep  4 12:11:24 debian-stable sylk-server[10031]: [webrtcgateway] Allowed web origins: *
Sep  4 12:11:24 debian-stable sylk-server[10031]: [webrtcgateway] Allowed SIP domains: *
Sep  4 12:11:24 debian-stable sylk-server[10031]: [webrtcgateway] Using Janus API: ws://127.0.0.1:8188
Sep  4 12:11:24 debian-stable sylk-server[10031]: [webrtcgateway] Janus backend connection up

Paso 4: prueba

En el paso anterior hemos visto que SylkServer ha arrancado su servidor web en el puerto 10888:

Web server listening for requests on: https://192.168.99.36:10888

Asi que dirigimos el navegador a https://IP-del-servidor:10888/webrtcgateway/ y veremos la siguiente web:

Screenshot 2015-09-04 12.28.56

Al hacer click en el link “SylkRTC Test suite” se mostrará la pagina de prueba desde la que poder registrarnos y hacer llamadas:

Screenshot 2015-09-04 12.29.12

Rellenamos nuestros datos y llamamos al 3333@sip2sip.info para probar…

Screenshot 2015-09-04 12.30.14

Yeah!


 

Supongo que os surgirán algunas dudas de configuración y demás. Hay varias cosas que se pueden configurar en el fichero webrtcgateway.ini, pero una de nuestras decisiones de diseño con SylkServer es zeroconf, es decir, que el software funcione diréctamente sin configurar nada.

Para mas información, podéis consultar la web de SylkServer, el wiki con la documantación del API, o probar Blink for Web con vuestra cuenta de SIP2SIP.

Screenshot 2015-09-04 12.30.27

Plivo lanza un SDK utilizando WebRTC y SIP… ¡con JsSIP!

Hace un tiempo que comenté en qué consiste Plivo y cómo utilizarlo. Básicamente, es un framework de comunicaciones basado en FreeSWITCH, que además de estar disponible bajo una licencia libre proporciona un servicio in the cloud.

Parece que Plivo ha suscitado bastante interés, hasta el punto de recibir 1.75 millones de dolares de capital riesgo.

La semana pasada Plivo lanzó su nuevo SDK utilizando SIP y WebRTC, y como persona curiosa que soy tuve que echar un vistazo a su código minificado, que gracias a Chrome se puede deofuscar un poco:

Fue toda una sorpresa descubrir que para la señalización el SDK de Plivo¡ utiliza JsSIP! Su SDK añade soporte de flash para los casos en los que WebRTC no esté disponible, pero la señalización es 100% JsSIP.

Desde aquí mi más sincera enhorabuena a José Luis e Iñaki por todo el buen trabajo y a Plivo por el lanzamiento.

jsSIP ya disponible en GitHub!

Hace aproximadamente un año ya comentábamos que jsSIP, la librería SIP en JavaScript estaba siendo desarrollada, para junto al proyecto OverSIP, ofrecer una solución de comunicaciones en tiempo real desde los navegadores.

Hace pocos días, en el VoIP2day + ElastixWorld jsSIP 0.1.0 fue lanzado en GitHub para el uso y disfrute de los presentes.

Son ya varias las implementaciones de SIP sobre WebSocket: Kamailio, Asterisk, FreeSWITCH (no estoy seguro si ya es funcional) y sipml5, pero jsSIP y OverSIP forman la implementación de refencia. La implementación creada por los autores del draft.

He tenido la ocasión de poder colaborar con ellos en parte del proceso, y desde aquí quiero dar mi enhorabuena a Iñaki y Jose por haber llevado la idea desde 0 hasta el final. No todo el mundo es capaz de dejar de dormir durante más de un año para ver trazas SIP en la consola JavaScript de su navegador 😉

Aquí os dejo la presentación que dieron, para los que no la pudisteis disfrutar en vivo y en directo:


 

Publicada la primera versión estable de OverSIP

Hace casi un año publiqué un post titulado “SIP en la Web” en el que comentaba los avances realizados por mis amigos Iñaki Baz Castillo y Jose Luis Millán en el ámbito de SIP y WebRTC.

Tras mucho (¡demasiado!) tiempo en silencio se ha lanzado la primera versión estable de OverSIP, el primer proxy SIP con soporte para el transporte WebSocket. No es casualidad que haya sido escrito por el autor de el draft ;-)

OverSIP es algo más que un proxy, es un framework con el que es posible desarrollar servidores SIP de una manera flexible, utilizando para ello el lenguaje de programación Ruby. Actualmente dispone de todas las facilidades para implementar un completo edge-proxy con soporte para SIP outbound, transporte WebSocket, IPv6 y muchas más cosas.

Supongo que estaréis pensando “meh, Ruby es lento”. No. El core de OverSIP está escrito en C (el parser SIP) y también utiliza EventMachine-LE, una librería escrita en C++ que implementa el patrón de diseño reactor (como Twisted o NodeJS). Toda una obra de arte.

Si no lo has hecho ya, date una vuelta por la web de OverSIP, para conocer con todo detalle sus features y su API.