Click2Talk

De Open movilforum wiki

Tabla de contenidos

[editar] Descripción

La aplicación Click2Talk para PYMEs es una aplicación distribuida cuya funcionalidad principal, desde el punto de vista del usuario, consiste en permitir la realización de llamadas de voz entre terminales IMS invocando la llamada desde una página web, en lugar de iniciarla desde el terminal directamente. El objetivo perseguido con este piloto es demostrar el uso de APIs de Telefónica por parte de terceras empresas para acceder a servicios de comunicación. Concretamente, se ejemplifica el uso de las APIs de Telefónica para 3rd Party Call Control y Presencia que se ofrecen a Terceros, mediante la realización de un escenario que parte de la web que se muestra al usuario y finaliza en la utilización de las interfaces de webservice que se ofrecen.

[editar] Elementos de la aplicación

Dentro de las partes interconectadas para el correcto funcionamiento de la aplicación encontraremos las siguientes:

  • Página web: Es el punto de entrada por parte de los usuarios. Desde esta web se realizan todas las operaciones.
  • ThirdPartyCall ParlayX WS Client: Cliente de webservice para poder hacer llamadas a través de la red IMS mediante la interfaz que, basada en el estándard ParlayX, ofrece Telefónica a terceros
  • PresenceConsumer ParlayX WS Client: Cliente de webservice para poder consultar el estado de presencia que provee algún enabler situado en la red IMS
  • Presence Notification ParlayX WS Server: Servidor webservice donde recibir las notificaciones de presencia solicitadas a través de la interfaz Presence Consumer. Se encargará de almacenar en base de datos la presencia para una SIP-URI concreta, de modo que pueda consultarse en todo momento desde la web.

[editar] Página Web

Realizada en php, java y ajax. Requiere de un servidor Apache con el módulo joomla y otro servidor Tomcat con el módulo axis. Desde ella, un usuario podrá llamar a una pyme tan solo con introducir su número de teléfono móvil. La aplicación toma el número de teléfono del particular y el de la pyme e invoca al webservice ThirdPartyCall para efectuar la llamada a través de la red IMS. La web muestra el estado de presencia de la pyme, de modo que no realizará la llamada en el caso de que la línea no esté libre. Además permitirá determinar un tiempo de espera tras el cual hacer la llamada, en el caso de que el usuario decida retrasarla. Es el frontal a través del que se hace uso de la aplicación

[editar] ThirdPartyCall ParlayX WS Client

Se trata de un conjunto de clases java que hacen uso de la interfaz que provee axis para crear el envoltorio SOAP necesario para realizar una llamada a través de la interfaz de webservice que se provee como punto de entrada a la red IMS. En el código fuente de este bloque se incluye el wsdl que define el aspecto de esa interfaz. Iniciar, detener, consultar información general o de alguno de los participantes son las opciones que se facilitan a través de un proxy que abstrae completamente a un desarrollador que quiera hacer uso de la misma de escribir el código necesario para pasar de objetos java a etiquetas xml.

[editar] PresenceConsumer ParlayX WS Client

Este bloque, al igual que en el caso anterior, proporciona un proxy a través del que poder hacer invocaciones a métodos de la interfaz webservice disponible del otro lado de una manera fácil y cómoda. Este consumidor permite subscribirse a una presentity concreta a fin de obtener información de su estado de presencia. También permite determinar en qué momento comenzar o parar de recibir notificaciones de presencia. Todas esas notificaciones llegarán mediante webservice utilizando la interfaz de notificación. El wsdl que define los métodos disponibles en la interfaz viene incluído en el código fuente de este módulo

[editar] PresenceNotification ParlayX WS Server

Al contrario que los dos anteriores, ésto es una parte servidora. Utiliza también el tomcat junto con axis, pero en este caso se publica un interfaz SOAP que se puede invocar desde la red IMS. Esta interfaz recibirá llamadas cuando mensajes NOTIFY lleguen desde el servidor de presencia. De esta manera podrá tener constancia en todo momento de los cambios de estado ocurridos en la presentity. Es la interfaz de notificación inversa al presence consumer. De modo que las operaciones de petición de estado de presencia solicitadas a través del consumer tendrán su respuesta en esta otra interfaz, por ser una operación asíncrona.

[editar] Prerrequisitos

Los siguientes componentes deberán estar instalados en la máquina donde se vaya a efectuar la instalación:

  • Apache 2.2
  • Joomla 1.5
  • Apache Tomcat 5.5
  • Axis2 1.2
  • Java Runtime Environment 1.5
  • MySql-server 5

[editar] Instalación

