Guía de instalación
Vista general
Esta página es para ayudarte a arrancar el Open IMS Core. En la distribución SVN, todo se encuentra pre-configurado y suministrado con un conjunto mínimo de datos que deberían ser suficientes para establecer una simple prueba de "Alice-llama a-Bob".
Instalación rápida
Si anteriormente ya has realizado el proceso de instalación, esta sección te ayudará a refescar tu memoria acerca de los pasos que deberías seguir. Si es tu primera vez, omítela de momento y comienza con el Paso 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 < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql
mysql -u root -p < ser_ims/cfg/icscf.sql
cp ser_ims/cfg/*.cfg .
cp ser_ims/cfg/*.xml .
cp ser_ims/cfg/*.sh .
Paso 1: Requisitos previos
- Requerimientos de hardware
- Una PC actual con Linux debería ser suficiente
- Si deseas obtener el máximo rendimiento:
- Agregar varios Gigabytes de RAM
- Disponer de varios CPUs/Cores
- Gigabit Ethernet sería de ayuda
- Acceso de red
- Inter-domain NAT no es de nuestro interés, así que disponer de una dirección IP pública estaría bien
- Un servidor DNS que pueda controlarse si es que tu no deseas tener uno dentro del mismo PC Linux
- Requerimientos de software
- ~100 MBytes de espacio de disco para estar seguros
- GCC3/4, make, JDK1.5, ant
- MySQL instalado e inicializado (u otro DBMS si es que puedes lidiar con él)
- bison, flex
- libxml2 (> 2.6), libmysql - ambos con librerías de desarrollo
- Linux kernel 2.6, así como ipsec-tools (setkey) si desearas utilizar seguridad IPSec
- Opcional: openssl si quisieras habilitar la seguridad TLS
- bind instalado y ejecutándose (u otro servidor de nombres de dominio si es que puedes lidia con él)
- Navegador en el PC o que pueda conectarse a é (para provisionar usuarios)
Nota: Se considera que tienes todo esto instalado, configurado y ejecutándose.
Nota: Se asume, que por ahora, deseas instalar todo en 1 solo PC.
Paso 2: Obtener el código fuente
- ¿Dónde? - Código reciente en http://svn.berlios.de/svnroot/repos/openimscore
(necesitarás tener instalado Subversion).
Enesta página puedes encontrar mucha mas información acerca de las fuentes .
- ¿Qué?
- Los CSCFs: ser_ims/trunk
- El HSS: FHoSS/trunk
- ¿Cómo? - El códio fuente se encuentra pre-configurado para trabajar desde una ruta de ficheros estándar:
Paso 3: Compilar
- ser_ims
-
¡¡¡Nuevo!!! Ejecuta "make install-libs all" dentro de ser_ims
cd ser_ims
make install-libs all
cd ..
- Si algo falla, probablemente no cuentas con todos los requisitos previos.
- FHoSS
- Mientras esperas a que termine la compilación, puedes seguir adelante y realizar el paso 4.
Paso 4: Configurar el entorno
- Notas:
- DNS
- Un fichero de zona DNS puede encontrarse dentro de ser_ims/cfg/open-ims.dnszone
- Cópialo a tu directorio de configuración de bind (servidor de nombres)
- Edita el fichero named.conf e inserta el anterior fichero ahí (Sería grandioso agregar también entradas de DNS inversas)
- Reinicia el servidor de nombres
- Prueba que los nombres sean resueltos correctamente (no olvides que el fichero /etc/resolv.conf apunte hacia tu nuevo servidor DNS!)
- MySQL
- Ejecuta los volcados SQL (mysql -u root -p -h localhost < dump.sql):
¡¡¡Nuevo!!! "hssdb.sql" fue reemplazado por "hss_db.sql" !!!
mysql -u root -p -h localhost < ser_ims/cfg/icscf.sql
mysql -u root -p -h localhost < FHoSS/scripts/hss_db.sql
mysql -u root -p -h localhost < FHoSS/scripts/userdata.sql
- Revisa si las bases de datos se encuentran ahí y son accesibles
Paso 5: Configurar el núcleo IMS
- Hasta aquí, deberías tener funcionando tanto MySQL como el DNS
- CSCFs
- FHoSS
Copia los siguientes ficheros a /opt/OpenIMSCore u otra ubicación que desees: FHoSS.sh -->
- Echa un vistazo a los ficheros de configuración dentro de FHoSS/deploy/ (disponible después de que el paso 3 se ha completado)
- Edita estos ficheros con tus propias preferencias (no olvides actualizar el fichero de zona DNS de acuerdo a tus preferencias y reinicia el servidor de nombres)
Paso 6: Iniciar los componentes
- CSCFs
- Inicia el pcscf.sh, el icscf.sh y el scscf.sh
- Todos estos scripts deberían ejecutarse en paralelo.
- Nos encanta depurar, así que por defecto, se mantendrían en primer plano.
- Por defecto, periódicamente deberías ver mensajes de registro con el contenido del registrar y los enlaces diameter abiertos
- FHoSS
- Inicia el FHoSS/deploy/startup.sh
- Si el anterior paso falla, revisa que tengas la variable de entorno JAVA_HOME correctamente exportado y/o modifica el script que acabas de intentar iniciar.
- Revisa la interfaz web en http://localhost:8080/
- Revisa si los Diameter Peers se conectan unos con otros. Puedes ver esto en la consola del FHoSS o en la del I/S-CSCF
Paso 7: Configurar abonados
- FHoSS
- Por defecto, el FHoSS viene suministrado con un par de usuarios de muestra:
- Utiliza estos usuarios o inserta otros nuevos.
- Crea una Subcripción (Subscription)
- Crea una Identidad Privada (Private Identity)
- Crea una Identidad Pública (Public Identity)
- Enlázalas
- Pasarela SIP-to-IMS (SIP-to-IMS Gateway)
- La pasarela SIP-to-IMS (SIP-to-IMS Gateway) ya está obsoleta y fue desechada del proyecto. Ve el Anexo y las FAQ para mayor información sobre como utilizar el Open IMS Core con clientes que solo tengan capacidad de autenticación MD5.
- Configuración del terminal de usuario IMS
- Proporciona al UE tus propios datos o utiliza uno de los usuarios por defecto
- Alice:
- Identidad Privada (Private Identity): alice@open-ims.test
- Clave Secreta (Secret Key): alice
- OP: 0x00...0
- AMF: 0x00...0
- Uso de Clave de Anonimato (Use of Anonimity Key): habilitar (enable)
- Identidad Pública (Public Identity): sip:alice@open-ims.test
- Dominio (Realm): open-ims.test
- Strict Outbound Proxy: sip:pcscf.open-ims.test:4060
- Bob: procede de manera similar al caso anterior de Alice
- Configuración del terminal de usuario SIP
- Alice:
- Parte Usuario del SIP URI: alice
- Parte Host del SIP URI/Domain/realm: open-ims.test
- Contraseña: alice
- Strict Outbound Proxy: sip:pcscf.open-ims.test:4060
- ¡¡¡ Asegúrate de que tu cliente SIP efectúe REGISTER sip:open-ims.test y no REGISTER sip:pcscf.open-ims.test:4060 !!!
- !!! Lee el Anexo y las FAQ relacionados con la utilización de clientes con capacidad de autenticación únicamente MD5con el Open IMS Core
- Bob: procede de manera similar al caso de Alice
Paso 8: Realizar Test!
- Este es el último paso. Hasta aquí, deberías tener todo instalado y configurado
- El proceso de registro utiliza todos los componentes y como tal, es una buena prueba de que todo está activo y ejecutándose
- Utiliza Wireshark para ver que sucede:
- Observa el tráfico SIP en los puertos 4060, 5060 y 6060
- Observa el tráfico Diameter en los puertos 3868, 3869 y 3870
Anexo A - Como configurar el DNS
Aparentemente, muchos usuarios tienen dificultades al configurar un servidor DNS. Aunque no sea nuestro propósito enseñarte esto, aquí tienes un resumen de este proceso. Pero sé consciente de que esto no significa que estemos ofreciendo ningún soporte adicional para ello y que no tengas que leer el manual del DNS. Si crees que /etc/hosts será suficiente, estás equivocado ya que este no puede ayudarte con consultas DNS especiales como NAPTR y SRV.
Así que, ¿como hacer para tener un servidor DNS activo y ejecutándose?
- Instala el paquete bind (a menudo llamado named) para tu distribución
- Asegúrate de tener privilegios de root
- Ubica el fichero named.conf (podría estar dentro de /etc o /etc/bind o /etc/named)
- Edita ese fichero de acuerdo a tus necesidades. Aquí están algunas cosas que necesitas ahí dentro:
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;
};
...
En algunas distribuciones, este fichero incluye otros ficheros, así que asegúrate de hurgar también entre ellos.
LA_DIRECCION_DE_TU_SERVIDOR_DNS_UPSTREAM puede encontrarse dentro de /etc/resolv.conf.
- Ahora copia el fichero /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone a donde lo has configurado anteriormente
(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
- Luego, inicia o reinica el servidor DNS (recuerda que los cambios en estos ficheros de configuración no son monitorizados por tanto tendrás que enviar un SIGHUP o hacer un reinicio para que sean recargados).
/etc/init.d/named restart
- Ahora deberías probar si funciona. Mira si en la respuesta obtienes la contestación correcta.
dig @127.0.0.1 pcscf.open-ims.test
- Para usarlo verdaderamente, necesitarías configurarlo como un servidor DNS para tu máquina. Así es como tu fichero /etc/resolv.conf debería parecerse:
# cat /etc/resolv.conf
nameserver 127.0.0.1
search open-ims.test
domain open-ims.test
- ¡Recuerda que algunas utilerías como los clientes DHCP sobreescriben este fichero por defecto!
Anexo B - Como configurar clientes SIP
El antiguo módulo SIP2IMS que efectuaba la traducción de autenticación de MD5 a AKA (MD5-to-AKA authentication translation) ha sido eliminado por ser obsoleto ya que el núcleo puede efectuar autenticación MD5 también. Otra razón es que su funcionalidad era seriamente defectuosa por el hecho de que era un proxy SIP en lugar de ser un completo B2BUA.
Así que, ¿Como registrar a un cliente?
- Primero proporciona los usuarios (o utiliza los que vienen por defecto sip:alice@open-ims.test or sip:bob@open-ims.test).
Asegúrate de que en la interface de provisionamiento del HSS en la configuración de la Identidad Privada tu permites el uso de Digest-MD5 para los respectivos usuarios
- Luego, tienes dos opciones para que el S-CSCF disencadene una autenticación MD5
- Modifica el cliente para que envie un parámetro "algorithm=MD5" dentro del encabezado de autorización (Authorization header) dentro del primer REGISTER no autorizado (unauthorized REGISTER).
- O modifica el scscf.cfg y habilita la autorización MD5 como el método de autenticación por defecto en lugar de
AKAv1-MD5.
- A continuación, solo asegúrate de que el cliente esté utilizando la dirección del P-CSCF (sip:pcscf.open-ims.test:4060 por defecto) como
strict outbound proxy y que el REGISTER Request-URI sea "sip:open-ims.test" (o tu propio nombre de dominio) y no
"sip:pcscf.open-ims.test:4060" ya que muchos clientes SIP aquí fallan.
Anexo C - Cambiando el Nombre de Dominio y la Dirección IP de los ficheros de configuración
OpenIMSCore está preconfigurado para trabajar con el dominio "open-ims.test" y la dirección ip del dispositivo loopback por defecto, "127.0.0.1".
Siguiendo las anteriores instrucciones de instalación sin cambiar los ficheros de configuración el entorno se configuraría exitósamente. Por algunas razones (como realizar test de itinerancia(roaming), comunicación con otras entidades externas), necesitarías cambiar el nombre de dominio. En tal caso, podrías utilizar un script de configuración (configurator.sh) el cual está almacenado bajo el directorio /opt/OpenIMSCore/ser_ims/cfg/
¿El script solamente cambia los ficheros *.cfg?
No, también puede reconfigurar ficheros *.xml , *.sql y de configuración del FHoSS (*.properties).
¿Como hago uso de configurator.sh?