miércoles, 9 de julio de 2008

Presentación de la arquitectura propuesta para el sistema iCom Centrex IP

Hoy llevé a cabo una presentación de la arquitectura que estamos definiendo para el sistema iCom Centrex IP.
En la reunión estuvieron:
Rodrigo Pérez. Gerente técnico del consorcio Sixlabs
Frank Sonnleitner. Product Manager
Víctor . Preventa
Mauricio. Gerente de productos
Luis. Arquitecto SixTrak
Ricardo Lara. Consultor Senior
xx. Consultor Senior

De la reunión surgió lo siguiente:

- La comunicación de la aplicación CaaS con los sistema OSS/BSS debe hacerse a través de un adaptador externo, que reciba de la aplicación CaaS los mensajes de manera estándar, y que los traduzca para el sistema del proveedor específico sobre el que se desplegará cada sistema. En la práctica, los sistemas OSS/BSS son legacy y tienen interfaces propietarias.

- Está bien hacer la composición en dos niveles, uno relacionado con las operaciones de telefonía, que en Sixlabs lo hacen con CCXML y otro sobre las aplicaciones del negocio, como el charging del producto, el rating, el portafolio de planes, aplicaciones externas, etc. En el segundo caso, la orquetación se hace a través de la interpretación de un script JavaScript en un motor java, que llama a los servicios de negocio, que son clases planas de java (POJO), principalmente por razones de despempeño.

- La arquitectura propuesta para el sistema iCom Centrex puede comprometer el desempeño para altos volúmenes de tráfico, sin embargo, en comparación con la de Sixlabs, hace énfasis en la reusabilidad y la facilidad de desarrollo y despliegue de nuevos servicios, gracias a la adopción de la especificación SIP Servlet.

- Vendrán más...

viernes, 27 de junio de 2008

Prueba 1

Establecimiento de sesión entre 2 clientes SIP RFC 3261, usando el SigAS como outbound proxy.

Resultado: Los clientes su pudieron comunicar, sin embargo, el SigAS permaneció en la ruta permanentemente, posiblemente actuando no como proxy, sino como b2bua.

Interoperabilidad de los sistemas de Sixlabs con IMS

El plan de pasantía para la 3a y 4a semana consiste en probar la interoperabilidad de las aplicaciones o infraestructura de Sixlabs con IMS, usando Open IMS Core.

Sixlabs está construyendo una plataforma que se ubica en la capa de servicios de IMS, la cual está compuesta de dos partes principales:

Signaling Application Server (SigAS)
Es el encargado de manejar las comunicaciones SIP, usando un stack propietario de Sixlabs.

Business Application Server (BAS)
Gestiona la lógica del negocio para servicios de valor agregado, como sistemas prepago, incluyendo un sistema de charging.


martes, 24 de junio de 2008

Presentación del ambiente implantado

Hoy hice una presentación para todas las personas de Sixabs, incluyendo a los profesores Patricio Inostroza y Luis Guerrero de la Universidad de Chile.
Por solicitud del señor Rodrigo Pérez, gerente técnico del consorcio Sixlabs, hice una introducción a IMS antes de pasar a mostrar los resultados de la segunda semana del plan de trabajo, es decir, del ambiente completo para desarrollo de servicios IMS.
La presentación puede descargase de aquí

viernes, 20 de junio de 2008

Integración del AS Sailfin con el core de IMS

IMS define la interacción con el servidor de aplicaciones a través de la interfaz ISC en conjunto con el aprovisionamiento de configuraciones en el HSS. Para comprender en detalle se puede ver el documento TS 29.228 del 3GPP.

El servidor de aplicaciones está conectado al core de IMS, a través de un Service Profile o de una Public Service Identity (PSI).

El service profile se configura a través de la interfaz de administración del HSS.

Inicialmente se crea el servidor de aplicaciones. Indicando la IP y el puerto.
Luego, el Trigger Point junto con el Service Point Trigger. Indicando la condición que debe cumplirse para que el core de IMS decida redirigir un diálogo al servidor de aplicaciones.
Después se crea el Initial Filter Criteria (IFC).
Luego, se crea el Service Profile.
Finalmente, se asocia el Service Profile creado al usuario que requiere el servicio.

miércoles, 18 de junio de 2008

Test de Open IMS Core

Bien, ayer hice pruebas sobre el core de IMS.

Por defecto OpenIMSCore acepta peticiones únicamente de la interfaz de loopback (127.0.0.1), así que, dado que instalé clientes en otras máquinas, fue necesario cambiar la configuración.

La IP de la máquina openimscore.ope-ims.test es 172.30.1.145, así que usé el script configurator.sh que viene con las fuentes para hacer la configuración de la nueva IP. Para esto puede ser de ayuda http://www.openimscore.org/installation_guide#annexc y http://letsgoustc.spaces.live.com/Blog/cns!89AD27DFB5E249BA!181.entry

