Proyecto 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 76

Universidad Nacional Experimental del Táchira

Vice-rectorado Académico
Decanato de Postgrado
Maestría en Informática
Trabajo de Grado

Desarrollo de una distribución linux para la instalación de una


central telefónica basada en VoIp

Autor: Celido Missael, Guerrero Zambrano


Cédula de Identidad: V-17.107.863
Teléfonos: 0424-7029974 / 0414-1776627
Correo Electrónico: celidomissael@gmail.com
Tutor: Edgar Alirio, Pernía Carvajal
Correo Electrónico: epernia20@gmail.com

Trabajo Especial de Grado presentado como requisito para optar al Título de


MAGÍSTER EN INFORMÁTICA.
San Cristóbal, Noviembre 2021
ACTA DE APROBACION

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

DESARROLLO DE UNA DISTRIBUCIÓN LINUX PARA LA


INSTALACIÓN DE UNA CENTRAL TELEFÓNICA BASADA EN
VOIP

Autor: Celido M. Guerrero Z.


Tutor: Edgar A. Pernía C.
Fecha: 08 – 2021

RESUMEN

Muchas organizaciones no poseen los medios o recursos necesarios para realizar la


inversión en el área de telefonía VoIP, por lo que simplemente utilizan la telefonía
tradicional la cual está entrando en desuso, sin contar el impacto monetario que
representa. Es por esto, que se plantea la elaboración de una distribución basada en
Debian, orientada a equipos de cómputo básicos o con relativamente pocos recursos en
los que se pueda probar o instalar un sistema de central telefónica VoIP de forma fácil
y rápida, que permita a pequeñas organizaciones hacer uso de esta tecnología de forma
privada abaratando costos de telefonía. Para lograr esto, se aplicó la metodología
cascada mejorada, debido a que presenta una mayor flexibilidad entre cada una de sus
fases, permitiendo ciclos, eliminando la rigurosa dependencia entre cada una de las
etapas. Finalmente se obtuvo un LiveDVD que permite probar, configurar e instalar de
forma fácil y practica una central telefónica, para esto se utilizó de base la Distribución
Debian que está basado en el sistema operativo Linux, para la personalización podemos
mencionar entre los paquetes de software más destacados como Asterisk, que nos
provee la funcionalidad de la central, FreePBX nos da una interfaz gráfica para la
administración de asterisk y para los más curiosos se instaló un pequeño pero potente
software de monitoreo llamado Nagios con la finalidad que el usuario pueda apreciar
el estado de algunos de los servicios más importantes de la distribución, todo esto
acompañado de un conjunto de scripts que dan al sistema una mayor versatilidad.

Palabras Clave: VoIP, telefonía, LiveDVD, central telefónica, Debian, Linux,


distribución.

iv
ÍNDICE

ACTA DE APROBACION ..............................................................................................................ii


ACTA DE AUTORIZACIÓN DE PUBLICACION ..............................................................................iii
RESUMEN .................................................................................................................................. iv
ÍNDICE ........................................................................................................................................v
LISTA DE TABLAS Y FIGURAS .................................................................................................... vii
INTRODUCCIÓN....................................................................................................................... viii
CAPITULO I
EL PROBLEMA
1.1 Planteamiento del Problema. ................................................................................... 9
1.2 Objetivo general...................................................................................................... 12
1.3 Objetivos específicos. ............................................................................................. 12
1.4 Justificación de la investigación. ............................................................................. 13
1.5 Alcance del proyecto............................................................................................... 14
CAPITULO II
MARCO TEÓRICO
2.1 Antecedentes de la Investigación. ................................................................................. 7
2.2 Bases Teóricas. ............................................................................................................. 10
2.2.1 Sistema Operativo. .................................................................................................... 10
2.2.2 Kernel de Linux. .................................................................................................... 14
2.2.3 Voz sobre IP o VoIP. .............................................................................................. 16
2.2.4 Arquitectura del sistema de Voz sobre IP. ............................................................ 17
2.2.5 Asterisk. ................................................................................................................. 19
2.2.6 Protocolo SIP. ........................................................................................................ 21
2.2.7 Distribución GNU/Linux. ....................................................................................... 21
2.2.8 LiveDVD de Linux................................................................................................... 21

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.

Tabla 1 Personal involucrado. ..................................................................................... 29


Tabla 2 Personal Involucrado. .................................................................................... 29
Tabla 3 Requisitos Funcionales .................................................................................. 31
Tabla 4 Requisitos no funcionales. ............................................................................. 32
Tabla 5 Requisitos mínimos de hardware ................................................................... 33
Tabla 6 Organización de ficheros ............................................................................... 43
Tabla 7 Resultados de las Pruebas .............................................................................. 56

Índice de Figuras.

Figura 1 Estructura del Kernel .................................................................................... 14


Figura 2 Arquitectura del Sistema de VoIP ................................................................ 18
Figura 3 Módulos de Asterisk ..................................................................................... 20
Figura 4 Metodología cascada mejorado. ................................................................... 25
Figura 5 Arquitectura de hardware ............................................................................. 35
Figura 6 Hardware de red. ........................................................................................... 37
Figura 7 Arquitectura de software de central telefónica ............................................. 39
Figura 8 Arquitectura del Software del DVD instalador ............................................ 47

vii
INTRODUCCIÓN

Internet, una enorme red de equipos de cómputo interconectados a través de diversos


medios, nos ofrece la posibilidad de utilizar un sin número de protocolos, los cuales
nos permiten abarcar un amplio espectro de aplicaciones, entre la que podemos destacar
la VoIP (Voice Over Internet Protocol), esta posibilita transmitir voz a través del
protocolo de internet.
Actualmente las centrales telefónicas basadas en voz sobre IP están conformadas como
una mezcla de hardware y software que vienen a sustituir los sistemas tradicionales de
telefonía que además de abaratar considerablemente los costos de funcionamiento y
operatividad de las organizaciones, proporcionan una plataforma tecnológica de código
abierto (GPL) unificando diversos servicios que antiguamente se ofrecían por separado.
La instalación y configuración de una Central telefónica basada en Voz sobre IP, es un
proceso relativamente complejo y engorroso que requiere sólidos conocimientos en
determinadas áreas, tales como sistemas operativos, redes, programación entre otros.
Lo que se desea realizar en este proyecto es proveer un producto de software que
permita la instalación o prueba, según desee el usuario, de una Central Telefónica
basada en Voz sobre IP, desarrollando para esto una distribución Linux basada en
Debian. Se hace uso de esta distribución ya que presenta múltiples ventajas entre las
que podría destacar una mayor estabilidad y control del sistema sin dejar de lado su
funcionalidad y eficiencia en equipos con pocos recursos de hardware. Todo esto se
presentaría en forma de un LiveDVD, el cual se podría ejecutar y utilizar sin necesidad
de instalarse en el disco duro del computador, utilizando para ello la memoria RAM y
el propio medio como sistema de archivos. Este LiveDVD además proveería una
herramienta de instalación y configuración de la central telefónica en el disco duro del
computador.

viii
CAPÍTULO I

EL PROBLEMA

1.1 Planteamiento del Problema.

La comunicación juega un rol fundamental en prácticamente cualquier ámbito de la


sociedad ya que facilita el intercambio de ideas, opiniones, noticias, entre otros, la
acción de la comunicación es simplemente aquella mediante la cual el emisor envía un
mensaje al receptor, y este lo procesa para su conocimiento o posible utilización, dando
como resultado la transferencia de significado de una persona a otra (Stephen
R,Timothy A. 2009). En las organizaciones es de vital importancia la comunicación ya
que posibilita la interacción entre los diversos actores, internos y externos, lo cual
permite mejorar la operatividad de los procesos productivos y/o servicios que se
desarrollan en las mismas.

En este sentido se han realizado diversos avances en el área tecnológica y en el


desarrollo de software, que han permitido facilitar los procesos de comunicación en las
organizaciones, siendo el sistema operativo Linux un pilar fundamental para este fin.

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.

Existen diversas distribuciones Linux las cuales facilitan ciertos procesos de


administración de las aplicaciones, el conocimiento de dichos procesos no es de gran
importancia para el usuario final. Podemos mencionar como ejemplo de algunas
distribuciones, Debian, Gentoo, Slackware entre otras.

En nuestro caso el principal objeto de estudio consiste en el desarrollo de una