Para poder hacer funcionar todo el desarrollo es necesario instalar y configurar cada una de las partes que lo componen. Además del código fuente (fuentes), podremos encontrar una serie de archivos jar y tar.gz comprimidos con el código ya compilado (compilados).

[editar] Web

El módulo contiene todo el sitio web desde el cual se podría hacer uso de la aplicación que llamaría a los webservices. Tras implementarse dicha aplicación habría que modificar los diferentes accesos a páginas jsp que se producen en index.php para hacer referencia a las clases java pertinentes. Además, los diferentes valores de configuración que aparecen al principio del index.php debieran leerse de base de datos o de un archivo de configuración externo, a elección del desarrollador Para desplegar la web tan solo hace falta descomprimir el .tar.gz incluído en la sección de downloads con el nombre de c2t_web.tar.gz en la carpeta root del servidor apache donde lo vayamos a instalar. La ruta http:<server>/c2t_web nos dará como resultado el formulario para efectuar las llamadas

[editar] ParlayXTpcc WS Client

En este caso encontraremos el jar ParlayXTpccWSConsumer-v1.1.jar. Este archivo deberemos incluirlo en la aplicación que quiera hacer uso de la interfaz parlayx para Third Party Call. Es decir, desde la web se puede acceder a una aplicación java que sea la encargada de realizar las llamadas invocando al webservice parlayx, a su interfaz Third Party Call. Este jar contendrá un proxy de conexión hacia ese webservice. Por lo tanto, la aplicación de conexión intermedia entre la web y el webservice deberá incluir este jar en su path a fín de poder hacer uso de su contenido. Adicionalmente, ésta aplicación deberá incluir un fichero config.properties con al menos estas tres propiedades:

  • parlayx.tpcc.ws.endpoint=<epr del webservice parlayx con la interfaz third party call>
  • ras3.user=<usuario para autenticación soap>
  • ras3.password=<password para autenticación soap>

El fichero deberá estar en una subcarpeta conf a partir del punto de lanzamiento de la aplicación intermedia. Esto es, si la aplicación se ejecuta normalmente en <path>, el fichero deberá estar en <path>/conf/config.properties

[editar] ParlayXPresenceConsumer WS Client

Del mismo modo que en el caso anterior, también para esta parte tendremos un jar con las clases de conexión hacia el webservice. Se puede instalar de la misma manera, incluyéndolo en una aplicación intermedia que acceda al webservice. Se necesitará también un config.properties en la misma subcarpeta conf que antes, pero en este caso las propiedades a incluir serán las siguientes:

[editar] ParlayXPresenceNotification WS Server

En este caso tendremos la parte servidora de un webservice. La red IMS notificará los cambios en el estado de presencia a través de llamadas a esta interfaz. Podemos aprovechar la aplicación intermedia entre la web y los webservices para exponer esta interfaz y recibir las notificaciones. El archivo a descargar se trata de un tar.gz que contendrá el servicio web (.aar), el archivo de configuración para el servicio (notification_provider.properties), el esquema para el pidf que podamos recibir con la información de presencia (pidf.xsd) y librerías adicionales necesarias. Cada uno de ellos se colocará en los siguientes sitios:

  1. ParlayXPresenceNotificationWSProvider_tomcat-v1.0.aar -> irá en <CATALINA_BASE>/webapps/axis2/WEB-INF/services del tomcat
  2. notification_provider.properties -> irá en la subcarpeta <CATALINA_BASE>/conf del tomcat
  3. pidf.xsd -> irá en la subcarpeta <CATALINA_BASE>/conf del tomcat
  4. librerías adicionales -> irán en la subcarpeta <CATALINA_BASE>/lib del tomcat

Ni que decir tiene que deberá estar configurada la variable de entorno CATALINA_BASE, que tendrá como valor la ruta de instalación del tomcat. El archivo de propiedades deberá incluir las siguientes:

  • database.host=localhost (bbdd donde almacenar la información de presencia)
  • database.port=3306
  • database.name=click2talk_db
  • database.user=user
  • database.password=password
  • rmi.logic.host=localhost (host donde almacenar el estado de subscripción para las presentities consultadas)
  • rmi.logic.port=1099
  • rmi.logic.interface=SubscriptionState
  • ignore.register.linestate=false (si queremos ignorar la información del estado de registro como fuente de presencia)
  • ignore.imssession.linestate=false (si queremos ignorar la información de la sesión ims como fuente de presencia)
  • ignore.cs.linestate.for=sip:user1@domain.dom,...(lista de usuarios de los cuales queremos ignorar su estado de disponibilidad en la línea de circuitos como fuente de presencia)