Como clientes usé UCT IMS Client que instalé en máquinas separadas (2)

En un cliente registré a Alice y en el otro a Bob.

Primero probé en envío de mensajes instantáneos. Ok

Luego probé una llamada con audio. Ok

jueves, 12 de junio de 2008

Instalación de Netbeans 6.1

Una buena combinación para montar un escenario de pruebas, es adicionar en la misma máquina del servidor de aplicaciones, un IDE que automatice la tarea del despliegue de aplicaciones y suministre herramientas para testing.

En este caso, se usará Netbeans 6.1.

Se descarga de www.netbeans.org (la versión Web y Java EE) y se siguen las instrucciones de instalación en http://www.netbeans.org/community/releases/61/install.html

Es indispensable tener instalado el jdk 5 o 6.

Con la instalación se crea en ubuntu un acceso en el menú Aplicaciones, Programación.

miércoles, 11 de junio de 2008

Instalación del servidor de aplicaciones Sailfin

Sailfin es el contenedor de SIP Servlets del servidor de aplicaciones GlassFish (Sun Java Application Server).


The SailFin installer installs the GlassFish application server and SailFin sip servlet container on top of that. The majority of the GlassFish code is available under a dual license consisting of the Common Development and Distribution License ( CDDL) v1.0 and the GNU General Public License (GPL) v2. The following page contains details about the components in GlassFish and the licenses under which they are covered.

Sailfin se instala en una máquina Pentium 4 a 3GHz con 1GB en RAM. En esta misma máquina se instalará Netbeans 6.1.

Antes que nada se instala el paquete sun-java6-jdk con todas sus dependencias.

Se descarga de http://sailfin.dev.java.net y se siguen las instrucciones detalladas en ese lugar para compilar, arrancar el servidor y desplegar aplicaciones.

También es conveniente descargar la documentación disponible en https://sailfin.dev.java.net/documentation/DocsIndex.html

Document Title
Version/Milestone
Release Notes
Milestone 4
Installation Guide
Milestone 4
Quick Start Guide
Milestone 4
Administration Guide
Milestone 4
High-Availability Administration Guide
Milestone 4
Application Deployment Guide
Milestone 4
Developer's Guide
Milestone 4
Administration Reference Guide
Milestone 4
SIP Servlet Tutorial
Milestone 4
Manpages
create-sip-listener.1 (PDF)
Milestone 4
list-sip-listeners.1 (PDF) Milestone 4
create-trust-config.1 (PDF) Milestone 4
list-trust-configs.1 (PDF) Milestone 4
delete-trust-config.1 (PDF) Milestone 4
create-trusted-entity.1 (PDF) Milestone 4
delete-trusted-entity.1 (PDF) Milestone 4
create-converged-lb.1 (PDF) Milestone 4
create-converged-lb-ref.1 (PDF) Milestone 4
create-converged-lb-config.1 (PDF) Milestone 4
delete-converged-lb.1 (PDF) Milestone 4
delete-converged-lb-ref.1 (PDF) Milestone 4
delete-converged-lb-config.1 (PDF) Milestone 4
list-converged-lbs.1 (PDF) Milestone 4
list-converged-lb-configs.1 (PDF) Milestone 4

lunes, 9 de junio de 2008

Instalación del Core de IMS

Se procede con la instalación de OpenIMSCore
http://www.openimscore.org


Preparación del sistema

Equipo
Pentium 4 - 1.8GHz, 1GB RAM
Instalación de Ubuntu 7.10 con actualizaciones de seguridad

Instalación paquetes requeridos y sus dependencias (se usó Synaptic)
  • sun-java5-jdk y dependencias
  • ant
  • mysql-server y dependencias
  • libxml2-dev y dependencias
  • libmysql++-dev y dependencias
  • bind9 y dependencias
  • flex
  • bison
  • subversion y depedencias

Descarga del código fuente

mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore

mkdir FHoSS
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS

mkdir ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims


Compilar

cd ser_ims
make install-libs all
cd ..

cd FHoSS
ant compile
ant deploy
cd ..


Configuración del entorno

DNS

Para la configuración del DNS se tomó una zona que viene de ejemplo con Open IMS Core.

cp ser_ims/cfg/open-ims.dnszone /etc/bind

Ahora es necesario editar el named.conf para incluir la nueva zona, adicionando la siguiente configuración:

zone "open-ims.test" {
type master;
file "/etc/bind/open-ims.dnszone";
};

Se procede a reiniciar el bind

/etc/init.d/bind9 restart

Y como siempre cuando se realiza algún cambio en la configuración de bind, es indispensable verificar los logs.

