Proyecto 1
Proyecto 1
Proyecto 1
Vice-rectorado Académico
Decanato de Postgrado
Maestría en Informática
Trabajo de Grado
ii
ACTA DE AUTORIZACIÓN DE PUBLICACION
iii
UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TÁCHIRA
VICE-RECTORADO ACADÉMICO
DECANATO DE POSTGRADO
Maestría en Informática
RESUMEN
iv
ÍNDICE
v
CAPÍTULO III
MARCO METODOLÓGICO
3.1 Propósito de la Investigación. ...................................................................................... 23
3.2 Tipo de Investigación. .................................................................................................. 23
3.3 Metodología de la investigación. ................................................................................. 24
CAPITULO IV
METODOLOGÍA
4.1 Alcance de la distribución. ........................................................................................... 28
4.2 Análisis y definición de Requerimientos. ..................................................................... 28
4.2.1 Personal Involucrado............................................................................................. 29
4.2.2 Funcionalidad del Producto. ................................................................................. 30
4.2.3 Requisitos de la Distribución a Desarrollar. .......................................................... 30
4.2.4 Diseño de la Distribución. ..................................................................................... 34
4.2.5 Desarrollo de la Distribución.................................................................................. 47
CAPÍTULO V
PRUEBAS DE LA DISTRIBUCIÓN
5.1 Pruebas caja negra de la distribución. ......................................................................... 53
5.2 Resultados de las Pruebas............................................................................................ 56
CAPITULO VI
CONCLUSIONES Y RECOMENDACIONES
6.1 Conclusiones ................................................................................................................. 57
6.2 Recomendaciones. ........................................................................................................ 58
BIBLIOGRAFÍA.......................................................................................................................... 60
ANEXOS ................................................................................................................................... 63
2 ANEXO A.......................................................................................................................... 64
vi
LISTA DE TABLAS Y FIGURAS
Índice de Tablas.
Índice de Figuras.
vii
INTRODUCCIÓN
viii
CAPÍTULO I
EL PROBLEMA
El sistema operativo Linux posee dos componentes fundamentales que son; el kernel o
núcleo del sistema, el cual va a permitir manejar los recursos de hardware o dispositivos
físicos, y las aplicaciones que están conformadas por los programas y utilidades que
van a permitir la interacción del usuario con el sistema. Las aplicaciones se caracterizan
por ser flexibles, modulares y portables, cada sistema Linux puede tener su conjunto
particular de aplicaciones, esto es lo que se conoce como Distribución Linux la cual
10
permite agrupar al kernel con determinados paquetes de software que van a satisfacer
las necesidades de un grupo específico de usuarios.
Actualmente existen algunas distribuciones orientadas para este fin, pero presentan
ciertas desventajas como son: alta complejidad en la instalación, distribuciones
descontinuadas, los paquetes que la conforman son obsoletos, requieren nociones o
dominio especializado de los sistemas de VoIP, algunos módulos no están soportados.
Esto es particularmente en lo que este proyecto pretende ser un agente diferenciador
del resto de las distribuciones.
El tema a desarrollar nos va a permitir evaluar y elaborar una distribución que nos sirva
de soporte para la instalación y prueba de las aplicaciones básicas de software
necesarias para la utilización de los servicios asociados a una central telefónica de VoIP
en una red local.
Se espera además que la presente propuesta sea de gran utilidad a otros desarrolladores
que deseen participar al finalizar el proyecto, ya que al ser de código abierto o libre les
permitirá realizar sus contribuciones; pudiendo modificar la distribución existente para
mejorarla o adaptarla a sus necesidades.
otros sistemas de código abierto que nos van a permitir la elaboración de nuestro
proyecto final; este aspecto será fundamental en el desarrollo de nuestra distribución.
MARCO TEÓRICO
El sistema operativo Linux es un sistema operativo libre, que puede ser utilizado,
modificado y redistribuido libremente. Se caracteriza por ser multiplataforma,
multiusuario y multitarea y nace como la combinación de varios proyectos entre los
que se destacan su núcleo componente primordial del sistema y GNU por su acrónimo
en inglés que significa Licencia Pública General.
Roger, Francesc (2003). Destaca que Inicialmente el Sistema Operativo Linux no tuvo
mucha aceptación por parte de usuarios, empresas y gobiernos sin embargo al pasar de
los años este sistema ha evolucionado hasta convertirse en uno de los más confiables y
eficientes que existen en la actualidad, además ha demostrado estar a la altura de
cualquier otro sistema operativo.
Alejandro, Juan (2011). Define los sistemas de VoIP como aquellos que utilizan un
conjunto de protocolos estandarizados de comunicación de datos que permiten la
transmisión de voz humana a través del protocolo de Internet. Esta serie de protocolos
definen la manera como se inician, mantienen y se finalizan las llamadas, especificando
mecanismos para la captura, transmisión y recepción de la voz.
9
Finalmente solo era cuestión de tiempo para que el desarrollo de diversos paquetes de
software libre en el área de comunicaciones y un sistema operativo igualmente
modificable y personalizable dieran paso a varias distribuciones Linux orientadas a los
sistemas de VoIP, entre las más relevantes podemos mencionar a las siguientes:
FreePBX Distro, basada en CentOS, la cual fue desarrollada por la empresa Sangoma
Technologies Corporation, nos presenta un sistema de software de comunicaciones
unificadas el cual posee múltiples aplicaciones que abarcan desde la Voz sobre IP, Fax,
Correo de Voz, hasta correo electrónico. Un componente fundamental que se destaca,
es su Interfaz Gráfica de usuario llamada FreePBX de código abierto basada en Web
que permite el control y administración del servidor de Voz Sobre IP sin la necesidad
de editar directamente ningún archivo de configuración. La desventaja que tiene esta
distribución es que presenta fallos durante la instalación o ejecución de algunos de sus
módulos ya que los mismos no están soportados en versiones más recientes.
Linux Elastix es una distribución basada en CentOS, fue desarrollada con la finalidad
de proveer un servidor de comunicaciones unificadas integradas en un solo paquete;
VoIP PBX, Fax, Mensajería Instantánea, Correo Electrónico, Colaboración entre otras,
y ha evolucionado hasta ofrecer soluciones todo en uno, ofreciendo una gran cantidad
de complementos. Siendo esta solución “Todo en Uno”, una de sus principales
debilidades ya que incluye una gran cantidad de funcionalidades y paquetes que no se
utilizan, haciendo uso de una gran cantidad de recursos físicos del equipo de cómputo
además de presentar múltiples fallos de seguridad.
dispositivos de E/S entre los diferentes programas que compiten por ellos (A.
Tanenbaum Y A. Woodhull 2007)
• Gestión de procesos
El sistema operativo permite asignar los recursos a los procesos, los cuales son a su vez
un conjunto de instrucciones que corresponden a un programa y que son ejecutadas por
la unidad central de procesamiento o CPU, y posee 5 estados; nuevo, preparado,
ejecución, bloqueado y terminado. El sistema operativo además permite asignar
recursos a los procesos, crear, destruir parar y reanudar cada uno de estos además de
permitir su comunicación y sincronización.
• Sistema de entrada/salida.
• Sistema de archivos.
seguridad de los archivos. Los sistemas de archivos más comunes son FAT, NTFS,
FAT32, ext3, ext4, XFS.
• Sistemas de protección
• Sistema de comunicaciones
Se encarga de gestionar las tareas que realizan los programas tales como; manipulación
y modificación de archivos, información de estado del sistema, soporte de lenguajes de
programación y comunicaciones.
• Gestión de recursos.
Permite la gestión y asignación de todos los recursos físicos y de programas para cada
una de las tareas que se desean realizar.
14
Linux es un sistema operativo rápido estable, de código abierto que se utiliza para
computadores personales y estaciones de trabajo, ofrece servicios de internet,
herramientas de desarrollo, interfaz gráfica y gran cantidad de aplicaciones. Este
sistema fue desarrollado en 1990 por Linus Torvalds junto con programadores
destacados de todo el mundo. (A. Tanenbaum y A. Woodhull 2007).
La estructura del kernel puede separarse en módulos de gestión como los que se
muestran a continuación:
GESTION DE FICHEROS
• Gestión de procesos: define qué tareas, en qué orden y con qué prioridad en que
se van a ejecutar. Permite planificar y optimizar el uso del CPU.
Una de las ventajas primordiales que nos presenta el kernel de Linux es que este puede
ser modificado y actualizado. Esto permite a los usuarios controlar mejor sus
aplicaciones y el propio sistema. Además de poder disponer de un sistema
completamente configurable y adaptable a las necesidades particulares de sus usuarios.
Otra ventaja que presenta este sistema es que es desarrollado por una gran comunidad
de programadores coordinados a través de internet. (Josep Esteve, 2017).
16
La voz sobre ip posee una serie de ventajas las cuales se mencionarán a continuación:
• Ahorro de dinero.
Solo se debe pagar el costo de la factura mensual del proveedor de ISP.
La arquitectura puede ser centralizada en donde todo está localizado en un mismo lugar
o distribuida la cual presenta una mayor complejidad y sea cual sea el tipo de
arquitectura seleccionada ambas nos ofrecen un sistema de gran flexibilidad.
A continuación podemos ver una arquitectura muy general en donde podemos apreciar
los distintos dispositivos que pueden componer una red de VoIP.
18
2.2.5 Asterisk.
Una de las principales ventajas que tiene asterisk es que admite el uso una gran variedad
de protocolos de VoIP, tales como SIP, H.323, IAX y MGCP.
Arquitectura de Asterisk.
Asterisk fue diseñado de forma modular, por lo que cada usuario puede seleccionar que
partes o módulos desea utilizar, esto hace que asterisk sea una aplicación escalable y
extensible.
Este protocolo a nivel de aplicación permite gestionar la sesión del usuario y transporta
únicamente señalización que sirve para el mantenimiento y cierre de la sesión, en este
caso de comunicaciones de audio, es importante resaltar que SIP no transporta audio.
Gracias a este protocolo los terminales se registran en el servidor indicándole su IP,
para que el servidor sea capaz de enviar las llamadas. (Julio G. 2009)
sistema de ficheros, usualmente se utiliza para probar una distribución sin riesgo de
dañar el sistema operativo o datos alojados en el disco duro del computador.
MARCO METODOLÓGICO
Esta fase consiste en la definición de cada uno de los requisitos además de evaluar
las condiciones que van a regir el desarrollo de la distribución.
• Diseño de la distribución.
En esta fase se elaboró un diseño apropiado que permitiría satisfacer los requisitos
de la distribución realizando para ello la definición de la arquitectura y los componentes
de la misma. El diseño de la arquitectura nos permitió tener una visión más clara del
proyecto además de estructurar correctamente un esquema de trabajo para el desarrollo
de la distribución. Esto también garantizó el cumplimiento de los requisitos
establecidos.
• Desarrollo de la distribución.
27
• Pruebas de la distribución.
• Funcionamiento y mantenimiento.
METODOLOGÍA
El producto que se desea obtener es una distribución Linux, basada en Debian, que
permita instalar y configurar automáticamente una central telefónica VoIP, de dos
maneras: La primera en forma de LiveDVD y la segunda mediante la instalación del
sistema en el disco duro del computador. Esta distribución en su forma operativa,
deberá permitir la gestión de llamadas VoIP, además de proveer todas las
configuraciones para el correcto funcionamiento y herramientas básicas que permitan
la administración de la central telefónica VoIP, aportando así una mayor versatilidad
al sistema.
Tras haber estudiado las posibilidades con las que se cuenta para la elaboración
de la distribución así como sus limitaciones, pudimos establecer cada uno de los
requisitos y condiciones que van a regir el desarrollo del producto.
29
Rol Tutor
Rol Tesista
4 Los usuarios del sistema VoIP deben estar en la misma red LAN.
2 El tamaño del LiveDVD y del instalador no debe exceder los 4.7 GB,
esto se debe a que se desea poder almacenar la distribución en un
DVD convencional cuya capacidad es igual a la mencionada
anteriormente.
Puede funcionar perfectamente en cualquier equipo que cuente con las siguientes
características:
Los terminales o equipos de conexión desde donde se realizan y reciben las llamadas
en nuestro caso particular solo deben soportar el uso del protocolo de internet, por
ejemplo, SoftPhones, Teléfonos IP o simplemente un teléfono analógico con adaptador
IP.
Parte del diseño de una distribución consiste en definir claramente a los usuarios
finales del sistema para así tener en cuenta las necesidades de los mismos. En cuanto
al perfil del usuario se refiere, debemos considerar que estos poseen conocimientos
básicos de computación y manejo de un entorno de escritorio y ventanas.
• Procesador.
• Memoria.
• Interfaz Externa.
• API de canal: maneja el tipo de conexión por la que se recibe una llamada
mediante la carga dinámica de módulos.
Todas las llamadas llegan al sistema haciendo uso de un canal, incluso las
llamadas internas, cuando un usuario descuelga el teléfono, un canal es activado,
luego la llamada del usuario fluye a través del canal activo y el plan de marcado
decide qué es lo que hay que hacer con dicha llamada.
4.2.4.2.3.5 Configuración.
4.2.4.2.5 FreePBX.
4.2.4.2.5 Nagios.
red. Adicionalmente es una buena forma para que los usuarios nuevos e inexpertos
se introduzcan en algunos aspectos básicos que permiten el correcto
funcionamiento de sistema que está detrás de la central telefónica basada en VoIP.
y paquetes complementarios de cada una de estas aplicaciones para todas estas se creó
un usuario principal cuyo nombre es kalipex y contraseña es igualmente kalipex
inspirados en el nombre de la distribución.
Se crearon los usuarios del sistema, en nuestro caso son: el usuario root con
clave 123, y el usuario kalipex de clave 123.
En este punto salimos del entorno conocido como enjaulado y realizamos una
copia con el comando rsync -av este comando nos permite realizar una copia fiel y
exacta de los archivos, manteniendo todos los permisos del directorio original desde el
sistema del LiveDVD hacia el directorio que contendría el sistema comprimido que se
instalaría en el disco duro.
• Montaje de directorios.
PRUEBAS DE LA DISTRIBUCIÓN
La prueba de caja negra se refiere a las pruebas que se llevan a cabo sobre la
interfaz del software, y pretenden demostrar que las funciones del software son
operativas, que la entrada es aceptada de forma adecuada y que se produce el resultado
correcto. Una prueba de caja negra examina algunos aspectos del modelo fundamental
del sistema sin tener mucho en cuenta la estructura lógica interna del software.
Para esta prueba se realiza la carga completa del sistema operativo, servicios
y aplicaciones de usuario, bien sea en el modo LiveDVD o con la versión instalada
en disco. Se configuran dos Softphones con las extensiones 200 y 203
respectivamente y se realiza una llamada entre ambos dispositivos con el objeto de
poder tener una conversación completamente fluida haciendo uso del servidor.
Esta prueba se lleva a cabo luego de la carga del sistema operativo, servicios
y aplicaciones de usuario, bien sea en el modo LiveDVD o con la versión instalada
en disco. Para ello se abre la interfaz web de la aplicación Nagios y se verifica el
estatus de todos los servicios, luego se detienen algunos servicios se recarga y
verifica el cambio del status del servicio, se reinician nuevamente y se vuelve a
verificar, con esto se pretende corroborar el funcionamiento del sistema web de
monitoreo.
55
En esta sección se muestran de forma tabular los resultados de las pruebas realizadas
sobre la distribución.
El resultado de la Prueba
Nombre de la Prueba es satisfactorio. Si / No
Arranque del Equipo Servidor. Si
Prueba de la central telefónica. Si
Prueba de llamadas entre extensiones. Si
Prueba de herramienta de monitoreo Si
Prueba de instalador en disco Si
Prueba de correcta instalación y funcionamiento en Si
disco duro de la distribución.
Fuente: Celido Guerrero (2021)
57
CAPITULO VI
CONCLUSIONES Y RECOMENDACIONES
6.1 Conclusiones
una central telefónica basada en VoIP, esto beneficia a todas aquellas personas con
pocos conocimientos en el área o que no cuentan con los recursos económicos
necesarios para pagar personal especializado.
6.2 Recomendaciones.
BIBLIOGRAFÍA
[1] Linux Device. Introducing initramfs, a new model for initial ram disks. Disponible
en http://www.linuxfordevices.com/c/a/Linux-For-Devices-
Articles/Introducinginitramfs-a-new-model-for-initial-RAM-disks/.
[2] Tim Parker Kamran Husain (1995). Linux unleashed: Sams Publishing.
[3] Ian Sommerville (2005). Ingenieria del Software: PEARSON, Adison Wesley.
[6] Stephen Bosch, Stefan Wintermeyer (2009). Practical Asterisk 1.4 and 1.6 From
[7] Neil Cherry (2006). Linux Smart Homes For Dummies. Hoboken:United States.
[9] Rusell Bryant, Leif Madsen y Jim Van Meggelen (2013). Asterix the definitive
guide. Sebastopol:Crimea: O’Reilly Media, Inc
[10] Hector Facundo Arena (2016). La Biblia de Linux: MP Ediciones S.A.
[11] Christopher Negus 2006. Live Linux CDs: Building and Customizing Bootables:
Prentice Hall
[14] Richard Petersen, (2009). Linux Manual de Referencia, 6ta Edicion: McGraw-
Hill.
[15] Jim M., Russel B., Leif M. (2019). Asterisk: The Definitive Guide: Open Source
Telephony for the Enterprise. 5° Edicion: O'Reilly Media.
[16] Madsen, Leif, Jim, Russel (2013). Asterisk: The Definitive Guide.4° Edicion:
O'Reilly Media.
[18] Héctor Facundo Arena (2003). La Biblia de Linux: Manuales Users, en Espanol:
Mp Ediciones Corp.
[23] Jim Van Meggelen y Jared Smith and Leif Modsen (2005). Asterisk The Future
of Telephony. Recuperado de
http://ftp.openbsd.org/pub/OpenBSD/distfiles/9780596510480.pdf
https://wiki.gentoo.org/wiki/Handbook:AMD64/es
[25] Gerard Beekmans (2007). Linux From Scratch Version 8.3. Recuperado de
62
http://www.linuxfromscratch.org/lfs/downloads/8.3/LFS-BOOK-8.3.pdf
http://es.tldp.org/Manuales-LuCAS/GLUP/glup_0.6-1.11.pdf
[27] Rubén Andrés (2013). Cómo crear una Live-USB para una distro Linux.
Recuperado de https://computerhoy.com/paso-a-paso/software/como-crear-live-
usb-distro-linux-3992
63
ANEXOS
64
2 ANEXO A
Vamos a crear un directorio llamado LIVE_BOOT y dentro de este dos directorios uno
llamado chroot y otro llamado kalipex.
Ahora copiamos todo el contenido de la imagen descargada kalipex.iso dentro de
LIVE_BOOT/chroot y luego movemos el contenido del archivo comprimido nombrado
como kalipex.tar.gz hacia el directorio LIVE_BOOT/kalipex/
Tendríamos de esta forma dos directorios con sus respectivos árbol de directorios. El
primer árbol de directorios LIVE_BOOT/chroot se corresponde al que se carga en la
memoria RAM utilizado por el LiveDVD y el segundo árbol LIVE_BOOT/kalipex/ se
corresponde al utilizado por el instalador en disco por lo que las modificaciones de la
distribución deben realizarse en ambos directorios.
Para poder realizar cualquier modificación vamos a copiar el directorio
LIVE_BOOT/chroot/usr
65
rm -r LIVE_BOOT/kalipex/usr
cd LIVE_BOOT/kalipex
tar -czf ../kalipex.tar.gz ./*
mkdir -p LIVE_BOOT/{staging/{EFI/boot,boot/grub/x86_64-efi,isolinux,live},tmp}
mksquashfs LIVE_BOOT/chroot LIVE_BOOT/staging/live/filesystem.squashfs -e boot
cp LIVE_BOOT/chroot/boot/vmlinuz-* LIVE_BOOT/staging/live/vmlinuz && \
cp LIVE_BOOT/chroot/boot/initrd.img-* LIVE_BOOT/staging/live/initrd
---------------------
LABEL linux
MENU LABEL Debian Live KALIPEX [BIOS/ISOLINUX]
MENU DEFAULT
KERNEL /live/vmlinuz
APPEND initrd=/live/initrd boot=live
LABEL linux
MENU LABEL Debian Live kalipex [BIOS/ISOLINUX] (nomodeset)
MENU DEFAULT
KERNEL /live/vmlinuz
APPEND initrd=/live/initrd boot=live nomodeset
EOF
--------------------------------------
cat <<'EOF' >LIVE_BOOT/staging/boot/grub/grub.cfg
search --set=root --file /DEBIAN_CUSTOM
set default="0"
set timeout=30
# If X has issues finding screens, experiment with/without nomodeset.
menuentry "Debian Live [EFI/GRUB]" {
67
------------------------
touch LIVE_BOOT/staging/DEBIAN_CUSTOM
cp /usr/lib/ISOLINUX/isolinux.bin "LIVE_BOOT/staging/isolinux/" && \
cp /usr/lib/syslinux/modules/bios/* "LIVE_BOOT/staging/isolinux/"
cp -r /usr/lib/grub/x86_64-efi/* "LIVE_BOOT/staging/boot/grub/x86_64-efi/"
----------------------------
grub-mkstandalone \
--format=x86_64-efi \
--output=LIVE_BOOT/tmp/bootx64.efi \
--locales="" \
--fonts="" \
"boot/grub/grub.cfg=LIVE_BOOT/tmp/grub-standalone.cfg"
------------------------------------
cd LIVE_BOOT/staging/EFI/boot && \
dd if=/dev/zero of=efiboot.img bs=1M count=20 && \
/usr/sbin/mkfs.vfat efiboot.img && \
mmd -i efiboot.img efi efi/boot && \
mcopy -vi efiboot.img ../../../../LIVE_BOOT/tmp/bootx64.efi ::efi/boot/
cd ../../../../
xorriso \
68
-as mkisofs \
-iso-level 3 \
-o "LIVE_BOOT/debian-custom.iso" \
-full-iso9660-filenames \
-volid "DEBIAN_CUSTOM" \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-eltorito-boot \
isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
--eltorito-catalog isolinux/isolinux.cat \
-eltorito-alt-boot \
-e /EFI/boot/efiboot.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-append_partition 2 0xef LIVE_BOOT/staging/EFI/boot/efiboot.img \
"LIVE_BOOT/staging"