Archive for the ‘ims’ Category

Tutorial de OPENIMSCORE 2: Instalando open ims en forma exitosa en un servidor trixbox (linux centos5)

October 12, 2008

Ahora vamos a instalar el proyecto open-ims en un servidor trixbox, el cual usamos para testear asterisk 1.4 y la interfaz web del trixbox. Ya lo hemos hecho en un servidor con debian.
Ahora en este sistema linux vamos a instalar open-ims para probar como funciona esto en un sistema heredero de la linea del fedora y redhat.

1.- Instalar ssh y vim: (muy util para trabajar remoto y modificar los archivos)

yum install openssh-server
/etc/init.d/sshd start

yum install vim-enhanced

2.- Obtener subversion:

yum install subversion

3.- Obtener y configurar bind (DNS):

yum -y install bind bind-libs caching-nameserver bind-chroot

chkconfig named on

service named start

Ahora debemos configurar los archivos siguientes:

4.- Instalando flex y bison:

yum -y install flex bison

5.- Instalacion de ant:

No es recomendable instalarlo via yum, ya que no funciona bien.

Download apache-ant-1.7.0-bin.tar.gz

cd /usr/local/

wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz

tar -zxf apache-ant-1.7.0-bin.tar.gz

mv apache-ant-1.7.0 ant

ANT_HOME=”/usr/local/ant”
PATH=”$PATH:/usr/local/ant/bin”
export ANT_HOME
export PATH

Verificar:

ant -java
ant y la resp debe ser no consigue build.xml
which ant

6.- Instalacion de java (jdk):

http://java.sun.com/javase/downloads/index_jdk5.jsp

Bajarse la version de jdk

Y descargamos esta versión para Linux en binario:
jdk-1_5_0_04-linux-i586.bin

Lo copiamos dentro de Linux en /tmp/

Damos permisos de ejecución:
chmod +x jdk-1_5_0_04-linux-i586.bin

Instalación
./jdk-1_5_0_04-linux-i586.bin

Al mostrar la licencia solo tendremos que aceptar algunos términos de uso del jdk.

Se crea toda un estructura de nombre jdk1.5.0_04 la cual podemos moverla donde queremos que este.
mv jdk1.5.0_04/ /usr/local/jdk1.5

Configuración de variables de entorno:
Agregar las variables de entorno dentro del archivo /etc/profile:
export JAVA_HOME=/usr/local/jdk1.5
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin

7.- Instalar libxml2-devel

yum install libxml2-devel

8.- Instalar y configurar mysql:

Trixbox viene con mysql instalado, asi que este paso no es necesario.
La clave por default es: passw0rd

Es recomendable cambiarla con este procedimiento:

yum install mysql
yum install mysql-devel (to install development libraries, For Debian, Knoppix, Buildix user apt-get install libmysqlclient15-dev)

9.- Configurar las bases de datos:

Debemos colocarnos en el directorio /opt/OpenIMSCore/:

# mysql -uroot -p < /opt/OpenIMSCore/ser_ims/cfg/icscf.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/hss_db.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/userdata.sql

10.- Compilando el proyecto:

Crear los directorios CSCFs y FHoSS:

cd /opt/OpenIMSCore
mkdir ser_ims
mkdir FHoSS

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

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

En /opt/OpenIMSCore/ser_ims

make install-libs all

Setear las variables de entorno de java:

export JAVA_HOME=/usr/local/jdk1.5

Compilar el FHoSS en /opt/OpenIMSCore/FHoSS

ant compile deploy

Una vez que esta compilado en proyecto debemos copiar los siguientes archivos al directorio de trabajo /opt/OpenIMSCore/ por cuestiones de comodidad mas que necesidad:

cp /opt/OpenIMSCore/ser_ims/cfg/* /opt/OpenIMSCore/


11.- Poner direccion IP publica y dominio propio

Podemos setear nuestro propio dominio de tres formas:

  • Tenemos un dominio por el cual pagamos
  • Configuramos nuestro DNS server (bind) para que haga la traduccion, en ese caso solo tenemos que configurar en la configuracion TCP/IP de todos los clientes que se quieran conectar a nuestra red que usen nuestro DNS, eso no interfiere con su navegacion normal ya que tendremos el cuidado de configurar correcatmente las opciones de conectarse a otros DNS publicos a traves del nuestro.
  • Usar un servicio gratuito de DNS tal como no-ip o algun otro servicio gratuito de traduccion
  • Si no queremos enredarnos la vida con DNS, entramos en el archivo host de los clientes y agregamos la linea que haga la traduccion.


Hay que cambiar un monton de cosas en los archivos de configuraciòn, pero es facil usando el script:

./configurator.sh

Esta ubicado en /opt/OpenIMSCore/

Este script cambia la IP por default (127.0.0.1) por la IP que quieran poner, tambien pregunta para cambiar el dominio open-ims.test por cualquier otro. Cambia los archivos .cfg, .xml y .properties

12.- Modificar archivo hss.properties para poder conectar via web con IP publica

Este archivo esta ubicado en: /opt/OpenIMSCore/FHoSS/deploy. Este archivo no lo modifica el script anterior asi que debemos hacerlo a mano.
Aqui debemos abrir el archivo en cuestion y cambiarle la IP por default (127.0.0.1) por la IP
publica del servidor.

Para conectar a la pagina web del HSS y poder ver usuarios, agregar usuarios y modificar servicios ponemos en cualquier navegador:

IP del servidor HSS:8080

Claves por default:

Clave administrador: hssAdmin
Pwd: hss

Clave usuario solo lectura: hss
Pwd: hss

13.- Arranque del sistema

El sistema arranca desde cuatro shell serparados en este orden, en modo root, en el directorio /opt/OpenIMSCore/ y se deben ejecutar los siguientes scripts: pcscf.sh, icscf.sh, scscf.sh (es recomendable respetar el orden). Estos script arrojan algunos errores en el proceso de arranque por que es imposible tener los tres levantados al mismo tiempo, pero luego que el sistema esta arriba no hay problema (no es mayor motivo de alarma).

Por ultimo en el directorio /opt/OpenIMSCore/FHoSS/deploy/ el script: startup.sh

Para simplificar el trabajo podemos hacer un script como el que vemos aqui:

#!/bin/bash
sleep 1
gnome-terminal -e ./icscf.sh
sleep 1
gnome-terminal -e ./scscf.sh
sleep 1
gnome-terminal -e ./pcscf.sh
sleep 1
gnome-terminal -e ./fhoss.sh

La ultima linea arranca el FHoSS.

Anexo

Configuracion de un servidor DNS en centos

BIND:

Usando yum para instalar bind:

yum -y install bind bind-libs caching-nameserver bind-chroot

chkconfig named on

service named start

Ahora editamos el fichero /var/named/chroot/etc/named.conf para añadir los reenviadores (servidores DNS externos, por ejemplo los de opendns.com), se agregan dentro de la sección options:

forwarders {
IP1 del DNS que usemos;
IP2 del DNS que usemos;
};

OJO: se debe borrar todo lo demas, solo dejar las lineas anteriores. Este archivo al modificarlo y resetear el servicio bind se actualiza el otro ubicado en /etc/chrootg…..-nameserver.conf
Estos DNS son los de nuestro ISP o los de openDNS

Por último, editamos el fichero /etc/resolv.conf para decirle a la máquina que se consulte a sí misma y lo dejamos así:

search localdomain
nameserver 127.0.0.1

A todas las maquinas cliente le debemos editar el archivo resolv.conf si queremos que consulte a nuestro propio DNS.

Para configurar la zona:

If you have installed the bind-chroot package, the BIND service will run in the /var/named/chroot environment. All configuration files will be moved there. As such, named.conf will be located in /var/named/chroot/etc/named.conf, and so on.

If you have installed the caching-nameserver package, the default configuration file is /etc/named.caching-nameserver.conf. To override this default configuration, you can create your own custom configuration file in /etc/named.conf. BIND will use the /etc/named.conf custom file instead of the default configuration file after you restart.

Nameserver Types

There are four primary nameserver configuration types:

master

Stores original and authoritative zone records for a namespace, and answers queries about the namespace from other nameservers.

slave

Answers queries from other nameservers concerning namespaces for which it is considered an authority. However, slave nameservers get their namespace information from master nameservers.

caching-only

Offers name-to-IP resolution services, but is not authoritative for any zones. Answers for all resolutions are cached in memory for a fixed period of time, which is specified by the retrieved zone record.

forwarding

Forwards requests to a specific list of nameservers for name resolution. If none of the specified nameservers can perform the resolution, the resolution fails.

A nameserver may be one or more of these types. For example, a nameserver can be a master for some zones, a slave for others, and only offer forwarding resolutions for others.

zone "example.com" {   
        type slave;   
        file "example.com.zone";   
        masters { 192.168.0.1; }; 
};


Reiniciamos el servicio de DNS:

service named restart

Otra forma:

En primer lugar tendremos que instalar varios paquetes:

caching-nameserver-x.y.z
bind-utils-xx.xx-x
bind-xx.xx-x

Montamos el cd con la distribución en /mnt/cdrom:

mount /mnt/cdrom

e instalamos estos paquetes:

rpm -Uvh /mnt/cdrom/rutaacceso/bind-xx.xx-x
rpm -Uvh /mnt/cdrom/rutaacceso/caching-nameserver-x.y.z
rpm -Uvh /mnt/cdrom/rutaacceso/bind-utils-xx.xx-x

O bien utilizando apt-get, yum o el sistema de instalación de tu distribución.

yum -y install bind bind-libs caching-nameserver bind-chroot

El paquete bind contiene todo el sistema de resolución de nombres. El paquete caching-nameserver contiene los datos necesarios para que nuestro servidor DNS sea un servidor válido para internet, va a actuar como servidor DNS para toda la red local. Por último el paquete bind-utils contiene varias utilidades para consultas y actualizaciones dinámicas.

/etc/named.conf

El fichero named.conf contiene todos los dominios que va a albergar nuestro servidor DNS. Si el sistema está recién instalado deberá contener, entre otras cosas:

options {

directory “/var/named”;

};

Indica que el resto de ficheros de configuración se encuentran en el directorio /var/named

zone "." {
  type hint;
  file "root.cache";
};

Este trozo de configuración indica al sistema de nombres de dominio que consulte a los servidores raíz de internet para resolver cualquier nombre que no sea local. De esta forma nuestro servidor actúa como servidor de internet.

Ahora vamos a configurar nuestra zona:

zone "centro.ies" in {
  type master;
  file "centro.ies";
  allow-update{
    127.0.0.1;
    192.168.1.1;
  };
};

Zone indica el nombre del dominio que estamos configurando, el resto son sus detalles. Type master indica que es el servidor principal de la zona. Si fuera un servidor secundario tendríamos que poner “type slave”.

La línea file indica qué fichero contiene los datos de la zona. Este fichero se debe encontrar en el directorio /var/named.

Por último, allow-update indica desde qué equipos se pueden realizar actualizaciones dinámicas, en nuestro caso sólo el mismo puede realizarlas. Si fuera un servidor secundario tendremos que poner la dirección del servidor principal.

En estos ficheros tendremos que poner direcciones IP y no nombres porque el sistema de resolución aun no está activo.

Configuración de la zona

Ahora tenemos que introducir una configuración inicial de la zona. No necesitamos introducir todos los equipos porque habilitaremos, mediante DHCP, el sistema de actualización dinámica, de forma que cuando un equipo se conecta se le asigna una dirección IP y un nombre y la correspondiente actualización de la zona.

Hechas estas consideraciones pasamos a descibir el fichero /var/named/centro.ies, que deber ser similar al siguiente:

$TTL    604800
@    IN   SOA  ns1.centro.ies. root.ns1.centro.ies. (
                        2002111502 ; serial
                        86400 ; refresh
                        7200 ; retry
                        2592000 ; expire
                        172800 ; default_ttl
                        )
@               IN      NS      ns1.centro.ies.
@               IN      MX      5       ns1.centro.ies.
ns1             IN      A       192.168.1.1
www.centro.ies.         IN      CNAME   ns1.centro.ies.
correo                  IN      CNAME   ns1.centro.ies.         
secretaria              IN      A       192.168.1.2
router                  IN      A       192.168.1.254
              

Los parámetro numéricos los dejaremos tal y como están, salvo quizás el número de serie que indica que es la segunda modificación (02) del día 15/11/2003 (20031105).

El resto de los parámetros:

@ equivale al dominio, centro.ies en este caso.

SOA significa start of autority e indica el nombre del equipo (ns1.centro.ies) y la dirección de correo de administrador (root.centro.ies), sustituyendo la cásica @ por un “.”.

@ IN NS ns1.centro.ies. indica que el servidor de nombres del dominio es ns1.centro.ies. (IN= internet NS=name server).

@ IN MX 5 ns1.centro.ies. indica que el servidor de correo electrónico del dominio es ns1.centro.ies. (MX=Mail eXchanger)

ns1 IN A 192.168.1.1 esta línea asigna la dirección IP al nombrede máquina. (A=address).

 
www.centro.ies. IN CNAME ns1.centro.ies.
 

correo IN CNAME ns1.centro.ies. estas líneas asignan dos alias a nuestro servidor principal, es decir ns1.centro.ies se llam también www.centro.ies y correo.cento.ies.

Nota importante: Podemos observar como algunos nombres acaban en punto. El punto indica un nombre completo; si no tiene punto el sistema le añade automáticamente el nombre del dominio. Por ejemplo correo es equivalente a correo.centro.ies. Sim embargo si ponemos correo.cento.ies (sin punto final) en realidad lo que estamos poniendo es correo.centro.ies.cento.ies. Esta es la causa más frecuente de errores a la hora de configurar el servicio DNS.

Las dos últimas líneas son dos nuevos registros de asignación de direcciones a nombres de máquina.

Verificación del DNS

Una vez configurado el servicio de nombres vamos a ponerlo en marcha y comprobar si tiene algún error o funciona correctamente.

El registro de incidencias anota en el fichero /var/log/messages el estado de inicio del sistema de nombres. Lo más cómodo es abrir una nueva consola y ejecutar:

tail -f /var/log/messages

para ir viendo las incidencia en el momento en que ocurren.

Ahora reiniciamos el servicio:

/etc/init.d/named restart

y comprobamos en la consola qué ha sucedido. Si todo es correcto, enhorabuena, en caso contrarío tendremos que volver a editar los ficheros de configuración, corregir los errores y volver a reiniciar el servicio.

Cuando tengamos el servicio en funcionamiento comprobaremos si la resolución la realiza correctamente. Ejecutamos:

nslookup ns1.centro.ies

nslookup www.centro.ies

y en ambos casos nos debe responder con la dirección IP del servidor Linux.




Tutorial de openimscore: Instalando open ims en forma exitosa en debian

August 19, 2008

IMS significa IP Multimedia subsystem, la 3GPP normalizo la evoluciòn de las redes a un all ip con una serie de servicios en una arquitectura unica agnostica del medio de acceso: fijo, movil, cable, etc. Dentro de los moviles no importa el acceso tambien: CDMA1x, EVDO, GSM, UMTS, HSDPA, HSUPA, LTE, etc. El core IMS en su arquitectura esta concebido para interactuar con cualquier medio de acceso, por lo cual esta basado en una serie de servidores, en su forma mas basica: CSCF y HSS. El primero (CSCF) esta dividido en tres fundamentales: P-CSCF (proxy sip), I-CSCF (interrogating call sesion control function) y el S-CSCF (service call sesion function. A este nivel hablamos de un core all ip, con transoporte TCP/UDP, y con protocolos bien especificos y definidos: sip, diameter entre otros. Los organismos encargados de estandarizar: 3GPP(GSM/UMTS), 3GPP2(CDMA/EVDO) y TISPAN (fijo).

Este ecosistema es un crisol de oportunidades para usar tecnologias basadas en open source, ya que en teoria con un puñado de servidores con linux (o cualquier otro OS) podriamos empezar a dar servicios tipo IMS. Tambien se supone que la integraciòn de nuevos servicios a la red deberia ser mucho mas rapido que los actuales, ya que no se deberia diseñar cada servicio para cada red especifica, sino que todos los aplication server irian contra el s-cscf, o en su defecto contra el sdp (service delivery platform), que no es mas que otro servidor contra el cual descargar procesamiento del s-cscf, a su vez agregar un punto de monitoreo de calidad y ofrecer a terceros proveedores conectar sus AS (aplication server) a nuestra plataforma IMS sin que le metan mano a un elemento sensible en la estabilidad de la red como el S-CSCF. Esto podria ir desde aplicaciones de juegos online, mapas, planos, servicios basados en localizacion, incluyendo aplicaciones tipo touch screen, por ejemplo hacemos un dibujo sobre la pantalla tactil de equipo y lo transmitimos a los compañeros de un meeting remoto, a su vez podriamos estar en una videoconferencia con otro grupo de trabajo, respondiendo un email urgente a nuestro jefe y esperando por una transferencia bancaria. El unico limite aqui seria el ancho de banda disponible, la tecnologia alambrica o inalambrica utilizada, la capacidad de procesamiento de los servidores (CSCF y HSS) y la imaginacion.

Para la conexion a redes legacy esta estandarizado el MGCF (media gateway control function, el cual tiene fncionalidad de softswitch) , y los MGW (MediaGateway) que permiten la conversion de protocolos, codecs y señalizacion (Signaling Gateway), estos elementos nos permiten conectividad y continuidad de la red IMS hacia otras redes legacy.

En definitiva IMS ofrece un estandard de evoluciòn a los operadores, respetando la integracion e interconectividad con otras redes IMS y legacy, ademas de ser un gran integrador de servicios diversos, los cuales podrian ser agregados a la red en una forma mucho mas rapida y transparente, menor tiempo de integracion de servicios influye directamente en los costos.

IMS puede ser visto como el esfuerzo de tratar de unificar en una sola plataforma el acceso a servicios compartidos por diferentes tipos de metodos de acceso (sean fijos o moviles). Es tambien una arquitectura estandarizada que busca hacer mas eficiente y rapido la forma en que son accesados y desplegados dichos servicios. De esta forma con un IMS core bien estructurado y estandard, las empresas de telecomunicaciones podrian asegurar la inversion de las plataformas de servicios asi cambien en forma radical el metodo de acceso (cable, ADSL, EVDO, UMTS, WIMAX, LTE, etc).

Tambien puede ser visto como la inclusion de un core que permite la horizontalizacion de las plataformas de servicios, en las cuales los elementos comunes de control, autenticacion, base de datos podrian estar en servidores comunes (HSS, I-CSCF, S-CSCF) y solo el servicio como tal en servidores individuales.

Aqui tratamos sobre como compilar y poner en funcionamiento un sistema IMS basado en open source: openimscore. Este proyecto es llevado por el grupo FOKUS, grupo sin fines de lucro que se encarga de desarrollar tecnologias open source al mundo de las telecomunicaciones. Aqui esta estudiado para ser implementado sobre una plataforma debian, tambien podria ser instalado sobre una maquina virtual tipo vmware con linux.

Open IMS es una excelente oportunidad de estudiar y aprender mas sobre IMS, de probar y armar maquetas que podrian servir para mostrar y experimentar con los tiempos de integracion de los servicios. No es una plataforma diseñada con fines de ofrecer servicio comercial debido principalmente a estas carencias:

- Plaforma de monitoreo,

- Plataforma de operacion y mantenimiento (O&M)

- Servidores redundantes, en caso de falla, asegurar la alta disponibilidad de la plataforma.

- Sistema de aprovisionamiento

- Seguridad

- Estadisticas

- Integracion a billing, generacion de cdr, etc.

Procedimiento aplicado a servidor Debian ETCH, version de kernel 2.6.18

1.- Instalar subversion:
apt-get install subversion

2.- Crear el siguiente directorio:
mkdir /opt/OpenIMSCore/
chown -R username /opt/OpenIMSCore/

3.- Crear los directorios CSCFs y FHoSS:
cd /opt/OpenIMSCore
mkdir ser_ims
mkdir FHoSS

4.- Bajarse la ultima version de open-ims via subversion:

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

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

5.- Chequear que todos estos paquetes esten correctamente instalados, la version de java debe ser >=1.5.0:

apt-get install mysql-server libmysqlclient15-dev libxml2 libxml2-dev bind ant flex bison

Agregar a sources.list este repositorio:

deb http://ftp.es.debian.org/debian/ etch main contrib non-free

deb-src http://ftp.es.debian.org/debian/ etch main contrib non-free

Con este repositorio nos aseguramos que vamos a tener java-1.5.0

Luego no olvidarse de hacer:

apt-get update
apt-get install sun-java5-jdk

Tambien podemos buscar las fuentes de la pagina de sun y compilar el proyecto completo.

Despues de instalar mysql tambien debemos setear una password, ya que por default esta en blanco:

mysqladmin -u root password ‘my_password’

Arranque del servidor mysql:

/etc/init.d/mysqld start

6.- Configurar servidor DHCP y DNS:

Editar el archivo /etc/dhcp3/dhclient.conf y desmarcar esta linea:

prepend domain_name_servers 127.0.0.1;

Copiar este archivo a la carpeta de trabajo:

sudo cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/

Agregar estas lineas al archivo: /etc/bind/named.conf.local

zone “open-ims.test” {

type master;

file “/etc/bind/open-ims.dnszone”;

};

Despues reiniciamos el servicio de DNS:

/etc/init.d/bind9 restart

El archivo open-ims.dnszone se crea en la compilacion del proyecto, luego hay que copiarlo de la carpeta /opt/OpenIMSCore a la carpeta /etc/bind
En este archivo debemos cambiar la ip por default (127.0.0.1) por la IP publica, y luego este DNS propio sera seteado en la configuracion TCP/IP (propiedades) como DNS a ser escogido en las otras maquinas en donde tendremos los clientes SIP e IMS.

Aunque si bien es cierto que el estandard IMS de la 3GPP habla de un servidor dns para resolver el nombre del dominio, tambien es posible configurar del lado del cliente el archivo host con una entrada que indique la equivalencia dominio-ip. En cualquier sistema operativo esto es posible. En windows por ejemplo esta en:

C:\WINDOWS\system32\drivers\etc

Con esto nos ahoramos el servidor dns por lo menos de una manera experimental (laboratorios, maquetas, etc)

7.- Compilacion del proyecto:

En /opt/OpenIMSCore/ser_ims

make install-libs all

Setear las variables de entorno de java:

export JAVA_HOME=”/usr/lib/jvm/java-1.5.0-sun/jre/”

Compilar el FHoSS en /opt/OpenIMSCore/FHoSS

ant compile deploy

Una vez que esta compilado en proyecto debemos copiar los siguientes archivos al directorio de trabajo /opt/OpenIMSCore/ por cuestiones de comodidad mas que necesidad:

cp /opt/OpenIMSCore/ser_ims/cfg/* /opt/OpenIMSCore/

8.- Configurar las bases de datos:

Debemos colocarnos en el directorio /opt/OpenIMSCore/:

# mysql -uroot -p < /opt/OpenIMSCore/ser_ims/cfg/icscf.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/hss_db.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/userdata.sql

9.- Poner direccion IP publica y dominio propio

Podemos setear nuestro propio dominio de tres formas:

  • Tenemos un dominio por el cual pagamos
  • Configuramos nuestro DNS server (bind) para que haga la traduccion, en ese caso solo tenemos que configurar en la configuracion TCP/IP de todos los clientes que se quieran conectar a nuestra red que usen nuestro DNS, eso no interfiere con su navegacion normal ya que tendremos el cuidado de configurar correcatmente las opciones de conectarse a otros DNS publicos a traves del nuestro.
  • Usar un servicio gratuito de DNS tal como no-ip o algun otro servicio gratuito de traduccion


Hay que cambiar un monton de cosas en los archivos de configuraciòn, pero es facil usando el script:

./configurator.sh

Esta ubicado en /opt/OpenIMSCore/

Este script cambia la IP por default (127.0.0.1) por la IP que quieran poner, tambien pregunta para cambiar el dominio open-ims.test por cualquier otro. Cambia los archivos .cfg, .xml y .properties

10.- Arreglar archivo hss.properties para poder conectar via web con IP publica

Este archivo esta ubicado en: /opt/OpenIMSCore/FHoSS/deploy. Este archivo no lo modifica el script anterior asi que debemos hacerlo a mano.
Aqui debemos abrir el archivo en cuestion y cambiarle la IP por default (127.0.0.1) por la IP
publica del servidor.

Para conectar a la pagina web del HSS y poder ver usuarios, agregar usuarios y modificar servicios ponemos en cualquier navegador:

IP del servidor HSS:8080

Claves por default:

Clave administrador: hssAdmin
Pwd: hss

Clave usuario solo lectura: hss
Pwd: hss

11.- Arranque del sistema

El sistema arranca desde cuatro shell serparados en este orden, en modo root, en el directorio /opt/OpenIMSCore/ y se deben ejecutar los siguientes scripts: pcscf.sh, icscf.sh, scscf.sh (es recomendable respetar el orden). Estos script arrojan algunos errores en el proceso de arranque por que es imposible tener los tres levantados al mismo tiempo, pero luego que el sistema esta arriba no hay problema (no es mayor motivo de alarma).

Por ultimo en el directorio /opt/OpenIMSCore/FHoSS/deploy/ el script: startup.sh

Para simplificar el trabajo podemos hacer un script como el que vemos aqui:

#!/bin/bash
sleep 1
gnome-terminal -e ./icscf.sh
sleep 1
gnome-terminal -e ./scscf.sh
sleep 1
gnome-terminal -e ./pcscf.sh
sleep 1
gnome-terminal -e ./fhoss.sh

La ultima linea arranca el FHoSS.

12.- ¿Como probar el sistema?

Yo he probado el x-lite, aunque no es un cliente IMS propiamante dicho, tiene muchas funcionalidades interesante. Su configuracion es muy sencilla, solo debemos recordar que la autenticacion es del tipo md5 y no akav, por lo tanto debemos modificar esto en el hss via web y luego agregar estas lineas en el archivo scscf.cfg en el directorio: /opt/OpenIMSCore/
Estas lineas le indican al S-CSCF que el desde el HSS se decide el tipo de autenticaciòn por suscriptor:

modparam(“scscf”,”registration_default_algorithm”,”HSS-Selected”)

Se debe marcar con numeral (#) las otras opciones para evitar conflictos.

En este archivo hay varias opciones: solo autenticar digest-MD5, solo AKAV1, solo AKAV2, etc.

Hay otros tipos de clientes IMS propiamente dichos, procedo a enumerarlos, interesante seria tener algunos que podamos probar en una red celular, y que ademas a esta plataforma le agreguemos un gateway que permita hacer el puente a redes legacy y que seamos visibles desde esas redes con un numero propio de esta redes.

Puertos que se usan en IMS:

Elemento

Port Number

P-CSCF

4060

I-CSCF

5060

S-CSCF

6060

Diameter

3868, 3869, 3870

El Proxy-Call sesion control function (P-CSCF) contra el que se registran los equipos via sip usa el puerto 4060, ojo con esto que debemos indicarselo a los clientes IMS o SIP.

13.- Configuracion del sistema open-ims con cada servidor en una plataforma

De esta forma es posible tener cada servidor CSCF en una maquina diferente, aumentando la eficiencia de la plataforma.


14.- Uso de asterisk como aplication server

Tambien es posible usar asterisk como aplication server, debido a lo versatil de la plataforma asterisk, los AGI y la cantidad de opciones de desarrollo elaboradas para esta plataforma la hacen muy util como servidor de aplicaciones. Hay varios servidores de aplicacion que podemos probar.

SIPSEE
SIPSEE (SIP Servlet Execution Environment) es una solucion de FOKUS para funcionar como SIP Application Server (SIP AS). Este provee soporte multimédia sobre SIP/HTTP/Diameter.
Actua como un SIP proxy, SIP Redirect o B2BUA (Back to Back User Agent). Un API (Application Programming Interface) es usada y es compatible con JSR116 – SIP Servlet API.

SIPSEE es diseñado e implementado con soporte para SIP y HTTP y permitir el acesso a servicios IMS de clientes SIP a través de un browser HTTP potenciando servicios como Click2Dial, See What I See, etc.

Este software es IMS compliant.

Mobicents
Mobicents es un SIP Application Server mas popular para la plataforma Java.

Ventajas:
• IMS compliant.
• Bastante conocido y con mucho soporte.

WeSIP
WeSIP es un SIP y HTTP Application Server implementado sobre OpenSER. No es open source. Gratuito para uso no comercial.

Desventajas:
• No es open source. Gratuito para uso no comercial.




script para arranque automatico para openimscore

August 16, 2008
http://ubuntuforums.org/showthread.php?p=4894356


##scripting.sh
#!/bin/bash
sleep 1
gnome-terminal -e ./icscf.sh
sleep 1
gnome-terminal -e ./scscf.sh
sleep 1
gnome-terminal -e ./pcscf.sh
sleep 1
gnome-terminal -e ./fhoss.sh

#!/bin/bash
cd /opt/OpenIMSCore/
./scscf.sh


Algunos clientes IMS

August 15, 2008

Con la maqueta de open ims core funcionando aparece la necesidad de conseguir clientes IMS y sip con los cuales podamos probar:


There are several IMS clients out there recently, which can be used with the Open IMS Core.

  • FOKUS’ OpenIC (Open IMS Client) is available only commercially (Contact: info@open-ims.org). Yet, there is also a free binary OpenIC_Lite version available right here
  • The UCT IMS Client which is available under the GPL
  • The IMS Communicator, also under the GPL

Instale el ultimo y lo estoy probando a ver que tal, hasta el momento veo que tiene una pinta bastente fea pero hace lo que tiene que hacer…pero como siempre digo este tema esta evolucionando a una velocidad vertiginosa, conasulten siempre las fuentes: http://www.openimscore.org/node/72

Openser, OpenIMS Core, kamailio, linux, asterisk……

Using MS Windows Messenger with a custom SIP Server

August 13, 2008

De hecho no solo windows messenger puede perfectamente trabajar con openser, opensips, openimscore, sino tambien gaim y otros clientes que ya mencionaremos.

Con MS Windows tenemos los siguientes features:

Supported protocols: SIP 2.0., UDP/TCP/IP/TLS, SIMPLE

Voice codecs: G.723.1, G.722.1, GSM6.10, G.711 (que malo no tiene el G729)

Features: local buddy list, presence, audio and video, instant messaging

Using MS Windows Messenger with a custom SIP Server (obtenido de: http://www.voice-system.ro/docs/sip-ms-msg/ar01s03.html#id2472711

Although MS provides its own SIP server, known as MS Live Communications Server, this article is based on experiences during the usage of MS Windows Messengers with SIP Express Router (SER).

In your real configuration, you have to replace the addresses presented in this document with the proper values for your SIP service. So, in the next examples we will use “sip-server.net” as the address of the SIP server (registrar and proxy), “3333@sip-server.net” as the SIP address of local user and “4444@sip-server.net” as the SIP address of the remote user.

3.1. Configure MS Windows Messenger

Make sure the version of MS Windows Messenger is 4.6, 4.7 or 5.0+.

3.1.1. Start MS Windows Messenger

- Start -> Programs -> Windows Messenger

3.1.2. Go to Options

- from menu, select “Tools” -> “Options…

3.1.3. Go to Accounts

- select “Accounts” tab

- select “Communications Service

- in the “Communications Service Account” section, fill in the “Sign-in name” field with the address of your SIP account, e.g., “3333@sip-server.net”.

3.1.4. Advanced Option

- click on “Advanced…” button

- select “Configure Settings

- outbound proxy: to enable outbound proxy fill in the “Server name or IP address” with the address of your SIP server, e.g., “sip-server.net:5060

- communication protocol: select an option from “Connect Using” list, e.g., “UDP” — this is the most recommended protocol for SIP

- click OK

- click OK in Options window

3.1.5. Register with your SIP server

- click on “Click here to sign in

3.1.6. Authentication

- if the SIP server requires user authentication

- fill the “Sign-in name” field with your SIP address, e.g., “3333@sip-server.net

- fill the “Username Name” field with the user name of your SIP account, e.g., “3333

- fill the “Password” field with the password of your SIP account (chosen by you or given by your SIP provider during the subscription to SIP service)

- press “OK” button

3.1.7. Online

- you can start voice sessions or send instant messages

3.2. Use MS Windows Messenger

Once you are online, you can start chatting or talking with your friends using Windows Messenger, or, if you have a webcam, you can have a video conference.

3.2.1. Start a chat session

- click “Send a instant message” from “I want to…” list

- select “Other

- enter the address of destination in “e-mail address” field

- choose “Communication Service” in “Service” select box

- click “OK

- type the message in the new window

- press “Enter” or click on “Send” button

3.2.2. Start a voice conversation

- click “Start a voice conversation” from “I want to…” list

- select “Other

- enter the address of destination in “e-mail address” field

- choose “Communication Service” in “Service” select box

- click “OK

- wait until the remote party accepts your call

- you can send also instant messages while talking by typing the message in the input field in the bottom of the new window and pressing “Send” button.

Openwengo

OpenWengo is a community of enthusiasts and developers, creating free software products related to communication over IP. The flagship product of the OpenWengo project is a softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place.

OpenWengo was started and is supported by the french VoIP provider Wengo . Through our partnership with Wengo, we also offer very cheap PC to telephone and SMS rates. OpenWengo is an active community – come join us.

To get started, download the software and let us know what you think.

WengoPhone 2.1 (OpenWengo 2.1.2)
For Windows (other platforms)

OpenIC sip client with openser

August 6, 2008

root# openserctl add bob bob bob@localhost
database engine ‘MYSQL’ loaded
Control engine ‘FIFO’ loaded
is_user: user counter=0
check_db_alias: alias counter=0
new user ‘bob’ added

Clientes para IMS testing

August 5, 2008

He probado tres clientes con la plataforma experimental de IMS casero:

1.-El clasico caballito de batalla para mis pruebas de asterisk y openser: X-lite

2.- UCT es un cliente IMS diseñado para ser utilizado conjuntamente con el Open IMS Core sin necesidad de la puerta de enlace sip2ims. Aunque se encuentra en desarrollo y reconocen tener muchos bugs, ya admite la autenticación AKA, emula la señal IMS y da soporte para llamadas de voz, vídeo, mensajería instantanea tipo buscapersonas, presencia y IPTV.

UCT IMS Client

3.- Open IMS Client offers rich capabilities sets, such as advanced telephony and messaging features, presence and a comprehensive personal address book. We offer the Open IMS Client Lite version free for evaluation. It is based on the advanced features of the full version of Open IMS Client, and the aim of this version is to highlight the basics of telephony and messaging capabilities.

The OpenIC_Lite version contains basic VoIP, Instant Messaging and Contacts Management services.

Before you download the OpenIC_Lite version, please make sure you have the necessary requirements.

Updated on July 25, 2008

Windows [.exe] OpenIC_Lite v1.3 for Windows (6,7 MB)
Windows Mobile [.CAB] OpenIC_Lite v1.3 for Windows Mobile (6,0 MB)
Linux [.tar.gz] OpenIC_Lite v1.3 for Linux (7,7 MB)

Release Notes:

Version 1.3

  • Missing ACK for originating INVITE fix
  • Included proxy authentication
  • Updated the “Information” view
  • Updated the splash screen

OpenIMS core Virtual machine ware

July 28, 2008

http://www.openimscore.org/vm

Buena opcion para probar sin mucho esfuerzo

OpenIMSCore VMware image

July 26, 2008

Esta imagen de linux gentoo contiene lo necesario para correr un escenario basico de openimscore.

The Open IMS Core is an implementation of IMS Call Session Control Functions (CSCFs) and a lightweight Home Subscriber Server (HSS), which together form the core elements of all IMS/NGN architectures as specified today within 3GPP, 3GPP2, ETSI TISPAN and the PacketCable intiative. The four components are all based upon Open Source software(e.g. the SIP Express Router (SER) or MySQL).

Link: http://www.digilo.com/openims/

Download OpenIMSCore r551 VMware image (~200 mb)

Username/password: root/password

This image is based on Gentoo linux. To use this image you must download free VMware player

other files

OpenIMSCore Installation Guide

July 24, 2008

http://www.ims-developer.org/content/view/44/56/

http://www.openimscore.org/installation_guide

OpenIMSCore Installation Guide

Installation Guide

Overview

This page is supposed to help you jump-start the Open IMS Core. In the SVN distribution, the whole things is pre-configured and pre-provisioned with a set of minimal data that should be enough for a simple “Alice-calls-Bob” trial.

Quick Install

If you already went once through the installation procedure, this section will help refresh your memory on what steps you are supposed to follow. If this is your first time, skip over it for now and start with Step 1.

      	

mkdir /opt/OpenIMSCore

cd /opt/OpenIMSCore



mkdir FHoSS

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



mkdir ser_ims

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



cd FHoSS

ant compile deploy

cd ..



cd ser_ims

make install-libs all

cd ..



mysql -u root -p

Step 1: Prerequisites

  • Hardware requirements
    • A current Linux desktop class machine should be enough
    • If you want to get ultimate performance:
      • Add several Gigabytes of RAM
      • Have as many CPUs/Cores as
      • Gigabit Ethernet would help
  • Network access
    • A current Linux desktop class machine should be enough
    • Inter-domain NAT is not something we are interested in, so a public IP address would be great
    • Controllable DNS server if you don’t want to have one on your Linux box
  • Software requirements
    • ~100 MBytes of disk space to be on the safe side
    • GCC3/4, make, JDK1.5, ant
    • MySQL installed and started (or other DBMS if you can deal with it)
    • bison, flex
    • libxml2 (> 2.6), libmysql – both with development
    • Linux kernel 2.6 and ipsec-tools (setkey) if you want to use IPSec security
    • Optional: openssl if you would like to enable the TLS security
    • bind installed and running (or other name server if you can deal with it)
    • Browser on the box or that can connect to the box (for user provisioning)
    • Note: we consider that you have all this installed, configured and running.

      Note: we assume for now that you want to install the whole thing on just 1 box.

Step 2: Get the Source Code

Step 3: Compile

  • ser_ims
    • New!!! Do “make install-libs all” in ser_ims
      cd ser_ims

      make install-libs all

      cd ..
    • If something breaks, you probably don’t have all the prerequisites.
  • FHoSS
    • If you don’t have a JDK >=1.5, get one before proceeding
    • Make sure, that the JDK version that you are using is >= 1.5!!!
      # java -version

      java version "1.5.0_07"

      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)

      Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode)

      It is often the case that users have just installed a 1.5 JDK but they are

      still using their old JDK installation! If you see lots of errors, recheck

      this before posting a bug report!

    • Do “ant compile deploy” in FHoSS

      New!!! “ant gen” is not needed any more!!!

      cd FHoSS

      ant compile

      ant deploy

      cd ..
  • While you wait for the compilation to finish, you can go ahead and perform Step 4.

Step 4: Configure the Environment

  • Notes:
    • All the installation examples configured to work only on the local loopback

      and the default domain configured as “open-ims.test”.

    • The MySQL access rights are set only for local access
    • We recommend that you try it first like this and then do your changes:
      • Replace 127.0.0.1 where required with your IP address
      • Replace the home domain (open-ims.test) with your own one
      • Change the database passwords

      For this operation the ser_ims/cfg/configurator.sh might help you.

  • DNS
    • A sample DNS zone file can be found in ser_ims/cfg/open-ims.dnszone
    • Copy it to your bind configuration directory
    • Edit named.conf and insert the file there (Would be great to also add reverse DNS entries)
    • Restart the name server
    • Test that the names are resolvable (don’t forget about /etc/resolv.conf pointing to your new DNS server!)
  • MySQL
    • Run the SQL dumps (mysql -u root -p -h localhost New!!! “hssdb.sql” was replaced by “hss_db.sql” !!!
      mysql -u root -p -h localhost 
    • Check if the databases are in there and accessible

Step 5: Configure the IMS Core

  • By now you should have MySQL and DNS working
  • CSCFs
    • Copy the following files to /opt/OpenIMSCore or another location comfortable for you:

      pcscf.cfg, pcscf.sh, icscf.cfg, icscf.xml, icscf.sh, scscf.cfg, scscf.xml, scscf.sh,

      cp ser_ims/cfg/*.cfg .

      cp ser_ims/cfg/*.xml .

      cp ser_ims/cfg/*.sh .

  • FHoSS
      <!–
    • Copy the following files to /opt/OpenIMSCore or another location comfortable for you: FHoSS.sh –>
    • Take a look at the configuration files in FHoSS/deploy/ (available after Step 3 completes)
  • Edit these files to your own preferences (don’t forget to update the DNS zone file accordingly and restart the name server)

Step 6: Start the components

  • CSCFs
    • Start pcscf.sh, icscf.sh and scscf.sh
    • All these should run in parallel.
    • We love debugging, so by default they would stay in foreground.
    • By default you should see periodically log messages with the content of the registrar and with the opened diameter links
  • FHoSS
    • Start FHoSS/deploy/startup.sh
    • If the previous step fails, check that you have the JAVA_HOME environment variable correctly exported and/or modify the script that you just tried to start.
    • Check the web interface on http://localhost:8080/
    • Check if the Diameter Peers are connecting to each other. You can see this in the console of FHoSS or in that of I/S-CSCF

Step 7: Configure Subscribers

  • FHoSS
    • By default, FHoSS comes provisioned with a couple of sample users:
    • Use these or insert new ones.
      • Create a Subscription
      • Create a Private Identity
      • Create a Public Identity
      • Link them
  • SIP-to-IMS Gateway
    • The SIP-to-IMS Gateway is now obsolete and was droped from the project. See the Annex and FAQ for information

      on how you can use the Open IMS Core with SIP clients capable of only MD5 authentication.

  • IMS User Endpoint Configuration
    • Provision with your own UE data or use one of the default users
    • Alice:
      • Private Identity: alice@open-ims.test
      • Secret Key: alice
      • OP: 0×00…0
      • AMF: 0×00…0
      • Use of Anonimity Key: enable
      • Public Identity: sip:alice@open-ims.test
      • Realm: open-ims.test
      • Strict Outbound Proxy: sip:pcscf.open-ims.test:4060
    • Bob: similar
  • SIP User Endpoint Configuration
    • Alice:
      • User part of the SIP URI: alice
      • Host part of the SIP URI/Domain/realm: open-ims.test
      • Password: alice
      • Strict Outbound Proxy: sip:pcscf.open-ims.test:4060
      • !!! Make sure that your SIP client does REGISTER sip:open-ims.test and not REGISTER sip:pcscf.open-ims.test:4060
      • !!! Read the Annex and FAQ related to using MD5-only clients with the Open IMS Core
    • Bob: similar

Step 8: Test!

  • This is the last step. You should have all installed and configured by now
  • Registration uses all components and as such, it is a good test if all is up & running
  • Use Wireshark to see what’s going on:
    • Monitor ports 4060, 5060 and 6060 for SIP traffic
    • Monitor ports 3868, 3869 and 3870 for Diameter traffic

Annex A – DNS HOWTO

A lot of users seem to have difficulties when setting up a DNS server. Although it is not our

purpose to teach you this, here is a summary of this process. But be aware that this does not means that we

are offering any further support for it and you don’t have to read the DNS manual. If you think that

/etc/hosts would be enough, you are wrong as it can not help you with special DNS queries like NAPTR and SRV.

So how do you get a DNS server up and running?

  • Get the bind (or often called named) package installed on your distribution
  • Make sure you are root
  • Locate named.conf (could be in /etc or /etc/bind or /etc/named)
  • Edit that file according to your needs. Here are some things that you need in there:
    options {

    ...

    forward first;

    forwarders {

    {THE_IP_ADDRESS_OF_YOUR_UPSTREAM_DNS_SERVER;} ;

    };

    ...

    };

    ...



    zone "open-ims.test" IN {

    type master;

    file "pri/open-ims.dnszone";

    notify no;

    };

    ...

    On some distributions this file includes other files so be sure to dig through those also.

    THE_IP_ADDRESS_OF_YOUR_UPSTREAM_DNS_SERVER can be found in /etc/resolv.conf.

  • Now copy the file /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone to where you configure it above

    (pri/open-ims.dnszone)

    cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /var/bind/pri/

    chown -R named:named /var/bind/pri/open-ims.dnszone
  • Then start or re-start the DNS server (remember that these configuration files are not monitored

    for changes so you will have to send a SIGHUP or do a restart to reload them).

    /etc/init.d/named restart
  • You should now test if it works. In the response look if you got the correct answer.
    dig @127.0.0.1 pcscf.open-ims.test
  • To actually use it, you would need to configure it as a DNS server for your machine. Here is

    how your /etc/resolv.conf file should look like:

    # cat /etc/resolv.conf

    nameserver 127.0.0.1

    search open-ims.test

    domain open-ims.test
  • Remember that utilities like the DHCP-Client overwrite this file be default!

Annex B – SIP Clients How-To

The old SIP2IMS module that was performing MD5-to-AKA authentication translation has been deleted as being

obsolete as the core can perform MD5 authentication too. Another reason is that it’s functionality was seriously

flawed by the fact that it was a SIP proxy rather than a full B2BUA.

So how do you get a client registered?

  • First provision the users (or use the default sip:alice@open-ims.test or sip:bob@open-ims.test).

    Make sure than in the HSS provisioning interface in the private identity configuration, you allow the

    use of Digest-MD5 for the respective users

  • Then you have two options for the S-CSCF to trigger an MD5 authentication
    1. Modify the client to send a parameter “algorithm=MD5″ in the Authorization header in the first

      unauthorized REGISTER.

    2. Or modify the scscf.cfg and enable the MD5 authorization as the default authentication method instead

      of AKAv1-MD5.

  • Next just make sure that the client is using the P-CSCF address (sip:pcscf.open-ims.test:4060 by default) as

    strict outbound proxy and the REGISTER Request-URI is “sip:open-ims.test” (or your own domain name) and not

    “sip:pcscf.open-ims.test:4060″ as many SIP clients fail here.

Annex C – Changing the Domain Name and IP-Address of configuration files

OpenIMSCore is preconfigured to work with the domain “open-ims.test” and ip address of default loopback device, “127.0.0.1″.

Following the installation instructions above without changing the configuration files would set up this environment

successfully. For some reasons(like testing roaming,communicating with other external entitites), you would need

to change the domain name. In that case you could use a configuration script(configurator.sh) which is stored under

directory /opt/OpenIMSCore/ser_ims/cfg/

Does it only change *.cfg files?

No, it can also reconfigure *.xml , *.sql and FHoSS configuration files(*.properties).

How do I make use of configurator.sh?

  • You can directly execute it and fetch the files to be changed as arguments. See the example

    below:

     

    # pwd

    /opt/OpenIMSCore

    # ser_ims/cfg/configurator.sh ser_ims/cfg/scscf.cfg ser_ims/cfg/icscf.xml \

    FHoSS/deploy/hss_db.sql FHoSS/deploy/hss.properties

  • Then copy the files to the /opt/OpenIMSCore directory
  • Note that you have to backup your configuration files that you want to reconfigure


Follow

Get every new post delivered to your Inbox.