distribución Linux basada en Debian que nos permita realizar el proceso de prueba,
manejo e instalación de una central telefónica de VoIP, haciéndola accesible a
cualquier persona, sin la necesidad que posea conocimientos avanzados en el área.
Utilizaremos de base la distribución Debian ya que es altamente configurable, posee
un alto desempeño, una amplia documentación por lo que será un pilar fundamental en
la utilización del sistema de telefonía VoIP.

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.

Hoy día la mayoría de las distribuciones Linux orientadas a la instalación de centrales


telefónicas VoIP poseen un gran cantidad de aplicaciones que carecen de utilidad para
11

un usuario inexperto lo que hace que se incremente la complejidad en la utilización y


aprendizaje de este tipo de sistemas de VoIP, algunas no poseen un entorno amigable
que permita al usuario realizar pruebas sin temor de producir daños en un sistema ya
instalado.

Este proyecto está dirigido principalmente a personas y organizaciones que no cuentan


con los recursos y/o conocimientos suficientes para la prueba o implementación de un
sistema de telefonía basado en VoIP que les permita la interconexión a través de un
entorno privado y seguro de comunicaciones, por lo que se presenta como una
alternativa orientada a esta rama en particular.

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.

Christopher Negus (2006). Muestra el auge relacionado al desarrollo de software de


código abierto, de alta calidad lo cual ha creado un entorno fértil para las nuevas
distribuciones que no limitan de forma alguna nuestro desarrollo y nos da la libertad de
trabajar con la mayor flexibilidad posible.

Existen diversos autores y bibliografías que nos van a permitir el desarrollo de la


distribución Linux pero uno de los más destacados que podría mencionar y que va a
permitir dar soporte a la mayoría de los procesos a realizar en esta investigación es
Héctor Facundo Arena (2003), en su libro “La Biblia de Linux” nos enseña cada uno
de los elementos del sistema operativo y nos permitirá comprender el sistema y los
fundamentos para el desarrollo de nuestra distribución.
12

Actualmente muchas organizaciones no poseen los medios o recursos necesarios para


realizar la inversión en el área de telefonía VoIP, por lo que simplemente utilizan la
telefonía tradicional la cual está entrando en desuso, sin contar el impacto monetario
que representa. Es por esto que se plantea la posibilidad de hacer accesible una
distribución basada en Debian orientada a equipos de cómputo básicos o con
relativamente pocos recursos en los que se pueda probar o instalar un sistema de central
telefónica VoIP de forma fácil y rápida, que permita a pequeñas organizaciones hacer
uso de esta tecnología de forma privada abaratando costos de telefonía.

El desarrollo de este proyecto nos va a permitir fomentar el uso de una herramienta


libre que va a facilitar los procesos de aprendizaje de esta tecnología ampliamente
utilizada en la actualidad.

1.2 Objetivo general.

• Desarrollar una distribución Linux para la instalación de una central telefónica


basada en VoIP.

1.3 Objetivos específicos.

• Determinar los procesos necesarios para la elaboración de una distribución


Linux basada en Debian.
• Estudiar las características de una central telefónica basada en VoIP.
• Definir los paquetes necesarios para la construcción de la central telefónica
VoIP.
13

• Realizar el ensamble, configuración y adecuación del sistema operativo.


• Realizar pruebas de verificación del correcto funcionamiento de la distribución.

1.4 Justificación de la investigación.

Esta investigación es de gran relevancia ya que va a permitir facilitar el proceso de


instalación y prueba de una central telefónica VoIP, generando así una nueva
herramienta que se diferenciará de otras existentes principalmente por su entorno de
pruebas, sin necesidad de afectar la información almacenada en los equipos de
cómputo. Esto esperamos proporcione al usuario un sistema de telefonía el cual le va a
permitir de forma económica, fácil y simple, realizar la prueba e instalación de la
central telefónica, según sea el caso, sin ningún conocimiento técnico en el área.

Esta distribución beneficiará principalmente a personas y pequeñas organizaciones que


podrán aprovechar los beneficios intrínsecos que tienen estos sistemas de telefonía,
destacando principalmente el abaratamiento de costos, tanto en plataforma como en
comunicaciones dentro de la empresa sin dejar de lado el acceso exclusivo y privado a
una central de VoIP.

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.

Finalmente, en nuestro caso en particular la investigación bibliográfica será de gran


utilidad para el desarrollo del trabajo de investigación, así como la reutilización de
14

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.

1.5 Alcance del proyecto.

Desarrollo de una distribución Linux basada en la distribución Debian para la


instalación y configuración automática de una central telefónica VoIP. Con la
distribución Linux se obtendrá un liveDVD que va a facilitar la prueba o instalación en
disco, según preferencia del usuario de dicha distribución la cual contendrá el software
y las configuraciones necesarias para el correcto funcionamiento de una central
telefónica VoIP, lo que dará la posibilidad de realizar llamadas entre dispositivos
telefónicos que soporten este tipo de comunicación.
CAPÍTULO II

MARCO TEÓRICO

2.1 Antecedentes de la Investigación.

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.

Con el tiempo se creó la necesidad de desarrollar sistemas orientados hacia usos


específicos en diversas áreas como astronomía, matemáticas, comunicaciones, biología
entre otros, para lo que se tomó el núcleo o kernel de Linux, se le añadieron métodos
de instalación y paquetes de software del área particular al que estaba orientado y fue
allí que surgieron compendios conocidos como distribuciones Linux.

Las primeras distribuciones Linux se crearon a inicio de la década de los 90 y


comenzaron a desarrollarse por cuestión de comodidad para los usuarios, evitando
8

engorrosos procesos repetitivos de instalación y configuración del sistema y


determinados paquetes de software. Desde entonces se han desarrollado más de 352
distribuciones según la página oficial del proyecto GNU Linux, demostrándose así que
el modelo de desarrollo de software libre, presenta grandes ventajas sobre los
desarrollos privativos, de hecho, es gracias a este paradigma de desarrollo que las
distribuciones Linux basadas en este sistema operativo se han hecho amigables y
completamente accesibles para todo tipo de usuarios comunes.

El desarrollo de estos sistemas de código abierto y el advenimiento de nuevas


tecnologías han dado paso a desarrollos tan beneficiosos para la humanidad como son
los sistemas de VoIP, ya que permiten la comunicación a grandes distancias y a precios
totalmente accesibles, por lo que ha llegado a masificarse en el mercado internacional.

La tecnología de voz sobre ip también conocida como VoIP, actualmente está


revolucionando el mundo de las telecomunicaciones, desde sus inicios en el año de
1995 en que la empresa VocalTec logró comprimir la voz en paquetes de datos y
transmitirlos por internet, hasta la actualidad, esta tecnología representa una gran
ventaja ya que al utilizar una red existente como la de internet, no requiere de ninguna
infraestructura particular o dedicada como la de telefonía convencional, permitiendo
comunicaciones con funcionalidades avanzadas a precios muy competitivos.

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

Con la creación de los protocolos de VoIP, surgió la necesidad de desarrollar e


implementar un software de telefonía avanzada que permitiese la interacción de los
sistemas tradicionales de telefonía, con los sistemas de VoIP, además de agregar
múltiples funcionalidades a este tipo de soluciones. Actualmente existen diversos
sistemas que permiten hacer uso de una central telefónica basada en voz sobre IP desde
un simple computador, siendo el Asterisk el sistema icónico en este rubro, desarrollado
en lenguaje C originalmente para sistemas Linux, el cual posee mayor soporte en la
actualidad, también desarrolló algunas versiones para otros sistemas operativos tales
como BSD, Mac OS X, Solaris y Microsoft. Madsen, Leif, Jim, Russel (2013).

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.

Podemos destacar la distribución desarrollada por la empresa Fonality la cual está


basada en CentOS llamada TrixBOX la cual tiene la particularidad de proveer una
central telefónica por software y que permite la interconexión de teléfonos de una
10

empresa a la red convencional además de proveer soporte vinculado a la telefonía de


voz sobre IP, lo cual genera directamente un ahorro significativo en los costos de
llamadas internacionales. Una de las principales desventajas de esta distribución es que
su versión gratuita al igual que algunos de los paquetes que la conforman están
completamente obsoletos.

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.

2.2 Bases Teóricas.

A continuación definiremos los conceptos y proposiciones que están dirigidas a


explicar algunos aspectos fundamentales en la elaboración de este proyecto.

2.2.1 Sistema Operativo.

Un sistema operativo permite administrar todos los componentes de un sistema


