free(SylkServer);

Me alegra mucho poder escribir hoy este post. Hace algun tiempo que publicamos en Twitter que SylkServer sería lanzado pronto. Pues ese día es hoy.

SylkServer empezó como una evolución del anterior switch MSRPSIP-chatserver. El chatserver estaba desarrollado con el API de una versión muy antigua de SIPSIMPLE, por lo que era necesario reescribir gran parte de su código. La tarea resultó más sencilla de lo esperado ya que la versión actul de SIPSIMPLE proporciona una API de mucho más alto nivel que permite una interacción sencilla con sesiones SIP con distintos tipos de streams como MSRP o RTP.

Una vez teníamos el nuevo chatserver pensamos en añadir soporte para otros timos de media, así que añadimos soporte para audio. De esta manera tenemos una conferencia que se lleva a cabo en 2 planos: audio y texto. Pero no todo el mundo tiene un cliente SIP con soporte para MSRP así que añadimos también soporte para SIP MESSAGE. Al ser un servidor de conferencias, los mensajes tienen que ser enviados ‘de parte de los usuaris’, por lo que CPIM es imprescindible. Cual fue mi sorpresa al comprobar que ningún softphone que probé lo soportaba :-(. Dejo la importancia de CPIM para un futuro post.

Una vez teníamos audio y chat nos faltaba algo muy importante: la lista de participantes. Afortunadamente tenemos una manera estándar de hacerlo: el evento conference (RFC4575). Al suscribirnos al evento conference, el servidor nos enviará un NOTIFY con un XML describiendo la sala de conferencias, incluyendo la lista de participantes. Blink se suscribe automágicamente a éste evento (cuando recibe un 200 OK del servidor con el parámetro isfocus en la cabecera Contact, para ser más exactos) y nos presentará la lista de participantes de la siguiente manera:

Finalmente, dotamos al servidor de una arquitectura de plugins de manera que se puedan desarrollar distintas aplicaciones. De momento hemos implementado ‘conference’ y tenemos algunas en el tintero, stay tuned!

SylkServer es Software Libre (GPLv3), podéis instalaros un server propio o utilizar el de testing que tenemos funcionando.

Toda la información así como las instrucciones las tenéis disponibles en la web: http://sylkserver.com/

2 thoughts on “free(SylkServer);

  1. Wow! Enhorabuena.

    No sabía que ahora tuvieras esto entre manos. Genial las posibilidades de integración que ofrece el software ceñido a los estándares.

    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *