IMS (Ok)
IMS (Ok)
IMS (Ok)
Abstract
Nowadays’ society is immerse in the merging process of the Internet and the Cellular
worlds. Since the broadband technologies like UMTS, WiFi and WiMax arose in
the wireless environments, consumers’expectations and operators’ prospects grew
dramatically due to the new capabilities that might be available for more innovative,
new and better services.
It has always been said that the customer is the king. This famous sentence means
customers are really the drivers of technology developments. Consumers make the
service providers offer new service bundles with more economic prizes, better and
ensured Quality of Service (QoS) and with richer and innovative mobility and
multimedia solutions.
These expectations are the actual engine for the development of the IP
Multimedia Subsystem (IMS) service architecture.
This project intends to provide a deep insight of the IMS and best known
development framework, the
c Ericsson’s SDS.
The present end-of-degree project emerges from the idea of gathering the scarce
and complex bibliography of the standard and the huge amount of documents, white
papers and reports from the industry. As a result, this document contains a detailed
description of the five following issues:
IMS: the 3GPP standard.
SDS: the development framework and IMS architecture simulation plugin for
Eclipse.
Comparison of the actual and the simulated architecture, from the services’
creation perspective.
Description of the today’s technology state: analysis of new services and
applications based on IMS principles (network convergence, service integration,
QoS and new charging architecture). Proposal of a commercial deployment.
The IMS business model.
Descriptores/Keywords
IMS, IP Multimedia Subsystem, Service Development Studio, SDS, All-Ip, 4G,
3GPP R5, 3GPP R6, 3GPP R7
iv
Índice general
1. Introducción 1
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Organización de la memoria . . . . . . . . . . . . . . . . . . . . . . . 3
v
3.4. Subsistemas del SDS y su modo de uso . . . . . . . . . . . . . . . . . 60
3.4.1. Entorno de diseño (Design Environment) . . . . . . . . . . . . 60
3.4.2. Framework del cliente IMS: plataforma (ICP/IJCU) y aplica-
ciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4.3. La plataforma de clientes IMS, la IMS Client Platform (ICP) 82
3.4.4. La solución para terminales limitados en recursos: IMS JME
Client Utility (IJCU) . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.5. Emulador del núcleo de red IMS . . . . . . . . . . . . . . . . . 96
3.5. Emuladores de terminales móviles . . . . . . . . . . . . . . . . . . . . 106
3.6. Ejemplo de desarrollo de una aplicación IMS con el SDS . . . . . . . 107
3.6.1. Modelo y actores del servicio . . . . . . . . . . . . . . . . . . . 108
3.6.2. Implementación en Java . . . . . . . . . . . . . . . . . . . . . 109
3.6.3. Creación de valor añadido: capacidades IMS y mejoras . . . . 111
A. Acrónimos 151
Bibliografía 183
D. Agradecimientos 187
Índice de figuras
ix
3.12. Launcher de los elementos de la red para inicializarlos o detenerlos
en el entorno de simulación. . . . . . . . . . . . . . . . . . . . . . . . 69
3.13. Visual Network con todos sus nodos tanto de red como de cliente (el
emulador de Symbian) y el menú de interacción gráfica. . . . . . . . . 69
3.14. Visual Traffic Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.15. Menú cliente del SDS, con el acceso al SIP Test Agent y el ATF. . . . 71
3.16. SIP Test Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.17. El Automated Testing Framework (ATF) . . . . . . . . . . . . . . . . 72
3.18. El asistente o wizard para aplicaciones cliente sobre ICP . . . . . . . 73
3.19. El entorno de desarrollo del SDS con el S60 C++ Carbide integrado. 75
3.20. Asistente para la instalación de la aplicación cliente en Windows. . . 76
3.21. Un ejemplo de Javadoc: La API para clientes IMS sobre IJCU basados
en Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.22. Visión del programador, con la complejidad de la arquitectura de red
“oculta” bajo el esquema de desarrollo de servicios. . . . . . . . . . . 81
3.23. Esquema de la implementación de la ICP en la arquitectura de capas
de IMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.24. Esquema general de la arquitectura de la ICP versión 4.1. Fuente:
Ericsson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.25. Componentes detallados de la capa de abstracción o abstraction layer. 85
3.26. Esquema simplificado de la arquitectura horizontal de la IMS Client
Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.27. SDS posibilita IMS en teléfonos basados en JME MIDP/CLDC.
Fuente: Ericsson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.28. Características de la API JSR 281 soportadas por la IJCU. Fuente:
Ericsson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.29. Principales parámetros configurables (“preferencias”) del CSCF
simulado del SDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.30. Interfaz gráfica del BGCF simulado . . . . . . . . . . . . . . . . . . . 103
3.31. Vista general de la estructura del SDS desde el punto de vista de las
APIs y la plataforma ICP. . . . . . . . . . . . . . . . . . . . . . . . . 106
3.32. Pantallas de los correspondientes emuladores de teléfonos Symbian
UIQ, Symbian S60 y teléfonos JavaME. . . . . . . . . . . . . . . . . . 107
1. INTRODUCCIÓN
1.1 Motivación
Hoy en día la sociedad es testigo de una evolución hacia una nueva cultura de
comunicación. De la mano de Internet nacen novedosos servicios que frecuentemente
marcan tendencias y revolucionan el mercado y los hábitos de la llamada Sociedad
de la Información. Claros ejemplos de estos servicios han sido, y son hoy por
hoy, la mensajería instantánea [1], el intercambio de vídeos, y datos en general,
chat y videoconferencia con servicios de presencia o las redes sociales [2]. Las
comunicaciones giran cada vez más hacia el intercambio de las experiencias del día
a día: en cualquier lugar, en cualquier momento y a través de cualquier dispositivo.
Al mismo tiempo, uno de los pilares básicos en el desarrollo de las telecomunica-
ciones ha sido el alcanzar acuerdos comunes y globales para servicios como el de
la telefonía o los mensajes cortos, Short Message Service (SMS). Es por ello que
la interoperabilidad entre operadores, redes y dispositivos es necesaria para que se
produzca una gran acogida de un nuevo servicio.
Las redes de tercera generación (3G) persiguen la unión de los dos actores que
revolucionaron el mundo de las comunicaciones: las redes de Comunicaciones Móviles
e Internet. Los operadores de telecomunicación fueron conscientes de que había
que seguir apostando por este modelo de evolución: creando alianzas en el plano
de estandarización de las redes y aprovechando las enormes oportunidades que
presentaban los servicios derivados de la nueva cultura de comunicación. El IP
Multimedia Subsystem, IMS es el factor clave dentro de la arquitectura de
las redes 3G que hace posible proporcionar acceso móvil a todos los servicios que
Internet pone a disposición de los usuarios.
IMS nació para sacar partido a lo mejor de estos dos mundos — la calidad e
interoperabilidad de las redes de telecomunicación con el rápido, y en constante
innovación, desarrollo de Internet —. IMS lo consigue permitiendo que las
comunidades de desarrollo de aplicaciones aprovechen las capacidades de la
industria de las telecomunicaciones. Todo ello sin dejar de proveer los servicios que
tradicionalmente han venido reportando beneficios a los operadores, como son la
telefonía y la mensajería.
IMS ofrece una solución estándar para proporcionar servicios al consumidor y a
la empresa, basados en la tecnología IP, y posibilitando el acceso a estos servicios
desde cualquier dispositivo conectado a cualquier red fija o móvil.
Todo ello convierte a IMS en el punto de partida de la evolución de las redes
actuales hacia una única, basada en el principio de all-IP, donde todos los servicios
(mensajería, telefonía, etc.) y medios (voz, vídeo, imágenes, texto, etc.) se integren
1
1.2. OBJETIVOS
1.2 Objetivos
Este Proyecto Fin de Carrera nace de la necesidad de aglutinar en un mismo
documento distintas visiones sobre una tecnología tan prometedora como es el
IP Multimedia Subsystem (IMS) de forma que se proporcione un conocimiento
global acerca de por qué surge, en qué consiste, cómo es posible crear y desplegar
servicios IMS y qué consecuencias atañe para todos los agentes situados en torno a
esta tecnología, desde las operadoras de telecomunicaciones hasta el usuario final,
pasando por proveedores de servicios y contenidos.
Por ello, el objetivo principal de este proyecto es llevar a cabo un estado del arte
del IP Multimedia Subsystem (IMS) desde tres perspectivas: el punto de vista del
IMS como estándar teórico, la implementación de la infraestructura y los
servicios IMS y la perspectiva comercial de la tecnología.
El estudio de la especificación técnica de IMS es necesario para entender todos sus
beneficios y requerimientos, así como para abordar con garantías las alternativas de
implementación y planes comerciales y de marketing. Es por tanto que se comienza
con este estudio, tratando de sintetizar de una manera elocuente y completa el
complejo estándar de IMS; descrito por más de cien [3] especificaciones técnicas
(Technical Specification (TS)) pero con pocas referencias básicas por el momento
(principalmente [4], [5], y [6]).
Posteriormente, es preciso explorar diferentes alternativas de desarrollo de
aplicaciones y servicios IMS que saquen partido a esta versátil y potente arquitectura
de red. Del mismo modo, se hace necesario estudiar con mayor profusión una de las
alternativas evaluadas, tratando de proporcionar un enfoque práctico a este análisis.
La alternativa elegida, tiene que estar refrendada por su fidelidad al estándar descrito
por el 3GPP. Para ilustrar este mayor o menor compromiso entre la implementación
real y la descripción teórica es ineludible presentar la nueva metodología de creación
de servicios IMS, ejemplificada con la opción elegida.
Finalmente un análisis comercial cubre la tercera perspectiva de la tecnología. Este
análisis requiere a su vez dos puntos de vista: Por un lado, una valoración de las
2
PROYECTO FIN DE CARRERA
3
1.3. ORGANIZACIÓN DE LA MEMORIA
4
PROYECTO FIN DE CARRERA
2. INTRODUCCIÓN TEÓRICA AL
IP MULTIMEDIA SUBSYSTEM,
IMS
2.1 Antecedentes
En las Comunicaciones Móviles, Global System for Mobile communication (GSM) el
actual sistema de Segunda Generación (2G)1 está en una fase madura, la tecnología
es robusta, bien conocida y probada, las redes están desplegadas al máximo de
su cobertura y prácticamente se ha logrado una penetración total en el público.
Los circuitos en los que se basa GSM están optimizados para transportar voz y
eventualmente datos a una velocidad limitada a decenas de Kbps. Sin embargo, la
demanda de cada vez más ancho de banda para la implementación de nuevos servicios
saturan la capacidad de red de GSM. Para ello, se desarrollaron General Packet
Radio Service (GPRS) y Universal Mobile Telecommunications System (UMTS),
estándares que denominados 2.5G y 3G han ido añadiéndole cada vez más capacidad
a la red móvil. En estos sistemas se introduce el concepto de dominio, con lo que el
núcleo de su arquitectura queda dividida en dos de ellos: el dominio de conmutación
de circuitos, Circuit Switched (CS) y el dominio de conmutación de paquetes, Packet
Switched (PS).
El dominio CS de conmutación de circuitos presente en GPRS y UMTS es
una evolución de la tecnología usada en las redes de segunda generación (2G).
Los circuitos en este dominio, como ya se mencionó con anterioridad, fueron
diseñados para transportar casi exclusivamente voz, aunque pueden ser usados
para transportar mensajes instantáneos y otros pequeños datos. La tendencia
actual, y las redes celulares la siguen, es sustituir este dominio por tecnología
de conmutación de paquetes.
El dominio PS de conmutación de paquetes proporciona acceso IP a Internet.
Mientras los terminales 2G pueden actuar como un módem para transmitir
paquetes IP sobre circuitos, los terminales 2.5G y 3G usan tecnología nativa
de conmutación de paquetes para interpretar comunicaciones de datos. De
esta forma, las transmisiones de datos son mucho más rápidas y se multiplica
el ancho de banda disponible para el acceso a Internet. Los usuarios pueden
acceder al Web, consultar el correo electrónico, descargar videos, y realizar
muchas otras tareas de una manera similar a lo que pueden hacer sobre
1
Se especifica GSM como sistema de Segunda Generación (2G) por estar siempre centrados en
las Comunicaciones Móviles en Europa, sin embargo, el alcance de los fenómenos descritos es,
y ha sido siempre global.
5
2.2. JUSTIFICACIÓN: ¿POR QUÉ IMS?
6
PROYECTO FIN DE CARRERA
' $
7
2.2. JUSTIFICACIÓN: ¿POR QUÉ IMS?
Hay que añadir que algunos autores incluyen un cuarto pilar: el del uso de URIs
(Uniform Resource Identifier) en vez de números de teléfono [7] para identificar
a usuarios, servicios y nodos. Manejar nombres al estilo de direcciones de correo
electrónico supone una asociación directa con el usuario mientras que los números
de teléfono son prácticamente imposibles de recordar.
En conclusión, el objetivo de IMS no es sólo proporcionar nuevos e innovadores
servicios basados en el éxito de Internet y disponibles en un terminal móvil. El
8
PROYECTO FIN DE CARRERA
En este sentido, IMS no impone límites, son la capacidad de la red de acceso y las
características de los terminales las que fijan las restricciones.
4
El roaming consiste en ingresar en una red de un operador distinto al propio y seguir disfrutando
de la misma experiencia de usuario de una manera totalmente transparente. En el roaming
surgen dos conceptos: Home network, red doméstica o red de servicio local, donde el usuario
contrató sus servicios y opera habitualmente. Y la visited network o red visitada, donde el
usuario se encuentra en itinerancia o roaming. Popularmente se recurren a los términos en inglés
y en este proyecto se usarán conjuntamente con la denominación en español.
9
2.3. TENDENCIAS TODO-IP (ALL-IP) EN 3G E IMS Y CONVERGENCIA DEL IETF CON 3GPP
10
PROYECTO FIN DE CARRERA
Internet
Dentro de los protocolos de Internet se encuentran trabajos conjuntos en la
especificación de IPv6 y DNS:
El grupo de trabajo encargado de desarrollar Internet Protocol version 6
(IPv6) incluyó unas pautas de cómo implementar este protocolo en un terminal
o host 6 móvil. Cuando se detecta que el terminal hace uso de un acceso
GPRS/UMTS el sistema sigue las pautas especificadas por el protocolo. Sin
5
No hay que olvidar que el 3GPP nació para evolucionar las especificaciones de GSM hacia
un sistema celular de tercera generación, mientras que el 3GPP2 tenía el mismo cometido,
pero partiendo de los sistemas norteamericanos y asiáticos de segunda generación (2G). Ya
que las especificaciones del IMS del 3GPP2 se basan en las del 3GPP, cuando se hable de
IMS en realidad se está haciendo referencia al 3GPP IMS, aunque a veces las diferencias sean
insignificantes.
6
Se hace referencia a host en el sentido de un equipo, máquina o terminal conectado a una red.
11
2.3. TENDENCIAS TODO-IP (ALL-IP) EN 3G E IMS Y CONVERGENCIA DEL IETF CON 3GPP
embargo, si el terminal accede desde una red móvil pero del tipo Wireless Local
Area Network (WLAN) — como se contempla en futuras releases del 3GPP
—, el protocolo trata al terminal como un host de Internet tradicional, como
si se tratara de un PC.
Respecto al Domain Name Server (DNS) existieron dudas de cómo se
llevaría a cabo el descubrimiento de los servidores de DNS en IMS. Se decidió
no usar Dynamic Host Configuration Protocol (DHCP), sino usar mecanismos
específicos para las redes de acceso 3G.
Área de transporte
Una vez se eligió Session Initiation Protocol (SIP) como protocolo de control
de sesión para IMS se construyó un equipo de trabajo para desarrollar el entonces
inmaduro protocolo de sesión para cumplir los requerimientos del 3GPP. Se llegó a
una RFC [12] que sin embargo no cubría aún los vastos objetivos de convergencia con
la red móvil. Para ello, el IETF construyó un grupo para encontrar los requerimientos
que aún le faltaban a SIP, priorizarlos y mandarlos al grupo de trabajo del protocolo,
que era y es el encargado de desarrollar las numerosas extensiones para hacer de SIP
un protocolo más completo y adaptado a las necesidades del 3GPP.
12
PROYECTO FIN DE CARRERA
13
2.3. TENDENCIAS TODO-IP (ALL-IP) EN 3G E IMS Y CONVERGENCIA DEL IETF CON 3GPP
USIM (UMTS SIM) en 3G. La ISIM reside, junto con la aplicación USIM,
en la tarjeta inteligente física. Por tanto, un abonado que desee acceder a
IMS, en primer lugar deberá autenticarse y registrarse con el núcleo de red
UMTS empleando la USIM, y posteriormente autenticarse y registrarse con
IMS utilizando la ISIM.
La Calidad de Servicio (QoS). El subsistema 3G hace uso de la arquitectura
de QoS de GPRS/UMTS, que define una jerarquía de portadoras adecuadas
para servicios con diferentes requisitos de QoS. Por todo ello, se han definido
nuevas funciones e interfaces opcionales en la 3GPP Release 5 que permiten
que IMS controle y autorice el uso de recursos del subsistema de transporte
GPRS/UMTS. Estas funciones son opcionales, y, en caso de no estar presentes,
la asignación de recursos a las sesiones IMS se controlaría mediante los
mecanismos ordinarios propios de GPRS/UMTS y la suscripción de abonado
GPRS/UMTS.
La provisión de servicios. IMS posibilita un desarrollo rápido y simplificado
de servicios siguiendo el modelo Internet. La arquitectura IMS cuenta con
interfaces o pasarelas hacia servidores de aplicaciones. En lo que respecta a las
aplicaciones, éstas pueden modificar el transcurso de una sesión multimedia de
una forma muy similar a como lo hacen las aplicaciones de red inteligente, que
pueden actuar y modificar una llamada de voz, con la ventaja de la simplicidad
y facilidad del desarrollo de las aplicaciones web. De este modo se pueden
establecer una serie de criterios en la suscripción de usuario IMS, de forma que
el control de una sesión se traspase a un servidor de aplicaciones. Esto posibilita
la implementación de todos los servicios suplementarios tradicionales, así como
nuevos servicios avanzados. Por otro lado, IMS define componentes de pasarela
que interactúan con las plataformas del plano de servicios tradicional de la red
3G, como OSA y CAMEL7 . De esta forma, las aplicaciones heredadas OSA y
CAMEL pueden también actuar sobre las sesiones IP multimedia, permitiendo
la provisión de servicios IMS desarrollados por terceras partes.
La tarificación y facturación. En la tarificación de servicios IP multimedia
intervienen el sistema de facturación de GPRS/UMTS y el sistema de
facturación de IMS. Este último registra los datos relacionados con la
sesión IMS, tales como los usuarios implicados, la duración, los componentes
multimedia empleados y la QoS autorizada, y los asocia a los correspondientes
registros de tarificación de GPRS/UMTS que se originaron como consecuencia
del transporte de los flujos multimedia y la señalización de IMS en el plano
de transporte. De esta forma, es posible facturar los servicios según su
duración, contenidos, volumen de datos, destino de la sesión o las diferentes
combinaciones de los anteriores. Por otro lado, el sistema soporta tanto
tarificación online como offline, lo que se traduce en la facturación pospago
y prepago, necesaria para atender a todo el mercado de clientes potenciales.
7
Se verá el significado de estas siglas más adelante, en una descripción más detallada de la
arquitectura de red de IMS.
14
PROYECTO FIN DE CARRERA
' $
2.4.1 Sesión
IMS es un subsistema fundamentado en sesiones8 multimedia y por ende requiere
de protocolos que describan y controlen dichas sesiones.
Control de sesión
Para el control de sesión se barajaron, en el seno del 3GPP tres protocolos,
obviamente basados en IP: el Bearer Independent Call Control (BICC) una
8
Aunque se haya mencionado el término de sesión en múltiples ocasiones, se refiere a aquellas
comunicaciones que van desde simples llamadas de voz, hasta complicados intercambios de
audio, vídeo y datos entre varias partes o incluso un intercambio de un mensaje instantáneo.
15
2.4. PROTOCOLOS UTILIZADOS EN IMS
evolución del ISDN User Part (ISUP) de la ITU-T; el H.323 también de la ITU-T;
o SIP, mencionado con anterioridad en la sección 1.4.2) del IETF. Finalmente se
eligió SIP como protocolo de control de sesión por la facilidad que aportaba en la
creación de nuevos servicios y su gran capacidad de extensión.
SIP es un protocolo para el establecimiento y gestión de sesiones multimedia sobre
redes IP. Basado en los dos protocolos de Internet más importantes – Simple Mail
Transfer Protocol (SMTP) (protocolo para el envío de correos electrónicos) y,
en mayor medida, HyperText Transfer Protocol (HTTP) (protocolo Web) – SIP
establece y gestiona sesiones extremo a extremo (e-2-e, end to end) sin diferenciar
la naturaleza de cada uno de los extremos (usuario o red). Para ello se nutre, además,
de toda la herencia que dejan los protocolos de Internet. En concreto, dado que SIP
tiene una estructura similar a la de HTTP (hasta el punto de compartir los códigos
de respuesta) SIP aprovecha la vasta comunidad de desarrolladores de aplicaciones
web para crear aplicaciones SIP, así como adopta todos los frameworks de servicios,
como por ejemplo los Java Servlets para HTTP9 .
SIP es el protocolo de señalización de IMS que aporta las funciones y capacidades
necesarias para el registro, establecimiento, mantenimiento y liberación de las
sesiones multimedia. Para IMS, SIP precisa ciertos requerimientos que adapten su
uso a las redes celulares de paquetes del 3GPP. Es aquí donde se habla del perfil
3GPP de SIP [13], que ha obligado a SIP a añadir un número de extensiones,
cabeceras privadas y opciones para los nodos y terminales de IMS.
REGISTER: Crea una asociación entre una SIP URI10 y una dirección de
contacto. Es necesario para enrutar sesiones entrantes hacia ese usuario.
INVITE: Crea una sesión.
BYE: Termina una sesión.
SUBSCRIBE: Subscripción a un recurso.
NOTIFY: Notifica cambios sobre el estado de un recurso.
ACK: Asentimiento final a una petición de INVITE.
PRACK: Asentimiento provisional para una petición de INVITE.
16
PROYECTO FIN DE CARRERA
Max-Forwards: 70
Call-ID: 843817637684230@998sdasdh09
Contact:<sip:[email protected]>
Expires: 7200
Content-Length: 0
Características de la sesión
SIP es un protocolo de sesión estructurado en forma de mensajes de texto. Sin
embargo es un protocolo independiente del formato o características que describen la
sesión. Es aquí donde entra en juego el protocolo Session Description Protocol
(SDP). Aunque SDP no pasa de ser un breve texto que recoge las características
de la sesión que describe, es este formato textual el que permite incluirlo como
contenido Multipurpose Internet Mail Extension (MIME) dentro de un mensaje del
propio protocolo SIP.
Mediante SDP, los extremos de una sesión pueden indicar sus capacidades
multimedia y definir el tipo de sesión que se desea mantener. Además, con SDP
los extremos deciden qué flujos multimedia compondrán la sesión, de manera que
17
2.4. PROTOCOLOS UTILIZADOS EN IMS
' $
18
PROYECTO FIN DE CARRERA
las descripciones de sesión de IMS, no quiere decir que no fuera posible usar otro. SIP
es un protocolo textual, y como tal puede albergar contenido MIME adjunto. Si por
ejemplo, la intención fuera establecer unas reglas para describir sesiones dentro de
una empresa se podría imponer un convenio y utilizar cualquier descripción de sesión
siempre y cuando ambos extremos pudieran entenderla. Es la libertad y versatilidad
de los protocolos textuales.
Otros protocolos
SIP/SDP y Diameter son los dos protocolos más importantes dentro de IMS. Sin
embargo, en la provisión de los servicios IP multimedia intervienen una serie de
protocolos que se describen a continuación:
Políticas de tráfico y QoS: El protocolo COPS es un protocolo que funciona
con un simple modelo de cliente y servidor que intercambian peticiones y
respuestas. El servidor de COPS se denomina Policy Decision Point (PDP)
e intercambia información de políticas de tráfico con su cliente o Policy
Enforcement Point (PEP). El servidor COPS o PDP se coloca en el núcleo
del subsistema IMS y se denomina Policy Decision Function (PDF),
mientras que el papel de PEP lo hace el nodo Gateway GPRS Support Node
(GGSN) de la arquitectura de la red de acceso GPRS/UMTS11 . De este modo
se lleva a cabo el control de acceso al nivel de medios y políticas de QoS,
mecanismos que deciden si un usuario está autorizado para mandar y recibir
datos multimedia, y en el caso de estar autorizado, establecer con qué calidad
de servicio.
IMS soporta varios modelos para acomodar una QoS entre dos usuarios
extremo a extremo. No obstante, en el núcleo de red IMS, como en Internet –
11
No interés del proyecto describir con profundidad la arquitectura de la red de acceso 3G (GPRS
en su fase temprana y UMTS en las versiones más maduras). Sin embargo, es crucial conocer
qué nodos la componen y cuál es su funcionalidad básica para entender el acceso a IMS en la
convergencia de los servicios multimedia de Internet y las redes celulares.
19
2.4. PROTOCOLOS UTILIZADOS EN IMS
he aquí otro signo de la convergencia de redes – son dos los principales modelos
para proporcionar QoS: el modelo de servicios integrados o Integrated
Services y el modelo de servicios diferenciados o Differentiated Services
(Diffserv). Para el modelo de servicios integrados, IMS hace uso del protocolo
Resource ReSerVation Protocol (RSVP), mientras que mediante mensajes
COPS entre el PDF y el GGSN se indican códigos Diffserv hacia las redes
de paquetes que los soporten y así aplicar este modelo de diferenciación de
tráfico según parámetros de calidad de servicio.
Otra función del protocolo COPS dentro de esta interfaz es la de intercambiar
datos de tarificación, un IMS Charging IDentifier (ICID) hacia el plano de
usuario. De la misma manera, la red de acceso es capaz de enviar identificadores
de tarificación hacia IMS. Con este procedimiento se hace posible la unificación
de la información de tarificación de IMS y de la red de acceso en un mismo
sistema de facturación.
Transporte de datos multimedia: La elección del protocolo de transporte
siempre depende del tipo de datos que se acomoda en niveles superiores.
Tradicionalmente, en el modelo TCP/IP, han dominado la capa de transporte
dos protocolos: Transmission Control Protocol (TCP) y User
Datagram Protocol (UDP) (User Datagram Protocol). Mientras que TCP
se usa para transportar datos de manera fiable (retransmitiendo los datos que
se hubieran perdido y por ende permitiendo retardos y ecos) y UDP para
el transporte no fiable (sin retransmitir los datos que no hubieran llegado al
destino) pero asegurando un retardo y eliminando posibles latencias y ecos.
He aquí una gran ventaja de UDP para la comunicaciones en tiempo real.
Un ejemplo es la conversación telefónica donde la pérdida de una palabra
reporta una mejor experiencia de usuario que soportar continuos retardos
o ecos que hagan imposible la fluidez de la conversación. Sin embargo,
UDP no es adecuado para transportar grandes cantidades de datos, ya que
carece de mecanismos de control de congestión. Es por ello que el IETF
se encuentra desarrollando el protocolo Datagram Congestion Control
Protocol (DCCP).
IMS hace uso de de Real-time Transport Protocol (RTP) sobre UDP y
su correspondiente protocolo de control RTP Control Protocol (RTCP).
RTP permite transportar datos multimedia en tiempo real como audio y vídeo
y RTCP aporta estadísticas de QoS e información de sincronización. DCCP
puede usarse en el futuro para transportar RTP pero hoy en día no es un
protocolo lo suficientemente maduro para que IMS lo adopte.
Control de pasarelas de medios: IMS adopta el protocolo H.248 del
IETF y la ITU-T, más y mejor conocido como MEdia GAteway COntrol
(MEGACO) para el control de las pasarelas o gateways de medios, situadas
en el plano de usuario, también llamado de transporte o de medios12 .
12
En la siguiente sección se verá ampliamente la arquitectura de IMS, poniendo gran atención a
la división de ésta en diferentes capas.
20
PROYECTO FIN DE CARRERA
Figura 2.4.: Arquitectura del 3GPP Release 5 donde se introduce por primera vez el
subsistema IMS.
21
2.5. ARQUITECTURA DE IMS
' $
esta nueva release del 3GPP. Como en otras secciones, se está haciendo referencia a
IMS, cuyos elementos se sitúan sobre la nube roja, a veces en su interior, otras en
el borde, dando una idea global del ámbito de acción de cada una de las funciones
o nodos.
En el núcleo de IMS se agrupan los diferentes nodos en cinco importantes entidades,
recuadradas en la figura 2.5:
CSCF (Call Session Control Function): El CSCF es el nodo más importante
del IMS, ya que desarrolla la función de servidor SIP y proxy, procesando y
enrutando toda la señalización SIP de IMS. El CSCF puede escenificar tres
papeles dentro del plano de control de IMS:
• P-CSCF (Proxy-CSCF): El P-CSCF es el primer punto de contacto
del usuario con el IMS. Es la entrada de la señalización SIP que parte
del terminal y va dirigida a la red — bien para ser encaminada hacia
otro terminal IMS o hacia los servidores de aplicación que se verán
más adelante —. Entre las funciones del P-CSCF se encuentran las de
autenticar al usuario de cara a la red IMS, revisión de mensajes SIP y su
compresión/descompresión14 , y de seguridad.
El P-CSCF puede llevar incluído el PDF que se vio en la sección 2.4.1.
Como ya se apuntó, el PDF autoriza recursos y gestiona la QoS sobre el
plano de transporte.
• I-CSCF (Interrogating-CSCF): El I-CSCF es un nodo intermedio que da
soporte a la operación IMS. El I-CSCF ayuda a otros nodos a determinar
el siguiente salto de los mensajes SIP y a encaminar la señalización —
14
La compresión de los mensajes SIP entre el terminal y el P-CSCF tiene como objetivo reducir
los tiempos de transmisión de la señalización SIP en la interfaz radio.
22
PROYECTO FIN DE CARRERA
23
2.5. ARQUITECTURA DE IMS
24
PROYECTO FIN DE CARRERA
25
2.6. FUNCIONAMIENTO DE IMS
26
PROYECTO FIN DE CARRERA
' $
27
2.6. FUNCIONAMIENTO DE IMS
3. Una vez estos dos primeros requisitos se han cumplido, el terminal IMS necesita
“localizar” al P-CSCF. Es decir, necesita conocer su dirección IP. Una vez
descubierta esta IP, el terminal podrá enviar y recibir señalización SIP a
través del P-CSCF21 . Este proceso puede estar ligado al acceso a una red
de conectividad IP.
4. Cumplidos estos requisitos previos, el terminal IMS realiza un registro a
nivel SIP en la red IMS. Este registro se lleva a cabo mediante un registro
SIP normal22 . Si el registro SIP en la red IMS se lleva a cabo con éxito, el
terminal IMS puede intercambiar más mensajes de señalización SIP.
28
PROYECTO FIN DE CARRERA
Esta petición incluye la dirección del S-CSCF para que el HSS sepa cuál
está asignado al usuario. El HSS envía la respuesta MAA (Multimedia
Authorization Answer) con los vectores de autenticación.
(8) El S-CSCF responde al REGISTER con un mensaje 401 Unauthorized
(no autorizado) que contiene la información para llevar a cabo el desafío de
seguridad.
(9/10) La respuesta viaja a través del I-CSCF y P-CSCF hasta que alcanza el
usuario.
(11) El usuario construye un nuevo REGISTER incluyendo la respuesta al desafío
de seguridad y lo reenvía hacia el P-CSCF.
(12/13/14/15) La nueva petición alcanza el I-CSCF que envía un nuevo UAR
al HSS para encontrar el S-CSCF, a quien reenvía el REGISTER.
(16/17) El S-CSCF autentica al usuario y envía una petición SAR (Server
Assignment Request) al HSS para informar que el usuario está registrado
y requerir la descarga del perfil de usuario. Esta descarga se incluye en la
respuesta SAA (Server Assignment Answer) del HSS.
(18/19/20) El S-CSCF confirma que el usuario está registrado mediante el
envío de un SIP 200 OK que atraviesa el I-CSCF y el P-CSCF hasta llegar al
usuario.
29
2.6. FUNCIONAMIENTO DE IMS
30
PROYECTO FIN DE CARRERA
' $
y la red base del usuario (en este caso la española home.es). Se observa claramente
este hecho viendo que ningún mensaje de control de la figura 2.9 “pasa por encima”
de estos nodos. La justificación de este hecho se basa en dos razones:
El P-CSCF es la puerta de entrada de la señalización SIP y el encargado de
comprimirla y descomprimirla en la interfaz con el terminal.
El S-CSCF es atravesado en todas las peticiones para permitir el lanzamiento
de servicios de valor añadido que el usuario haya requerido mediante la
petición. El S-CSCF juega un papel sumamente importante en la provisión
de servicios que envuelvan a uno o más servidores de aplicación. Al colocar el
S-CSCF en la red base o home network los servicios siempre están disponibles
para los usuarios, estén donde estén.
Para comprender mejor el proceso de establecimiento de sesión, se analiza en detalle
la señalización presente desde el momento en que dos usuarios registrados desean
entablar una comunicación multimedia hasta que el transporte de medios se pone
de manifiesto.
El ejemplo partirá de la situación de partida ilustrada en la figura 2.8:
Dos usuarios con terminales IMS: Alice y Bob. Alice tiene su contrato con la
operadora que le oferta servicios IP multimedia en España, pero se encuentra de
viaje en el Reino Unido. Una situación idéntica de itinerancia o roaming es la de
Bob. Bob, irlandés, está de turismo en París.
Alice y Bob saben que ambos están haciendo turismo por lo que Alice, situada ante
31
2.6. FUNCIONAMIENTO DE IMS
el Big Ben en Londres, desea entablar una videoconferencia con Bob para que su
amigo vea dónde se encuentra y así también saber qué es de él y por dónde anda en
su visita a París.
Dentro de la descripción tecnológica, se suponen ambos terminales IMS con
idénticas capacidades, la ausencia de provisión de servicios – la comunicación será
de cliente a cliente de videoconferencia – y que los terminales están registrados en
IMS.
A continuación se describen las fases de las que consta el procedimiento de
establecimiento de sesión:
Alice quiere establecer la videoconferencia IMS con Bob, por lo que su terminal,
lanzado por la aplicación cliente instalada, envía (1) la petición INVITE al
P-CSCF haciendo uso de la asociación de seguridad establecida durante el
registro. La petición puede ir comprimida, y tendría la siguiente estructura:
Route: <sip:pcscf1.visitada.uk:5058;lr;comp=sigcomp>,
<sip:[email protected];lr>
Privacy: none
P-Access-Network-Info: 3GPP-UTRAN-TDD;
utran-cell-id-3gpp=C359A3913B20E
From: <sip:[email protected]>;tag=ty20s
To: <sip:[email protected]>
Call-ID: 3sO9csO3
Proxy-Require: sec-agree
32
PROYECTO FIN DE CARRERA
port-s=5058
Contact: <sip:[1080::8:800:200C:417A]:5059;comp=sigcomp>
Content-Type: application/sdp
Content-Length: 569
• Seguido del mensaje SDP como adjunto MIME dentro del mismo SIP
INVITE
v=0
t=0 0
b=AS:75
a=rtpmap:98 H263
a=fmtp:98 profile-level-id=0
a=rtpmap:99 MP4V-ES
b=AS:25.4
33
2.6. FUNCIONAMIENTO DE IMS
a=rtpmap:97 AMR
a=rtpmap:96 telephone-event
26
Habrá tiempo de ver los initial Filter Criteria o iFC en futuras secciones donde se tratará la
provisión de servicio por parte de los ASs con más detalle.
34
PROYECTO FIN DE CARRERA
35
2.6. FUNCIONAMIENTO DE IMS
(8) Cuando el I-CSCF recibe la petición envía un Location Info Request (LIR)
al HSS para localizar el S-CSCF asignado a ese usuario (Bob).
(9/10) Con la respuesta del HSS (Location Info Answer, LIA), el I-CSCF
reenvía la petición al S-CSCF que a su vez aplica el perfil de usuario para
determinar si el SDP es el adecuado para Bob y si la petición ha de ser
reenviada a algún AS.
(12) El S-CSCF, ya que no hay ningún servicio provisto encamina la petición
INVITE al P-CSCF asignado a Bob (y almacenado desde el registro).
(14) El P-CSCF comprime y encripta la petición y la envía al terminal IMS de
Bob haciendo uso de la asociación de seguridad establecida durante el registro
del usuario.
(16) El terminal de usuario de Bob procesa la descripción de medios SDP
incluída en la petición INVITE y construye una respuesta SIP 183 Session
in Progress que incluye una respuesta SDP a la propuesta del terminal de
Alice y la envía hacia el P-CSCF con los mismos mecanismos de seguridad
usados hasta entonces.
(17/.../22) El mensaje de progreso de sesión sigue el camino de vuelta hacia
el terminal de origen (usuario Alice).
(23) El terminal de Alice analiza la descripción SDP en el mensaje
183 Session in Progress y construye un mensaje PRACK (PRovisional
ACKnowledgement, asentimiento provisional) con la respuesta SDP final. En
este punto el terminal de origen (el de Alice) puede comenzar con la reserva
de recursos de transporte para esta sesión.
(24/.../27) El mensaje PRACK viaja hacia el destino por los nodos pertinentes.
(28) El PRACK llega y el terminal destino puede empezar entonces a reservar
recursos en base a la descripción SDP. Asimismo, manda un mensaje 200 OK
de vuelta al terminal origen. Este OK corresponde al PRACK, no al INVITE.
(29/.../32) El 200 OK llega al origen atravesando el camino o path.
(33) Cuando el terminal de origen de Alice completa la reserva de recursos
envía un mensaje de UPDATE al terminal de destino de Bob.
(34/.../37) El UPDATE atraviesa el path hacia el destino.
(38/.../42) Se genera una respuesta OK y se envía de vuelta hacia el origen (el
terminal de Alice).
En este punto si el terminal de Bob ha completado su reserva de recursos
del plano de usuario se puede avisar al usuario de que existe una llamada de
sesión entrante. Esto se transmite al origen mediante el envío de un mensaje
180 Ringing (43/.../48).
(49) Cuando el terminal de Alice recibe el mensaje 180 Ringing empieza a
dar tonos y envía el PRACK (50/.../54) de vuelta hacia el destinatario, Bob.
Este PRACK es respondido con un 200 OK (55/.../59).
En algún momento, Bob, el destinatario de la llamada la acepta y su terminal
36
PROYECTO FIN DE CARRERA
27
En muchos rincones de la bibliografía, esta interfaz entre los ASs y el S-CSCF se denomina
IMS Service Control (ISC), el nombre genérico que tomaba previo a la elección de SIP como
protocolo de sesión por parte del 3GPP.
37
2.6. FUNCIONAMIENTO DE IMS
' $
38
PROYECTO FIN DE CARRERA
' $
39
2.6. FUNCIONAMIENTO DE IMS
' $
Figura 2.12.: AS actuando como un servidor SIP Proxy añadiendo lógica de servicio
y reencaminando las peticiones con el correspondiente valor añadido.
& %
' $
Figura 2.13.: El AS B2BUA como dos UAs conectadas bajo una lógica de servicio.
& %
40
PROYECTO FIN DE CARRERA
' $
41
2.6. FUNCIONAMIENTO DE IMS
42
PROYECTO FIN DE CARRERA
43
2.6. FUNCIONAMIENTO DE IMS
44
PROYECTO FIN DE CARRERA
45
2.6. FUNCIONAMIENTO DE IMS
Figura 2.17.: Fichero XML que describe el perfil del usuario sip:[email protected].
46
PROYECTO FIN DE CARRERA
' $
47
2.7. SERVICIOS IMS
' $
Figura 2.19.: Establecimiento de sesión desde una red PSTN hacia IMS.
& %
desde cero.
Con la aparición de la arquitectura de IMS; muchas funciones pueden ser
reutilizadas para la creación y despliegue rápido y eficaz de servicios. Como se ha
venido comentando con anterioridad, los servicios IMS se alojan en los Application
Servers, situados en la capa de aplicación de IMS y controlados desde la capa de
control. Por ejemplo, IMS define cómo las peticiones de servicio se encaminan, qué
protocolos soportan, cómo se realiza la tarificación y cómo se produce la integración
de servicios. Un solo AS puede albergar múltiples servicios — por ejemplo telefonía
y mensajería —. La colocación de múltiples servicios tiene ventajas significativas, la
primera de ellas la reducción de nodos de la red IMS. Además, al colocar los servicios
en un AS, disminuye la carga del CSCF en el plano de control.
Se observan en la parte baja de la figura 2.20 los servicios “básicos”, los que la
mayoría de la sociedad estaría de acuerdo en desplegar (servicios sociales, seguridad
pública, etc.). Estos servicios tendrían un atractivo de mercado enorme. Sin embargo,
estos servicios pasan por tener unos bajos ingresos, ya que no soportan un gran
volumen de carga.
En la parte alta de la figura 2.20 se muestran los servicios (de ocio). Pueden tener
un mercado menos atractivo, pero pueden aportar mayores beneficios – de hecho
pueden ser el tipo de servicios que den beneficios a corto plazo –.
48
PROYECTO FIN DE CARRERA
Por otro lado, queda patente que muchos servicios además atraen tanto a usuarios
fijos y móviles, por lo que crean la necesidad que persigue cubrir IMS: independencia
en el acceso a la hora de proveer servicios.
IMS ofrece los elementos necesarios para el desarrollo de servicios de valor añadido
como: servicio de presencia, mensajería, conferencias y Push-To-Talk over
Cellular (PoC).
En siguientes secciones se pormenorizarán diferentes aspectos sobre cómo IMS
implementa estos servicios o cómo se desarrollan desde el punto de vista de los
entornos de implementación. Sin embargo, es preciso mostrar, aunque sea con
carácter introductorio, aquellas características más importantes de estos servicios
y las conclusiones más relevantes derivadas de su estudio.
49
2.7. SERVICIOS IMS
50
PROYECTO FIN DE CARRERA
51
PROYECTO FIN DE CARRERA
3. UN ENTORNO DE
DESARROLLO: EL SDS DE
c
ERICSSON
53
3.1. HERRAMIENTAS DE DESARROLLO DE APLICACIONES Y SERVICIOS IMS: ¿POR QUÉ EL SDS?
' $
54
PROYECTO FIN DE CARRERA
55
3.2. ¿QUÉ ES EL SDS?
56
PROYECTO FIN DE CARRERA
El SDS proporciona APIs del servidor basadas en el estándar, así como una
arquitectura emulada del core IMS y APIs de alto nivel para la parte cliente y
para los servicios de comunicaciones.
Con la combinación de un “contenedor” SIP (o SIP container) real y sus
herramientas de desarrollo, el SDS permite a los operadores de red fijos y móviles y a
los proveedores de servicios desarrollar de una manera más sencilla y rápida servicios
de valor añadido y de gran calidad. Estos servicios han de ser los que catapulten
IMS para poder satisfacer todas las posibilidades que presentan las redes de nueva
generación.
El Service Development Studio (SDS) es un producto de Ericsson
c perteneciente al
Ericsson IMS Solution, el conjunto de soluciones tecnológicas tanto hardware como
software para IMS en las que Ericsson es líder mundial [21]. Por lo tanto, Ericsson
ha diseñado todas sus herramientas de acuerdo al estándar y compatibles entre sí,
con la idea de estar presente en todo el proceso ligado a una aplicación, desde la idea
y requerimientos iniciales, hasta el despliegue en una red real. Las primeras fases
se completarían con el SDS, y a partir de ahí, el software del servicio desarrollado
podría desplegarse de forma transparente en el entorno real IMS Common System
de Ericsson. En concreto en los servidores de aplicación – como por ejemplo es
el Oracle (BEA3 ) Web Logic SIP Server (BEA WLSS) [22] o el polivalente Oracle
Communications Converged Application Server (OCCAS) –. De esta manera, el SDS
puede configurarse para simular el núcleo IMS completo e incluso funcionar como un
efectivo (y prácticamente gratuito) servidor JEE/SIP4 como banco de pruebas real
de un servicio. Asimismo, es posible interconectar el SDS con entornos reales para
verificar eficientemente los servicios y realizar las pruebas pertinentes sin repercutir
gravemente en el coste.
La herramienta de desarrollo SDS viene integrada como un conjunto de plugins
del framework Eclipse Integrated Development Environment (IDE)5 . Es
decir, las capacidades del SDS se presentan como un conjunto de plugins dentro de
la interfaz de usuario del Eclipse IDE. En la figura 3.28 se muestra el entorno de
trabajo de Eclipse, con la herramienta de desarrollo de aplicaciones y servicios de
IMS, SDS, completamente integrada como parte del workbench.
poco valor añadido por sí mismos pero que combinados ofrezcan una solución más atractiva.
3
Oracle adquirió BEA Systems en 2008, así como BEA Systems adquirió Weblogic, Inc. en 1998.
4
El SDS está completamente integrado, a partir de su versión 4.0 con el Sailfin JEE/SIP
Application Server.
5
Eclipse, o Eclipse Platform formalmente, es en sí una amalgama de plugins. A pesar de
tener muchas funcionalidades nativas, son a veces muy genéricas. Se necesitan herramientas
adicionales para extender la plataforma para trabajar con nuevos tipos de contenidos, llevar a
cabo nuevas capacidades o “especializar” la herramienta en un ámbito específico. La plataforma
Eclipse trae un mecanismo de descubrimiento, integración y ejecución de módulos llamados
plugins. Un proveedor de una herramientas las desarrolla como un módulo por separado pero
para que opere con los archivos del workspace y superponga sus elementos de interfaz de usuario
en este mismo espacio de trabajo o workspace. Cuando Eclipse se arranca, el usuario percibe
un entorno de desarrollo integrado (IDE) compuesto de un conjunto de plugins disponibles.
57
3.2. ¿QUÉ ES EL SDS?
58
PROYECTO FIN DE CARRERA
59
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
Figura 3.3.: Planificación de las distintas versiones del SDS junto con sus capacidades y estado
de release. Fuente: Ericsson.
60
PROYECTO FIN DE CARRERA
61
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
62
PROYECTO FIN DE CARRERA
63
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
para añadir o restar funcionalidades al proyecto. Existen facets para J2EE, web y
algunos otros tipos de aplicación. El SDS define, además, una facet adicional para
SIP. La ventana Project Facets window muestra la configuración actual y las facets
disponibles para el proyecto. Para proyectos SIP como los de IMS, las facets The
Dynamic Web Module, Java, y SIP Servlet API son obligatorias, y como se ilustra
en la figura 3.5 están seleccionadas por defecto.
Finalmente, los proyectos se empaquetan automáticamente en ficheros SIP ARchive
.sar, pero es posible compilarlos en ficheros Enterprise ARchive .ear para ejecutarlos
como aplicaciones (empresariales) Java.
64
PROYECTO FIN DE CARRERA
65
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
9
La principal función de un contenedor de servlets es llevar a cabo el enrutado de las peticiones
hacia las aplicaciones. Para permitir esto, hay una serie de reglas asociadas a cada aplicación
y especificadas en un fichero XML llamado el descriptor de despliegue de la aplicación.
Contiene detalles del: nombre del servlet, mapeo del servlet, parámetros iniciales, condiciones
de seguridad y detalles de login. Se usan para servlets SIP (sip.xml) y HTTP (web.xml).
66
PROYECTO FIN DE CARRERA
Depurador (Debugger )
El debugger permite al desarrollador establecer puntos de ruptura o breakpoints en
el código fuente de las aplicaciones Java o SIP. La ejecución se detiene al llegar a
estos puntos y en ese momento se puede examinar la estructura interna de los datos
así como controlar la ejecución de la lógica de servicio paso a paso. El debugger es
común a todos los IDEs y viene integrado con Eclipse (ver figura 3.10).
67
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
en la versión 4.1. Esta conversión se lleva a cabo con el Legacy SIP Application
Converter Wizard o asistente para la conversión de aplicaciones SIP heredadas11 .
Una vez realizada la conversión, el proyecto no es compatible hacia atrás, de forma
que no se puede volver a utilizar en la versión previa donde fue creado12 . Este wizard
de conversión está completamente integrado en el IDE con un botón propio en la
barra de herramientas que da acceso a la ventana del asistente 3.11.
68
PROYECTO FIN DE CARRERA
Figura 3.12.: Launcher de los elementos de la red para inicializarlos o detenerlos en el entorno
de simulación.
Figura 3.13.: Visual Network con todos sus nodos tanto de red como de cliente (el emulador
de Symbian) y el menú de interacción gráfica.
69
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
El entorno de testeo
En el SDS, desde sus orígenes, venían incorporadas dos entornos para el testeo de
las aplicaciones IMS: el SIP Test Agent y el Automated Testing Framework (ATF).
El primero consiste, grosso modo, en una interfaz para probar el comportamiento
de las aplicaciones ante mensajes SIP concretos elaborados por el programador. El
segundo es un entorno que permite simular escenarios concretos de funcionamiento
en la red IMS, facilitando la realización de baterías de pruebas. Ambos frameworks
de testeo se lanzan desde el menú cliente del SDS, ilustrado en la figura 3.15.
El SIP Test Agent El SIP Test Agent permite testar el comportamiento de una
aplicación ante cualquier tipo de mensaje. Proporciona un mecanismo para crear
cualquier tipo de mensaje real. Este hecho da lugar a la posibilidad de que el
desarrollador teste las aplicaciones y analice sus respuestas a mensajes específicos,
ya sean válidos o no válidos. Esta herramienta es flexible para numerosos escenarios.
Es posible crear uno o más clientes (test clients) que envíen, reciban o respondan a
determinadas peticiones SIP. Para crear mensajes SIP correctos, es posible utilizar
70
PROYECTO FIN DE CARRERA
Figura 3.15.: Menú cliente del SDS, con el acceso al SIP Test Agent y el ATF.
71
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
72
PROYECTO FIN DE CARRERA
73
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
IMS usando SDS/ICP sobre Nokia Carbide C++ para móviles basados en S60 son
los siguientes:
Tener instalado el SDS
Registrarse en la web del Forum Nokia y descargar e instalar Carbide.c++
Express v1.3
Descargar e instalar el SDK S60 para Symbian: S60 3rd edition, FP1 (2006-
10-11)
Ejecutar el SDS, y del menú seleccionar SDS >Client >Install SDS Extensions
in Carbide. Esto permite proporcionar la ruta del Carbide instalado, e instala
el ICP plugin sobre éste.
Iniciar Carbide integrado en el entorno de desarrollo del SDS (ver figura 3.19).
Esta integración añade características como: icono para iniciar un proyecto
ICP, un menú para desplegar aplicaciones (build/deploy), etc.
Codificar, compilar y depurar
Inicializar el entorno de Ejecución: core, Application Server, Enablers de
servicio
Configurar el perfil de usuario (como se vio en el capítulo 2 en lo referente a
los inital Filter Criteria) de la ICP
Ejecutar la aplicación
Llevar a cabo pruebas o testeos extremo a extremo haciendo uso de los nodos
IMS del SDS, el servidor y los simuladores de servicios
Solucionar problemas (troubleshooting)
74
PROYECTO FIN DE CARRERA
Figura 3.19.: El entorno de desarrollo del SDS con el S60 C++ Carbide integrado.
75
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
76
PROYECTO FIN DE CARRERA
77
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
Figura 3.21.: Un ejemplo de Javadoc: La API para clientes IMS sobre IJCU basados en Java.
78
PROYECTO FIN DE CARRERA
Con respecto a estas dos perspectivas, existen a su vez dos problemas básicos:
79
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
El objetivo para esta división fue ocultar todos los detalles tecnológicos de
IMS detrás de la plataforma del cliente, y presentar APIs de alto nivel a los
desarrolladores de aplicaciones. En este sentido, los desarrolladores de aplicación
han de concentrarse sólo en el proceso de innovación, mientras que la tecnología
IMS se encapsula en el framework y queda oculta a los programadores. Estas dos
capas, juntas, crean el dominio software del cliente IMS en el terminal o dispositivo.
80
PROYECTO FIN DE CARRERA
' $
81
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
' $
82
PROYECTO FIN DE CARRERA
Una API para el core basada en los estándares del IETF y 3GPP
Una API específica para los servicios IMS, basada en los estándares OMA:
OMA PoC, OMA Presence and GLM (PAG), OMA XDM, y OMA IM
16
La ICP expone a los desarrolladores dos APIs: la ICP C++ API y la ICP Java (JME/CDC)
API. La Java API es una variante temprana de la especificación JSR 281, por ello el nombre
de pre-JSR 281.
83
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
' $
La ICP deja expuestos tanto el core como los enablers de servicios a través de una
API de alto nivel en C++ y Java. La ICP estaba en gran parte basada en el estándar
JSR 281 y pretende, en futuras versiones, ser totalmente compatible con el mismo.
El desarrollador de clientes solo tiene que implementar la nueva lógica de servicio,
así como la nueva interfaz de usuario basándoe en las APIs disponibles. Todos los
clientes que hagan uso de la API de la ICP, se ejecutan obligatoriamente sobre el
core entorno de ejecución de la ICP.
La ICP 4.1 está actualmente disponible para dispositivos móviles y de sobremesa.
No existen diferencias de funcionalidad entre la ICP instalada en uno u otro
equipo, de hecho, el mismo código base se ofrece tanto para los terminales móviles
Symbian (SEMC y Nokia N95) como para los equipos de sobremesa con Windows
(XP o Vista). Esta solución versátil asegura la interoperabilidad entre diferentes
dispositivos, sin necesidad de efectuar modificación alguna en la implementación
funcional. El componente de la arquitectura que permite que la ICP se ejecute en
diferentes sistemas operativos es la capa de abstracción o abstraction layer (ver
figura 3.25) específica para cada dispositivo. Esta capa de abstracción encapsula
todos los componentes que son específicos de la plataforma del dispositivo y asegura
que la ICP en sí es la misma e independiente de sobre qué dispositivo — smartphone,
PC o PDA — se está ejecutando o accediendo.
En la figura 3.26 se observa una versión simplificada de la arquitectura horizontal
completa de la ICP 3.26 .
84
PROYECTO FIN DE CARRERA
' $
85
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
86
PROYECTO FIN DE CARRERA
Al contrario que la implementación del core de la ICP, que tenía que incluirse en
cualquier configuración posible de la ICP, los enablers de servicio son opcionales y
permiten mucha flexibilidad en la configuración.
Otras características
Adicionalmente, la ICP 4.1 soporta más capacidades IMS (básicas y avanzadas):
Autenticación IMS
Registro
Autorización
Señalización y compresión (SigComp 2.0)
Calidad de servicio, Quality of Service (QoS). Control del acceso radio
Componentes de la ICP
En la figura 3.24 se muestra la filosofía modular de la arquitectura de la ICP.
87
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
común para todos los clientes IMS instalados y desarrollados con la ICP API. La ICP
se encarga de gestionar todas las interacciones con la infraestructura del núcleo de
red IMS y los servidores de aplicación (en el caso de que intervengan). Este entorno
de ejecución se ha testado tanto a pequeña escala y en simulación con el Service
Development Studio (SDS) como a gran escala y en los nodos e infraestructura
reales desplegados por Ericsson. En ambos casos se ha demostrado la compatibilidad
con los estándares del 3GPP, IETF y OMA.
Todos los clientes ejecutados en el mismo dispositivo comparten una instancia del
núcleo del entorno ejecución de la ICP18 . La ICP contiene las pilas de protocolo
básicas, así como los enablers de core y servicios, responsables de tratar todos las
peticiones y eventos que se produzcan en la interacción con los clientes IMS y toda
la señalización y tráfico de datos entre la red IMS y el dispositivo.
88
PROYECTO FIN DE CARRERA
19
Con la instauración de la fundación Symbian (Symbian Foundation), la UIQ dejó de existir,
siendo la S60 la opción elegida por la fundación Symbian para la interfaz gráfica de su sistema
operativo. UIQ contribuirá a la fundación. [28]
20
Para ejecutar las aplicaciones IMS en Symbian la versión del JDK que soporta es la 1.3.
21
Cualquier edición: OEM, Professional, developer y Express.
89
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
La ICP C++ API En la versión 4.1 de la ICP, se soporta la C++ API para
permitir el desarrollo de aplicaciones nativas, especialmente para dipositivos con
el entorno Symbian v9.2/S60 3rd edition FP1. En el framework S60, la API C++
de la ICP es la única opción que tienen los desarrolladores, debido a la ausencia
de soporte Java CDC22 . Las aplicaciones nativas normalmente consumen menos
potencia y proporcionan un mayor rendimiento comparadas con los clientes en Java.
Estos beneficios hacen de estos desarrollos nativos una opción comercialmente más
adecuada para el desarrollo de los clientes.
22
Recordar que Connected Device Configuration (CDC) y Connected Limited Device Configuration
(CLDC) son las especificaciones para la máquina virtual básica que un dispositivo J2ME debe
soportar. CDC es para dispositivos algo mayores, con más prestaciones (smartphones, PDAs,...),
y CLDC es la implementación más básica y para dispositivos limitados en recursos (teléfonos
móviles, “buscas”, etc.).
90
PROYECTO FIN DE CARRERA
La API C++ del core IMS contiene las funcionalidades básicas para
desarrollar servicios IMS a medida. Los desarrolladores IMS en C++ tienen a
su disposición las siguientes interfaces:
• IMS Profile
• IMS Service
• IMS Session
• PacketMedia
• StreamMedia
• ...
La API C++ de los IMS service enablers provista por la ICP encapsula
la implementación de los siguientes mecanismos del nivel de aplicación:
• OMA Presence
• OMA Group List Management (GLM)
• OMA Instant Messaging (IM)
• GSMA Combinational Service (CSI)
• P2P Voice over IP (VoIP)
• OMA Push-to-Talk over Cellular (PoC)
• Presence Enhanced Phonebook (PEP)
91
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
Interoperabilidad
La ICP puede interoperar con redes IMS que cumplan con los estándares, y se ha
comprobado con el core simulado del IMS y el del entorno real IMS Common System
4.1 de Ericsson.
Algunas características de la ICP requieren un nodo o AS específico para
interconectarse, como el servidor de presencia, PTT-AS, etc.
La versión 4.1 de la ICP sigue minuciosamente los estándares IMS referentes a la
release 6 del 3GPP, incluso en algún momento sigue la 3GPP R7. Esta fidelidad
con la norma asegura la interoperabilidad a nivel de protocolos. La ICP incluye una
implementación de estos protocolos necesarios para los servicios IMS.
En segundo lugar, la ICP toma medidas para la autenticación y autorización del
propietario del dispositivo junto con el registro de los servicios IMS disponibles en
el terminal.
En el nivel de aplicación, la ICP asegura el establecimiento de la sesión de
comunicación incluyendo la negociación de la calidad de servicio en la red mientras
establece el canal de comunicación en el plano de datos (contexto PDP en el caso
de terminales móviles) y negociación de las conexiones de medios.
Los enablers de servicio en la ICP son módulos que implementan un determinado
número de servicios estandarizados asegurando interoperabilidad.
Windows XP/Vista
Symbian v9.1/UIQ 3.08 (solo Java)
Symbian v9.2/S60 3rd Edition FP19 (solo C++)
92
PROYECTO FIN DE CARRERA
93
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
94
PROYECTO FIN DE CARRERA
Figura 3.27.: SDS posibilita IMS en teléfonos basados en JME MIDP/CLDC. Fuente:
Ericsson.
Los casos soportados de uso, con sus correspondientes métodos SIP, son los
siguientes:
Registro: SIP REGISTER
Presencia: PUBLISH, SUBSCRIBE, recepción de NOTIFY
Grupos
Aplicaciones IP: juegos, localización
Chat: sesión uno a uno basada en SIP INVITE
Transferencia de ficheros: envío y recepción de archivos mediante Message
Session Relay Protocol (MSRP) y JSR 75
Combinaciones de estos servicios, siguiendo la filosofía de IMS de integración
de servicios
95
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
Figura 3.28.: Características de la API JSR 281 soportadas por la IJCU. Fuente: Ericsson.
Terminales IJCU
La solución IJCU soporta terminales basados en MIDP 2.0/CLDC 1.1 que permiten
la descarga de midlets Java. Ericsson ha testado algunos teléfonos y otros los testeará
en el futuro. Otros smartphones pueden también soportar IJCU, siempre y cuando
soporten MIDP 2.0/CLDC 1.1 y permitan la descarga de midlets. Los terminales
basados en Symbian UIQ también se testearon (M600, P990, P1). La IJCU tendría
que funcionar con los terminales Symbian con S60, pero esta configuración no se ha
testado aún.
96
PROYECTO FIN DE CARRERA
97
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
initial Filter Criteria (iFC) Dentro del SDS 4.1, los iFC se incorporan de acuerdo
a la especificación del 3GPP TS 29.228 R6, que ya se estudió en el capítulo 2. Estos
criterios de filtrado se componen de ninguno o un Trigger Point y un objeto para
el servidor de aplicaciones (AS). El Trigger Point está compuesto de uno o varios
Service Point Triggers (SPTs). Para esta versión del SDS; un SPT puede ser:
Tipo de sesión session case: originada, terminada, o terminada sin registro.
Método SIP: cualquier método SIP.
Contenido de la Request-URI.
Cabeceras SIP:
• Nombre de la cabecera SIP: nombre de la cabecera SIP que ha de estar
presente en una petición.
• Contenido de la cabecera SIP: una expresión que defina el valor de la
cabecera con el nombre especificado con anterioridad.
98
PROYECTO FIN DE CARRERA
Figura 3.29.: Principales parámetros configurables (“preferencias”) del CSCF simulado del
SDS.
Cuando el CSCF acepta una solicitud de registro del usuario, los servicios no
se “disparan” hasta que no se proporciona un perfil de usuario. El CSCF, por
tanto, recupera la información relevante del usuario (el perfil de usuario) del HSS,
para llevar a cabo la autenticación entre el usuario final y la red, así como para
proporcionar servicios al usuario. El CSCF accede en todo momento a la información
del usuario, así como a los datos relacionados con los servicios. Internamente, el
CSCF hace uso de habilitadores/deshabilitadores internos para analizar y enrutar
las peticiones.
El CSCF incluye un módulo para resolver direcciones DNS para enrutar las
peticiones. En particular, este módulo permite al CSCF traducir las SIP URIs
asociadas con un número E.164 (número de teléfono internacional). El CSCF aplica
el mecanismo DNS/ENUM de acuerdo con la RFC 2761.
En el SDS, el CSCF es un único nodo del entorno de simulación, pero lleva a
cabo las funcionalidades descritas en el capítulo 2 y en las especificaciones del
3GPP: funcionalidades Serving-Call Session Control Function (S-CSCF), Proxy-Call
Session Control Function (P-CSCF), Interrogating-Call Session Control Function (I-
CSCF). Asimismo, incluye la funcionalidad de pasarela hacia redes Public Switched
Telephone Network (PSTN) de otras redes, la funcionalidad Breakout Gateway
Control Function (BGCF).
99
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
100
PROYECTO FIN DE CARRERA
El S-CSCF hace uso de enablers internos para analizar sintácticamente los mensajes
SIP y llevar a cabo operaciones sobre el flujo de la llamada. Utiliza el enabler de
normalización numérica para normalizar un número de teléfono cuando llega en su
forma abreviada. Asimismo se basa en el enabler DNS para buscar direcciones para
encaminar las peticiones. El DNS convierte una URI en un registro DNS compuesto
por una dirección IP, un puerto y un protocolo de transporte.
25
Este es un ejemplo claro del porqué de la elección de SIP en detrimento de otros protocolos como
el H.323: SIP presenta una clara facilidad de extensión mediante la inclusión de cabeceras y
parámetros.
101
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
102
PROYECTO FIN DE CARRERA
Sobre el desregistro:
• El desregistro iniciado por el usuario provoca la eliminación de la
identidad pública de usuario y de todas las otras identidades públicas
asociadas, incluyendo toda la información relacionada almacenada
Tratamiento general:
• Gestión y tratamiento de la cabecera P-Preferred-Identity (presente o no)
con la P-Asserted Identity
• Roaming
• Soporte para mecanismos de privacidad de acuerdo a la RFC 3325
• Soporte para la cabecera de registro de caminos: Path, de la RFC 3327
103
3.4. SUBSISTEMAS DEL SDS Y SU MODO DE USO
104
PROYECTO FIN DE CARRERA
La API del servidor La API del servlet SIP (SIP Servlet API (SSA)) especificada
en la JSR-116 (SSA 1.0) y en la JSR-289 (SSA 1.1) se usa para la creación de
aplicaciones para ejecutarse en servidores de aplicación (ASs) JEE/SIP. La API del
servidor del SDS está basada en la JSR-116 y parcialmente en la JSR-289. Esta API
es una API Java para desplegar servicios Java basados en SIP sobre el servidor de
aplicación de fuentes abiertas SailFin de Sun.
105
3.5. EMULADORES DE TERMINALES MÓVILES
' $
La ICP API del cliente Como se ha tratado con profusión en la sección 3.4.3,
la IMS Client Platform (ICP) es el servicio de segundo plano instalado en los
dispositivos para todos los clientes IMS. Las aplicaciones clientes acceden al entorno
de la plataforma ICP mediante las versiones “tempranas” de dos JSRs, la pre-JSR-
281 y la pre-JSR-325 API, tal y como muestra la figura 3.31
Esta ICP API pretende cumplir con la especificación JSR-281 a corto plazo y con
la JSR-325 a plazo medio. Como ya es conocido, esta API es un conjunto de librerías
de alto nivel para el desarrollo de aplicaciones cliente IMS.
La ICP IJCU del cliente La IMS JME Client Utility (IJCU) se instala en
terminales JavaME como parte de su paquete de midlets (midlet package)27
106
PROYECTO FIN DE CARRERA
107
3.6. EJEMPLO DE DESARROLLO DE UNA APLICACIÓN IMS CON EL SDS
108
PROYECTO FIN DE CARRERA
109
3.6. EJEMPLO DE DESARROLLO DE UNA APLICACIÓN IMS CON EL SDS
fuera una sola, se deben implementar todas las funciones de ese listener para
poder usarlas. Para facilitar el desarrollo, el SDS crea clases de adaptadores.
Estos adaptadores son simplemente una implementación “vacía” o “hueca” de los
listeners. Los adaptadores proporcionados con el SDS son un método conveniente
para implementar todas las funciones de los listeners de modo que la aplicación a
desarrollar tenga acceso a la función que necesite, y así no sea necesario implementar
funciones que nuestra aplicación no usará.
Es posible observar, cómo cada adaptador es necesario para implementar otro,
construyendo una estructura de capas sobre cuya superficie se sostiene la aplicación
cliente.
No es objetivo de este Proyecto Fin de Carrera analizar línea por línea el código
Java que implementa el servicio. Sin embargo, es de interés explicar cómo Java
implementa los mensajes SIP que entiende el núcleo IMS. Por ello, se hace una
división entre servidor y cliente a la hora de explicar cómo Java se involucra en el
desarrollo de aplicaciones y servicios IMS.
110
PROYECTO FIN DE CARRERA
111
3.6. EJEMPLO DE DESARROLLO DE UNA APLICACIÓN IMS CON EL SDS
112
PROYECTO FIN DE CARRERA
4. CREACIÓN DE UN SERVICIO
IMS CON EL SDS
113
4.1. VISIÓN GENERAL DE LA CREACIÓN DE UN SERVICIO IMS
114
PROYECTO FIN DE CARRERA
115
4.1. VISIÓN GENERAL DE LA CREACIÓN DE UN SERVICIO IMS
116
PROYECTO FIN DE CARRERA
' $
desarrollo SDS en profusión, tal y como se hizo en el capítulo anterior. Sin embargo,
se analizará en la siguiente sección la peculiaridad existente en la creación de nuevos
servicios.
117
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
Figura 4.5.: Primera fase: programar, testar, y simular extremo a extremo en PCs con
simuladores de IMS SDS. Fuente: Ericsson.
Una aplicación en IMS puede ser cliente a cliente o cliente servidor. En cualquier
caso será necesario como mínimo cubrir una de las dos partes siguientes:
1. Lado servidor
a) Crear un proyecto SIP/Web dinámico
b) Crear un SIP servlet
c) Codificar
d) “Provisionar” el CSCF
e) Establecer el servidor de entorno de ejecución por defecto (Default
Runtime Server)
f ) Desplegar el proyecto sobre el servidor de aplicaciones SailFin
g) Testar la aplicaicón
h) Realizar baterías de pruebas con el ATF
i) Depuración y subsanación de errores
j) Ajustes necesarios para pasar a la siguiente fase de creación de un servicio
2. Lado cliente
a) Crear un proyecto de ICP
b) Añadir las capacidades ICP necesarias
118
PROYECTO FIN DE CARRERA
c) Codificar
d) Instalar el cliente en Windows
e) Lanzar el entorno de ejecución
f ) Configurar el perfil de usuario en la ICP
g) Reiniciar la ICP
h) Desplegar y ejecutar la aplicación
i) Depuración y subsanación de errores
j) Ajustes necesarios para pasar a la siguiente fase de creación de un servicio
En esta primera fase donde el papel importante lo juega el simulador del núcleo
de IMS de Ericsson existe otra variante: emplear dispositivos reales que se conectan
vía la red móvil de paquetes a los PCs con el SDs donde se alojen los servidores de
aplicación. Esta variante, que queda ilustrada con la figura 4.6 precisa de unos pasos
de configuración en los dispositivos móviles que se describen en la sección 4.2.2,
con la salvedad de que habrá que configurar los PCs con el SDS dotándolas de
una dirección IP pública para ser accedidos en el core IP desde los Gateway GPRS
Support Node (GGSN) del operador móvil que da acceso IP en movilidad.
Figura 4.6.: Primera fase (variante con terminales reales): programar, testar, y simular
extremo a extremo en PCs con simuladores de IMS SDS pero haciendo uso
de dispositivos y redes de acceso reales para acceder al núcleo IMS simulado.
Fuente: Ericsson.
119
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
Figura 4.7.: Segunda fase: test y pruebas de usuario extremo a extremo con dispositivos y
redes reales. Fuente: Ericsson.
120
PROYECTO FIN DE CARRERA
121
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
122
PROYECTO FIN DE CARRERA
123
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
124
PROYECTO FIN DE CARRERA
Figura 4.12.: Esquema de las soluciones comerciales del área Ericsson IMS, estructuradas
en soluciones, productos y servicios. Fuente: Ericsson.
125
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
Todo el hardware se monta sobre el bastidor Ericsson BYB 501 4.13 en tres
compartimentos distintos:
Armario para Telecom Server Platform/Network Server Platform (TSP/NSP)
con un rack o rejilla de 400 mm de profundidad para montar el hardware de
las plataformas TSP/NSP.
Armario para Integrated Site (IS): de 400 mm de profundidad para montar
los sub-racks de IS.
Cabina de datos en el BYB 501 de 800 mm de profundidad de cara a montar
los elementos de la red de SUN y HP, el Acme SBC así como la conectividad
entre la plataforma y en el exterior con el módulo switch/router
Figura 4.13.: El bastidor BYB 501 que aloja los elementos del core real de Ericsson para
testeos y pruebas.
126
PROYECTO FIN DE CARRERA
' $
Core
Un CSCF y un HSS:
1
• hardware: Un 4
OPTI TSP
• software: IMS Common System 4.1
◦ La colocación del core IMS (HSS+CSCF) está propuesta de este
modo bajo la suposición de una solución más económica y compacta.
◦ Es preciso tener en cuenta que de este modos el core es una “caja
negra” que limita la visibilidad y control de errores sobre algunas
interfaces del núcleo, como podría ser el control sobre Diameter.
Un DNS instalado en una máquina SUN NETRA 240, con software IPWorks
5.0.
Un Redback SE400 con 60 puertos Fast-Ethernet y 2 puertos Gigabit Ethernet.
Un armario para Telecom Server Platform/Network Server Platform (TSP/N-
SP) .
Un armario para datos.
Capa de aplicación
Un Presence and Group Management (PGM)
127
4.2. CREACIÓN DE UN SERVICIO CON EL SDS, PASO A PASO
1
• hardware: Un 4
OPTI-4 TSP: un armario TSP/NSP
• software: PGM 4.1
Un Oracle Communications Converged Application Server (OCCAS) Oracle
(BEA) Web Logic Sip Server para instalar las aplicaciones desarrolladas, por
ejemplo con el Service Development Studio (SDS) de Ericsson.
• hardware:
◦ HP PROLIANT DL360 G4p , SCSI
◦ Procesador Xeon 3,6 GHz
◦ 2o Procesador Intel Xeon 3,6 GHz
• software:
◦ Linux Red Hat Enterprise ES 3.0
◦ BEA WebLogic SIP Server 2.2
◦ MySQL Databe 5.0.24a
Un Push-To-Talk (PTT)
1
• hardware: Un 4
OPTI-4 TSP: un armario TSP/NSP
• software: Servidor PTT 4.1
1
Se asume contrato de colaboración entre el cliente que instala la solución de Ericsson en materia
de núcleo de red y el operador que proporciona la red de acceso a susodicho núcleo.
128
PROYECTO FIN DE CARRERA
4.3.1 Limitaciones
El CSCF está como un nodo único y sus tres funciones (P-CSCF, S-
CSCF, I-CSCF) están limitadas por este hecho. Su configuración se limita
prácticamente a dirección IP y puerto, no dejando opción a muchas otras de
las funcionalidades que se describen en el estándar.
• Posibles mejoras: Ampliación de los parámetros, desarrollo de una
interfaz gráfica web para la configuración de estos parámetros en remoto.
Ausencia de un nodo independiente para el HSS sobre el que implementar
interfaz DIAMETER. El hecho de que el HSS aparezca como una mera GUI
reflejando campos de una base de datos interna limita el despliegue real
con el paso de mensajes sobre la interfaz Sh (mensajes DIAMETER para
autenticación, descarga del perfil XML, etc.)
• Posibles mejoras: Independencia del HSS con dirección IP y puerto
propios y soporte para DIAMETER.
Falta absoluta de control sobre interfaces DIAMETER y COPS: El SDS no
soporta mensajes COPS sobre la interfaz Go para políticas de tráfico y QoS
ni mensajes DIAMETER con el HSS o el Policy Decision Function (PDF).
• Posibles mejoras: Al igual que con los servlets SIP, podría crearse
una estructura con wizards y asistentes de código que implementaran el
modelo cliente-servidor de DIAMETER y COPS con una interfaz sencilla,
pero soportando elementos importantes como seguridad y QoS.
Ausencia del MRFC/MRFP limitando los servicios que pudieran implemen-
tarse relativos a contestador, servicios originados en la red con inclusión de
medios, etc.
• Posibles mejoras: El SDS podría venir integrado con un reproductor/-
codificador de medios con su correspondiente soporte en clases de Java y
descripción SDP.
A día de hoy, el SDS sólo soporta el SIP AS, no teniendo soporte para CAMEL
129
4.3. DIFERENCIAS ENTRE EL ESTÁNDAR Y EL SDS: LIMITACIONES Y PROBLEMAS
ni OSA.
• Posibles mejoras: Aunque no sea uno de los objetivos del SDS, podrían
integrarse en el mismo IDE el IM-SSF y el OSA-SCS de terceros como
Rhino (IM-SSF) o Parlay (OSA).
Aparte de la implementación de los elementos del núcleo de red, el SDS
no recoge plataformas adicionales definidas por el 3GPP como el Voice Call
Continuity (VCC)2 que es un elemento esencial en el modelo de convergencia
fijo móvil.
• Posibles mejoras: Contactos con empresas como Huawei [31], compro-
metidas con el desarrollo de VCC y su inclusión en IMS.
130
PROYECTO FIN DE CARRERA
131
PROYECTO FIN DE CARRERA
5. PROPUESTA DE DESPLIEGUE
COMERCIAL DE UN SERVICIO Y
PLAN DE EXPLOTACIÓN
133
5.1. PROPUESTA DE DESPLIEGUE COMERCIAL DE UN SERVICIO IMS
134
PROYECTO FIN DE CARRERA
Figura 5.1.: Arquitectura de IMS donde se aprecia el papel de los servidores Parlay X de
servicios Web.
135
5.1. PROPUESTA DE DESPLIEGUE COMERCIAL DE UN SERVICIO IMS
136
PROYECTO FIN DE CARRERA
Figura 5.3.: IMS se concibe como una arquitectura de control de servicios horizontal, con
cabida para distintas filosofías de creación de servicios y distintos escenarios de
interacción con el núcleo de la red.
137
5.1. PROPUESTA DE DESPLIEGUE COMERCIAL DE UN SERVICIO IMS
138
PROYECTO FIN DE CARRERA
139
5.2. EL MODELO DE EXPLOTACIÓN DE IMS
Figura 5.4.: Despliegue de aplicaciones IMS sobre un servidor Websphere de IBM. Fuente:
IBM.
140
PROYECTO FIN DE CARRERA
141
5.2. EL MODELO DE EXPLOTACIÓN DE IMS
142
PROYECTO FIN DE CARRERA
143
5.2. EL MODELO DE EXPLOTACIÓN DE IMS
Figura 5.5.: Nueva cadena de valor de los servicios de telecomunicaciones. Fuente: gaptel
144
PROYECTO FIN DE CARRERA
por parte del usuario final. En el mundo móvil, este nuevo paradigma ha venido de
la mano de los Internet Based Services (IBS), que no son más que las aplicaciones y
servicios que hoy se encuentran en cualquier equipo de sobremesa con una conexión
de internet; pero adaptados para el móvil. Así existen multitud de aplicaciones
desarrolladas por terceros y dispuestas en servidores auspiciados por los fabricantes
de terminales, que con una gran apuesta han dinamizado enormemente el sector con
portales como Apple Store para el iPod y iPhone; Android Market para los móviles
con este sistema operativo Linux con soporte de Google o el OVI de Nokia para el
sistema operativo Symbian. Estos repositorios almacenan miles de aplicaciones que
de una manera u otra están revolucionando el mercado.
Sin embargo, la amenaza de la incorporación de estos nuevos actores reside en
el hecho de que si los contenidos y servicios provienen de terceros agentes, los
operadores quedarían relegados a meros conductores de información y se alejarían
paulatinamente de los usuarios finales, sus clientes.
145
PROYECTO FIN DE CARRERA
6. CONCLUSIONES Y RETOS
FUTUROS
Para este capítulo se pretende reunir las conclusiones más importantes que se han
ido extrayendo a lo largo de todo el documento, así como apuntar las posibles líneas
de trabajo que emanan de aquellos aspectos que no se trataron con demasiada
profundidad.
6.1 Conclusiones
Las Comunicaciones Móviles actuales y las Telecomunicaciones en general, están
evolucionando en una dirección clara: la convergencia con otros agentes como son el
mundo de la informática, la industria tecnológica y los contenidos, dando origen
a una amalgama que hoy se conoce como Sociedad de la Información. Es
posible afirmar que hasta hace unos años todos estos actores avanzaban por caminos
paralelos e independientes, formando estratos heterogéneos donde se podía encontrar
la tecnología electrónica en la base y los contenidos en la superficie.
Sin embargo, la tendencia reciente persigue una evolución más homogénea y
sinérgica por parte de cada una de las partes implicadas. De este modo, se ha tratado
en este Proyecto Fin de Carrera de dar explicación a este fenómeno, justificar su
necesidad, determinar su repercusión en todos los niveles; y elaborar propuestas
para tratar de alcanzar el éxito de este nuevo modelo. Por todo ello, la tecnología
objeto de estudio es el IP Multimedia Subsystem (IMS), considerada como
el conjunto de estándares que proporciona una solución óptima al paradigma de la
nueva Sociedad de la Información. En consecuencia, se han dividido las conclusiones
más importantes según cada agente implicado para tener a la vez una perspectiva
global pero articulada con la que entender mejor la importancia de IMS.
Para las Telecomunicaciones, y en concreto para los operadores de
telecomunicaciones, IMS aporta calidad de servicio (QoS), permite la
tarificación versátil, promueve la integración de los servicios —
alcanzando el paradigma de “una red-N servicios” — y flexibiliza la
identificación del usuario mediante el uso de URIs, permitiendo la aparición
de identidades privadas y públicas más intuitivas y directas, tal y como
se vio en el capítulo 2. Fue en este capítulo donde ya se anunció el concepto
de Todo-IP, más conocido en inglés como All-IP, la nueva arquitectura de
redes global y convergente de la que IMS es su componente más desarrollado.
Para la industria tecnológica y los fabricantes de dispositivos, IMS trae
consigo soluciones y protocolos estándar, de modo que al existir estas normas
147
6.1. CONCLUSIONES
148
PROYECTO FIN DE CARRERA
149
6.2. RETOS FUTUROS
150
PROYECTO FIN DE CARRERA
A. ACRÓNIMOS
151
GGSN Gateway GPRS Support Node
GPRS General Packet Radio Service
GSM Global System for Mobile communication
GSMA GSM Association
GSMSCF GSM Service Control Function
GUI Graphical User Interface
HLR Home Location Register
HSPA High Speed Packet Access
HSS Home Subscriber Server
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
IBS Internet Based Services
ICE IMS Communication Enablers
ICID IMS Charging IDentifier
ICP IMS Client Platform
IDE Integrated Development Environment
IETF Internet Engineering Task Force
iFC initial Filter Criteria
IJCU IMS JME Client Utility
IMA IMS Multi-Access
IMS IP Multimedia Subsystem
IMScont IMS Service Continuity
INAP Intelligent Network Application Part
IOT InterOperability Testing
IP-CAN IP Connectivity Access Network
IPTV Internet Protocol Television
IPv6 Internet Protocol version 6
IRC Internet Relay Chat
IS Integrated Site
ISC IMS Service Control
ISUP ISDN User Part
IVR Interactive Voice Response
J2EE Java 2 Platform Enterprise Edition
J2ME Java 2 Micro Edition
152
PROYECTO FIN DE CARRERA
153
PS Packet Switched
PSI Public Service Identity
PSTN Public Switched Telephone Network
PTT Push-To-Talk
PyME Pequeña y Mediana Empresa
QoS Quality of Service
RDSI Red Digital de Servicios Integrados
RFC Request For Comments
RSVP Resource ReSerVation Protocol
RTCP RTP Control Protocol
RTP Real-time Transport Protocol
SBC Session Border Controller
SDK Software Development Kit
SDP Session Description Protocol
SDS Service Development Studio
SEMC Sony Ericsson Mobile Communications
SIP Session Initiation Protocol
SLF Subscription Locator Function
SMS Short Message Service
SMTP Simple Mail Transfer Protocol
SOA Service Oriented Architecture
SOAP Simple Object Access Protocol
SS7 Signaling System 7
SSA SIP Servlet API
TCP Transmission Control Protocol
TISPAN Telecoms and Internet converged Services and Protocols for Advanced
Networks
TS Technical Specification
TTM Time To Market
UAC User Agent Client
UDP User Datagram Protocol
UE User Equipment
UMTS Universal Mobile Telecommunications System
UNI User to Network Interface
URI Uniform Resource Identifier
154
PROYECTO FIN DE CARRERA
155
PROYECTO FIN DE CARRERA
ICS (IMS Common System) sirve como base para todas las ofertas que realiza
Ericsson en materia de núcleo de red de IMS. Además asegura la adopción
de un modelo de negocio que posibilite servicios horizontales ofrecido por IMS
incluyendo convergencia fijo-móvil y soporte para múltiples aplicaciones. ICS ha
sido diseñado para atender a aspectos de red de servicios coexistentes, servicios no
sólo desarrollados en la gama de Ericsson sino otras aplicaciones o funciones bajo
IMS (IP Multimedia Susbystem), integradas y unidas con ICS a través de interfaces
externas. De esta manera el ICS sirve como base sobre la cual varios servicios pueden
ser construidos. Ericsson IMS Push To Talk Permite a operadores lanzar “push to
talk” servicios sobre redes de móviles estándar como GSM/GPRS/EDGE/WCDMA
y CDMA2000. Cumple con la especificación Push To Talk over Cellular (PoC). La
solución está basada en una “siempre disponible” tipo de conexión de datos corriendo
sobre IP.
Nodos IMS en un contexto de red Un nodo lógico representa una o más funciones
relacionadas en una solución IMS. Un nodo lógico es implementado en uno, o más,
Elementos de Red. Un Elemento de Red puede implementar uno o más nodos lógicos.
La configuración actual para una solución IMS es determinada durante el proceso de
dimensionado teniendo en cuenta el número de aplicaciones, el volumen de tráfico,
y otro parámetros a tener en cuenta. En la versión 4.1 del IMS Common System
los nodos lógicos están realizados en los Elementos de Red mostrados en la tabla
siguiente (CSCF (Call Session Control Function) 4.1, HSS (Home Suscriber Server)
4.1, PGM (Presence Group and Management) 4.1, etc). Hay que tener en cuenta
que sólo hace referencia a la parte software de los Elementos de Red. El Hardware
y las plataformas no están cubiertos en la oferta de Ericsson. Descripción de los
nodos lógicos del ICS ICS está compuesto de varios nodos lógicos. Algunos de estos
son obligatorios, tienen que estar incluidos en cualquier despliegue del sistema ICS.
Otros nodos lógicos son opcionales y pueden estar incluidos dependiendo de las
necesidades del cliente y del entorno actual en el que el sistema ICS será desplegado.
Nodos obligatorios:
CSCF.
HSS.
EMA (Ericsson Multi Activation Server).
DNS / ENUM (Domain Name Service / E.164 Number Maping).
CSCF - Call Session Control Function Es un nodo esencial en IMS para el
procesamiento de la señalización, usando SIP (Session Initialization Protocol) como
157
protocolo de señalización. Proporciona soporte para protocolos de Internet en una
plataforma escalable. Analicemos la estructura lógica de CSCF:
El componente Application Support proporciona comunicación entre procesos
a través de tratamiento, configuración de mantenimiento, de red y soporte
de protocolo de transporte, y otras funciones “middleware” (software de
conectividad que ofrece un conjunto de servicios que hacen posible el
funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas.
El componente Operations and Management (OM) proporciona operaciones
y mantenimiento. Todos los componentes contenidos dentro de la actual
aplicación CSCF interactúan con el componente OM.
La pila SIP maneja mensajes SIP enviándolos y recibiéndolos, construyéndolos
y analizándolos, en las interfaces de red proporcionadas por el componente
Application Support.
La pila Diameter maneja mensajes Diameter enviándolos y rebiciéndolos,
construyéndolos y analizándolos, en las interfaces de red proporcionadas por
el componente Application Support. Diameter es también usado para enviar
datos de tarificación.
Event Manager ofrece informes sobre eventos de sesiones SIP específicas y usa
Diameter para comunicarse con el HSS.
Service Innvocation es responsable de invocar servicios que puedan ser
ejecutados en un servidor de aplicaciones SIP externo. La invocación está
basada en los filtros de los mensajes SIP específicos de usuarios finales.
ISC (IMS Service Control) es usado para comunicación con un servidor de
aplicaciones SIP externo. Este componente, que está basado en SIP, es usado
por Service Invocation cuando el soporte ISC esté configurado.
P-CSCF - Proxy Call Session Control Function Es el primer punto de contacto
(en el plano de señalización) entre el terminal de usuario y la red IMS, ya sea
directamente (redes móviles) o via SBC (Session Border Controller) (redes fijas).
Reenvía los mensajes SIP recibidos desde un UE (User Equipment) a un I-CSCF o
a un S-CSCF. Proporciona las siguientes funcionalidades:
Reenvía la petición de registro SIP recibida desde un UE a un I-CSCF
determinado usando el dominio proporcionado en el primer campo de la
cabecera Ruta o del Request-URI.
Almacena direcciones de contacto del equipo de usuario, como parte del
proceso de registro.
Todas las peticiones iniciadas en el terminal o destinadas a él atraviesan el
P-CSCF. Tanto las peticiones como las respuestas a estas son reenviadas por
esta funcionalidad en la dirección apropiada. La dirección de este nodo es
descubierta por el terminal durante la activación de un contexto PDP para el
cambio de mensajes de señalización. El nodo P-CSCF obtiene el nodo S-CSCF
adecuado durante el proceso de registro del terminal.
Oculta la topología de la red.
158
PROYECTO FIN DE CARRERA
159
perfil de usuario del HSS al S-CSCF y la almacena durante el tiempo de vida
del registro. El HSS notifica al S-CSCF si el perfil de usuario ha sido modificado
durante el registro.
Invocación de sesiones multimedia. Soporta mecanismos SIP para establec-
imiento de diálogos (para invocar una o más sesiones multimedia).
Lleva a cabo la internacionalización de números locales a globales (para
números E.164).
Resolución de asignación de rutas de peticiones en las cuales el destino es
definido con un número de teléfono.
Modificación y terminación de diálogos.
Bifurcación de sesiones multimedia.
Disparos a servicios de red basados en invocaciones de eventos de sesiones
multimedia (por ejemplo invocación de servicio de presencia).
Resolver la dirección del servidor I-CSCF del abonado destino a través de
búsqueda con DNS, entonces reenviar las peticiones o respuestas a dicho I-
CSCF.
Encaminamiento de sesiones. Reenviar mensajes SIP a servidores SIP o a
MGCF (Media Gateway Controller Function) para salidas a redes fijas o a
servidores SIP que interaccionen con redes de telefonía IP.
HSS - Home Subscription Server Es la base de datos maestra que contiene
información de usuarios y abonados, y mantiene el rastro después del registro con
el S-CSCF que es asignado a cada usuario. Contiene los datos de usuario que son
descargados al S-CSCF en el registro. Funcionalidades:
Identificación: mantiene la relación apropiada entre la identidad privada que
identifica al usuario y la identidad pública usada para establecer llamadas.
Autenticación.
Autorización de acceso: decide si al usuario le está permitido registrarse en la
red.
Localización del S-CSCF que tiene asignado un usuario.
Soporta información de servicio (initial filter criteria).
MGC - Media Gateway Controller Para entregar llamadas de voz a/desde redes
de conmutación de circuitos. Proporciona inter-funcionamiento entre la señalización
SIP de control de sesión y la señalización ISUP (ISDN User Part) de la red externa
a IMS. Es el responsable de la terminación de la señalización de control de llamada
ISUP y de controlar la pasarela de medios necesaria para establecer conexiones a
nivel de medios entre la red de conmutación de circuitos y los flujos de la red de
conmutación de paquetes.
MGW - Media Gateway Está localizada desde el punto de vista de la arquitectura
en la capa de conectividad y es responsable de manejar el flujo de medios recibido
de la red de conmutación de circuitos. Su tarea es adaptar el flujo transportado en
los circuitos a paquetes IP, apropiados para transportar sobre una red IP.
160
PROYECTO FIN DE CARRERA
161
PROYECTO FIN DE CARRERA
3 import java.io.IOException;
4 import java.util.Random;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.sip.SipServlet;
8 import javax.servlet.sip.SipServletRequest;
9 import javax.servlet.sip.SipServletResponse;
10 import javax.servlet.sip.SipSession;
11
19 /**
20 * Indica si se recibió el ACK de la sesión
21 */
22 private final String ACK_RECEIVED = "ackReceived";
23 /**
24 * Atributo de la sesión donde se almacena el número a adivinar
25 */
26 private final String NUMBER_TO_GUESS = "number";
27 /**
28 * La sesión se acepta - genera número a adivinar
29 */
30 protected void doAck(SipServletRequest req) throws ServletException,
IOException
31 {
32 SipSession session = req.getSession(true);
33 // Ensure we do not process the ACK twice for the dialog
34 Object ackAlreadyProcessed = session.getAttribute(ACK_RECEIVED);
35 if (ackAlreadyProcessed == null)
36 {
163
C.1. SERVLET DE LA APLICACIÓN: SERVLET.JAVA
37 session.setAttribute(ACK_RECEIVED, true);
38 // proporciona un valor entre 0 (inclusive) y 11 (exclusive)
por lo que [0, 10]
39 session.setAttribute(NUMBER_TO_GUESS, random.nextInt(11));
40 SipServletRequest message = session.createRequest("MESSAGE");
41 message.setContent("Adivine un número entre 0 y 10".getBytes(),
"guess/start");
42 message.send();
43 }
44 }
45
46 /**
47 * Termina la sesión
48 */
49 protected void doBye(SipServletRequest req) throws ServletException,
IOException
50 {
51 req.getSession().invalidate();
52 }
53
54 /**
55 * Invitación recibida - aceptarla
56 */
57 protected void doInvite(SipServletRequest req) throws ServletException
, IOException
58 {
59 // acepta la invitación - envía 200 OK
60 SipServletResponse response = req.createResponse(200);
61 response.send();
62 }
63
64 /**
65 * Número recibido. Comprueba si el número coincide con el generado
por el sistema
66 * y envía el mensaje apropiado
67 */
68 protected void doMessage(SipServletRequest req) throws
ServletException, IOException
69 {
70 SipSession session = req.getSession(true);
71 Object numberObject = session.getAttribute(NUMBER_TO_GUESS);
72 // Se asegura que todo va bien
73 if(numberObject == null)
74 {
75 req.createResponse(400, "Sesión no establecida").send();
76 }
77 else
78 {
79 // Responde 200 OK
164
PROYECTO FIN DE CARRERA
80 req.createResponse(200).send();
81
90 // Si se acierta
91 boolean gameOver = false;
92 if(guess == number)
93 {
94 message.setContent("Ha acertado!".getBytes(), "guess/result
+good");
95 gameOver = true;
96 }
97 else
98 {
99 // De lo contrario el usuario tendrá que seguir adivinando
100 String smaller = "Incorrecto, el número es... " + (guess<
number?"mayor":"menor");
101 message.setContent(smaller.getBytes(), "guess/result+wrong"
);
102 }
103 // Envía el resultado
104 message.send();
105
3 import java.awt.BorderLayout;
4 import java.awt.Button;
5 import java.awt.FlowLayout;
165
C.2. CLIENTE DE LA APLICACIÓN: CLIENTE.JAVA
6 import java.awt.Font;
7 import java.awt.Frame;
8 import java.awt.Panel;
9 import java.awt.TextArea;
10 import java.awt.event.ActionEvent;
11 import java.awt.event.ActionListener;
12 import java.awt.event.WindowAdapter;
13 import java.awt.event.WindowEvent;
14
15 import com.ericsson.icp.IBase;
16 import com.ericsson.icp.ICPFactory;
17 import com.ericsson.icp.IPlatform;
18 import com.ericsson.icp.IProfile;
19 import com.ericsson.icp.IService;
20 import com.ericsson.icp.ISession;
21 import com.ericsson.icp.util.ErrorReason;
22 import com.ericsson.icp.util.SdpFactory;
23
32 */
33 private IService service;
34 /**
35 * La sesión del juego actual
36 */
37 private ISession session;
38
41 /**
42 * Main
43 */
44 public static void main(String[] args)
45 {
46 Cliente guess = new Cliente();
47 guess.setVisible(true);
48 }
49
50 public Cliente()
51 {
52 setFont(new Font("SansSerif", Font.PLAIN, 12));
53 // Crea la interfaz de usuario
54 createGui();
166
PROYECTO FIN DE CARRERA
55 try
56 {
57 // Crea la plataforma y servicio ICP
58 platform = ICPFactory.createPlatform();
59 platform.registerClient("GuessClient");
60 platform.addListener(new PlatformAdapter());
61
77 /**
78 * Crea la GUI
79 */
80 private void createGui()
81 {
82 // Set the application title and size
83 // Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize
();
84 // setSize(new Dimension(screenSize.width / 2, screenSize.height /
2));
85 setTitle("Cliente ¡Adivine un número!");
86 setLayout(new BorderLayout());
87
167
C.2. CLIENTE DE LA APLICACIÓN: CLIENTE.JAVA
129 pack();
130 }
131
132 /**
133 * Libera el objeto ICP cuando se cierra la aplicación y para la
máquina virtual
134
135 */
136 private void quit()
137 {
138 release(session);
139 release(service);
140 release(platform);
141 setVisible(false);
142 dispose();
143 System.exit(0);
144 }
145
168
PROYECTO FIN DE CARRERA
146 /**
147 * Libera un objeto ICP
148 *
149 * @param object El objeto a liberar
150 */
151 private void release(IBase object)
152 {
153 if(object != null)
154 {
155 try
156 {
157 object.release();
158 }
159 catch (Exception e)
160 {
161
162 }
163 }
164 }
165
166 /**
167 * Finaliza el juego actual.
168 */
169 private void endGame()
170 {
171 try
172 {
173 session.end();
174 startGameButton.setEnabled(true);
175 }
176 catch (Exception e)
177 {
178 showError("Imposible terminar la sesión", e);
179 }
180 }
181
182 /**
183 * Empieza un juego nuevo. esto creará una sesión ICP que se usará
para intercambiar mensajes entre el cliente ICP y el servlet SIP
184 */
185 private void startGame()
186 {
187 try
188 {
189 // Crea la sesión y añade su listener sobre ella
190 session = service.createSession();
191 session.addListener(new SessionAdapter()
192 {
169
C.2. CLIENTE DE LA APLICACIÓN: CLIENTE.JAVA
233 }
170
PROYECTO FIN DE CARRERA
234 }
235 else
236 {
237 // Número acertado, mostrar el "MensajeDialog" de
felicitiaciones
238 final MessageDialog winDialog = new MessageDialog(
GuessClient.this, "Has ganado!", "Acertaste el
número correcto!");
239 winDialog.setVisible(true);
240 startGameButton.setEnabled(true);
241 }
242 }
243 });
244
255 /**
256 * Muestra diálogo de error.
257 *
258 * @param message
259 * @param e
260 */
261 private void showError(String message, Exception e)
262 {
263 String exceptionMessage = e.getMessage();
264 if(exceptionMessage.length() == 0)
265 {
266 exceptionMessage = e.toString();
267 }
268 MessageDialog errorDialog = new MessageDialog(this, "ICP Error",
message + "\r\n\r\n: " + exceptionMessage);
269 errorDialog.setVisible(true);
270 }
271 }
171
C.3. CUADROS DE DIÁLOGO
1 package com.ericsson.sds.samples.guess;
2
3 import java.awt.Button;
4 import java.awt.Dialog;
5 import java.awt.Dimension;
6 import java.awt.Frame;
7 import java.awt.GridLayout;
8 import java.awt.Label;
9 import java.awt.TextField;
10 import java.awt.event.ActionEvent;
11 import java.awt.event.ActionListener;
12 import java.awt.event.WindowAdapter;
13 import java.awt.event.WindowEvent;
14
15 /**
16 * Dialog class to ask the user for a number
17 */
18 class GuessNumberDialog extends Dialog
19 {
20 /**
21 *
22 */
23 private static final long serialVersionUID = -7522292705252076615L;
24 private Label messageLabel;
25 private String content;
26
172
PROYECTO FIN DE CARRERA
46 content = textField.getText();
47 setVisible(false);
48 }
49 };
50 textField.addActionListener(closeActionListrener);
51 Button okButton = new Button("OK");
52 okButton.addActionListener(closeActionListrener);
53 add(messageLabel);
54 add(textField);
55 add(okButton);
56 this.setSize(new Dimension(250, 100));
57 this.addWindowListener(new WindowAdapter()
58 {
59 public void windowClosing(WindowEvent arg0)
60 {
61 GuessNumberDialog.this.setVisible(false);
62 }
63 });
64 }
65
66 /**
67 * Get the content typed by the user
68 */
69 public String getContent()
70 {
71 return content;
72 }
73
74 /**
75 * Set the message to display
76 */
77 public void setMessageLabel(String message)
78 {
79 messageLabel.setText(message);
80 }
81 }
C.3.2 DialogoMensajes.java
1 package com.ericsson.sds.samples.guess;
2
3 import java.awt.Button;
4 import java.awt.Dialog;
5 import java.awt.Frame;
6 import java.awt.GridBagConstraints;
7 import java.awt.GridBagLayout;
173
C.3. CUADROS DE DIÁLOGO
8 import java.awt.Insets;
9 import java.awt.Label;
10 import java.awt.event.ActionEvent;
11 import java.awt.event.ActionListener;
12 import java.awt.event.WindowAdapter;
13 import java.awt.event.WindowEvent;
14
22 /**
23 * Dialog displayed when the use has guessed correctly
24 */
25 public MessageDialog(Frame parent, String title, String message)
26 {
27 super(parent, title, true);
28 setLayout(new GridBagLayout());
29 Button ok = new Button("OK");
30 ok.addActionListener(new ActionListener()
31 {
32 public void actionPerformed(ActionEvent e)
33 {
34 MessageDialog.this.setVisible(false);
35 }
36 });
37 Label messageLabel = new Label();
38 messageLabel.setText(message);
39 GridBagConstraints constrains = new GridBagConstraints();
40 constrains.gridx = 0;
41 constrains.gridy = 0;
42 constrains.weightx = 1;
43 constrains.insets = new Insets(5, 5, 5, 5);
44 constrains.fill = GridBagConstraints.HORIZONTAL;
45 add(messageLabel, constrains);
46 constrains = new GridBagConstraints();
47 constrains.gridx = 0;
48 constrains.gridy = 1;
49 constrains.anchor = GridBagConstraints.CENTER;
50 add(ok, constrains);
51 addWindowListener(new WindowAdapter()
52 {
53 public void windowClosing(WindowEvent e)
54 {
55 MessageDialog.this.setVisible(false);
56 }
174
PROYECTO FIN DE CARRERA
57 });
58 pack();
59 }
60
61 }
Listado C.4: El cuadro de diálogo de mensaje de éxito.
3 import com.ericsson.icp.IPlatformListener;
4 import com.ericsson.icp.util.ErrorReason;
5
C.4.2 ProfileAdapter.java
1 package com.ericsson.sds.samples.guess;
2
3 import com.ericsson.icp.IProfileListener;
4 import com.ericsson.icp.IProfile.State;
5 import com.ericsson.icp.util.ErrorReason;
175
C.4. ADAPTADORES DE LA ICP
C.4.3 ServiceAdapter.java
1 package com.ericsson.sds.samples.guess;
2
3 import com.ericsson.icp.IServiceListener;
4 import com.ericsson.icp.ISession;
5 import com.ericsson.icp.util.ErrorReason;
6
176
PROYECTO FIN DE CARRERA
20 }
21
177
C.4. ADAPTADORES DE LA ICP
61
C.4.4 SessionAdapter.java
1 package com.ericsson.sds.samples.guess;
2
3 import com.ericsson.icp.ISessionListener;
4 import com.ericsson.icp.util.ErrorReason;
5 import com.ericsson.icp.util.ISessionDescription;
6 import com.ericsson.icp.util.MIMEContainer;
7
178
PROYECTO FIN DE CARRERA
179
C.4. ADAPTADORES DE LA ICP
65 }
66
180
PROYECTO FIN DE CARRERA
106
181
C.4. ADAPTADORES DE LA ICP
155 }
Listado C.8: Adaptador de sesión.
182
PROYECTO FIN DE CARRERA
BIBLIOGRAFÍA
[1] Europe Surpasses North America In Instant Messenger Users, comScore Study
Reveals. Available from: http://www.comscore.com/press/release.asp?
press=800.
[2] Social Network User demographics [online]. Available
from: http://social-media-optimization.com/2008/05/
social-network-user-demographics/.
[3] 3GPP. IMS specifications [online]. Available from: http://www.3gpp.org/
article/ims.
[4] Gonzalo Camarillo and Miguel A. García Martín. The 3G IP Multimedia
Subsystem (IMS): Merging the Internet and the cellular worlds. John Wiley
and Sons Ltd. 2 ed., 2006.
[5] Hisham Khartabil Aki Niemi Miika Poikselka, George Mayer. The IMS, IP
Multimedia Concepts and Services in the Mobile Domain. John Wiley and
Sons Ltd. 2 ed., 2004.
[6] Travis Russell. The IP Multimedia Subsystem (IMS). Session Control and Other
Network Operations. McGraw-Hill Communications, 2008.
[7] Universidad Rey Juan Carlos Grupo de Señales y Comunicaciones. Evolución
de redes 3G: IMS. Transparencias de Transmisión de Datos, mayo 2007.
[8] Juan José Murillo Fuentes. Sistema GPRS. Transparencias del VII Curso
Vodafone Tecnologías y Aplicaciones Móviles: GPRS y UMRS, marzo 2009.
[9] Non-SMS data revenues exceed US $ 10 billion in 1Q07. Informa Telecoms
Media’s World Cellular Data Metrics. [online]. Available from: http://
telecoms.msgfocus.com/c/11pxcoTSBC6AZGiSqz.
[10] Ralf Keller Rogier Noldus and Bo Åström. Multi-access for the IMS network.
Ericsson Review, November 2008.
[11] S. Bradner J. Klensin K. Rosenbrock, R. Sanmugam. 3GPP-IETF
Standardization Collaborationk [online]. agosto 2005. Available
from: http://www.oreilly.com/pub/a/oreilly/tim/news/2005/09/30/
what-is-Web-20.html.
[12] G. Camarillo A. Johnston J. Peterson R. Sparks M. Handley E. Schooler
J. Rosenberg, H. Schulzrinne. SIP: Session Initiation Protocol. RFC 3261,
June 2002.
[13] SIP Profile. TS 24.229. Technical report, 3GPP.
[14] 3rd Generation Partnership Project. Technical Specification Group Services
183
BIBLIOGRAFÍA
184
PROYECTO FIN DE CARRERA
[32] Tim O’Reilly. What is Web 2.0?, Design Patterns and Business Models for the
Next Generation of Software .
[33] 3GPP Parlay, ETSI. Especificaciones Parlay X versión 3.0 [online]. noviembre
2007. Available from: http://portal.etsi.org/docbox/TISPAN/Open/OSA/
ParlayX30.html.
[34] Telefónica I+D. Manifiesto WIMS 2.0. Technical report, Telefónica.
[35] David Lozano Llanos (Telefónica I+D); Luis Ángel Galindo Sanchez (Tele-
fónica España) David Moro Fernandez. WIMS 2.0: LA CONVERGEN-
CIA DEL MUNDO TELCO CON LA WEB 2.0. Boletín de la Sociedad
de la Información: Tecnología e Innovación, diciembre 2008. Available
from: http://sociedaddelainformacion.telefonica.es/jsp/articulos/
detalle.jsp?elem=7518.
[36] Christine Gallen. IP Multimedia Subsystem’s $ 300 Billion Opportunity. ABI
Research, march 2008. Available from: http://www.abiresearch.com/press/
1077-IP+Multimedia+Subsystems%92+$300+Billion+Opportunity.
[37] J.-C. Khlifi, H.; Gregoire. IMS Application Servers: Roles, Requirements, and
Implementation Technologies. IEEE Internet Computing, mayo-junio 2008.
185
PROYECTO FIN DE CARRERA
D. AGRADECIMIENTOS
187