complejo. Las computadoras modernas constan de procesadores, memorias,
temporizadores, discos, ratones, interfaces con redes, impresoras láser y una gran
variedad de otros dispositivos. En la visión alternativa, la misión del sistema operativo
es asegurar un reparto ordenado y controlado de los procesadores, memorias y
11

dispositivos de E/S entre los diferentes programas que compiten por ellos (A.
Tanenbaum Y A. Woodhull 2007)

Un sistema operativo entonces es un programa que permite administrar hardware y


software de computadora para el usuario. Los sistemas operativos originalmente fueron
diseñados para realizar tareas de hardware repetitivas, centradas en administración de
archivos, ejecución de programas y recepción de comandos del usuario. La interacción
con un sistema operativo se da a través de una interfaz de usuario, permitiendo al
sistema operativo recibir e interpretar instrucciones enviadas por el usuario. Sólo se
necesita enviar una instrucción al sistema operativo para realizar una tarea, como leer
un archivo o imprimir un documento. La interfaz de usuario de un sistema operativo
puede ser tan simple que permita el ingreso de comandos en una línea o tan compleja
que facilite la selección de menús e iconos en un escritorio. (Richard Petersen, 2009)

Componentes y funciones esenciales de un sistema operativo:

• 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.

• Gestión de la memoria principal:


12

El sistema operativo gestiona la memoria conociendo que espacios de memoria está


siendo utilizada y porque procesos, decidiendo que procesos se cargarán en memoria
cuando haya espacio disponible, asignando y reclamando espacio de memoria cuando
sea necesario, administrar el intercambio entre la memoria principal y la memoria
virtual (espacio de memoria utilizado cuando la capacidad de la memoria principal se
agota).

• Gestión del almacenamiento secundario.

Es un espacio reservado en el o los discos con la finalidad de almacenar los programas


que no necesitan estar en la memoria principal y para el intercambio de programas
desde y hacia la memoria principal.

• Sistema de entrada/salida.

Controla el intercambio de información entre el procesador y los dispositivos


periféricos además de gestionar las interrupciones de los dispositivos de entrada/salida,
recordemos que las interrupciones es la forma en que los periféricos solicitan recursos
al sistema. Este sistema está compuesto por un sistema de almacenamiento temporal
denominado caché, una interfaz de controladores de dispositivo y otra para dispositivos
específicos.

• Sistema de archivos.

Este sistema permite la gestión y organización de la información, siendo el responsable


de construir y eliminar archivos, manipular directorios y establecer correspondencias
entre archivos y unidades de almacenamiento además de permitir realizar copias de
13

seguridad de los archivos. Los sistemas de archivos más comunes son FAT, NTFS,
FAT32, ext3, ext4, XFS.

• Sistemas de protección

Es uno de los componentes que proporciona el mecanismo de control de acceso de


programas o usuarios a los recursos del sistema.

• Sistema de comunicaciones

Controla el envío y recepción de la información además de crear y mantener la


comunicación para que las aplicaciones envíen y reciban información manteniendo
conexiones virtuales entre aplicaciones locales y aplicaciones remotas.

• Programas del sistema

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

2.2.2 Kernel de Linux.

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).

El núcleo o en inglés kernel del sistema GNU/Linux, usualmente llamado Linux es el


corazón del sistema y se encarga de iniciarlo para luego poder ser utilizado por
aplicaciones y usuarios. El kernel es la parte básica del sistema operativo Linux y sobre
este descansa el código de los servicios fundamentales para controlar todos los recursos
del equipo.

La estructura del kernel puede separarse en módulos de gestión como los que se
muestran a continuación:

SHELL, COMANDOS Y APLICACIONES

SERVICIOS BASICOS DEL SISTEMA

GESTION DE FICHEROS

GESTION DE GESTION DE GESTION DE


ENTRADA/SALIDA PROCESOS MEMORIA

UTILIDADES DEL NUCLEO

Figura 1 Estructura del Kernel


Fuente: Celido Guerrero (2021)
15

• 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.

• Intercomunicación de procesos: define cómo se comunican las tareas entre sí,


con qué mecanismos y cómo sincronizar grupos de tareas.

• Gestión de entrada/salida: permite el control de los periféricos y la gestión de


los recursos asociados.

• Gestión de memoria: permite la optimización del uso de memoria, el sistema


de paginación y la memoria virtual.

• Gestión de ficheros: define el control y organización de los ficheros del sistema


y el acceso a los mismos.

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

2.2.3 Voz sobre IP o VoIP.

VoIP es Voz sobre IP y son un conjunto normas, dispositivos y protocolos que


permiten la transmisión de voz sobre el protocolo de internet IP. Esta aprovecha el
protocolo TCP/IP para ofrecer conversaciones de voz, y puede utilizarse a todos los
niveles de un entorno empresarial o en el hogar, ya que añade un sinnúmero de ventajas
respecto de un sistema de telefonía tradicional. (Jim M., Russel B., Leif M. , 2019).

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.

• Más de dos personas.


Permite configurar bajo una única línea de acceso, una conferencia en la que un
grupo de personas pueden comunicarse en tiempo real.

• Hardware y software baratos.


Realmente el equipo de hardware y software es bastante económico en la
actualidad y muy accesible desde empresas, hogares y usuarios particulares.

• Altas prestaciones y gran utilidad.


Ofrece llamadas a cualquier lugar del mundo, y desde cualquier lugar del
mundo donde se cuente con una conexión de internet. Nos da una excelente
gestión de llamadas.

• Manejo de otros tipos de datos.


Permite la transmisión de imágenes, video y texto al mismo tiempo que voz.
17

• Esquema de red flexible.


La red encontrada bajo VoIP no necesita tener un esquema o topología en
concreto, ya que da la posibilidad de funcionar en una infraestructura flexible
que puede soportar muchos tipos de comunicación.

• Uso eficiente del ancho de banda.


En general el 50% de una conversación de voz es silencio, por lo que VoIP
rellena esos espacios de silencio con datos de forma que el ancho de banda de
los canales de comunicación no sean desaprovechados. La compresión y la
eliminación de redundancia cuando se transmite voz son también factores que
incrementan la eficiencia del uso del ancho de banda.

• Teletrabajo. Permite trabajar básicamente en cualquier lugar donde se cuente


con una conexión a internet.

2.2.4 Arquitectura del sistema de Voz sobre IP.

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

Figura 2 Arquitectura del Sistema de VoIP


Fuente: Franklin Matango (2016)

• Teléfono IP: es un teléfono adaptado para ser utilizado en entornos IP.


• Softphone: es un software que cumple la función de teléfono bajo un entorno
IP.
• Adaptador ATA: es un adaptador que permite conectar un teléfono
convencional a la red IP.
• SIP: es el protocolo usado por los proveedores de VoIP para iniciar y finalizar
las llamadas.
• B2BUA: es una entidad intermediaria encargada de procesar las
comunicaciones VoIP y retransmitirlas a su destino.
19

2.2.5 Asterisk.

Es un software que permite el funcionamiento de central telefónica (PBX), se


distribuye bajo los términos de licencia GPL o software libre y permite realizar
llamadas dentro y fuera de una organización. Fue desarrollado por el ingeniero en
computación Mark Spencer en el año de 1999 para sistemas operativos GNU/Linux y
a pesar que en la actualidad existen versiones para otros sistemas operativos, el
programa ofrece un amplio rango de funcionalidades y soporte para el sistema
operativo Linux.

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.

Al decir escalable nos referimos a la posibilidad de habilitar o deshabilitar módulos


según las características físicas de los equipos donde se desea instalar y extensible
significa que para poder elaborar un nuevo módulo no es necesario conocer todo el
código de asterisk. (Madsen, Leif, Jim, Russel, 2013).
20

Existen 7 módulos que componen fundamentalmente asterisk.

Figura 3 Módulos de Asterisk


Fuente: Celido Guerrero (2021)

• Núcleo PBX o Core: este es el corazón del programa, permite la carga de


funciones básicas y módulos.
• Recursos: brinda de funcionalidades adicionales al núcleo, como por ejemplo
leer ficheros de configuración, música de espera etc.
• Canales: permite el manejo de módulos de una determinada tecnología.
• Aplicaciones y Funciones: son los módulos que aportan las distintas
herramientas que permiten configurar asterisk.
• CDR: estos módulos permiten controlar la escritura de los registros telefónicos.
• Codecs: permiten codificar y decodificar la información de audio/video que se
debe enviar y recibir. Para ello dispone de distintos codecs.
• Formatos: Permiten la administración de archivos de distintos formatos.
21

2.2.6 Protocolo SIP.

El protocolo Session initiation Protocol o SIP es considerado como el estándar


de facto para la Voz sobre IP. Y desde la versión SIP v2 la cual fue lanzada en 1996 ha
tenido un inmenso crecimiento, dado que el protocolo se creó para que fuese extensible
y modular manteniendo un núcleo funcional pequeño. Este protocolo está basado en
texto, inspirado principalmente en HTML y el paradigma IP. Al ser HTML es
fácilmente legible por el ser humano y fácil de diagnosticar.

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)

2.2.7 Distribución GNU/Linux.

Una distribución GNU/Linux es un sistema operativo basado en el kernel de


Linux que incluye determinados paquetes de software y herramientas orientadas a
satisfacer las necesidades específicas de grupos de usuarios.

2.2.8 LiveDVD de Linux.

Es una distribución del sistema operativo Linux que se almacena en un medio


extraíble bien sea CD o DVD, se ejecuta directamente desde la unidad, sin que
necesite ningún tipo de instalación en el disco duro ya que la memoria RAM funciona
para lo cual usa la memoria RAM como disco duro virtual y el propio medio como
22

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.

Los LiveDVD se elaboran para diversos usos como son;

• Probar un sistema operativo o funcionalidades del mismo sin necesidad


de realizar los cambios en la información contenida en el disco duro.
• Reparación o recuperación de sistemas.
• Eliminación de virus.
• Prueba de nuevas versiones de software.
• Pruebas de seguridad de red.
• Superar algunas restricciones impuestas sobre los equipos.
• Pruebas de hardware.

Están dedicados a tipos de aplicaciones específicas de acuerdo con los


requisitos de las comunidades de usuarios como por ejemplo conocimientos generales,
tutoriales, especificaciones, datos de prueba entre otros.
CAPÍTULO III

MARCO METODOLÓGICO

3.1 Propósito de la Investigación.

Esta investigación tuvo por finalidad la aplicación de conocimiento en la generación


de un producto de software, para ello realizamos un tipo de investigación aplicada la
cual según, Ezequiel Ander-Egg Hernández (2011) “Se trata de investigaciones
encaminadas a la resolución de problemas, que se caracterizan por su interés en la
aplicación y utilización de los conocimientos” (p.42), por lo que diferenciaremos este
tipo de investigación respecto de la básica en que busca la generación de una aplicación
inmediata más que en el desarrollo de teorías. De acuerdo a esta definición, esta
investigación se centró en el desarrollo de una distribución Linux que permitió la
instalación de una central telefónica VoIP.

3.2 Tipo de Investigación.

El tipo de investigación que se desarrolló es de tipo tecnológica. Según Lara


(2012) “tiene como fin obtener un conocimiento para lograr modificar la realidad en
estudio, vinculando la investigación y la transformación”, por lo que se obtuvo de
manera práctica un producto de software el cual nos facilita los procesos relacionados
a la prueba e instalación de una central telefónica VoIP, alcanzando así de la mejor
manera los objetivos propuestos.
24

3.3 Metodología de la investigación.

En este punto se describe la aplicación de la metodología de cascada mejorada,


a utilizar en el desarrollo de la distribución Linux para la instalación de una central
telefónica de VoIP.

En el desarrollo de software fue necesario seguir una metodología que


permitiese simplificar el proceso de creación del producto final y que a medida que
avanzara el proyecto proporcionase los medios necesarios para verificar, corregir, y si
hacía falta, regresar a algún paso anterior, del proceso de desarrollo, con la finalidad
de garantizar la calidad del producto. Los proyectos de desarrollo de código abierto a
veces no siguen el esquema convencional adoptado por otros proyectos. En muchos
casos, dada la iniciativa de una persona se inicia un determinado proyecto y la
participación incluye gente de todo el mundo, cuyos horarios, funciones y aportes son
distintos; lo cual hace difícil su organización. Existen también una gran variedad de
proyectos de código abierto tales como el desarrollo o mejora de bibliotecas de
funciones, actualización de aplicaciones existentes, inclusión de código en alguna
implementación, entre otros.

La elección de la metodología correcta para este trabajo se fundamentó en que


el producto final es una distribución Linux. Este tipo de software no posee muchos de
los elementos que establecen las metodologías tradicionalmente utilizadas en el
desarrollo de software empresarial donde se cuenta con un coordinador, equipo de
trabajo y muchos otros recursos.
25

Dadas estas condiciones se decidió elegir una metodología acertada, de fácil


adaptación a este trabajo, y que permitiría coordinar de manera eficiente cada proceso
para obtener el producto final. El método se llama Waterfall Improved o de cascada
mejorado, llamado así por ser una mejora de la tradicional metodología en cascada, se
caracteriza por presentar una mayor flexibilidad entre cada una de sus fases,
permitiendo ciclos y eliminando la rigurosa dependencia entre cada una de las etapas.

Veamos la metodología de Cascada Mejorado orientado al desarrollo de la


distribución Linux.

Figura 4 Metodología cascada mejorado.


Fuente: Celido Guerrero (2021)
26

El modelo en cascada de cinco niveles, basado en las propuestas de Winston W.


Royce, divide los procesos de desarrollo en las siguientes fases de proyecto: análisis,
diseño, desarrollo, pruebas, funcionamiento y mantenimiento.

• Análisis y definición de requerimientos.

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.

En este punto además se generaron los siguientes productos, alcance de la


distribución, personal involucrado, requisitos de la distribución a desarrollar tanto
funcionales como no funcionales y los requisitos mínimos de hardware para garantizar
el correcto funcionamiento 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

En esta etapa se tradujo el diseño realizado en un producto tangible, que en nuestro


caso es la distribución que permite la instalación de una central telefónica de voz sobre
IP.

• Pruebas de la distribución.

Consiste en probar y demostrar el correcto funcionamiento de la distribución, con


el objeto que cumpla todos los requerimientos definidos anteriormente.

• Funcionamiento y mantenimiento.

Una vez que la fase de pruebas finalizó exitosamente, se procedió a la entrega y


mantenimiento de la distribución.
CAPÍTULO IV

METODOLOGÍA

En este capítulo vamos a desarrollar todos los subproductos derivados de la


metodología especificada anteriormente, aplicados a este proyecto.

4.1 Alcance de la distribución.

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.

4.2 Análisis y definición de Requerimientos.

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

4.2.1 Personal Involucrado.

Tabla 1 Personal involucrado.

Nombre Edgar Pernía

Rol Tutor

Categoría Profesor Universitario


profesional

Responsabilidad Es el responsable de asesorar y supervisar el proceso


de desarrollo del proyecto.

Fuente: Celido Guerrero (2021)

Tabla 2 Personal Involucrado.

Nombre Célido Guerrero

Rol Tesista

Categoría profesional Estudiante de Maestría

Responsabilidad Es el responsable de ejecutar el desarrollo


del proyecto.

Fuente: Celido Guerrero (2021)


30

4.2.2 Funcionalidad del Producto.

• El producto de software debe permitir la prueba de una central telefónica basada


en VoIP desde un LiveDVD sin la necesidad de instalarse en el computador que
actuara de servidor.

• Debe permitir la instalación de la distribución en el disco duro del computador


a ser utilizado como servidor.

• Posibilitar la configuración automática básica de los paquetes requeridos para


el funcionamiento básico de la central telefónica basada en VoIP.

• Proveer una herramienta de administración y manejo de la central telefónica


basada en VoIP.

4.2.3 Requisitos de la Distribución a Desarrollar.

Estos requisitos serán divididos en requisitos funcionales, requisitos no


funcionales y requisitos de hardware.

4.2.3.1 Requisitos funcionales.

Los requisitos funcionales establecen los servicios que debe proporcionar la


distribución y determinan la funcionalidad de la distribución.
31

Requisito Descripción del Requisito

1 La distribución debe contar con un sistema que permita la


instalación de la misma en el disco duro del computador.

2 Debe haber un script instalador básico que permita realizar el


proceso de instalación y configuración de forma automática.

3 Debe poder gestionarse un mínimo de 2 usuarios de telefonía VoIP.

4 Los usuarios del sistema VoIP deben estar en la misma red LAN.

5 El equipo servidor debe poseer por lo menos 2 GB de Memoria


RAM.

6 El Servidor y los Equipos de comunicaciones VoIP (Teléfono SIP,


Softphone) de los usuarios deben poderse comunicar mediante una
llamada.