tail -n 50 /var/log/syslog

Ahí se confirma que el DNS carga la zona satisfactoriamente con la siguiente línea:

zone icomdevel.test/IN: loaded serial

Ahora verificamos el funcionamiento del DNS (la dirección IP asignada al servidor de OpenIMSCore es 172.30.1.145

root@openimscore:/etc/bind# nslookup
> server 172.30.1.145 (aquí también se puede usar la 127.0.0.1)
Default server: 172.30.1.145
Address: 172.30.1.145#53
> open-ims.test
Server: 172.30.1.145
Address: 172.30.1.145#53

Name: open-ims.test
Address: 127.0.0.1

Perfecto! está funcionando bien, ahora tenemos que configurar la máquina en la que se instaló Open IMS Core con este DNS, para esto podemos usar el applet Network-Manager, al final verificamos el arhivo resolv.conf

root@ouba-icom:/etc/bind# cat /etc/resolv.conf
# generated by NetworkManager, do not edit!
domain open-ims.test
nameserver 172.30.1.145

Ok, es muy conveniente que este DNS reenvíe las solicitudes a nombres de dominio diferentes, para eso, adicionamos la siguiente configuración en el archivo /etc/bind/named.conf.options

forwarders {
172.30.2.2;
};

En este caso 172.30.2.2 es la dirección IP del servidor DNS de la LAN.


MySQL

Es necesario crear y poblar las bases de datos que usa el HSS, para eso se ejecutan los siguientes comandos:

mysql -u root -p -h localhost < style="font-weight: bold;">Configuración de OpenIMSCore

Se copian los archivos de configuración y de arranque a /opt/OpenIMSCore

cd /opt/OpenIMSCore
cp ser_ims/cfg/*.cfg .
cp ser_ims/cfg/*.xml .
cp ser_ims/cfg/*.sh .

Fijamos el JAVA_HOME
export JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"

y luego podemos arrancar todo. en /opt/OpenIMSCore:
./pcscf.sh
./icscf.sh
./scscf.sh
Cada uno en una terminal aparte.

Ahora en /opt/OpenIMSCore/FHoSS/deploy
./startup.sh


Prueba de funcionamiento

HSS:
En un browser abrir http://localhost:8080
login: hssAdmin
password: hss

Recursos requeridos

- Tres (3) computadores con los siguientes requerimientos mínimos
Procesador Pentium 4 de 2.8GHz
Memora RAM de 1GB
Disco duro de 40GB

- Dos pares de micrófonos y parlantes, o dos teléfonos USB, o dos terminales IMS.
- Acceso a Internet

Plan de trabajo

1. Ambientación (1 semana)
  • Reconocimiento del lugar.
  • Presentación del proyecto "Construcción del producto iCom Centrex IP sobre una arquitectura de servicios convergentes soportada con tecnologías abiertas" al grupo de Sixlabs.
  • Presentación del grupo de Sixlabs y su trabajo en torno a la creación de servicios para IMS.
  • Visita a Sixbell Nekotec Solutions.
  • Visita al departamento de Ciencias de la Computación de la Universidad de Chile.
  • Visita a la Fundación para la Transferencia Tecnológica (UNTEC) – opcional.

2. Implementación de una maqueta de IMS con tecnología open source (1 semana)
  • Implementación de Open IMS Core y de clientes IMS, validándo a través de llamadas básicas y mensajería instantánea.
  • Instalación del servidor de aplicaciones Glassfish y la extensión Sailfin.
  • Instalación del IDE Netbeans con el plugin para Sailfin.
  • Instalación de Asterisk.
  • Validación de la infraestructura de IMS a través de la ejecución de una aplicación convergente HTTP-SIP y de una aplicación que interactúe con Asterisk como servidor de medios.

3. Despliegue de aplicaciones IMS sobre la maqueta basada en tecnologías open source (2 semanas)
  • Presentación de la maqueta implementada con tecnologías open source.
  • Despliegue de aplicaciones propuestas por Sixlabs sobre la maqueta implementada.
  • Exposición de los resultados obtenidos al grupo de Sixlabs.

4. Socialización y refinamiento de la arquitectura propuesta en el proyecto de maestría (2 semanas)
  • Presentación de la arquitectura propuesta al grupo de Sixlabs.
  • Perfeccionamiento del diseño arquitectónico a través de la realimentación del grupo de Sixlabs.

5. Definición del componente de orquestación de servicios en la arquitectura propuesta (2 semanas)
  • Reconocimiento de entornos de orquestación en los que Sixlabs tenga experiencia.
  • Refinamiento del sistema de orquestación planteado en la arquitectura propuesta.
  • Implementación de un prototipo que valide parcialmente el sistema de orquestación planteado.
  • 6.Realimentación a Sixlabs del trabajo realizado (2 semanas)
  • Preparación de la infraestructura requerida
  • Documentación del trabajo realizado
  • Presentaciones y charlas del trabajo realizado al grupo de Sixlabs

5. Realimentación a Sixlabs del trabajo realizado (2 semanas)
  • Preparación de la infraestructura requerida
  • Documentación del trabajo realizado
  • Presentaciones y charlas del trabajo realizado al grupo de Sixlabs

Objetivos

Objetivo general

Aportar al refinamiento y validación de la arquitectura propuesta por el proyecto de maestría y requerida por el proyecto iCom centrex IP, a través de un trabajo integrado con el grupo de Sixlabs, estableciendo así un canal de comunicaciones que facilite futuros procesos de colaboración.



Objetivos específicos

  1. Socializar el proyecto "Construcción del producto iCom Centrex IP sobre una arquitectura de servicios convergentes soportada con tecnologías abiertas".
  2. Adquirir experiencia en el despliegue de aplicaciones IMS sobre una maqueta basada en los componentes de libre distribución Open IMS Core, Glassfish y opcionalmente Asterisk.
  3. Exponer la arquitectura propuesta para el desarrollo del proyecto mencionado y recoger los aportes realizados por Sixlabs.
  4. Definir y validar parcialmente con ayuda de Sixlabs, la capa de orquestación de comunicaciones en la arquitectura propuesta a través de un prototipo.

Antecedentes

El Grupo de I+D en Ingeniería Telemática - GIT de la Universidad del Cauca tiene una trayectoria de 32 años y actualmente es clasificado en la más alta categoría definida por Colciencias, máximo organismo para la gestión de la investigación, desarrollo tecnológico e innovación en Colombia (http://dtm.unicauca.edu.co/maestelematica/).

El GIT soporta el programa de Maestría en Ingeniería Area Telemática, uno de los programas de maestría más exitoso en el ámbito internacional y reconocido por la AUIP (Asociación Universitaria Iberoamericana de Postgrado) con la mención de honor en el premio AUIP a la calidad del postgrado y el doctorado en Iberoamércia 2007.

Entre los requisitos a cumplir por un estudiante de este programa de maestría está la realización de una pasantía en un grupo externo de I+D o en el área de I+D de una empresa reconocida, razón por la cual se acude en este caso a Sixlabs como escenario propicio para el cumplimiento de este requisito por el candidato a maestría, Ingeniero Danny Fernando Bravo López.

Es importante mencionar que el estudiante participó activamente en la formulación del proyecto "Construcción del producto iCom Centrex IP sobre una arquitectura de servicios convergentes soportada con tecnologías abiertas", el cual fue aprobado y actualmente es cofinanciado por Colciencias, la empresa Avatar Ltda y la Universidad del Cauca. Este proyecto enmarca la tesis de maestría del candidato y apoya económicamente la realización de la pasantía en Sixlabs en conjunto con el programa de maestría, de tal manera que los costos asociados a esta actividad serán cubiertos.

Sixlabs es una iniciativa que nace producto del interés conjunto del Gobierno, la Universidad de Chile y la empresa privada en promover la investigación y desarrollo de tecnología de punta en ese país. Sixlabs se constituye como uno de los mayores consorcios tecnológicos que se han desarrollado en Chile, comprendiendo una inversión de 5 millones de dólares para los próximos tres años. En él participan Sixbell Nekotec Solutions, Intel a través de Commlogik Corporation y la Fundación para la Transferencia Tecnológica (UNTEC) de la Universidad de Chile, todos ellos con el apoyo de CORFO a través de Innova Chile. El objetivo de este proyecto es crear una unidad especializada en el desarrollo de productos y servicios de alto valor agregado para la Industria de las telecomunicaciones y sus usuarios en latinoamérica.

Introducción

Los servicios de telecomunicaciones cobran hoy en día mucha más importancia que nunca, con un número mayor de personas y de empresas que dependen de estos para el adecuado desarrollo de sus actividades cotidianas.

Especialmente en el ámbito corporativo, la telefonía, aunque siendo un servicio que lleva muchos años sin cambiar en su esencia, presenta hoy en día una gran oportunidad para los proveedores de servicios y/o operadores de telecomunicaciones gracias al amplio espectro de posibilidades que ofrece el entorno IMS.

El proyecto de maestría del ingeniero Danny Bravo actúa precisamente en este ámbito, intentando hacer un aporte en el escenario de la prestación de servicios de comunicaciones basados en IMS para el entorno corporativo, al definir una arquitectura para la prestación del servicio de centrex con capacidad para integrar fácilmente nuevos servicios convergentes sobre la plataforma, todo esto a partir de la integración de componentes de software libre.