7 El instalador del sistema en el disco duro debe permitir la


configuración automática del sistema de VoIP.

8 La distribución debe proporcionar una herramienta de


administración del sistema de VoIP.

9 La distribución debe proporcionar una herramienta básica de


Monitoreo del Equipo donde está funcionando la central telefónica
basada en VoIP

10 La distribución debe ser desarrollada para una arquitectura de


64bits.
32

11 El sistema debe desarrollarse bajo el concepto de software libre,


haciendo uso de la distribución Linux Debian como base para el
desarrollo del sistema.

Tabla 3 Requisitos Funcionales

Fuente: Celido Guerrero (2021)

4.2.3.2 Requisitos no funcionales.

Los requisitos no funcionales describen las restricciones, cualidades o atributos


que el sistema debe satisfacer, tales como su confiabilidad, utilidad, interfaces entre
otros.

Tabla 4 Requisitos no funcionales.

Requisito Descripción del Requisito

1 Tanto el LiveDVD como también el sistema que se instala en el disco


duro deben poseer un entorno de escritorio básico.

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.

3 La distribución debe poseer un sistema que funcione en forma de


LiveDVD.
33

4 Debe poder permitir realizar una llamada entre al menos 2 teléfonos


IP o softphones, conectados en la misma red.

5 Debe poder visualizar fácilmente la dirección IP del equipo.

6 Se debe poder acceder a las interfaces administrativas desde el


escritorio a través de accesos directos.

7 Se debe establecer un sitio web o blog que permita la descarga de la


distribución y el manual básico de usuario.

8 El sitio web o blog, debe mostrar un video de como probar la


distribución desde un PenDrive.

Fuente: Celido Guerrero (2021)

4.2.3.3 Requisitos mínimos de hardware.

Equipo que funciona como servidor o central telefónica VoIP.

Puede funcionar perfectamente en cualquier equipo que cuente con las siguientes
características:

Tabla 5 Requisitos mínimos de hardware


Características de Hardware Requerido
Procesador 2.0 GHz Tarjeta de red de al menos 10/100Mbps.

Memoria RAM ≥ 2GB Mouse Genérico.


Monitor Genérico. Teclado Genérico.
Disco duro ≥ 20GB Monitor o pantalla
Fuente: Celido Guerrero (2021)
34

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.

4.2.4 Diseño de la Distribución.

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.

Para el desarrollo de la distribución se dividió el sistema en dos componentes


fundamentales como son la Arquitectura de Hardware y la Arquitectura de Software.
En la primera se establecieron los componentes físicos de hardware necesarios para la
conformación de la central telefónica basada en VoIP y en la segunda se definieron los
componentes de software necesarios para el correcto funcionamiento y administración
de la central telefónica basada en VoIP.

4.2.4.1 Arquitectura de Hardware.

Está representado gráficamente por la figura.


35

Figura 5 Arquitectura de hardware


Fuente: Celido Guerrero (2021)

Central Telefónica VoIP.


En nuestro caso, la central telefónica debe consistir en una computadora
personal la cual permite el funcionamiento como central telefónica de VoIP
mediante un conjunto de software especializado orientado para tal fin. Facilitando
así conectar un número determinado de teléfonos para hacer llamadas entre sí
dentro de una misma organización. Para el correcto funcionamiento de la
distribución se requiere que el equipo tenga ciertos componentes de hardware que
van a garantizar un buen desempeño del sistema.

• Procesador.

Constituye la pieza fundamental para la ejecución del conjunto de


instrucciones, gestión de memoria y operaciones enteras y punto flotante. Los
equipos a trabajar como central telefónica deberían tener al menos procesadores
de 64 bits.
36

• Memoria.

La memoria del computador se refiere a dispositivos de almacenamiento de


la información ya sean de forma temporal, como por ejemplo las memorias de
acceso aleatorio o de forma permanente como los discos duros. Actualmente las
características deseables en las memorias es que sean rápidas, económicas y de una
gran capacidad.

Normalmente el equipo utilizado como central telefónica debe poseer al


menos una memoria de acceso aleatorio y opcionalmente un disco duro que permita
dar una mayor versatilidad al servidor. En nuestro caso el equipo principal o Central
telefónica debe poseer una capacidad de almacenamiento de por lo menos 2 GB de
memoria RAM y según sean las necesidades del usuario, un disco duro con una
capacidad igual o mayor a 20 GB que permita el almacenamiento permanente de la
distribución.

• Interfaz Externa.

Estas se utilizan generalmente para conectar el servidor con los dispositivos


externos. En nuestro caso consideraremos interfaces de interconexión de
componentes periféricos o comúnmente conocidas como PCI o las integradas en
los equipos de cómputo, las cual van a permitir la comunicación entre los diferentes
dispositivos los cuales poseen diversas velocidades de transmisión de datos.

• Hardware de Red y Dispositivos de comunicación.

Va a permitir la interconexión entre el servidor que actúa como central


telefónica y los diferentes equipos de comunicación tanto de forma cableada como
37

de forma inalámbrica. Al momento de instalar la central telefónica se puede hacer


mediante un esquema tradicional de configuración de hardware como se muestra a
continuación.

Figura 6 Hardware de red.


Fuente: Celido Guerrero (2021)

Tenemos entonces como Hardware de Red: Modem, Router y switch. Como


dispositivos de comunicación: Softphones y Teléfonos IP.

4.2.4.2 Arquitectura de Software.

El software es uno de los aspectos más importantes considerados en el desarrollo de


esta distribución. La razón es que permite integrar un conjunto de aplicaciones de
38

código abierto, por ejemplo, scripts administrativos, interfaces gráficas, y software


especializado que permite la funcionalidad de central telefónica VoIP como lo es
Asterisk de forma tal que trabaje como una sola unidad.

A continuación vamos a especificar la arquitectura que va a definir los aspectos


fundamentales de funcionamiento de la distribución que se va a instalar en nuestro
equipo servidor de VoIP, sin dejar de lado; canales, ficheros, interfaz de administración
de la aplicación asterisk que va a ser el corazón funcional de este proyecto y el
monitoreo del equipo de cómputo.

4.2.4.2.1 Arquitectura de software de la central telefónica.

La central telefónica es el equipo de cómputo responsable de probar y alojar


nuestra distribución, el mismo permite utilizar nuestra conexión estándar de internet
como medio de una plataforma de bajo costo para realizar llamadas por la red. La
arquitectura de software es como se muestra a continuación.
39

Figura 7 Arquitectura de software de central telefónica


Fuente: Celido Guerrero (2021)

4.2.4.2.2 Sistema Operativo.

Debian es un sistema operativo basado en Linux el cual es ampliamente


utilizado para la instalación y configuración de centrales telefónicas ya que brinda
un amplio soporte al software instalado además, como este sistema es de código
abierto lo hace ideal para las constantes mejoras y evolución.

4.2.4.2.3 Sistema Asterisk.

Asterisk se ha desarrollado cuidadosamente para lograr la máxima


flexibilidad. Partiendo de un núcleo o sistema central alrededor del cual se
encuentran un conjunto de API´s. Este avanzado núcleo permite gestionar la
interconexión interna de la PBX, códecs, protocolos específicos e interfaces de
hardware.

Internamente el núcleo de asterisk maneja las siguientes herramientas.


40

• Lanzador de las aplicaciones: Permite ejecutar los servicios o aplicaciones tales


como buzón de voz, directorios o mensajes.

• Conmutación de la PBX: Este es el aspecto esencial y más importante de


asterisk ya que permite conectar llamadas entre varios usuarios haciendo uso
de diferentes interfaces de hardware y software, también nos permite
automatizar tareas.

• Traductor de Códecs: Encargado del manejo de los diferentes módulos de


códecs, los cuales se adaptan a las necesidades de los usuarios permitiendo
lograr un balance óptimo entre calidad del audio y uso del ancho de banda.

• Administrador de la entrada y salida: Permite la administración de carga


haciendo uso de tareas de bajo nivel, las cuales permiten un óptimo desempeño
de la PBX.

4.2.4.2.3.1 Módulos API.

Mediante el uso de interfaces programables de aplicaciones o API´s,


Asterisk logra una abstracción entre sus funciones bases, y la amplia variedad de
tecnologías existente en el área de la telefonía. La arquitectura modular, permite a
Asterisk integrar el hardware usado en la telefonía tradicional y las novedosas
tecnologías de transmisión de voz mediante conmutación de paquetes. La
capacidad para cargar diferentes módulos de codecs le permite soportar
transmisiones de voz a través de conexiones lentas, tales como las conexiones a
través de módems telefónicos, así como proveer una alta calidad de audio sobre
conexiones sin restricciones de ancho de banda.
41

Las API´s de asterisk, mas importantes que se contemplan en el desarrollo de esta


distribución son las siguientes.

• API de canal: maneja el tipo de conexión por la que se recibe una llamada
mediante la carga dinámica de módulos.

• API de aplicación: permite que múltiples aplicaciones sean ejecutadas para


llevar a cabo distintas funciones, buzón de voz, listado de directorios y en
general cualquier otra tarea que los sistemas PBX. Es importante destacar que
permite un uso y desarrollo flexible de los módulos los cuales podrán ejecutar
cualquier aplicación.

• API de traducción de codecs: realiza la carga de los módulos que permiten la


codificación y decodificación de los distintos formatos de audio utilizados,
como por ejemplo GSM, uLaw, aLaw e incluso MP3.

• API de formato de ficheros: maneja la escritura y lectura de los diferentes


formatos de archivo utilizados para el almacenamiento de datos.

4.2.4.2.3.2 Interfaces y canales.

Todas las llamadas entrantes o salientes son realizadas a través de una


interfaz, bien sea SIP, Zaptel, H.323, IAX, etc, dichas llamadas son colocadas o
recibidas individualmente en su propio canal. Estos canales pueden estar
conectados o no a un canal físico o lógico como son los canales SIP o IAX. Cuando
se realiza una llamada a asterisk a través de un canal, el plan de marcado es el que
define que hay que hacer con esta, por ejemplo determina si la llamada será
contestada a otro teléfono, desviada o redirigida al buzón de voz.
42

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.

Asterisk utiliza un driver (típicamente llamado chan_xxx.so) para soportar


cada tipo de canal. En nuestro caso particular trabajaremos específicamente con el
driver más nuevo llamado chan_PJSIP.

PJSIP es una biblioteca de comunicación multimedia de código abierto que


implementa protocolos basados en estándares como SIP,SDP,RTP,STUN,TURN e
ICE. Combina el protocolo de señalización SIP con la estructura multimedia y la
funcionalidad de recorrido NAT en una API de alto nivel que es portátil y muy útil
en diversos tipos de sistemas. Es compacto y con multitud de funciones.

4.2.4.2.3.3 Organización de los ficheros.

La siguiente tabla muestra los archivos de configuración más importantes


de asterisk.
43

Tabla 6 Organización de ficheros

/etc/asterisk En este directorio se almacenan todas las configuraciones


de asterisk, exceptuando las de interfaces físicas
/usr/sbin Contiene todos los scripts y programas ejecutables
/usr/lib/asterisk En este directorio se encuentran objetos binarios
específicos de asterisk.
/usr/lib/asterisk/modules Contiene los módulos de Asterisk que hemos compilado.
/usr/include/asterisk Archivos de cabecera utilizados para construir
aplicaciones, drivers y otros módulos.
/var/lib/asterisk/agi-bin Directorio que contiene los scrript AGI utilizados por el
plan de marcado.
/var/lib/asterisk/astdb Contiene la Base de datos de asterisk que a su vez
mantiene información de configuración.
/var/lib/asterisk/keys Claves privadas y públicas usadas dentro de Asterisk
para la autenticación RSA.
/var/lib/asterisk/mohmp3 Archivo de sonido en formato mp3 utilizados por la
aplicación.
/var/lib/asterisk/sounds Archivos de audio, mensajes, contestadora entre otros,
usados por la aplicación
/var/run/asterisk.pid En este directorio se encuentra el identificador de
proceso de ejecución de asterisk.
/var/spool/asterisk pipe utilizada para la administración remota de la
aplicación.
/var/spool/asterisk/outgoing se guardan el registro de llamadas entrantes, los buzones
de voz de cada usuario, etc.
/var/log/asterisk Aquí se guardan los log de Asterisk.
Fuente: Russel Bryant (2011)
44

4.2.4.2.3.4 Plan de Marcado.

El plan de marcado son un grupo de reglas que le indican a la central


telefónica que hacer o cómo manejar los números marcados por el usuario. El
dialplan hace la función de una tabla de enrutamiento de llamadas, cada número
que se marca lee la información del plan de marcado y después decide hacia donde
se dirigen. Estos números pueden ingresar o salir del sistema.

4.2.4.2.3.5 Configuración.

Todas las operaciones de asterisk son regidas por un conjunto de archivos


de configuración en texto simple. Estos archivos manejan desde la asignación de
un número de extensión hasta la configuración de interfaces de hardware.

A continuación se muestran los archivos más relevantes para lograr un


óptimo funcionamiento de nuestra central telefónica.

asterisk.conf: este es uno de los archivos de configuración más importantes


ya que nos permite cambiar diversos aspectos como la ubicación de varios
directorios usados por asterisk para almacenar archivos de configuración, archivos
de registro, archivos de biblioteca y scripts además permite establecer los permisos
de conexión y propiedades de un socket para la conexión desde una consola remota.
Facilita la especificación de opciones de línea de comandos predeterminada.

extensions.conf : nos permite establecer la configuración del plan de


marcado de asterisk, usuarios, buzón de voz etc. Controla cómo se manejan y
45

enrutan las llamadas entrantes y salientes. Aquí es donde se configura el


comportamiento de todas las conexiones a través de la central telefónica.

El contenido de "extensions.conf" está organizado en secciones, que pueden


ser para configuraciones y definiciones estáticas, o para componentes ejecutables
del plan de marcado, en cuyo caso se denominan contextos. Las secciones de
configuración son generales y globales y el administrador del sistema define
completamente los nombres de los contextos. Un tipo especial de contextos son las
macros, etiquetadas por un nombre definido por el usuario con el prefijo macro-.
Estos son patrones de ejecución reutilizables, como procedimientos en un lenguaje
de programación.

pjsip.conf: contiene las instrucciones de como asterisk debe interactuar con


dispositivos VoIP. Este archivo permite reutilizar secciones de código comunes a
varias extensiones y permite separar a nivel lógico los diferentes parámetros de
configuración de la extensión, el tipo de transporte utilizado (tcp, udp, tls), la
autenticación y la identificación de la identidad de a extensión.

modules.conf: en este archivo especificamos los módulos o aplicaciones que


deseamos cargar durante la ejecución de asterisk.

logger.conf: permite especificar el lugar donde se desean almacenar los


archivos de registro y el nivel de detalle con el que se desean guardar.
46

4.2.4.2.4 Aplicaciones de usuario.

Está conformada por un conjunto de programas informáticos diseñados


como herramientas para permitir al usuario la utilización de la central telefónica,
es decir van a facilitar la configuración y correcto uso del sistema, como por
ejemplo navegadores web, entornos de escritorio, programas de edición de texto,
etc.

4.2.4.2.5 FreePBX.

Es una interfaz web intuitiva, fácil de usar, personalizable y con fácil


integración a otras aplicaciones que permite la utilización de Asterisk de forma
sencilla y sin extensos conocimientos de programación o desarrollo de sistemas.

Algunas de las características y utilidades más importantes son:

• Permite agregar o cambiar cuentas de correo de voz y extensiones en


cuestión de segundos.
• Soporte nativo de clientes SIP, IAX y ZAP.
• Admite todas las tecnologías troncales compatibles con Asterisk.
• Permite crear menús interactivos de recepcionista digital (IVR).
• Manejo de Cola de llamadas.
• Permite la carga de música de espera personalizada.

4.2.4.2.5 Nagios.

Es una herramienta que en nuestro caso proporciona el monitoreo de todos


los componentes incluidas aplicaciones, servicios, sistema operativo, protocolos de
47

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.

4.2.4.3 Arquitectura del Software del DVD Instalador

Está conformado por un sistema operativo Debian que permite la prueba,


instalación y configuración automática de una central telefónica basada en VoIP, para
esto hace uso de un entorno grafico LXDE que contiene en su escritorio el acceso a
diversas opciones tales como instalación del producto en el disco duro, interfaz
administrativa de la central telefónica, aplicación de monitoreo de aplicaciones del
equipo y un script instalador de la distribución en el disco duro del computador.

Figura 8 Arquitectura del Software del DVD instalador


Fuente: Celido Guerrero (2021)

4.2.5 Desarrollo de la Distribución.

Para el desarrollo de esta distribución, se procedió a dividir su elaboración en


distintas secciones, las cuales serían pilar fundamental de esta fase metodológica.
48

4.2.5.1 Descripción General.

Se instaló y configuró un computador de trabajo con el sistema operativo debían


10 Buster, el equipo debe contar con suficiente espacio en el disco duro para poder
albergar las imágenes (.iso) que se van a generar y los sistemas de archivos, tanto los
necesarios para crear el LiveDVD así como también los requeridos por el sistema
comprimido del instalador al menos unos 320GB, una memoria ram de 8GB y un
procesador i7 de 2Ghz. Ya que se realizan procesos de compilación y generación de
imágenes (iso), que en un equipo con pocos recursos demora un tiempo considerable.
Luego de esto se crearon dos sistemas de archivos; el primero que fue utilizado por el
LiveDVD y el segundo por el instalador en el disco duro, cada uno con un conjunto de
paquetes, scripts y configuraciones instaladas que permitirán desempeñar el rol para el
cual fueron diseñados. Todo esto bajo un directorio raíz simulado. Seguidamente estos
dos sistemas de archivos fueron comprimidos y utilizados como pieza fundamental en
el desarrollo tanto del LiveDVD como del instalador en disco. Finalmente se desarrolló
el script que permite facilitar la instalación de la distribución.

4.2.5.2 Sistema de archivos para el LiveDVD e instalador en disco duro.

En la máquina de desarrollo se instaló el sistema operativo Debian,


seguidamente se instalaron el conjunto de aplicaciones necesarias para la elaboración
de la distribución, entre los más importantes podemos mencionar:

• Debootstrap. que nos permite instalar un sistema de archivos base de


Linux Debian en un directorio que seleccionemos.

• squashfs-tools. para poder generar un sistema comprimido de archivos


de solo lectura para Linux.
49

• Xorriso. que nos permitirá generar la imagen iso que contendrá la


distribución.

• Grub. Es un cargador de arranque múltiple, para elegir el sistema


operativo que deseamos iniciar.

Seguidamente se crearon dos directorios, el primero que albergó el sistema de


archivos del LiveDVD y el segundo que tendría el sistema de archivos a ser instalado
en el disco duro.

En el directorio que creamos para albergar el sistema LiveDVD se comenzó


descargando el sistema de archivos base del sistema Debian, luego se accedió a lo que
se conoce como directorio raíz simulado o entorno enjaulado donde se configuro el
sistema de forma tal que se pudieran ejecutar los procesos dentro de este ambiente
confinado, seguidamente se realizaron configuraciones básicas sobre este sistema, tales
como, definición de nombre del equipo, configuración de los parámetros de red,
configuración de repositorios y definición de la localidad. Luego de esto se procedió a
instalar cada uno de los paquetes que permitieron dar la funcionalidad inherente a la
distribución que se estaba desarrollando.

Se instalaron y configuraron dentro del directorio raíz simulado el corazón de


nuestra distribución los paquetes Asterisk que viene a ser la central telefónica,
FreePBX el que permite la administración de asterisk y Nagios que permite realizar el
monitoreo de algunos servicios. Para esto se descargaron los paquetes comprimidos de
Asterisk, FreePBX y Nagios respectivamente, se descomprimieron, compilaron,
instalaron y configuraron cada uno, adicionalmente se agregaron las librerías, plugins
50

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.

Para el LiveDVD, ya no se requieren hacer mayores configuraciones más que


las del gestor de arranque o grub adaptado a lo que sería el inicio como LiveDVD, para
esto se configuraron los archivos staging/isolinux/isolinux.cfg,
staging/boot/grub/grub.cfg los cuales definen los puntos de inicio del sistema
operativo, elementos del menú de inicio, tiempos de inicio, colores entre otras
características.

Para el directorio que contiene el sistema que se instalara en el disco duro, se


genera dinámicamente al momento de la instalación los archivos etc/fstab y se
configura dinámicamente el gestor de arranque o grub mediante los comandos grub-
install y config-grub.
51

Posteriormente se comprimió el directorio de instalación en disco y se mueve


al directorio del LiveDVD, para luego generar mediante el comando mksquashfs un
sistema de archivos de lectura altamente comprimido, utiliza la compresión zlib para
comprimir archivos, inodos y directorios.

Finalmente se genera la imagen (.ISO) llamada kalipex.iso que vendrá a ser el


producto final.

4.2.5.3 Instalador de distribución en disco.

Se elaboró un pequeño script que cumple la función de facilitar la instalación y


configuración automática de la distribución kalipex en el disco duro del computador,
dicho script se almacenó en el directorio /root/Escritorio del archivo comprimido del
LiveDVD para que desde allí se pudiese llevar a cabo la instalación. Este archivo
básicamente realiza una serie de procesos automáticos prácticamente con muy poca
asistencia por parte del usuario.

Los procesos que lleva a cabo el instalador son los siguientes:

• Selección del disco duro.

Define en donde se va a realizar la instalación, es la única acción que


requiere participación del usuario, ya que se le pregunta solamente que seleccione
el disco donde desea realizar la instalación de la distribución.

• Particionamiento del disco.


52

Seguidamente se realiza el particionamiento del disco duro, se


contemplaron 3 particiones la primera es boot que contiene los archivos de arranque
del sistema operativo, la segunda partición es swap o memoria de intercambio para
almacenar archivos temporales y reducir así el uso de la ram, finalmente la tercera
partición es el directorio raíz

• Montaje de directorios.

Se monta el directorio raíz y se descomprime el fichero que contiene el árbol


de directorios del sistema operativo, se procede luego a montar la partición boot en
nuestro árbol de directorios, se genera haciendo uso del comando chroot, que
permite ejecutar comandos en un entorno enjaulado, el fichero fstab y la instalación
y configuración automática del gestor de arranque o grub.
CAPÍTULO V

PRUEBAS DE LA DISTRIBUCIÓN

5.1 Pruebas caja negra de la distribución.

Una vez desarrollada la distribución se procedió a probar y demostrar el


correcto funcionamiento de la misma. Para ello haremos uso de la prueba Caja Negra.

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.

A continuación se presenta la descripción de las pruebas realizadas sobre la


distribución.

• Arranque del Equipo Servidor.

Esta prueba consiste en introducir el LiveDVD en la unidad respectiva,


perteneciente al equipo designado. La idea es comprobar el correcto inicio del
sistema operativo y la correcta carga de los servicios que se van a desplegar en la
memoria ram del computador.
54

• Prueba de la central telefónica.

En esta prueba se inicia la interfaz administrativa de la central telefónica, se


hacen pruebas de la correcta carga de las interfaces web, del correcto
almacenamiento de parámetros luego de realizar algunas configuraciones y
finalmente se procede a agregar algunas nuevas extensiones y probarlas con los
Softphones.

• Prueba de llamadas entre extensiones.

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.

• Prueba de herramienta de monitoreo.

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

• Prueba de instalador en disco.

Esta prueba consiste en realizar la instalación del sistema comprimido en el


disco duro del computador designado como servidor o central telefónica. El
instalador debe realizar correctamente las siguientes acciones: Definir disco de
instalación, particionar disco y definir el tipo de cada partición, definir uso de la
partición, limpiar las particiones, generar correctamente archivos de configuración,
descomprimir correctamente el sistema de la distribución, en el disco prueba de
correcta instalación y funcionamiento en disco duro de la distribución.

• Prueba de correcta instalación y funcionamiento en disco duro de la


distribución.

Esta prueba se realiza luego de la instalación de la distribución en el disco


duro del computador con la versión Live DVD, luego de extraer el DVD de la
unidad y reiniciar el equipo para que arranque por la unidad de disco duro, se
verifica el correcto inicio del grub, carga de kernel, servicios, aplicaciones y del
sistema en general para luego realizar las pruebas de la central telefónica con las
extensiones pre configuradas. En nuestro caso se procedió al uso de dos SoftPhones
los cuales estaban conectados en la misma red que el equipo servidor estos
teléfonos se configuraron con las extensiones 200 y 201 respectivamente y se
procedió a realizar una llamada entre ambos dispositivos.
56

5.2 Resultados de las Pruebas.

En esta sección se muestran de forma tabular los resultados de las pruebas realizadas
sobre la distribución.

Tabla 7 Resultados de las Pruebas

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

Los costos que representa la implementación de una central telefónica basada


en VoIP, sin contar con los altos costos tecnológicos y de servicios profesionales hacen
el desarrollo de esta distribución una de las mejores opciones al momento de probar e
instalar una central telefónica de forma simple, práctica y rápida esto se debe a su
escalabilidad, alta disponibilidad y su baja inversión tanto en hardware así como en
software. Esta distribución viene a ser una de las opciones gratuitas más llamativa y
actualizada, con la mejor relación costo beneficio del mercado.

Se pudo determinar eficazmente cada uno de los procesos que permitieron la


elaboración de la distribución tomando como base para este desarrollo la metodología
cascada mejorado que por su versatilidad y flexibilidad entre cada una de sus fases nos
permitió llevar a buen término el desarrollo de la distribución.

Se evaluaron las características de la central telefónica y se pudo apreciar que


la herramienta de software que nos proporcionaría mayor utilidad tendría que ser
modular ya que nos daría la posibilidad de eliminar o agregar diversas funcionalidades
a la central telefónica.

Los paquetes utilizados en esta distribución fueron cuidadosamente probados y


seleccionados para lograr simplicidad, utilidad y robustez en la funcionalidad de la
central telefónica, destacándose; asterisk que provee la funcionalidad de central
telefónica y FreePBX que nos da acceso a una interfaz de usuario amigable para el
control de asterisk .

El desarrollo y ensamble de esta distribución en Linux basada en Debian dio


cabida a un sistema escalable de gran robustez, que permite la prueba e instalación de
58

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.

El LiveDVD obtenido nos provee principalmente de portabilidad, facilitando


así la utilización de este tipo de sistemas de forma temporal, en cualquier lugar donde
estén presentes los recursos requeridos, además de la capacidad para solventar los
problemas de comunicación en cualquier grupo u organización. El instalador garantiza
la posibilidad del almacenamiento en disco de la distribución convirtiendo así cualquier
equipo en una central telefónica basada en VoIP. Sin dejar de lado las herramientas y
las configuraciones previas que facilitan la administración de la central telefónica
VoIP.

El alcance de este proyecto se fundamentó principalmente en el desarrollo de


una distribución Linux que permitiese la prueba, instalación y configuración de forma
automática de una central telefónica basada en VoIP, obteniendo así dos productos, los
cuales fueron: un LiveDVD y un Instalador en disco, pasando por un conjunto de
pruebas que se superaron exitosamente, cumpliendo así con cada uno de los objetivos
planteados inicialmente para el desarrollo de este proyecto.

6.2 Recomendaciones.

El proceso de desarrollo de una distribución requiere de una cuidadosa


planificación sobre la principal funcionalidad que se le desea dar a la misma,
adicionalmente es recomendable utilizar un computador con una alta capacidad de
procesamiento y memoria RAM para la generación de la distribución ya que aunque
no es limitativo, los procesos de compilación tanto del kernel de Linux así como
también de algunos paquetes de software, requieren de tiempos de espera bastante
prolongados, por lo que es de gran utilidad contar con un equipo actualizado.
59

Se recomienda entre cada iteración para la generación de una imagen .iso


completamente funcional, realizar respaldos al obtener versiones funcionales, de forma
tal que si se presenta un problema al agregar un nuevo paquete de software, no tenemos
que repetir el proceso desde el comienzo.

Es importante realizar pruebas individuales de cada nueva funcionalidad que se


desee integrar a la distribución. Adicionalmente hay que mantener la directriz de
simplicidad, sencillez y facilidad para usuarios que no cuenten con mucha experiencia
con Linux.

Como mejora se propone la generación de esta distribución para diversas


arquitecturas de hardware para poder así tener un producto más versátil.
60

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.

[4] Pressman, R. (2005). Ingeniería del Software: Un Enfoque Práctico. 6º Edición:


McGraw Edición. McGraw-Hill.

[5] Stephen R,Timothy A. (2009). Comportamiento Organizacional.13° Edición:


PEARSON.

[6] Stephen Bosch, Stefan Wintermeyer (2009). Practical Asterisk 1.4 and 1.6 From

Beginner to Expert. Illinois : Addison-Wesley Educational Publishers Inc.

[7] Neil Cherry (2006). Linux Smart Homes For Dummies. Hoboken:United States.

Wiley Publishing, Inc.

[8] Julio Lopez y Francisco Montoya (2008).VoIP y Asterisk Redescubriendo la

Telefonía: Distrito Federal Mexico. Alfaomega Grupo Editor, S.A.

[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

[12] Roger, Francesc (2003). Sistema operativo GNU/Linux básico: UOC


61

[13] A. Tanenbaum Y A. Woodhull (2007). Diseño de Sistemas Operativos y


aplicación: Prentice Hall of India.

[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.

[17] Ezequiel Ander-Egg Hernández (2011). Aprender a investigar: Editorial Brujas.

[18] Héctor Facundo Arena (2003). La Biblia de Linux: Manuales Users, en Espanol:
Mp Ediciones Corp.

[19] Josep Esteve (2017). El kernel: UOC.

[20] Lara Márquez, Juan. (2012). La Investigación Tecnológica: Universidad del


Callao, Perú.

[21] Winston W. Royce. (2019). Recuperado de


https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/el-modelo-en-cascada/

[22] Alejandro, Juan (2011). Proposal of an asterisk PBX: University of CienFuegos

[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

[24] Gentoo Foundation (2017). Gentoo AMD64 Handbook. Recuperado de

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

[26] Larry Green(1997).Guía de Linux Para el Usuario. Recuperado de

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

Procedimiento general para la modificación de la distribución.

Descargamos nuestra imagen de kalipex.iso del siguiente enlace:


https://mega.nz/file/9N5w2QiI#ba-tX3_ED-_nTatJYb4NNR--
yjUyHedhmwBkM_bczc0
Instalamos los siguientes paquetes que nos van a ser de utilidad durante el proceso.
apt-get update
apt-get install \
cdebootstrap \
cdebootstrap-static \
squashfs-tools \
xorriso \
isolinux \
syslinux-efi \
grub-pc-bin \
grub-efi-amd64-bin \
live-build \
syslinux \
mtools

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

rsync –av LIVE_BOOT/chroot/usr LIVE_BOOT/kalipex/

En este punto ya podemos modificar cualquiera de los dos árboles de directorios.


Supongamos que deseamos modificar el árbol del LiveDVD
Vamos a entrar en el directorio enjaulado a través del paquete bootstrap mediante el
comando.
cdebootstrap --arch=amd64 buster LIVE_BOOT/chroot
LANG="es_ES.UTF-8" systemd-nspawn -D LIVE_BOOT/chroot
printenv PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/sbin/

Ya dentro de este entorno podemos agregar o eliminar los paquetes deseados.

history –c //para limpiar el historial de la consola de comandos


exit // para poder salir del entorno enjaulado.

Realizamos las mismas modificaciones en el directorio enjaulado de


LIVE_BOOT/kalipex.
Habiendo realizado los cambios deseados ya podemos volver a crear nuevamente
nuestro LiveDVD modificado. Para esto eliminamos del directorio
LIVE_BOOT/kalipex la carpeta usr/ y comprimimos el directorio.

rm -r LIVE_BOOT/kalipex/usr
cd LIVE_BOOT/kalipex
tar -czf ../kalipex.tar.gz ./*

Ahora movemos el comprimido generado al directorio LIVE_BOOT/chroot/


cd ..
mv kalipex.tar.gz chroot/
Ahora vamos a generar nuestro nuevo archivo kalipex.iso mejorado, con la siguiente
secuencias de comandos.
66

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
---------------------

cat <<'EOF' >LIVE_BOOT/staging/isolinux/isolinux.cfg


UI vesamenu.c32
MENU TITLE Boot Menu
DEFAULT linux
TIMEOUT 600
MENU RESOLUTION 640 480
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std

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

linux ($root)/live/vmlinuz boot=live


initrd ($root)/live/initrd
}
menuentry "Debian Live [EFI/GRUB] (nomodeset)" {
linux ($root)/live/vmlinuz boot=live nomodeset
initrd ($root)/live/initrd
}
EOF
-------------------------
cat <<'EOF' >LIVE_BOOT/tmp/grub-standalone.cfg
search --set=root --file /DEBIAN_CUSTOM
set prefix=($root)/boot/grub/
configfile /boot/grub/grub.cfg
EOF

------------------------
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"

Y listo de esta forma relativamente sencilla podremos realizar la modificación de


nuestra distribución.

También podría gustarte