Desarrollo de un Sistema de Soporte Telefónico Autónomo para

Anuncio
UNIVERSIDAD TECNICA PARTICULAR DE LOJA
ESCUELA DE CIENCIAS DE LA COMPUTACIÓN
Desarrollo de un Sistema de Soporte Telefónico
Autónomo para ISPs Inalámbricos
PROYECTO PREVIO A LA OBTENCIÓN DEL TITULO
DE INGENIERO EN INFORMÁTICA
ASPIRANTES:
José Andrés Cuenca Ojeda.
Luis Enrique Romero Juelas.
DOCENTE –INVESTIGADOR:
Ing. María Paula Espinoza.
JUNIO 2009
LOJA-ECUADOR
Cesión de Derechos
Nosotros, José Andrés Cuenca Ojeda y Luis Enrique Romero Juelas, declaramos ser
autores del presente trabajo y eximimos expresamente a la Universidad Técnica
Particular de Loja y a sus representantes legales de posibles reclamos o acciones
legales.
Adicionalmente declaráramos conocer y aceptar la disposición del Art. 67 del Estatuto
Orgánico de la Universidad Técnica Particular de Loja que su parte pertinente
textualmente dice: “Forman parte del patrimonio de la Universidad la propiedad
intelectual de investigaciones, trabajos científicos o técnicos y tesis de grado que se
realicen a través, o con el apoyo financiero, académico o institucional (operativo) de la
universidad”.
F:……………………………….
José Andrés Cuenca Ojeda
F:…………………………………….
Luis Enrique Romero Juelas
i
Certificación
Certifico que el presente trabajo fue desarrollado por los señores José Andrés Cuenca
Ojeda y Luis Enrique Romero Juelas, bajo mi supervisión.
Ing. María Paula Espinoza.
Director del Proyecto
ii
Agradecimiento
Agradecemos el apoyo de nuestras familias y amigos que nos han alentado para
graduarnos y ser profesionales. De igual manera agradecemos a la empresa Lojasystem
proveedora de Internet inalámbrico y a todo su personal de soporte técnico por las
facilidades prestadas para el análisis, implementación y pruebas del presente proyecto.
iii
Dedicatoria
Este proyecto se lo dedico a mi familia que me ha apoyado toda mi vida y quiere lo
mejor para mi, ésta es una meta para mi padres porque quieren dejar a sus hijos la
mejor herencia que les pueden dar, que es una profesión.
Muchas gracias a toda mi familia, en especial a mi esposa por la paciencia que me ha
tenido.
Luis Enrique
Quiero dedicar este proyecto con un afecto especial a mi madre que siempre me estuvo
dando aliento para salir adelante y culminar este proyecto
José Andrés
iv
Índice
OBJETIVOS ............................................................................................. vii
1. GENERALIDADES ............................................................................... 1
1.1. ISP Inalámbrico ......................................................................... 2
1.1.1. Estructura de un ISP Inalámbrico ................................................ 3
1.1.1.1. NOC o Centro de Operaciones ............................................... 3
1.1.1.2. Backbone inalámbrico .............................................................. 4
1.1.1.3. Equipos suscriptores................................................................ 4
1.1.2. Tecnologías para redes WLAN .................................................. 5
1.1.2.1. Estándar IEEE 802.11 ............................................................. 6
1.2. Plataforma de desarrollo ............................................................ 8
1.2.1. Linux ....................................................................................... 10
1.2.1.1. Características de Linux ........................................................ 10
1.2.1.2. Distribución de GNU/Linux .................................................. 13
1.2.1.3. Linux frente a otros sistemas operativos ............................... 14
1.2.2. Asterisk .................................................................................... 15
1.2.2.1. Funcionalidades generales .................................................... 15
1.2.2.2. Funcionalidades avanzadas de asterisk ................................. 16
1.2.2.3. Aspectos generales ................................................................ 17
1.2.2.4. Reducción extrema de costos ................................................ 17
1.2.2.5. Limitaciones de la arquitectura de asterisk ........................... 17
1.2.2.6. Requisitos técnicos del sistema ............................................. 18
1.2.2.7. Arquitectura base de asterisk ................................................ 18
1.2.3. Ivr ............................................................................................ 21
1.2.3.1. Servicios ................................................................................ 21
1.2.3.2. Tecnologías involucradas ...................................................... 22
2. INTRODUCCIÓN ................................................................................ 23
2.1. Análisis de los problemas más comunes en el área de
help desk de un ISP inalámbrico............................................... 24
2.2. Solución Propuesta…….............................................................. 26
3. IMPLEMENTACIÓN Y PRUEBAS DEL SISTEMA ..................... 30
3.1. Implementación ......................................................................... 30
3.1.1. Instalación de Linux Debian. .............................................................. 31
3.1.2. Instalación y configuración de asterisk ............................................. 31
v
3.1.2.1. Plan de discado ...................................................................... 31
3.1.2.2. Instalación de un Softphone para las pruebas del IVR. ........ 32
3.1.3. Implementar Acceso a Consola SSH sin Contraseña ....................... 32
3.1.4. Instalar script de monitoreo en el servidor IPCOP…. ........................ 34
3.2. Detalles de Implementación ..................................................... 34
3.2.1. Arquitectura del Sistema de Soporte Automático ............................ 34
3.2.2. Integración del Sistema...................................................................... 36
3.3. Pruebas del Sistema .................................................................. 37
3.3.1. Escalabilidad ..................................................................................... 39
3.4. Resultados Obtenidos ............................................................... 39
4. CONCLUSIONES Y RECOMENDACIONES ................................. 44
4.1. Conclusiones .............................................................................. 44
4.2. Recomendaciones ...................................................................... 45
5. BIBLIOGRAFÍA .................................................................................. 46
6. APÉNDICES ........................................................................................ 48
6.1. Encuesta realizada a ISPs Inalámbricos ................................. 48
6.2. Tabla de los problemas de soporte más comunes de un ISP
inalámbrico .............................................................................. 49
6.3. Distribución Linux IPCOP ...................................................... 51
6.4. Hardware a utilizar ................................................................... 53
6.5. Código fuente ............................................................................. 54
vi
Objetivos
El objetivo central del presente estudio es “desarrollar un sistema de soporte telefónico
autónomo para proveedores de internet inalámbrico (ISP)”.
Y ampliando más la presente declaración se pretende:
Desarrollar de una interfaz de soporte telefónico que bajo ciertos requerimientos pueda
trabajar en forma autónoma y que pueda deducir por sí mismo y sin la intervención de
ningún ser humano la posible avería que tiene un cliente. Este sistema contestará las
líneas telefónicas de soporte técnico; el cual será capaz de detectar hasta un 60% de
averías del cliente y recomendará soluciones a los problemas más comunes de soporte.
Que ante condiciones anormales durante la provisión del servicio tales como de
degradación del sistema, congestión del backbone o caída de algún enlace, el sistema
pueda comunicarse y/o recibir feedback de los administradores del ISP, esto mediante
emails, o mensajes de texto. Este deberá detectar al menos un 60% de condiciones
anómalas.
El sistema se integrará estrechamente con la central telefónica y estará destinado a
proveer asistencia en horas fuera de oficina tales como noches, fines de semana y
feriados; o cuando los técnicos de soporte no puedan atender.
vii
Capítulo 1.
Generalidades
En el capítulo 1, se describirá brevemente como funciona un ISP inalámbrico, su
estructura y sus componentes, como también se explicarán los estándares de las
tecnologías inalámbrica,
desarrollo de la tesis,
así mismo se hará una exposición de la plataforma de
como una breve explicación de Linux, sus características
principales, comparativa junto con otros sistemas operativos, y por ultimo una
introducción al Asterisk recalcando sus funcionalidades generales, funcionalidades
avanzadas, ventajas, limitaciones, requisitos técnicos, su arquitectura con los conceptos
relacionados con el esquema (canal, codecs, protocolos, extensión, contexto,
aplicaciones, dialplan),
Introducción al IVR, sus servicios y las tecnologías
involucradas.
En el capítulo 2, la introducción expondrá algunos antecedentes de trabajos similares
así como también el análisis de los problemas más comunes en el área de help desk
(soporte) de un ISP inalámbrico, basado en las repuestas de una encuesta realizada a
varios proveedores de internet inalámbrico, luego del análisis se propondrá una
solución de la forma en que podrían ser resueltos los problemas por la lógica de un
computador.
En el capítulo 3 se realizará la implementación del sistema de soporte, en el cual se
describirá detalladamente la arquitectura del sistema de soporte automático para luego
integrarlo, se desarrollarán las interfaces para que el sistema de soporte interactué con
el sistema de gestión del ISP inalámbrico y se procederá con las respectivas pruebas
para comprobar los niveles de exactitud del sistema y los niveles de satisfacción del
cliente, se determinará la escalabilidad y
luego de lo cual se hará un análisis e
interpretación de los resultados obtenidos.
El capítulo 4 tratará las conclusiones y recomendaciones a las que se ha llegado luego
de la culminación del proyecto.
1
El capítulo 5 hace referencia a la bibliografía utilizada, cabe destacar que al tratarse de
proyecto de implementar un sistema de soporte telefónico autónomo para solución de
problemas en el área de soporte de un ISP inalámbrico la mayor parte de referencia
bibliográfica se la ha obtenido de la Internet, y de foros en la Web.
Y por último en los apéndices se anexará el modelo de la encuesta realizada a los ISPs
inalámbricos, la tabla de los problemas de soporte
más comunes de un ISP
inalámbrico, breve introducción a la distribución Linux IPCOP, el hardware a utilizar,
el dialplan, los archivos tipo texto del código fuente y por ultimo un modelo de una
breve encuesta realizada vía telefónica a los usuarios del sistema.
También se anexa un manual que detalla las pantallas de instalación y configuración
del Linux distribución Debian y del Asterisk.
1.1. ISP INALÁMBRICO
Se llama ISP a un proveedor de servicios de internet, viene del término inglés “Internet
Service Provider”. Pero cuando un ISP lo provee al servicio en forma inalámbrica se le
llama simplemente “ISP Inalámbrico”; en ingles es llamado Wireless ISP o más
concreto WISP1.
De acuerdo a la legislación ecuatoriana los ISPs son denominados proveedores de
valor agregado (RESOLUCIÓN 534-22-CONATEL-2006). Estos se conectan con el
usuario final por medio de enlaces inalámbricos o de espectro ensanchado. Este tipo de
equipos trabajan generalmente en frecuencias que no requieren concesión por parte del
estado, que funcionan en las bandas de 900Mhz, 2.4 y 5 GHZ, estos equipos son
generalmente basados en el estándar 802.11a/b/g.
Debido que en nuestro país existe una muy limitada oferta de servicios de
telecomunicaciones, en ocasiones la única manera de llegar a un usuario en sectores
alejados o apartados es mediante este tipo de equipos.
1
Wireless Internet Service Provider (Proveedor de Servicios de internet Inalámbrico)
2
1.1.1. Estructura de un ISP inalámbrico
Un ISP inalámbrico posee la misma estructura que uno tradicional con la diferencia
que la infraestructura de acceso o de distribución es inalámbrica; la misma que consiste
de una serie de sistemas multipunto interconectadas formando un backbone1, las cuales
a su vez se enganchan los usuarios mediante los equipos suscriptores o CPEs2.
1.1.1.1. NOC o Centro de Operaciones
Es el lugar donde residen los servidores, routers, firewall, infraestructura administrativa
y soporte técnico. Aquí el ISP recibe el internet por parte de los carriers o mayoristas
(Figura 1-1).
INTERNET
ETHERNET
PBX y Sistema de
Soporte telefonico
Servidores:
dns, email, proxy
RED DE TELEFONIA
PUBLICA PSTN
Router, firewall
CLIENTES DEL ISP
INALAMBRICO
Figura 1-1.Centro de Operaciones (NOC)
1.1.1.2. Backbone Inalámbrico
1
2
Principales conexiones troncales de Internet
Customer Premises Equipment (Equipo Local del Cliente)
3
Es la infraestructura de distribución mediante la cual el ISP llega a sus clientes.
Es un conjunto de sistemas multipuntos conectados mediante algún medio de
trasmisión al NOC central. Cada multipunto provee servicios de Internet a los clientes
que están en su área de cobertura en forma similar a las redes celulares (Figura 1-2).
Figura 1-2. Backbone inalámbrico
1.1.1.3. Equipos Suscriptores
Comúnmente llamados CPEs1. Es un equipo inalámbrico que conecta al cliente con el
ISP ya sea este una sola computadora personal o una red de computadoras de área
local. En la (Figura 1-3) se hace una representación con diversos equipos suscriptores
1
Customer Premises Equipment (Equipo Local del Cliente)
4
como, teléfono Wi-Fi1, usuarios residenciales, usuarios móviles (laptops). etc .
Figura 1-3. Equipos suscriptores [1]
1.1.2. Tecnologías para redes WLAN2
Las necesidades de movilidad de los usuarios de equipos de computación es muy
importante hoy en día, razón por la cual Ethernet, que ha sido la tecnología más
ampliamente usada, tiene un competidor muy fuerte, las Redes Inalámbricas de Área
Local (WLAN). Las WLAN se están utilizando cada vez más en edificios de oficinas,
aeropuertos, centros comerciales, restaurantes, hoteles, entre otros lugares públicos.
Las WLAN son muy versátiles en las oficinas, ya que son un complemento a la
infraestructura cableada, brindando a los usuarios móviles una conectividad
1
2
Wireless Fidelity (estándar para la fidelidad inalámbrica)
Wireless Local Area Network (Red inalámbrica de área local)
5
permanente. Adicionalmente permite que visitantes se conecten al Internet o a la red
sin tener que conectarse físicamente, lo que implica tener puertos disponibles en el
lugar donde se requiera ubicar el computador.
1.1.2.1. Estándar IEEE 802.11 [2]
IEEE 802.11 o Wi-Fi es un estándar de comunicaciones que define el uso de los dos
niveles más bajos de la arquitectura OSI 1(capa física y capa de enlace de datos), este
estándar norma el funcionamiento en una WLAN.
El protocolo 802.11 estandarizado en 1997 describe tres técnicas de transmisión de la
capa física: la primera el método de infrarrojos que es la misma tecnología que se usa
en los controles remotos de televisión; los otros dos métodos utilizan la técnica de radio
de espectro expandido, como son espectro ensanchado por salto de frecuencia (FHSS)
y espectro ensanchado por secuencia directa (DSSS). Estas dos últimas técnicas
utilizan la frecuencia sin licenciamiento de 2.4 GHz, y una velocidad de 1 Mbps y 2
Mbps.
Al trabajar en la banda ISM (Industrial, Scientific and Medical) de 2.4 GHz se tiene
mucha interferencia con artefactos eléctricos como: puertas automáticas de garajes
controladas por radio, los hornos microondas, los teléfonos inalámbricos, etc. La
interferencia disminuye la velocidad efectiva al producirse muchos errores en la
transmisión, debiéndose retransmitir las tramas erróneas.
En 1999 se introdujeron dos técnicas adicionales de modulación para alcanzar mayor
capacidad de transmisión, éstas son Multiplexación por División Ortogonal de
Frecuencia (OFDM) y Secuencia Directa en Espectro Extendido de Alta Velocidad
(HRDSSS) que permiten velocidades de hasta 54 Mbps y 11 Mbps, respectivamente. En
el año 2001 se introdujo OFDM para la frecuencia de 2.4 GHz, ya que la primera
trabajaba en 5 GHz.
1
Open System Interconnection (modelo de referencia de Interconexión de Sistemas Abiertos)
6
La (Tabla 1-1) muestra una comparativa de los diferentes estándares 802.11 con sus
respectivas características, ventajas y desventajas. Es necesario hablar de las
tecnologías inalámbricas puesto que el uso adecuado de una tecnología inalámbrica
depende mucho en la prevención de problemas que se puedan dar en los enlaces
inalámbricos con los clientes.
Tabla 1-1 Comparativa de los estándares 802.11
Estándar
802.11 a
802.11b
802.11g
802.11n
Velocidad
54Mbps
11Mbps
54Mbps
600 Mbps
Frecuencia
5Ghz
2.4Ghz
2.4Ghz
Distancias
8 a 23 metros
30 a 45 metros
30 a 45
metros
Ventajas
-No muy saturada
- Algunos Hot
Compatible
Altas
-Los equipos con
spots están ya
con el
velocidades
este estándar no
instalados con
Estándar
son muy
este estándar
802.11b por
comunes,
y
lo que
son más
Existen
pueden
utilizados
bastantes
coexistir con
en usuarios
equipos
redes
corporativos
funcionando.
de este
estándar.
Desventajas
-Solo con línea de
Banda
banda
No
vista
Saturada por
Saturada por
establecida
-Distancias cortas
equipos
equipos
Las
electrónicos
electrónicos
especificacio
nes finales
7
1.2. PLATAFORMA DE DESARROLLO
El presente trabajo pretende implementar un sistema de soporte telefónico automático,
esto será realizado mediante una centralita de VOIP1, por lo cual se ha escogido la
plataforma de desarrollo de telefonía basada en software libre Asterisk, este producto
sobre el sistema operativo Linux, permite desarrollar centrales telefónicas con todas las
características que se esperan de una PBX2 comercial, trabajan con voz sobre IP en
varios protocolos (SIP, H323) e interoperan con casi todo el equipo estándar basado en
telefonía IP usando hardware relativamente barato. De tal manera que es fácil
implementar servicios que sólo ofrecen los grandes sistemas PBX propietarios como,
correo de voz, conferencia de voz, comunicación de llamada, respuesta interactiva de
voz, cola de llamadas, servicio de identificación de llamadas, registro detallado de
llamadas etc.
Para funcionar con voz sobre IP no necesita de ningún hardware adicional, ahora para
interconectar con la telefonía tradicional requiere de tarjetas especiales de muy bajo
costo como las tarjetas FXO (Foreign Exchange Office) y mediante el software,
realizar y recibir llamadas de teléfono. Sirve sobre todo para implementar centralitas
telefónicas (PBX) con un computador. Los dispositivos para conectar un teléfono a un
computador son las llamadas FXS (Foreign Exchange Station).
Un claro ejemplo de FXO es un típico módem o tarjeta Fax-Modem.
La (Figura 1-4) muestra el funcionamiento de un sistema de telefonía IP con Linux.
1
2
Voz sobre IP
Private Branch Exchange (Central Telefónica)
8
Figura 1-4. Sistema de Telefonía IP con Linux
Haciendo una breve explicación de la (Figura 1-4). El usuario realiza y recibe llamadas
desde y hacia su línea telefónica actual utilizando un teléfono convencional, hace uso
de la red de telefonía pública (ETB/EPM), las tarjetas o dispositivos de entrada análogo
(FXO) permiten la conexión entre el computador (servidor Linux) y la línea telefónica
convencional. El servidor Asterisk que está montado en el servidor Linux permite la
conversión y administración de las señales analógicas a digitales y viceversa, las
mismas que son trasmitidas utilizando la red de datos existente sea esta una red privada
(Intranet) o a través de internet sin importar en que parte del mundo se encuentre. Los
Adaptadores de Voz sobre IP ATA1 (FXS) son necesarios para una conexión entre la
red de datos y los teléfonos convencionales.
1
Advanced Technology Attachment ( tecnología avanzada de acoplamiento)
9
1.2.1. Linux
Es un Sistema Operativo. El mismo que está basado en una implementación de UNIX,
de distribución libre para computadores que facilita su uso y operación. En la
actualidad puede ser instalado en gran variedad de hardware, incluyendo computadores
de escritorio, computadores de mano, celulares, dispositivos empotrados,
videoconsolas (Xbox, PlayStation), enrutadores y algunos modelos de iPod. Fue
desarrollado para el i386 y ahora soporta los procesadores más comunes del mercado.
Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es
multitarea, multiusuario, multiplataforma y multiprocesador.
1.2.1.1. Características de Linux [3]
Multitarea: La palabra multitarea describe la habilidad de ejecutar varios
programas al mismo tiempo.
LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los
programas que se están utilizando en un momento dado serán ejecutados, siendo
el sistema operativo el encargado de ceder tiempo de microprocesador a cada
programa.
Multiusuario: Muchos usuarios usando la misma máquina al mismo tiempo.
Multiplataforma: Las plataformas en las que en un principio se puede utilizar
Linux son Pentium III, PentiumIV, Intel Core duo, etc. También existen
versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS,
PowerPC y SPARC.
Multiprocesador: Soporte para sistemas con más de un procesador está
disponible para Intel y SPARC (Scalable Processor ARChitecture).
Funciona en modo protegido 386.
Protección de la memoria entre procesos, de manera que uno de ellos no pueda
colgar el sistema.
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de
un programa que están siendo usadas actualmente.
10
Política de copia en escritura para la compartición de páginas entre ejecutables:
esto significa que varios procesos pueden usar la misma zona de memoria para
ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de
memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos
beneficios: aumenta la velocidad y reduce el uso de memoria.
Memoria virtual usando paginación (sin intercambio de procesos completos) a
disco: A una partición o un archivo en el sistema de archivos, o ambos, con la
posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16
zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un
momento dado con un límite teórico de 2Gb para intercambio. Este límite se
puede aumentar fácilmente con el cambio de unas cuantas líneas en el código
fuente.
La memoria se gestiona como un recurso unificado para los programas de
usuario y para el caché de disco, de tal forma que toda la memoria libre puede
ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten
grandes programas.
Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
Se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem, permitiendo el uso de depuradores sobre los programas no sólo en
ejecución sino también tras abortar éstos por cualquier motivo.
Compatible con POSIX, System V y BSD a nivel fuente.
Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4
a nivel binario.
Todo el código fuente está disponible, incluyendo el núcleo completo y todos
los drivers, las herramientas de desarrollo y todos los programas de usuario;
además todo ello se puede distribuir libremente. Hay algunos programas
comerciales que están siendo ofrecidos para Linux actualmente sin código
fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
Control de tareas POSIX (operaciones básicas de las tareas de tiempo real).
Pseudo-terminales (pty's).
11
Emulación de 387 en el núcleo, de tal forma que los programas no tengan que
hacer su propia emulación matemática. Cualquier máquina que ejecute Linux
parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya
tiene una FPU (unidad de coma flotante), esta será usada en lugar de la
emulación, pudiendo incluso compilar tu propio kernel sin la emulación
matemática y conseguir un pequeño ahorro de memoria.
Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir
nuevos dinámicamente.
Consolas virtuales múltiples: varias sesiones de login a través de la consola
entre las que se puede cambiar con las combinaciones adecuadas de teclas
(totalmente independiente del hardware de video). Se crean dinámicamente y
puedes tener hasta 64.
Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y
todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema
de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de
hasta 255 caracteres de longitud.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT)
mediante un sistema de archivos especial: no es necesario ningún comando
especial para usar la partición MS-DOS, esta parece un sistema de archivos
normal de Unix (excepto por algunas restricciones en los nombres de archivo,
permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son
accesibles en este momento, y no se espera que lo sean en el futuro. El soporte
para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y
estará en la próxima versión estable.
Un sistema de archivos especial llamado UMSDOS que permite que Linux sea
instalado en un sistema de archivos DOS.
Soporte en sólo lectura de HPFS-2 del OS/2 2.1
Sistema de archivos de CD-ROM que lee todos los formatos estándar de CDROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
12
Appletalk.
Software cliente y servidor Netware.
Lan Manager / Windows Native (SMB), software cliente y servidor.
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25,
X.25, IPX, DDP, Netrom, etc.
1.2.1.2. Distribución de GNU/Linux
Una distribución es un modo de facilitar la instalación, la configuración y el
mantenimiento de un sistema. Al principio, las distribuciones se limitaban a recopilar
software libre, empaquetarlo en disquetes o CD-ROM y redistribuirlo o venderlo. GNU
es un acrónimo recursivo para "Gnu No es Unix" (“GNU's Not UNIX”), GNU es el
nombre de un proyecto con el objetivo de crear un sistema operativo completamente
libre.
Ahora las grandes distribuciones -RedHat, SuSE, Caldera, Mandrake, Corel Linux,
TurboLinux...- son potentes empresas que compiten entre sí por incluir el último
software, a veces también software propietario, con instalaciones gráficas capaces de
autodetectar el hardware y que instalan un sistema entero en unos cuantos minutos sin
apenas preguntas (Dee-Ann Leblanc 2001).
Entre las distribuciones de GNU/Linux, destaca el proyecto Debian/GNU. Debian nace
como una iniciativa no comercial de la Fundación software Libre (FSF), aunque luego
se independiza de ésta y va más allá del propio sistema GNU/Linux. Es la única de las
grandes distribuciones que no tiene intereses comerciales ni empresariales. Son sus
propios usuarios, muy activos, quienes mantienen la distribución de modo comunitario,
incluidas todas sus estructuras de decisión y funcionamiento. Su objetivo es recopilar,
difundir y promover el uso del software libre. Reúne el mayor catálogo de software
libre, todos ellos probados, mantenidos y documentados por algún desarrollador
voluntario.
13
En una distribución hay todo el software necesario para instalar en un ordenador
personal; servidor, correo, ofimática, fax, navegación de red, seguridad, etc.
1.2.1.3. Linux frente a los otros sistemas operativos
Linux es una muy buena alternativa frente a los demás sistemas operativos. Más allá de
las ventajas evidentes de costo, ofrece algunas características muy notables.
En comparación con las otras versiones de Unix para PC, la velocidad y confiabilidad
de Linux son muy superiores. También está en ventaja sobre la disponibilidad de
aplicaciones, ya que no hay mucha difusión de estos otros Unixes (como Solaris,
XENIX o SCO) entre los usuarios de PC por sus altos costos (Daniel L. Morril 2002).
Comparado con los otros sistemas operativos como Microsoft Windows, Linux
presenta mayores ventajas. Por los requisitos de hardware bajos, permiten hacer un
sistema potente y útil de aquel Pentium III que ya no se usan. Esta misma característica
permite aprovechar al máximo las capacidades de las computadoras más modernas. Es
poco práctico tener una PC con 256 Mb de RAM y ponerle un sistema operativo que
ocupa 128 MB (que es lo que reporta sobre Windows 98 el System Information de
Symantec). No solo es superior respecto a el sistema de multitarea y de administración
de memoria, sino también en la capacidades de networking (conectividad a redes) y de
multiusuario (aún comparando con sistemas multiusuario como NT). La única
desventaja de Linux frente a estos sistemas, es la menor disponibilidad de software, y
la elevada curva de aprendizaje que se requiere, pero este problema disminuye con cada
nuevo programa que se escribe para el proyecto GNU, y con algunas empresas que
están desarrollando software comercial para Linux (por ej., Corel).
14
1.2.2. Asterisk
Es un software PBX que usa el concepto de software libre (GPL), el asterisk permite
conectividad en tiempo real entre las redes PSTN (red telefónica del servicio público)
y redes Voip (Jim Van Meggelen 2005) .
1.2.2.1. Funcionalidades Generales
La (Figura 1-5) representa un esquema conceptual de Asterisk el cual es capaz de
trabajar con prácticamente todos los estándares de telefonía tradicional como Líneas
analógicas, Líneas digitales (E1, T1, accesos básicos). Soporta casi todos los protocolos
de VozIP como SIP, IAX2 , MGCP, Cisco Skinny. (Gorka Gorrotxategui-Iñaki Baz
2006).
Figura 1-5. Esquema conceptual de Asterisk
[4]
Asterisk es mucho más que un PBX central. Se puede crear cosas nuevas en telefonía
como:
– Conecta empleados trabajando desde casa para un PBX de la oficina sobre
conexiones de banda ancha.
15
– Conectar oficinas en varias provincias sobre IP. Esto puede ser hecho por
Internet o por una red IP privada.
– Dar a los funcionarios, buzón de voz, integrándolo con una “web” y sus e-mail.
– Construir aplicaciones de respuesta automática por voz, que puede conectarlo a
un sistema de pedidos, por ejemplo, o a otras aplicaciones internas.
– Dar acceso al PBX de la compañía para usuarios que viajan, conectando sobre la
red privada virtual (VPN) de un aeropuerto o un hotel.
Incluye muchos recursos que solo eran encontrados en sistemas de mensajería
unificada como:
– Música en espera para clientes en filas de espera, soportando streaming de
media así como música en MP3.
– Filas de llamadas donde agentes de forma conjunta atienden las llamadas y
monitorean dicha fila.
– Integración para la sintetización de la conversación (text-to-speech).
– Registro detallado de llamadas (call-detail-records) para integración con
sistemas de tarificación.
– Integración con reconocimiento de voz.
– La habilidad de interfaces con líneas telefónicas normales.
1.2.2.2. Funcionalidades Avanzadas de Asterisk.
– IVR: Interactive Voice Response, gestión de llamadas con menús interactivos.
– LCR: Least Cost Routing, encaminamiento de llamadas por el proveedor VoIP
más económico.
– AGI: Asterisk Gateway Interface, integración con todo tipo de aplicaciones
externas.
– AMI: Asterisk Management Interface, gestión y control remoto de Asterisk.
– Configuración en base de datos: usuarios, extensiones, proveedores, etc.
16
1.2.2.3. Aspectos Generales
Asterisk es un demonio (¿daemon=demonio?) que se ejecuta en segundo plano. Al
igual que el resto de servidores conocidos (apache, openssh, proftpd,).
La configuración normalmente se almacena en varios ficheros de texto editables de
forma tradicional.
Se distribuye como código fuente para ser compilado e instalado. Aunque existen
versiones 'paquetizadas' para las distribuciones GNU/Linux más comunes.
1.2.2.4. Reducción Extrema de Costos
Normalmente los sistemas de PBX digitales tienen costos elevados y para agregar
recursos avanzados como voz sobre IP, Buzón de mensajes, unidad de respuesta
audible (URA), distribución automáticas de llamadas (DAC), etc, estos componentes
son hechos de forma separada y muchas veces de diferentes fabricantes, los costos de
adquisición de cada uno de estos componentes son elevados y la integración muchas
veces es difícil. Asterisk solo puede ser comparado con PBX digital, y se puede
agregar recursos avanzados con una gran facilidad (Flavio E 2007).
1.2.2.5. Limitaciones de la Arquitectura Asterisk
Asterisk usa una CPU como servidor para procesar los canales de voz, en vez de tener
un procesador de señales digitales (DSP) dedicado a cada canal. Esto permite que el
costo sea reducido para las placas E1/T1, el sistema es muy dependiente del
performance del CPU. Por lo que es recomendable preservar al máximo la CPU de
asterisk, correrlo siempre en una maquina dedicada y sobre todo probar el
dimensionamiento antes de implantarlo (Flavio E 2007).
17
1.2.2.6. Requisitos Técnicos del sistema
Dependen directamente de:
– Llamadas concurrentes.
– Conferencias y Aplicaciones complejas simultáneas.
– Transcodifcaciones necesarias (recodificación).
Principalmente, Asterisk requiere microprocesador.
Según Digium Ink (2007): Equipo Dual Intel Xeon 1.8 Ghz 1 Gb Ram soporta 60
llamadas concurrentes codificando con el codec G.729.
Es difícil determinar con exactitud, y es mejor apuntar alto para poder escalar.
1.2.2.7. Arquitectura Base de Asterisk
La (Figura 1-6) nos muestra la arquitectura básica de Asterisk. Para lo cual
necesitaremos explicar los conceptos relacionados con este esquema como los canales,
codecs, y las aplicaciones entre otros.
Figura 1-6. Arquitectura de Asterisk [4]
18
Canal: Es una conexión que conduce una llamada entrante o saliente en el sistema
Asterisk. La conexión puede venir o salir hacia telefonía tradicional analógica o digital
o VozIP (Figura 1-7).
Figura 1-7. Concepto de canal [4]
Por defecto, Asterisk soporta una serie de canales, los más importantes:
– H.323, IAX2, SIP, MGCP: Protocolos VozIP
– Console: GNU Linux OSS/ALSA sound system.
– Zap: Líneas analógicas y digitales.
Codecs y conversores de Codecs: Se utiliza para codificar de forma que se
emplee el menor ancho de banda permitiendo colocar muchas llamadas como sea
posible en una red de datos. Algunos Codecs como el G.729 permite codificar a 8
kilobites por segundo, una compresión de 8 para 1. Otros ejemplos son ULAW,
ALAW, G.711, GMS, SPEEX.
Protocolos: Enviar datos de un teléfono a otro sería fácil si los datos encontrasen su
propio camino para el otro teléfono destino. Desafortunadamente esto no sucede así, es
preciso un protocolo de señalización para establecer las conexiones, determinar el
punto de destino, y también cuestiones relacionadas a señalización de telefonía como el
19
tono y tiempo de campanilla, identificador de llamadas, desconexión, etc. Hoy es
común el uso del SIP ( Session Initiated Protocol), y otros protocolos también muy en
auge en el mercado como lo es el H.323, ZAPATA, MGCP, y el más reciente el IAX
que es excepcional cuando se trata de Trunking y Nat (Network Address Traslation).
Dialplan: Se trata de la configuración de la centralita Asterisk que indica el itinerario
que sigue una llamada desde que entra o sale del sistema hasta que llega a su punto
final. Se trata en líneas generales del comportamiento lógico de la centralita.
Extension: En telefonía tradicional, las extensiones se asocian con teléfonos,
interfaces o menús. En Asterisk, una extensión es una lista de comandos a ejecutar.
Las extensiones se acceden cuando:
– Se recibe una llamada entrante por un canal dado.
– El usuario que ha llamado marca la extensión.
– Se ejecuta un salto de extensiones desde el Dialplan de Asterisk.
Contexto (Context): El Dialplan o lógica de comportamiento de Asterisk se divide
en uno o varios contextos. Un contexto es una colección de extensiones.
Los contextos existen para poder diferenciar el 'lugar' donde se encuentra una llamada,
para:
– Aplicar políticas de seguridad: Asterisk no se comporta igual cuando llama un
usuario y marca el 1 y cuando un usuario local marca el mismo 1.
– Menús y submenús diferenciados.
– En general, es una forma de diferenciación.
Aplicación (Application): Asterisk ejecuta secuencialmente los comandos
asociados a cada extensión. Esos comandos son realmente aplicaciones que controlan
el comportamiento de la llamada y del sistema en sí. Algunos ejemplos:
20
– Hangup: Colgar la llamada.
– Monitor: Comenzar la grabación a disco de la llamada.
– Dial: Realiza una llamada saliente.
– Goto: Salta a otra extensión o contexto.
– PlayBack: Reproduce un fichero de sonido.
1.2.3. IVR
IVR son las siglas de Interactive Voice Response, que se traduce del inglés como
Respuesta de Voz Interactiva. También se utiliza el término VRU (Voice Response
Unit).
Consiste en un sistema telefónico que es capaz de recibir una llamada e interactuar con
el humano a través de grabaciones de voz. Es un sistema de respuesta interactiva,
orientado a entregar y/o capturar información automatizada a través del teléfono
permitiendo el acceso a los servicios de información y operaciones autorizadas, las 24
horas del día.
1.2.3.1. Servicios
El IVR es la típica máquina que nos responde con una voz grabada cuando llamamos a
una central o que nos recibe en la banca telefónica. Según las opciones que el usuario le
ingresa lo deriva a un centro de atención telefónica o a otra central telefónica.
Las empresas suelen usar la tecnología de IVR para enrutar una llamada entrante hacía
un departamento u otro, sin la necesidad de intervención humana, así reduciendo el
tiempo de espera de sus clientes.
En los centros de atención telefónico al cliente, se usan los IVR's para guiar el llamante
hacia los agentes con mayor conocimiento de una materia especifica, reduciendo así el
tiempo de la llamada y evitando la necesidad de hacer transferencias entre agentes.
21
Puede combinarse con servicios de mensajes cortos (SMS) para prestar cualquier clase
de servicio: tele votación, encuestas, sorteos, acceso a bases de datos, servicios
informativos, etc.
El usuario realiza una llamada a un número de teléfono, el sistema de audiorespuesta
contesta la llamada y le presenta al usuario una serie de acciones a realizar, esto se hace
mediante mensajes (menús de opciones) previamente grabados en ficheros de audio
(Por ejemplo "Pulse uno para ventas, dos para administración"). El usuario elige la
opción a realizar introduciendo un número en el teclado del teléfono y navega por los
diferentes menús hasta encontrar la información solicitada o que el sistema enruta la
llamada al destinatario elegido.
1.2.3.2. Tecnología Involucrada
El IVR para brindar mejores servicios involucra otras tecnologías como:
DTMF (Dual Tone Multi Frequency): Propia de la telefonía, es la tecnología
de tonos utilizada para el marcado.
TTS (Text To Speech): Iniciada en la informática, le da capacidad de
transformar texto a audio que escucha el operador.
ASR (Reconocimiento de Voz): Iniciada por la informática. Le da la capacidad
de reconocer las palabras del usuario y aceptarlas como órdenes.
22
Capítulo 2.
Introducción
De acuerdo a la Norma de calidad del servicio de valor agregado de internet expedida
mediante RESOLUCIÓN 534-22-CONATEL-2006, el ente regulatorio de nuestro país
es decir la superintendencia de telecomunicaciones solicita se provea un servicio de
soporte técnico las 24 horas del día durante los 365 días del año, en este sentido una
solución automatizada va a permitir una importante reducción de costos e incrementar
los niveles de satisfacción del cliente.
Un proveedor de internet requiere proveer de un soporte técnico de calidad, muchas de
las veces es difícil encontrar técnicos de soporte calificados que sepan diagnosticar en
forma expedita los problemas que un cliente puede tener, la curva de aprendizaje suele
ser medianamente larga, y síntomas obvios muchas de las veces son pasados por alto.
Para la resolución de cada problema el técnico de soporte sigue una rutina
preestablecida y con pasos predefinidos, entonces cada problema se puede clasificar y
luego de ello seguir un procedimiento rutinario de solución, por este motivo, sí es
factible una solución automatizada que pueda trabajar en forma independiente o en
conjunto con los técnicos de soporte. De hecho una solución inteligente podría en
promedio encontrar el problema mucho más rápido que cualquier técnico con mediana
experiencia.
Los autores del presente proyecto no hemos encontrado implementaciones de soporte
técnico en forma totalmente autónoma; es decir que un software ejecutándose en un
ordenador pueda encontrar la posible avería y pueda sugerirle la solución al cliente. No
obstante el presente estudio va a ser el punto de partida para otros trabajos que
pretendan automatizar problemas de soporte técnico en línea y que puedan ser resueltos
por la lógica de un ordenador.
El presente proyecto será de mucha utilidad para los ISPs inalámbricos pequeños que
23
no tienen los recursos económicos como para costear un staff de técnicos las 24 horas
del día durante los 365 días del año.
A demás puede ser un referente para futuros estudios de reingeniería en la
automatización de servicios de soporte técnico para empresas de un tamaño similar o
mayor al propuesto, tomando en cuenta los servicios que se pueden implementar hoy
en día en una red convergente. Los equipos y servicios que se propone se ajustan a la
realidad del país. Puesto que se comercializan en el Ecuador.
2.1. ANÁLISIS DE LOS PROBLEMAS MÁS COMUNES EN EL
ÁREA DE HELP DESK DE UN ISP INALÁMBRICO
Evidentemente el hecho de que un usuario tenga un problema técnico, significa una
pérdida tanto para el cliente que no puede realizar su actividad o tarea a tiempo como
para el proveedor de Internet que ve disminuida su imagen como empresa y
posiblemente tenga que descontar por un servicio que no fue provisto adecuadamente.
Se ha realizado a cabo una investigación para determinar los problemas más comunes
por los que el cliente llama al departamento de servicio técnico de los proveedores de
internet inalámbrico.
Esta información permitirá más adelante determinar que problemas serían posibles de
detectar y solucionar utilizando la lógica de un computador y cuáles serían
simplemente registrados para que un técnico en el tiempo más corto posible pueda
contactar al cliente o visitarle para diagnosticar la falla.
Es importante destacar que este software de soporte automático no pretende solucionar
el 100% de problemas, sino más bien será una herramienta más para el departamento
de soporte técnico.
Con el fin de conocer de primera fuente los problemas de soporte más comunes que
24
atienden los proveedores de Internet inalámbrico se contactó a varios de ellos; tanto de
la ciudad de Loja como de Machala y se les solicitó que llenaran una encuesta, con lo
cual se obtuvo la tabla de los problemas de soporte más comunes de un ISP
inalámbrico como figura en el apéndice Nº 2. El modelo de la encuesta consta en el
apéndice Nº 1.
La estrategia que utilizan los técnicos para resolver un problema de soporte es
básicamente enviar paquetes de solicitud de eco ICMP1 o ping tanto al enlace
inalámbrico de radio como a la computadora o servidor del cliente, con ello se obtiene
el porcentaje de paquetes perdidos y la latencia o tiempo de respuesta del enlace.
Por ejemplo en un supuesto que tanto el radio como el computador del cliente no
responden; lo más probable es que el radio está apagado o inhibido y lo que el técnico
recomendaría sería que se revise si el equipo está encendido o que lo reinicie en el caso
de que estuviera inhibido. Ahora, en el caso que el equipo inalámbrico tuviera un 10%
de paquetes perdidos, allí habría un problema del enlace de radio y un técnico debería
realizar una visita donde el cliente; pero al contrario, si el radio NO tiene paquetes
perdidos, y el computador o el servidor SI, en ese caso habría una saturación de su
ancho de banda y el cliente está consumiendo toda su capacidad contratada.
Un caso especial se presenta cuando el radio responde y el equipo no responde pero si
tiene una dirección MAC2 en la tabla ARP3, este se da cuando la computadora o el
servidor del cliente tiene bloqueado el protocolo ICMP y las peticiones ping no tienen
respuesta; esto generalmente debido a un firewall instalado. En este caso con lo único
que se cuenta para hacerse una idea del problema es con la latencia del radio y con el
porcentaje de paquetes perdidos, puesto que solamente se conoce que el computador
del cliente está conectado.
En relación con la calidad del servicio es necesario acotar que es un tema bastante
subjetivo puesto que lo que un usuario puede percibir como una navegación rápida,
1
ICMP es un mensaje que se envía a un host para que éste le responda con un Echo Reply
MAC identificador de 48 bits que se corresponde de forma única con una interfaz de red
3
Address Resolution Protocol (protocolo de resolución de direcciones)
2
25
otro usuario podría pensar que es sumamente lento, en otras ocasiones la computadora
podría estar descargando una actualización del sistema operativo o de algún programa
antivirus y el usuario experimenta una degradación de la velocidad.
También podría darse el caso que la computadora tenga algún software espía o virus
que empieza a enviar en forma masiva información desde la computadora del cliente,
en este sentido seria un tanto difícil para un software discriminar tráfico normal de
tráfico malicioso.
También hay que tomar en consideración que a muchas personas les pueda incomodar
que una “maquina” detrás de la línea les ayude con un problema que se les presenta.
2.2. SOLUCIÓN PROPUESTA
El esquema planteado para resolver un problema de soporte técnico sería sintetizar en
un algoritmo los pasos que un técnico de soporte sigue para solucionar un problema.
Esta tarea que al principio puede parecer bastante complicada, si es posible llevarla a
cabo puesto que son cuatro variables que se necesita para poder realizar un diagnóstico
muy aproximado: latencia tanto del radio como del computador o servidor del cliente y
porcentaje de paquetes perdidos tanto del radio como del computador o servidor del
cliente. El algoritmo mencionado se realizará mediante el diagrama de flujo de datos
descrito en la (Figura 2-1).
26
inicio
Cliente realiza
llamada de Soporte
Técnico e ingresa
codigo
no
usuario.
Existe?
si
Revisión de radio y
computador cliente
Mientras se realiza el
test, el cliente permanece
escuchando un mensaje
Calcular latencia y %
de paquetes perdidos
del radio y del PC
Se informa al cliente que
su enlace es NORMAL
si
0 al 2 %
Paquetes
perdidos
en el PC
?
no
100%
Paquetes
perdidos en
el PC
Informar “El cliente
esta congestionado”
si
si
PC no
tiene MAC en
tabla ARP
?
no
si
(Latencia
radio < 3 ) y
(Latencia_equipo latencia_radio > 3)
Paquetes
perdidos radio <
100%
Informar “equipo no
responde a peticiones
ping”
no
no
si
Informar “radio responde
pero equipo no
responde”
no
Informarle al cliente
estado del enlace de
radio
Fin
Figura 2-1. Diagrama de flujo de datos para la resolución de un problema de soporte
técnico.
En conclusión un software debería ejecutar los mismos procedimientos que un técnico
calificado seguiría para resolver un problema, es decir calcular primero la latencia y
27
porcentaje de paquetes perdidos tanto del radio como del computador o servidor del
cliente, luego procesar esa información e inmediatamente informarle al usuario la
posible solución a su problema de acuerdo a la (Figura 2-1).
Para implementar el sistema de soporte técnico automatizado se deberá integrar el
algoritmo descrito en la (Figura 3-1) con el servidor de VOIP.
Esto se lo hace
mediante el desarrollo de una interfaz AGI que ejecutará en forma remota el respectivo
monitoreo dentro del servidor que provee de Internet a los clientes. Cuando se habla de
un servidor que provee de Internet a los clientes, debe de entenderse como un Proxy o
un equipo que haga traducción automática de direcciones NAT.
Es importante destacar que se podría implementar dentro del servidor de VOIP los
respectivos servicios para repartir el Internet, en cuyo caso la interfaz AGI no realizaría
el monitoreo en forma remota si no en el mismo equipo. La (Figura 2-1) explicará de
mejor manera la idea propuesta:
28
Inicio llamada
telefonica
Cliente realiza
llamada y esta es
contestada por
servidor de VOIP
no
Cliente
necesita
soporte
automatizado
si
Llamada es
contestada de
acuerdo a plan de
discado
Servidor de VOIP
solicita codigo de
usuario y transfiere
control a interfaz AGI
Interfaz AGI se
introduce en servidor
proxy¹, realiza
monitoreo y provee
soporte al cliente
Se almacena en bitacora
resultados de soporte para
efectos de control
Fin llamada
telefonica
Figura 2-2. Diagrama de flujo de datos para integrar el
Servicio técnico automatizado de un servidor VOIP1
1
En este momento es cuando se ejecuta el algoritmo descrito en la (Figura 2-1)
29
Capítulo 3.
Implementación y Pruebas del Sistema
3.1. IMPLEMENTACIÓN
La fase de implementación consta de las siguientes partes:
1. Instalar el sistema operativo Linux en el futuro servidor de VOIP.
2. Instalar Asterix: colocar y compilar las fuentes en el servidor de VOIP,
Modificar los archivos de configuración del Asterix con el objeto de
implementar el plan de discado y copiar script AGI.
3. Implementar acceso de consola segura sin contraseña hacia el servidor
IPCOP.
4. Instalar script de monitoreo en el servidor IPCOP.
Para la implementación del servidor de VOIP se ha escogido trabajar en el sistema
operativo GNU/Linux - Distribución Debian, puesto que este ambiente es Open
Source, tiene muchas ventajas en relación al software privativo entre ellas
documentación abundante, disponibilidad de código fuente, una comunidad de
desarrollo madura y consolidada y sobre todo el coste económico sumamente
reducido.
En relación con el servidor de VOIP Asterix es necesario recalcar que si bien es
cierto existen distribuciones muy sencillas de utilizar y que se instalan en cuestión
de minutos tales como elastix y asterisknow, estas solamente son recomendables
cuando se van a utilizar las funciones básicas de un PBX, más no cuando se piensa
trabajar directamente sobre el dialplan y con interfaces AGIs.
Para el sistema que va a ser monitoreado por el servidor de VOIP se ha escogido la
distribución IPCOP; puesto que es la primera opción que escogen muchos ISPs
30
inalámbricos pequeños cuando inician operaciones. No se ahondará en detalles de
instalación del servidor IPCOP, puesto que no es materia del presente trabajo de
investigación, se asumirá que está habilitado el servicio SSH y que está configurado
correctamente para proveer servicio de internet a un grupo de usuarios. Para fines
de este proyecto se ha configurado el servidor IPCOP con las interfaces GREEN,
RED y BLUE.
3.1.1. Instalación de Linux Debian
Esto se discutirá en el manual de instalación de Linux-Debian adjunto; se utilizará
Debian con kernel 2.6 para la instalación de asterisk con linux. Se ha escogido esta
distribución por la gran aceptación que tiene. Se recomienda usar el kernel mencionado
previamente puesto que hay mayor soporte para hardware de telefonía sobre esta
versión.
3.1.2. Instalación y Configuración del Asterisk
Igualmente para la instalación de asterix se deberá referir al manual de instalación
adjunto, de todas maneras la instalación de asterisk en un sistema GNU/Linux sigue los
siguientes pasos:
–
Instalación de paquetes y librerías dependientes.
–
Descarga del código fuente de asterisk.
–
Compilación de asterisk.
–
Instalación en el sistema y copia de archivos de configuración de ejemplo.
–
Creación del plan de discado y de voces personalizadas.
3.1.2.1. Plan de discado
El plan de discado es lo más importante en el asterisk en la medida que este define
31
como asterisk irá gestionando las llamadas. Este consiste en una lista de instrucciones o
pasos que asterisk debería seguir, las mismas que son activadas a partir de los dígitos
recibidos de un canal o aplicación.
La mayor parte del plan de discado está contenida en el archivo “extensions.conf” que
está en el directorio “/etc/asterix”.
Adicionalmente los archivos de sonido que se utilizan en el plan de discado deben ser
copiados en el directorio respectivo.
3.1.2.2. Instalación de un Softphone para las pruebas del IVR.
Softphone es un software que hace una simulación de teléfono convencional por
computadora. Es decir, permite usar la computadora para hacer llamadas a otros
softphones o a otros teléfonos convencionales. Para estas pruebas se utilizará el
softphone XLITE que es gratuito, el cual se lo ha descargado de la web en una
computadora portátil con Windows XP.
En el menú “ opcion system settings “ se deberá colocar la dirección IP del servidor
de VOIP junto con el nombre de usuario y contraseña asignado. Luego se deberá
verificar en la consola del Asterix que se registre el Xlite, y que todo está listo para las
pruebas, adicionalmente se puede conectar un ATA con un teléfono convencional o un
teléfono IP los cuales se configuraran como otras extensiones ejemplo (ext101, ext102,
..etc).
3.1.3. Implementar acceso a consola SSH sin contraseña
SSH1 es el nombre de un protocolo y del programa que lo implementa, y sirve para
acceder a máquinas remotas a través de una red. Permite manejar por completo la
1
Secure Shell (Intérprete de órdenes seguro)
32
computadora mediante un intérprete de comandos. Además de la conexión a otras
máquinas, SSH nos permite copiar datos de forma segura, gestionar claves RSA1 para
no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra
aplicación por un canal seguro tunelizado mediante SSH.
Puesto que el servidor de VOIP necesita acceso al equipo que entrega el internet, se
necesita acceder al mismo mediante una consola segura pero sin contraseña. Se puede
solucionar este problema haciendo que un equipo confíe en el otro.
Lo primero, en la máquina cliente, es decir el servidor de voip que tendrá acceso al
servidor Proxy se deberá generar una clave RSA pública local que posteriormente se
exporta al ordenador remoto usando el comando Linux: ssh-keygen
TesisVoIP:~# ssh-keygen -t rsa
La ejecución de este comando presenta lo siguiente en la pantalla:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8b:44:6b:d0:0d:8e:cb:78:f0:12:60:df:52:16:ac:ab [email protected]
La “passphrase” se la deja en blanco, el objetivo es poder ingresar mediante consola
segura SSH sin digitar la contraseña.
Una vez hecho esto, se genera el archivo “~/.ssh/id_rsa.pub” el cual se debe copiar en
forma segura al servidor al cual se desee tener acceso sin contraseña:
scp ~/.ssh/id_rsa.pub 192.168.0.254:~/.ssh/authorized_keys2
1
RSA es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública
33
De esta manera el servidor o servidores que proveen servicio al servidor de VOIP ya no
pedirán contraseña cada vez que se necesite realizar un monitoreo.
3.1.4. Instalar script de monitoreo en el servidor IPCOP
Este es un procedimiento bastante trivial como copiar mediante un software de consola
segura tal como winscp en el caso de windows o scp en el caso de linux y colocarlo en
la carpeta “/usr/local/sbin”
3.2. DETALLES DE IMPLEMENTACIÓN
3.2.1. Arquitectura del Sistema de Soporte Automático
Este sistema fue diseñado en base a dos capas o niveles de abstracción en donde la capa
superior no necesita conocer detalles específicos de implementación del nivel inferior
tal como se muestra en el (Figura 3-1).
(
USUARIO REALIZA
LLAMADA SOPORTE
Asterisk
Tescli.agi
SERVIDOR VOIP
PROTOCOLO SSH
probarcliente
comprueba
REINICIA SERVICIOS
ENVIA ALERTAS POR
SMS O EMAIL
SERVIDOR INTERNET
Figura 3-1. Arquitectura del sistema de soporte
34
A). NIVEL 1.- Servidor VOIP
Esta es la capa de abstracción superior y con la cual interactúan los usuarios vía
telefónica, consta del servidor de código abierto asterisk y la interfaz AGI “testcli”. En
este nivel se procesan las llamadas telefónicas de los clientes y en caso de requerir
soporte automático se realiza una llamada hacia un módulo de software localizado en el
servidor de internet de los clientes. Este nivel no conoce detalles de implementación ni
formas de acceso a la información de los clientes, solo hace una llamada especificando
el servidor y el código del usuario. Consta a su vez de dos módulos:
Servidor Asterisk.- Hace las veces de centralita telefónica y realiza llamadas a
la interfaz AGI “testcli” cuando el usuario necesita soporte automatizado.
Interfaz testcli.agi.- Esta es una interfaz AGI, la misma que mediante el
protocolo ssh ejecuta remotamente el script “probarcliente” que reside dentro
del servidor que provee servicio de internet a los clientes. Los parámetros que
envía son la dirección IP del servidor y el código del cliente.
B). NIVEL 0 .- Servidor de internet de los clientes
Este es el nivel de abstracción inferior y trata con detalles específicos de acceso a
funciones del sistema operativo y con detalles de implementación del ISP inalámbrico
tales como autenticación, autorización y registro de información de los clientes. El
código que controla este nivel de abstracción reside en el servidor que provee internet a
los clientes. En este nivel se especifican detalles relacionados con la forma de acceso a
la información de los clientes, como por ejemplo a que dirección IP pertenece que
cliente, si el cliente esta deshabilitado. Este código es implementado de acuerdo a como
tiene organizada la información el ISP inalámbrico, por ejemplo: si los servicios están
funcionando sobre distintos servidores, que distribución usan, que métodos de
validación tienen los usuarios. Para implementar este nivel se ha escogido el servidor
IPCOP como solución modular y sencilla que muchos ISPs inalámbricos utilizan en
nuestro país.
35
Esta parte consta de dos módulos.
Script probarcliente
Este provee funciones de monitoreo a los clientes y les sugiere una posible
solución. Este código que reside en el servidor que provee servicio a los clientes
recibe como parámetro el código que provee el usuario,
Script comprueba
Este módulo provee funciones de monitoreo y auto reparación a los servicios y
funciones del servidor y realiza una comprobación periódica de los servicios
corriendo sobre el mismo tales como: dns, smtp, pop3, Proxy, etc, y en caso de
que haya un servicio inhabilitado o que funcione en forma incorrecta trata de
solucionar el problema y notifica al administrador vía email o mensaje de texto.
3.2.2. INTEGRACION DEL SISTEMA
El sistema será utilizado por tres entidades: los clientes que requieren soporte
automático, el personal del área de soporte y el servidor que será monitoreado por el
sistema.
Clientes.
El cliente solicita soporte automático.
El servidor de VOIP hace una llamada al interfaz AGI “testcli”.
“testcli” ejecuta mediante SSH el script “probarcliente” que reside en el servidor
que provee internet a los clientes.
36
“probarcliente” realiza las respectivas pruebas y envía información al usuario
mediante el protocolo de comunicaciones AGI.
Cuando el script termina, el servidor de VOIP continúa ejecutando el plan de
marcado.
Personal del área de soporte
El Administrador necesita ejecutar alguna instrucción en algún servidor del ISP.
El servidor de VOIP hace una llamada al AGI “testcli”.
“testcli” mediante SSH ejecuta la instrucción solicitada en el servidor solicitado.
Servidor
El script de auto-monitoreo “comprueba”, detecta un servicio inhabilitado o que
funciona en forma incorrecta.
Si es una falla que se puede corregir, el script trata de hacerlo y notifica mediante
un correo electrónico y/o un mensaje de texto al administrador.
3.3. PRUEBAS DEL SISTEMA
La primera fase de pruebas de la efectividad del sistema se utilizó dos computadoras
con el sistema operativo Windows XP instalado, cada uno de ellos conectado a un
bridge inalámbrico y estos se asociaron a un Access Point conectado mediante ethernet
a la interfaz blue del servidor IPCOP. Luego de ello se simularon las distintas
condiciones que pueden suceder en una red inalámbrica, tal como se muestra en la
(Figura 3-2).
37
Figura 3-2. Hardware utilizado con el fin de realizar pruebas del sistema
Intencionalmente se desconectó el cable de red del bridge inalámbrico conectado a
la computadora y el sistema informó que posiblemente el cable de red estaría
desconectado.
Se apagó deliberadamente el bridge inalámbrico relacionado con un usuario y se
procedió a monitorearlo, en este caso el sistema siempre informó: “el equipo
inalámbrico no responde, posiblemente porque este trabado o porque este sin
energía eléctrica, le recomendamos desconectar brevemente el adaptador de
corriente y verificar que este con energía”.
Se deshabilitó la respuesta a paquetes de solicitud de eco ICMP o ping en las
computadoras de prueba y el sistema pudo determinar que el equipo inalámbrico si
estaba encendido pero no podía determinar la latencia hacia el computador; este
comportamiento es normal puesto que un técnico tampoco podría determinar el
tiempo de respuesta hacia un cliente inalámbrico, si las peticiones ping están
deshabilitadas.
Se suspendió el servicio de internet a una de las computadoras y el sistema supo
determinar que el cliente tenía el servicio suspendido y por ende no había que
proceder con el diagnostico.
38
Posteriormente se asignaron códigos a ciertos usuarios en la empresa Lojasystem con el
fin de evaluar la efectividad del sistema.
Como fase final de las pruebas se lo implemento en la empresa Lojasystem y se lo
monitoreo al sistema durante un periodo de 4 meses, durante este periodo se hicieron
los correctivos necesarios al sistema, así mismo se monitorio el registro o bitácora de
los problemas que se fueron presentando, para sacar estadísticas y resultados.
3.3.1. Escalabilidad
Durante las pruebas que se realizó, los recursos del sistema estuvieron bastante
holgados, este sistema es lo suficientemente escalable como para manejar algunos
cientos de llamadas simultáneas; puesto que el código para diagnosticar un problema
consume muy pocos ciclos del procesador y se utiliza el mismo códec en todas las
llamadas entrantes, es decir no se requiere transcoding. De todas formas cuando el
sistema escale a algunas decenas de llamadas simultáneas sería recomendable colocar
el sistema en un equipo más poderoso: por ejemplo un computador Pentium 4 o
superior con 512 MB de memoria RAM o más.
3.4. RESULTADOS OBTENIDOS
Como antecedentes se tiene que en la empresa donde fue implantado el sistema para las
pruebas “Lojasystem”, el soporte técnico brindado a sus clientes cubría el horario de
8:30 a 19:30, pero no las 24 horas como lo exige la Superintendencia de
Telecomunicaciones. Con el fin de no incrementar demasiado la carga laboral en los
técnicos de soporte y de reducir costos, lo más práctico y lo que más se ajustaba a dicha
empresa para solucionar tal requerimiento era proporcionar a sus clientes el número
celular de un encargado de soporte técnico para cuando tuvieran algún inconveniente
fuera de horario normal de trabajo.
39
La pérdida de recursos humanos era inevitable debido a que muchos de los técnicos les
incomodaba responder llamadas a cualquier hora de la noche y muchas de las veces
llamadas más tarde de las doce de la noche no eran contestadas y si respondían lo
hacían de mala gana puesto que interrumpían su descanso. Esta situación ocasionaba
insatisfacción tanto en los clientes como el personal de soporte de la compañía.
Inclusive algunos clientes habían suspendido su contrato puesto que no habían recibido
soporte técnico en forma oportuna.
En este contexto el software de monitoreo y auto reparación de los servicios del
servidor resultó sumamente oportuno y ya no se presentaron llamadas por causa de un
servidor trabajando incorrectamente puesto que éste sin la intervención de ningún
técnico reinicia servicios que no están trabajando correctamente y alerta en forma
sonora cuando ello sucede; si esto no fuera suficiente se podría reiniciar remotamente
el servidor mediante una llamada desde un teléfono fijo o móvil. Cabe destacar que
nunca se ha hecho necesario reiniciar remotamente el servidor puesto que el software
realiza su función en forma bastante eficiente.
De acuerdo a los registros en bitácora, a nivel de servidor el sistema resuelve
mensualmente en promedio 5 problemas relacionados con la provisión del servicio a
todos los clientes y que necesitarían de la intervención de un técnico para solucionarlo,
los más comunes son relacionados con el servicio squid que es el encargado de realizar
el cacheo de las paginas y con el servicio dnsmasq que es el modulo encargado de la
resolución de los nombre de dominio. De todos los casos presentados el sistema ha
resuelto el 100%, exceptuando aquellos casos en donde no esté a su alcance la solución
de un problema como por ejemplo si hay una defectuosa provisión del Internet por
parte del proveedor; en este caso lo único que hace es registrar en bitácora el incidente
y emitir una alerta.
En relación con las llamadas que eran realizadas por los clientes a altas horas de la
noche, era complicado para la empresa llevar un registro de esas llamadas puesto que
los técnicos no las reportaban. Lo que si se podría manifestar que ahora en promedio el
sistema atiende alrededor de 10 llamadas semanales, las cuales si nos remitimos a la
40
encuesta de la tabla 3-1 tiene una exactitud del 81% para diagnosticar los problemas.
En la empresa que fue implementado el sistema, éste empezó a ser utilizado en una fase
progresiva, es decir se les entregó códigos de monitoreo solamente a ciertos usuarios;
en su mayoría corporativos y a unos pocos clientes residenciales. La idea fue ir
evaluando el nivel de satisfacción de los clientes para poder hacer cambios o mejoras.
Los directivos de la compañía no han creído pertinente que el sistema responda
llamadas de soporte en horas laborables sino mas bien en horas fuera de oficina.
Si bien es cierto el sistema todavía no ha sido implantado en un ciento por ciento se
puede decir que:
•
Se cumplió con el requerimiento de las autoridades regulatorias de proveer
servicio técnico las 24 horas del día, los 365 días del año.
•
Se redujo a 0% el número de llamadas relacionadas con fallas en el “servidor”
que provee Internet a los clientes.
•
Se está cumpliendo con las expectativas de los clientes de poder proveerles un
servicio técnico a cualquier día de la semana y a cualquier hora.
Con tal objetivo se realizó una encuesta a los clientes que habían requerido soporte
automatizado, La (Tabla 3-1) refleja la exactitud para diagnosticar los problemas en un
81%, lo cual está por sobre el 21% del objetivo propuesto en esta tesis. El modelo de
encuesta esta descrito en el apéndice Nº 6.
41
Tabla 3-1 Exactitud en el diagnostico desde el punto de vista del usuario1
PROBLEMA DIAGNOSTICADOS POR EL
SISTEMA
OPINION DEL
USUARIO
El sistema reporta que el equipo posiblemente está
congelado o sin energía eléctrica
100%
El sistema no detecta ningún problema
43%
El sistema informa que hay problemas de calidad en el
100%
2
enlace
El sistema reporta que el usuario posiblemente está
consumiendo toda su capacidad
68%
Posiblemente cable de red desconectado
76%
El sistema reporta que el usuario está suspendido su
servicio por falta de pago
100%
PROMEDIO
81%
Que el sistema diagnostique un problema no significa que el cliente esté de acuerdo
con ese diagnóstico, esto se puede evidenciar en una forma más acentuada cuando el
sistema le manifiesta al usuario que el problema no atañe a la empresa proveedora del
servicio; por ejemplo un cliente corporativo experimentó congestión en la señal pero
estuvo ocupando todo su ancho de banda disponible, entonces ese usuario supo
manifestar que el sistema le estaba dando información sesgada a favor del proveedor de
Internet.
Además se pudo determinar lo siguiente:
El sistema detecta un problema más rápidamente que un técnico de soporte, y
siempre la información presentada es exacta, pero existen problemas que si
requieren del conocimiento de un técnico especializado por ejemplo; sería muy
difícil para un software determinar cuando un equipo inalámbrico ha perdido su
1
Lo que diagnosticó el sistema fue contrastado con lo que el usuario reportó posteriormente en la encuesta
Esto es perfectamente comprensible según lo que analizábamos en el apartado 2.1, es decir la calidad de la
navegación es un aspecto un tanto subjetivo.
2
42
configuración y está con los valores de fábrica, de todas maneras son excepciones
que las debería responder un técnico calificado en la siguiente jornada laborable de
acuerdo al registro en bitácora de problemas no resueltos por el sistema.
Muchos posibles usuarios se mostraron renuentes a que un software interactivo
intente proveerles una solución por lo que habría que tomar bastante atención a este
punto cuando se desee implementar el sistema.
De acuerdo a la (Tabla 3-2), la mayor cantidad de llamadas se da por que el equipo
inalámbrico del cliente se quedó congelado o detenido, puesto que el sistema le indicó
al cliente que debería reiniciar este equipo la mayoría de veces este problema fue
resuelto.
Tabla 3-2 Llamadas según el tipo de problema diagnosticado
TIPO DE PROBLEMA DIAGNOSTICADO
PORCENTAGE
El sistema reporta que el equipo posiblemente está
congelado o sin energía eléctrica
46%
El sistema no detecta ningún problema
15%
El sistema informa que hay problemas de calidad en el
enlace
12%
El sistema reporta que el usuario posiblemente está
consumiendo toda su capacidad
17%
Posiblemente cable de red desconectado
3%
El sistema reporta que el usuario está suspendido el
servicio por falta de pago
6%
Otros
1%
100%
43
Capítulo 4.
Conclusiones y Recomendaciones
4.1. CONCLUSIONES
Luego de haber desarrollado la presente investigación se concluye que el futuro de la
telefonía será desarrollada sobre tecnología IP y basada principalmente sobre proyectos
open source como Asterix; por ende un sistema de computación con recursos modestos
podría correr soluciones bastante sofisticadas las mismas que en sistemas comerciales
costarían decenas de miles de dólares. Eso significa trabajo para nuestros profesionales
y que el dinero invertido en tecnologías de la información no salga de nuestro país.
En este contexto desarrollar aplicaciones que antes tenían costo de varios cientos de
miles de dólares se vuelven económicas; por ejemplo un sistema de información
electoral vía telefónica incluido hardware y costo de desarrolladores estaría por
alrededor de USD 8.000.1
Esto demuestra que en este universo globalizado el activo más valioso llega a ser el
conocimiento.
En relación con el objetivo del presente proyecto se podría decir que este sistema pudo
solucionar un problema que es el hecho de proveer soporte en horas no laborables y
días feriados, reduciendo con ello costos operativos e incrementando la satisfacción de
los clientes que saben que en cualquier día y hora del año pueden tener soporte de la
empresa proveedora de internet.
Es necesario acotar que una gran cantidad de llamadas de soporte se presentó por que el
suscriptor inalámbrico se quedaba detenido o bloqueado, esto debido a que el
proveedor había colocado equipos no apropiados o de poca calidad.
1
Se estima un servidor con 4 tarjetas de 8 slots E1 procesando 32 llamadas simultáneas.
44
Además este trabajo puede ser el punto de partida para dar solución a otras aplicaciones
comerciales que requieren del acceso a una base de datos y de una persona que
entregue una información en forma telefónica por ejemplo; autorizaciones de tarjeta de
crédito, información de servicios básicos como agua, luz o teléfono, etc.
4.2. RECOMENDACIONES
Como Recomendaciones para la escuela se podría sugerir lo siguiente:
Incentivar en la UTPL el desarrollo de proyectos de investigación de voz
sobre el protocolo IP bajo plataformas de código abierto.
Como recomendaciones para los ISPs inalámbricos se podría recomendarles lo
siguiente:
Incrementar la calidad de los suscriptores utilizados por cada cliente.
Implementar este sistema en las empresas proveedoras que no tienen opción
de contratar un staff de soporte las veinticuatro horas.
45
Capitulo 5
Bibliografía
Netkrom Tecnologies (2005), Soluciones Wireless ISP, [web en línea]. Disponible desde
internet en: <http://www.netkrom.com/es/sol_wisp.html> [con acceso el 6-10-2008]. [1]
Román S. Francisco (2008) Reingeniería de la intranet de la empresa Tecnomega C.A.,
Tesis de Ingeniería y Redes de Información, Escuela Politécnica Nacional, Quito,
Ecuador. [2]
Michael K. Johnson (1996), Linux Information Sheet, Características de Linux, [web en
línea].
Disponible
desde
internet
en:
<http://www.grulic.org.ar/comos/infosheet/InfoSheet-Como-2.html> [con acceso el 12-10-2008]. [3]
Gorka Gorrotxategui-Iñaki Baz, (2006) Curso Voz sobre IP y Asterisk v1.0 Modulo III,
Bilbao, España. IRONTEC. [4]
Colaboradores de Wikipedia. IPCop (2009) Wikipedia, La enciclopedia libre [web en
línea].
Disponible
desde
internet
en:
<http://es.wikipedia.org/w/index.php?title=IPCop&oldid=24480566> [con acceso el 1202-2009]. [5]
Francisco Omil. (2003) Manual de estilo en la redacción de tesis/dea, [web en línea].
Disponible desde internet en: <http://www.usc.es/biogrup/manestilodea.htm> [con acceso
el 1-10-2008].
Daniel L. Morrill. (2002) Configuración de sistemas Linux. Ed. Anaya Multimedia, ISBN:
84-415-1465-8
Dee-Ann Leblanc, (2001) La Biblia de Administración de sistemas Linux. col. La Biblia
de, Ed. Anaya Multimedia, , ISBN: 84-415-1126-8.
Matt Welsh, Matthias Kalle Dalheimer y Lar Kaufman (2000) Linux. Guía de referencia
y aprendizaje., col. O'Reilly, Ed. Anaya Multimedia, , ISBN: 84-415-1071-7.
Jim Van Meggelen, Jared Smith, and Leif Madsen, (2005) Asterisk: The Future of
Telephony. Media lnc.,O'Reilly CA, USA.
Flavio E. Goncalves, (2007), Asterisk PBX, Guía de la configuración, florianópolis,
tercera edición.Janeiro, Brasil.
Mark Spencer, Mack Allison, Christopher Rhodes. (2003) The Asterisk Documentation
Team: The Asterisk Handbook. Digium, Inc., USA.
46
VOIP WIKI, (2008) a reference guide to all things VOIP, PBX and Servers -VOIP PBX
and Servers [web en línea]. Disponible desde internet en: <http://www.voip-info.org/>.
[con acceso el 15-08-2008]
Digium Inc, (2007) Asterisk: An Open Source PBX and telephony toolkit [web en línea].
Disponible desde internet en: <http://www.asterisk.org> [con acceso el 05-09-2008]
Digium lnc, (2007) Asterisk Guru, Tutorials and howto's for the asterisk PBX and voip in
general, [web en línea]. Disponible desde internet en: <http://www.asteriskguru.com/>
[con acceso el 10-09-2008]
Stopford, Andrew. (2002) Proyectos profesionales: con PHP, Anaya Multimedia-Anaya
Interactiva,. ISBN: 84-415- 1418-6
Perl Apache: proyectos de integración de Perl y Apache [web en línea]. Disponible desde
internet en: < http://perl.apache.org/> [con acceso el 18-10-2008]
47
Apéndice 1
Encuesta realizada a ISPs
Inalámbricos
Estimado proveedor de Internet, estamos recabando información con el fin de implementar
un “Sistema de soporte telefónico autónomo para ISPs inalámbricos”, es decir un software
que en forma autónoma y sin la intervención de ningún ser humano conteste las líneas
telefónicas de soporte técnico; sea capaz de detectar la posible avería del cliente y le sugiera
una posible solución en manera similar a como lo haría un técnico calificado.
Esta investigación la estamos realizando como parte de nuestra tesis de grado y por lo tanto
desearíamos conocer los problemas más comunes que su departamento de soporte técnico
soluciona; es necesario aclarar que esta encuesta es totalmente anónima.
1. ¿Cuál es el horario de soporte técnico de su empresa?
______________________________________________________
2. ¿Tiene soporte técnico automatizado, es decir que lo provee un sistema informático en
forma totalmente independiente que pueda solucionar en parte los problemas más
comunes de los usuarios?
Si ( )
No ( )
Si contesta afirmativamente, ponga el nombre del sistema: ………………………………………
3. ¿Cuántas llamadas de soporte técnico promedio tiene al día?
___________________________
4. ¿Usted cree conveniente que se implemente en su empresa un sistema que le provea de
soporte técnico en horas fueras de oficina o cuando no están trabajando sus técnicos de
soporte?
Si ( )
No ( )
5. ¿Indique en promedio el porcentaje de llamadas por las que el cliente solicita soporte
técnico?
a.
b.
c.
d.
e.
f.
El equipo inalámbrico del cliente se le quedo congelado o inhibido
Equipo inalámbrico perdió configuración (se reseteo)
Computador personal perdió configuración de red
Navegación lenta o deficiente
Navegación lenta debido a que está consumiendo todo su ancho de
banda asignado
Otros
¿Cuáles?: ______________________________________________
(
(
(
(
(
)%
)%
)%
)%
)%
( )%
Muchas gracias por su valioso aporte a esta investigación.
Atentamente: los autores
48
Apéndice 2
Tabla de los problemas de soporte más comunes de un ISP
inalámbrico
PROBLEMA
SOLUCION
DIFICULTAD DE
IMPLEMENTACION
El equipo inalámbrico del cliente se Solicitarle al cliente que reinicie el Sencillo
quedó congelado: Esto puede ser por equipo inalámbrico desconectando el
saturación del equipo, por un defecto de adaptador de corriente
hardware o por un problema de
sobrevoltaje que congeló al adaptador de
corriente.
El cliente perdió su configuración de
red: Esto se da principalmente cuando el
cliente formatea, o actualiza su
computador.
Paso a paso indicarle al cliente como
restaurar su configuración de red, esto
depende de su sistema operativo y la
versión. Para esta solución influye
mucho el nivel de conocimientos del
cliente
El equipo inalámbrico del cliente no
responde por un problema en la
infraestructura del ISP: Generalmente
este problema es causado en el multipunto
al que está conectado el cliente y la
mayoría del tiempo es debido a problemas
de suministro de energía eléctrica y el
sistema de respaldo de energía se ha
agotado.
En el lado del cliente no hay nada que Sencillo
hacer, y lo único que se puede hacer es
notificarle al cliente que el problema se
origina en el proveedor de internet
PORCENTAJE
DE FALLAS
65%
6%
Medio
Lo
más
aconsejable
seria
implementar una solución para los
sistemas operativos más comunes y
para las versiones más populares de
estos sistemas operativos.
3%
49
problema
normalmente
se Este es un problema que muy rara 1%
El equipo inalámbrico del cliente perdió Este
su configuración: Este es un problema soluciona con la visita del técnico al vez se presenta y no se recomienda
que se presenta en raras ocasiones que se domicilio del cliente
su
automatización,
lo
más
ocasiona por sobrevoltaje y/o un equipo
recomendable es la visita de un
defectuoso
técnico donde el cliente.
El cliente reporta lentitud en su señal
debido a problemas de calidad del
enlace
Lo más probable que cambiaron las
condiciones de línea de vista del enlace
ejemplo una construcción nueva que
obstruye la señal, árboles que crecieron
con el tiempo o que el equipo
inalámbrico pudo haberse movido de su
ubicación original.
Este problema se soluciona 12%
únicamente con la visita de un
técnico y lo único que se puede
hacer es notificarle al cliente del
problema y registrar la llamada
para una urgente solución
En este caso no hay nada que se pueda Medio
hacer más que informarle al cliente que
está consumiendo todo su ancho de
banda contratado
Problemas varios o que se presentan muy En este caso se tendría que registrar la Sencillo
rara vez y que no se pueden catalogar
llamada para que un técnico le visite al
fácilmente
cliente lo más pronto posible.
El cliente reporta lentitud pero está
consumiendo todo su ancho de banda
contratado
12%
1%
50
Apéndice 3
Distribución Linux IPCOP
De acuerdo a la wikipedia [5]
IPCop es una distribución Linux que implementa un cortafuego (o
firewall) y proporciona una simple interfaz web de administración
basándose en una computadora personal.
IPCop tiene como objetivos ser un cortafuegos sencillo, con pocos
requerimientos hardware orientado a usuarios domésticos o a pequeñas
empresas (SOHO), administrado a través de una interfaz web, con
funcionalidades básicas y avanzadas, yendo (a manera de ejemplo)
desde el simple filtrado de paquetes hasta la asignación de ancho de
banda fijo a cada puesto de trabajo o la configuración de redes virtuales
VPN. IPCop se actualiza desde el Interfaz Web de manera muy sencilla,
incluyendo actualizaciones del Kernel.
La distribución Linux se puede bajar desde el sitio oficial en inglés,
consiste de una imagen ISO de menos de 100Mb la cual puede ser
grabada en un CD e instalada en cualquier PC que tenga al menos dos
interfaces de red.
Topologías de red soportadas: Permite la implementación de
diferentes topologías de red, ya sea desde la simple LAN que sale a
internet, hasta la creación de una zona desmilitarizada (DMZ),
soportando también la inclusión de una red inalámbrica.
Las diferentes zonas las divide en colores, siendo:
51
* ROJA (o Red) = zona de Internet,
* VERDE (green) = Red de Área Local (LAN) cableada,
* NARANJA (Orange) = zona desmilitarizada (DMZ, para la granja
de servidores),
* AZUL (Blue) = zona inalámbrica (Wireless).
Esta distribución es bastante utilizada por los ISPs inalámbricos puesto que
implementa entre otros servicios: un servidor proxy, DNS, firewall,
autenticación por dirección IP/dirección Mac y la mayoría de funciones son
administradas mediante una interfaz web.
Puesto que la principal función del IPCOP es ser utilizado como firewall; este
tiene cierta analogía con los colores de un semáforo de transito: la interfaz
conectada directamente al Internet se denomina RED (roja), la cual tiene un
nivel de protección máxima mientras que la interfaz GREEN es la conexión a
la que se conectan los usuarios mediante la red de área local y la que tiene
menores restricciones de seguridad. La interfaz BLUE (azul) tiene un nivel de
protección media y es a la que se conectan los usuarios inalámbricos.
52
Apéndice 4
Hardware a utilizar
Un computador marca DELL procesador Pentium III 1 ghz, 512
memoria ram, disco duro 13 GB capacidad.
Tarjeta PCI con puerto FXO para las funciones de telefonía, es decir
el dispositivo que conectara el servidor de VOIP con las redes
públicas de teléfono tales como pacifictel, alegro, porta, movistar
Equipo ATA, es decir el equipo que va a permitir conectar cualquier
equipo telefónico tradicional o fax, a la LAN y por ende a la central
de VOIP
Diadema para conectarle al equipo en el que va a ir instalado el
softfone
Teléfono IP
Teléfono convencional, el mismo que va a ser conectado al ATA
Acess point
Conexión a Internet para instalar actualizaciones, descargar
paquetes y programas necesarios.
Software adicional.
Softfone
XLITE es un programa que corre bajo la plataforma
WINDOWS y que permite conectarse a la central de VOIP y realizar
llamadas tal como lo se lo haría desde un teléfono convencional,
utilizando para ello los auriculares y el micrófono de la computadora o
una diadema.
53
Apéndice 5
Código fuente
*******************************************
Archivo testcli.agi
*******************************************
#!/bin/bash
#el servidor a revisar, en el caso de los IPCOPs usan el puerto 222 para ssh
SERVIDOR="ssh -p 222 192.168.0.254"
declare -a array
while read -e ARG && [ "$ARG" ] ; do
array=(` echo $ARG | sed -e 's/://'`)
#
export ${array[0]}=${array[1]}
done
# Las siguientes variables están disponibles desde Asterisk
echo $2 >> $RUTA
checkresults() {
while read line
do
case ${line:0:4} in
"200 " ) echo $line >&2
return;;
"510 " ) echo $line >&2
return;;
"520 " ) echo $line >&2
return;;
*
) echo $line >&2;;
# si el comando invalido
# "520 End ..."
54
esac
done
}
#envía a reiniciar el servidor
if [ "$1" = "71103012751" ]; then
echo "EXEC Playback p/reiniciar-servidor"
$SERVIDOR /sbin/reboot
exit
fi
# reinicia servicios de red
if [ "$1" = "71103012752" ]; then
echo "EXEC Playback p/reiniciar-servicios"
$SERVIDOR /etc/rc.d/rc.network restart
exit
fi
#Le pasa como argumento restado el primer número y sin ceros
TMP=$1; i=${TMP:1};PARAM=${i#"${i%%[!0]*}"}
$SERVIDOR /usr/local/sbin/probarcliente $PARAM
#checkresults
#echo "SAY NUMBER 777 \"\""
echo "=================== Completo ====================" >&2
55
*******************************************
Archivo sip.conf
*********************************************
[general]
language=es
[sets](!)
type=friend
context=internal
host=dynamic
disallow=all
allow=ulaw
dtmfmode=rfc2833
secret=1234
[101](sets)
maibox=101
[102](sets)
maibox=102
[103](sets)
maibox=103
[104](sets)
maibox=104
[105](sets)
maibox=105
56
*******************************************
Archivo extensions.conf
*******************************************
; extensions.conf - DialPlan de Asterisk
;
; This configuration file is reloaded
; - With the "dialplan reload" command in the CLI
;
[general]
[globals]
CONSOLE=Console/dsp
; Console interface for demo
;CONSOLE=DAHDI/1
IAXINFO=guest
; IAXtel username/password
TRUNKFIJA=DAHDI/g1
; Trunk interface
TRUNKCELL=DAHDI/4
TRUNKMSD=1
; MSD digits to strip (usually 1
or 0)
;TRUNK=IAX2/user:pass@provider
;
ignorepat => 9
;
[internacional]
ignorepat => 9
exten =>
_900.,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
[trunkld]
exten =>
_90NXXXXXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNKM
SD)}})
57
[trunklocal]
exten =>
_925[78]XXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNKMS
D)}})
[trunktollfree]
exten =>
_91800XXXXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNK
MSD)}})
[trunk-notollfree]
exten =>
_91877XXXXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNK
MSD)}})
[trunkregional]
exten =>
_92NXXXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNKMSD
)}})
[trunknacional]
exten =>
_90NNXXXXXX,1,Dial(${GLOBAL(TRUNKFIJA)}/${EXTEN:${GLOBAL(TRUNKM
SD)}})
[trunkcelular]
exten =>
_90[89]XXXXXXX,1,Dial(${GLOBAL(TRUNKCELL)}/${EXTEN:${GLOBAL(TRUN
KMSD)}})
[largadistancia]
ignorepat => 9
include => local
58
include => trunkld
[local]
ignorepat => 9
include => default
include => trunklocal
include => trunktollfree
;Include parkedcalls (or the context you define in features conf)
;to enable call parking.
include => parkedcalls
;
[macro-trunkdial]
;
; Standard trunk dial macro (hangs up on a dialstatus that should
; terminate call)
; ${ARG1} - What to dial
;
exten => s,1,Dial(${ARG1})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-BUSY,1,Hangup
exten => _s-.,1,NoOp
[macro-stdexten]
; Standard extension macro
; ${ARG1} - Voicemail box
; ${ARG2} - Device extension(s) to ring
;
59
exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum
exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status
(NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy
announce
;exten => s-BUSY,2,Goto(public,s,1) ; If they press #, return to start
exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to
voicemail w/ unavail announce
;exten => s-NOANSWER,2,Goto(public,s,1) ; If they press #, return to start
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answ
[repetir-soporte]
exten => s,1,Background(p/repetir-test) ; si desea repetir esta prueba presione ...
exten => s,n,Background(p/1h)
exten => s,n,Background(p/buzom-sop) ; Si desea dejar un mensaje en el
departamento técnico presione ..
exten => s,n,Background(p/2h)
exten => 1,1,AGI(testcli.agi,${COD_USER})
exten => 1,n,Goto(s,1)
exten => 2,1,Voicemail(102)
exten => i,1,Wait(2)
exten => i,n,Playback(p/invalid-opc) ; Usted ha escogido una opción inválida
exten => i,n,Wait(1)
exten => i,n,Goto(s,1)
exten => t,1,Playback(goodbye) ; adios
exten => t,n,Hangup
60
[soporteauto]
exten => s,1,Background(p/intro-sop) ; Bienvenido al sistema de soporte
automático
exten => s,n,Background(p/codigo)
; por favor digite su código de usuario
exten => s,n,Background(p/buzom-sop)
exten => s,n,Background(p/3h)
exten => s,n,Waitexten(p/10)
exten => _1XXX,1,Set(COD_USER=${EXTEN}) ; leer código
exten => _1XXX,n,AGI(testcli.agi,${COD_USER})
exten => _1XXX,n,Goto(repetir-soporte,s,1)
exten => _7110301275X,1,AGI(testcli.agi,${EXTEN})
exten => 3,1,Voicemail(102)
exten => i,1,Wait(2)
exten => i,n,Playback(p/invalid-cod) ; Usted ha presionado un código invalido
exten => i,n,Wait(1)
exten => i,n,Goto(s,2)
exten => t,1,Playback(goodbye) ; adios
exten => t,n,Hangup
[incoming]
exten => s,1,Answer
exten => s,n,GotoIfTime(09:00-17:59|mon-fri|*|*?,7)
exten => s,n,GotoIfTime(09:00-11:59|sat|*|*?,7)
; modificar sí se agregan
; prioridades en estas extens.
exten => s,n,Wait(1)
exten => s,n,Background(p/cerrado)
exten => s,n,Goto(13)
; aquí también modificar
exten => s,n,Background(p/graciasporllamar)
exten => s,n,Background(p/siconocelaext)
exten => s,n,Background(p/conlaoperadoraofax)
61
exten => s,n,Background(p/0h)
exten => s,n,Background(p/soprtetecnico)
exten => s,n,Background(p/1h)
exten => s,n,Background(p/soprtetecnicoauto)
exten => s,n,Background(p/2h)
exten => s,n,Wait(2)
exten => s,n,Background(p/mmntollamadatransf)
exten => s,n,Dial(SIP/101,10) ; si nadie responde suena el sip 101
exten => s,n,WaitExten(10)
;include => empleados
exten => 0,1,Macro(stdexten,101,SIP/101)
exten => 1,1,Macro(stdexten,102,SIP/102)
exten => 2,1,Goto(soporteauto,s,1)
exten => i,1,Playback(invalid)
exten => i,n,goto(s,5)
exten => t,1,Playback(goodbye)
[internal]
ignorepat => 9
include => local
include => trunkcelular
include => empleados
exten => _81X,1,Dial(DAHDI/${EXTEN:2})
[empleados]
exten => 101,1,Macro(stdexten,101,SIP/101)
exten => 102,1,Macro(stdexten,102,SIP/102)
exten => 103,1,Macro(stdexten,103,SIP/103)
exten => 104,1,Macro(stdexten,104,SIP/104)
exten => i,1,Playback(beep)
exten => i,1,Hangup
[default]
62
*******************************************
Archivo chan_dahdi.conf
*******************************************
[trunkgroups]
[channels]
language=es
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
immediate=no
; define channels
context=internal
signalling=fxo_ks
channel => 1
busydetect=yes
busycount=6
; para que la línea no se quede colgada
; para que la línea no se quede colgada
context=incoming
signalling=fxs_ks
; Incoming calls go to [incoming] in extensions.conf
; Use FXS signalling for an FXO channel
group => 1
channel => 2-3
63
*******************************************
Archivo crontab.txt
*******************************************
#En Linux el commando “contrab” se ejecuta periódicamente
#ejecuta el script de comprobación de servicios cada 2 minutos
*/2 * * * * /usr/local/sbin/comprueba
*******************************************
Archivo voces.txt
*******************************************
# Son voces personalizadas que son invocadas en el dialplan y en la interfaz
# AGI, están colocadas en el directorio /var/lib/asterisk/sounds/es
<intro-sop>
bienvenido al sistema de soporte automático
<codigo>
por favor digite su código de usuario
<buzom-sop> si prefiere dejar un mensaje al departamento técnico presione...
<error-mac> le informamos que su equipo no está respondiendo peticiones
ping pero...
<r-normal>
tenemos muy buena conexión con su enlace inalámbrico, es decir
su antena de radio
<radio5>
hay una pequeña perdida de paquetes de datos de su equipo
inalámbrico es decir su antena de radio hacia nuestro servidor lo
cual puede ser normal
<radiomayor5>
hay una importante pérdida de paquetes de datos de su
equipo inalámbrico es decir su antena de radio hacia nuestro
64
servidor, este problema está siendo notificado a soporte
técnico
<r-resp-eq-noresp>
le sugerimos revise la conexión del cable de red que
viene de la antena hacia su computadora o servidor
puesto que no tenemos respuesta de su equipo
además....
<asimismo>
asimismo denominamos equipo a la computadora o al servidor
que recibe el internet
<fin-pruebas> pruebas terminadas
<r-no-resp>
le
informamos
que
su
equipo
inalámbrico
no
responde,
posiblemente porque este trabado o porque este sin energía
eléctrica, le recomendamos desconectar brevemente el adaptador
de corriente y verificar que este con energía
<repetir-test> si desea repetir el diagnostico presione...
<mientras>
Mientras revisamos tanto su equipo inalámbrico como su
computadora o el servidor que recibe el internet, permítanos
informarle que usted puede repetir esta prueba con el fin de
obtener un diagnostico mas exacto
<corte>
Desafortunadamente hemos tenido inconvenientes en debitar de
su cuenta el valor del servicio, le ruego se acerque a nuestras
oficinas para solucionar este inconveniente
<cerrado>
Estimado cliente, nuestro horario de atención es de 9 de la
mañana a seis de la tarde y los días sábados de 9 a una
<suspendido>
Estimado cliente, su cuenta ha sido deshabilitada, favor
comunicarse con el departamento de contabilidad
65
<congestion-eq>
Estimado cliente, hemos detectado, que la red inalámbrica
esta normal, pero si hay pérdida de datos desde nuestros
servidores
hacia
su
equipo,
posiblemente
este
consumiendo todo su ancho de banda de banda asignado
<conlaoperadoraofax>
Para comunicarse con la operadora o enviar un fax
digite
<err_no_cli> Error, código o contraseña de usuario incorrecta
<err_sin_args>
<espere>
Error interno, cancelando revisión
En este momento, se está evaluando su enlace y determinando la
posible causa de su problema, por favor tenga la bondad de
esperar un momento
<finish>
prueba terminada
<goodbye>
hasta pronto
<graciasporllamar>
gracias por llamar
<invalid-cod> Usted ha presionado un código inválido
<invalid-opc> Usted a escogido una opción inválida
<lentitud>
Si su servicio de internet esta deficiente, presione
<mmntollamadatransf>
<normal>
Momento, su llamada está siendo transferida
le informamos, que no se ha detectado ningún inconveniente en
su enlace, de persistir los problemas, se le recomienda reiniciar su
computador, reiniciar su equipo inalámbrico y probar con otro
navegador diferente de internet explorer, por ejemplo el mozilla
firefox
66
<prompt601>
hasta pronto
<reiniciar-servicios> Reiniciando servicios de Red
<reiniciar-servidor>
El servidor está siendo reiniciado
<repetir-msm>
Si desea escuchar de nuevo este mensaje presione
<siconocelaext>
Si conoce la extensión, márquela ahora, caso contrario por
favor espere
<sin-internet>
Si no tiene internet presione
<soportetecnico>
Con Soporte Técnico y solución de averías digite
<soprtetecnicoauto> Para recibir Soporte Técnico automatizado digite
67
*******************************************
Archivo verlogsoporte.log
*******************************************
#!/bin/sh
LOG="/var/log/probarcliente.log"
if [ "$1" == "" ];
then
tail $LOG
else
grep $1 $LOG
fi
*******************************************
Archivo probarcliente.log
*******************************************
#!/bin/bash
#en este archivo el IPCOP almacena la configuración de los clientes
RUTA="/var/ipcop/wireless/config"
#la subred sobre la que se realizara el monitoreo
SUBRED="192.168"
#en este archivo se registrara los eventos de soporte
LOG="/var/log/probarcliente.log"
if [ "$1" == "" ]; then
echo "EXEC Playback p/err_sin_args" # error interno, cancelando revisión
exit
fi
68
TMP=$1
IP=$(awk -F , '{if ($1=='$TMP') {print$2} }' $RUTA)
if [ "$IP" == "" ]; then
echo "EXEC Playback p/err_no_cli" #error cliente no existe
exit
fi
if grep -w $IP $RUTA | grep off > /dev/null ; then
echo "EXEC Playback p/suspendido" #cuando el cliente ha sido deshabilitado
exit
fi
OCT4=${IP##*.} #cuarto octeto de la IP
OCT4R=$[OCT4-1] #cuarto octeto del radio
TEMP=${IP%.*}; OCT3=${TEMP##*.} # tercer octeto
cd /tmp
ping -c 20 $SUBRED.$OCT3.$OCT4R > tmp_r.$1 &
ping -c 20 $IP > tmp_eq.$1 &
echo "EXEC Playback p/mientras"
X=$(grep -w $IP $RUTA | awk -F , '{print$5 }')
#Esperar a que se termine el ping
while ! [ -s tmp_r.$1 ] || ! [ -s tmp_eq.$1 ]; do
sleep 1
done
i=$(grep "packet loss" tmp_r.$1 | awk '{print$7}' )
let laten_radio=${i%"%"}
i=$(grep "packet loss" tmp_eq.$1 | awk '{print$7}' )
69
let laten_eq=${i%"%"}
MAC=$(arp $IP | grep -Eo '([0-9A-F]{2}:){5}[0-9A-F]{2}')
#loguear
FECHA=$( date +%e-%m/%H:%M )
echo "$FECHA, Codigo: $TMP, IP $IP, latencia equipo:$laten_eq, latencia
radio:$laten_radio, mac $MAC" >> $LOG
##########################################################
function showradio() { # muestra información de acuerdo a la latencia radio y del
equipo
case "$1" in
100) echo "EXEC Playback p/r-no-resp";;
[0-2] ) echo "EXEC Playback p/r-normal";;
[3-5] ) echo "EXEC Playback p/radio5";;
* ) echo "EXEC Playback p/radiomayor5";;
esac
}
echo "EXEC Playback beep"
case "$laten_eq" in
100) if [ "$MAC" == "" ]; then
[ $laten_radio -lt 100 ] && echo "EXEC Playback p/r-resp-eq-noresp"
#equipo y radio no responden
else
echo "EXEC Playback p/error-mac" #equipo no responde por que el
ping esta bloqueado
fi
showradio $laten_radio;; #como no se conoce latencia del equipo
entonces probar con el radio
[0-2]) echo "EXEC Playback p/normal";;
70
* ) let "DIFF=$laten_eq - $laten_radio"
if [ $laten_radio -lt 3 ] && [ $DIFF -gt 3 ]; then
echo "EXEC Playback p/congestion"
else
showradio $laten_radio
fi;;
esac
echo "EXEC Playback p/fin-pruebas"
rm tmp_*
*******************************************
Archivo getcli.log
*******************************************
#!/bin/sh
if [ "$1" == "" ];
then
cat /var/ipcop/wireless/config
else
grep -i $1 /var/ipcop/wireless/config
grep -w $1 /var/log/reportenavcli/abuse.txt
fi
71
*******************************************
Archivo enviarmail.log
*******************************************
#!/bin/sh
if [ $# -ne 3 ]; then
echo "Uso: $0 Para Asunto Texto"
exit 1
fi
from="[email protected]"
domain="ipcopbak.localdomain"
mailserver="192.168.2.251"
to=$1; subject=$2 mailtext=$3
exec 9<>/dev/tcp/$mailserver/25
echo "HELO $domain" >&9
read -r temp <&9
echo "$temp"
echo "Mail From: $from" >&9
read -r temp <&9
echo "$temp"
echo "Rcpt To: $to" >&9
read -r temp <&9
echo "$temp"
echo "Data" >&9
#
echo "From: $from" >&9
#
echo "To: $to" >&9
#
echo "Subject: $subject" >&9
read -r temp <&9
#
echo "$temp"
echo $mailtext >&9
echo "." >&9
72
read -r temp <&9
echo "$temp"
echo "quit" >&9
read -r temp <&9
echo "$temp"
9>&9<&echo "Echo, revisar mensajes previos para ver si hay errores"
exit 0
*******************************************
Archivo comprueba.log
*******************************************
#!/bin/sh
eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings)
ROJO="\033[31m"
VERDE="\033[32m"
function alarma(){
presenta "$1"
/usr/bin/beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f
880 -l 230 -n -f 659 \
-l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 l 110 -n -f 1047 -l \
230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l
230 -n -f 659 -l 110 \
-n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460
}
73
function presenta(){
enviarmail [email protected] "revisar" "$1" > /dev/null
echo -ne $ROJO
echo "$1"
fecha=$(date +%F/%r)
echo $fecha >> /var/log/comprueba.log
echo $1 >> /var/log/comprueba.log
}
ulimit -HSn 4096
echo -n Verificando interfaz BLUE:
if mii-tool $BLUE_DEV | grep "link ok" > /dev/null
then
echo OK
else
alarma "Interfaz BLUE desconectada, posiblemente los clientes estén sin
internet"
echo "echo compruebe cables y conexiones dese el servidor hacia el switch
de los clientes"
fi
#echo -n Verificando interfaz GREEN:
#if mii-tool $GREEN_DEV | grep "link ok" > /dev/null
#then
# echo OK
#else
# alarma "Interfaz GREEN desconectada, posiblemente los clientes estén sin
internet"
# echo "compruebe cables y conexiones dese el servidor hacia el switch de los
clientes"
#fi
echo -n Verificando interfaz WAN:
if mii-tool $RED_DEV | grep "link ok" > /dev/null
74
then
echo OK
else
alarma "Interfaz WAN desconectada"
echo compruebe cables y conexiones hacia el equipo que conecta el internet
echo Pruebas terminadas
exit
fi
echo -n "Verificando Default gateway:"
if ping -qc 3 $DEFAULT_GATEWAY > /dev/null
then
echo OK
else
alarma "default gateway $DEFAULT_GATEWAY no responde"
echo Pruebas terminadas
exit
fi
echo -n haciendo ping a una ip de yahoo:
if ping -qc 4 209.191.93.52 > /dev/null
then
echo OK
else
echo -n "...no responde, reintentando:"
sleep 5
if ping -qc 10 64.233.161.104 > /dev/null
then
echo OK
else
alarma "NO responden ips del google"
echo "reiniciando servicios de red"
/etc/rc.d/rc.network > /dev/null
echo "comprobando nuevamente:"
sleep 5
75
if ping -qc 4 64.233.161.103 > /dev/null
then
presenta "problema se resolvió reiniciando servicios de red"
else
alarma "NO responden ips del google, posible falla del core router o del
proveedor"
echo pruebas terminadas
exit
fi
fi
fi
echo -n verificando si resuelve el servidor:
if host www.google.com > /dev/null
then
echo OK
else
alarma "servidor NO resuelve"
echo "Reiniciando servicios de red"
/etc/rc.d/rc.network > /dev/null
echo "comprobando nuevamente:"
sleep 5
if host www.google.com > /dev/null
then
presenta "problema se resolvió reiniciando servicios de red"
else
alarma "Problema NO se resolvió reiniciando servicios de red"
echo pruebas terminadas, posiblemente necesite reiniciar el servidor para
arreglar el problema
exit
fi
fi
if [ -e /var/ipcop/proxy/advanced/settings ]
then
76
echo "Advanced proxy instalado"
PATH_SQUID="/var/ipcop/proxy/advanced/settings"
else
PATH_SQUID="/var/ipcop/proxy/settings"
fi
eval $(/usr/local/bin/readhash $PATH_SQUID)
if [ "$ENABLE_BLUE" == "on" ] && [ "$TRANSPARENT_BLUE" == "on" ]
then
echo " *** Nota: proxy habilitado en la interfaz blue y en modo transparente"
echo -n Verificando que el proceso squid del proxy este cargado:
if pidof squid > /dev/null
then
echo OK
else
alarma "squid proxy no levantado"
echo a "restaurando squid"
/usr/local/bin/restartsquid
sleep 5
if pidof squid > /dev/null
then
presenta "problema se resolvió ejecutando restartsquid"
else
alarma "Problema NO se resolvió ejecutando restartsquid"
echo pruebas terminadas, posiblemente necesite reiniciar el servidor para
arreglar el problema
exit
fi
fi
else
echo Proxy no está habilitado en interfaz web y por ende no se verifica
fi
echo -n verificando si el servidor navega:
if /usr/local/sbin/wget -nv --delete-after www.google.com/index.html 2> /dev/null
77
then
echo OK
else
alarma "servidor NO navega"
echo "reiniciando servicios de red"
/etc/rc.d/rc.network > /dev/null
echo "comprobando nuevamente:"
sleep 5
if /usr/local/sbin/wget -nv --delete-after www.google.com/index.html 2>
/dev/null
then
presenta "problema se resolvió reiniciando servicios de red"
else
alarma "Problema NO se resolvió reiniciando servicios de red"
echo pruebas terminadas, posiblemente necesite reiniciar el servidor para
arreglar el problema
exit
fi
fi
echo pruebas terminadas
#todo comprobar si interfaz blue esta habilitada
#verificar bien squid cuando este habilitado el advanced proxy
78
Manual de Instalación y Configuración
Linux y Asterisk
1
Instalación de Linux Debian.
Usamos Debian con Kernel 2.6 para la instalación de Asterisk con Linux.
Escogemos esta distribución por la gran aceptación que tiene y por ser una de
las distribuciones soportadas por la Digium.
Paso 1: Coloque el Cd de Debian en la lectora de Cd-rom e inicie el booteo en
su PC
Paso 2: Seleccione el idioma para la instalación.
2
Paso 3: Seleccione el país de idioma seleccionado anteriormente.
Paso 4: Escoja ahora el mapa de teclado correspondiente.
Paso 5: Escriba el nombre de host de la máquina.
3
Paso 6: Escriba el dominio al cual este equipo es parte.
Paso 7: Será hecha la configuración de particionamiento de disco del equipo,
apenas confirme las opciones presentadas. En este proceso todos los datos de
su disco duro se perderán por eso es recomendable hacerlo en un computador
nuevo o en uno que se pueda formatear.
Paso 8: Confirme que usted va a formatear todo el disco.
4
Paso 9: Confirme que todos los archivos estarán en una partición.
Paso 10: Acepte y finalicé las opciones de particionamiento.
Paso 11: Confirme nuevamente.
5
Paso 12: Acepte la instalación de GRUB.
Paso 13: La instalación está completa, digite <enter> para continuar.
Paso 14: Ahora la máquina se reiniciara, remueva el CD.
6
Paso 15: Siga las opciones presentadas para la configuración del horario.
Paso 16: Escoja América.
Paso 17: Escoja “Other”.
7
Paso 18: Escoja su ciudad.
Paso 19: Digite “asterisk” de contraseña para o usuário root.
Paso 20: Reescriba la contraseña para confirmar.
8
Paso 21: Cree un usuario llamado asterisk.
Paso 22: Escriba el nombre de usuario Asterisk nuevamente.
Paso 23: Escriba “asterisk” como contraseña para el usuario asterisk.
9
Paso 24: Reescriba la contraseña para confirmar.
Paso 25: Responda no a la pregunta para verificación del otro CD.
Paso 26: Ya que utilizaremos esta máquina como servidor Asterisk PBX, no es
necesario seleccionar ninguna opción de las presentadas aquí.
10
Paso 27: Apenas confirme la opción presentada para la terminación de las
configuraciones de Debian.
Paso 28: Use la cuenta Asterisk para el servidor de e-mail:
Paso 29: Finalizando la Instalación de Debian.
11
Preparando Debian para Asterisk.
La instalación de Debian está completa, vamos ahora instalar los paquetes
necesarios para la instalación/compilación de los drivers de las placas zaptel y
del propio Asterisk.
Paso 1: Haga login como root.
Paso 2: Agregar fuente para download de paquetes adicionales de
Debian.- Verificamos que los repositorios estándar de debian estén instalados
en caso contrario incluir la siguiente línea con cualquier editor de textos en el
archivo /etc/apt/sources.list
deb http://http.us.debian.org/debian stable main contrib non-free
y saltar al paso 7, ó en caso contrario seguir con los siguientes pasos. Ejecutar
el comando de Linux.
#apt-setup
Paso 3: Seleccionar ftp.
Paso 4: Seleccione su país.
12
Paso 5: Seleccionar ftp.debian.org
Paso 6: Seleccionar <no> para no insertar ninguna otra fuente.
Paso 7: Instalar los Headers del Kernel en ejecución: Para ello debemos
conocer cual es el kernel instalado con el comando.
#uname –a
Que dependiendo de la versión instalada muestra algo así como:
Linux TESIS 2.6.18-6-686 #1 SMP Sun Feb 10 22:11:31 UTC 2008
i686 GNU/Linux
Entonces pondríamos
#apt-get install linux-headers-2.6.18-6-686
Una manera abreviada y directa de hacer lo anterior sería
#apt-get install linux-headers-$(uname -r)
13
Ahora vamos a hacer una actualización de nuestro sistema con los siguientes
comandos:
#apt-get update
#apt-get upgrade
Nota: Aquí nos dice que va a instalar algunos paquetes solo le tenemos que
presionar la “s” y listo comienza a actualizar y a instalar.
Paso 8: Instalación de los paquetes necesarios para Asterisk:
#apt-get install bison openssl libssl-dev libasound2-dev libc6dev libnewt-dev
libncurses5-dev zlib1g-dev gcc g++ make
14
Instalación de Asterisk
La instalación de Asterisk en un sistema GNU/Linux sigue los siguientes
pasos:
–
Instalación de paquetes y librerías dependientes.
–
Descarga del código fuente de Asterisk.
–
Compilación de Asterisk.
–
Instalación en el sistema.
–
Instalación de ficheros de configuración de prueba.
Instalación de librerías dependientes
Asterisk necesita para su correcta compilación y funcionamiento los siguientes
paquetes:
–
openssh-server: para acceso remoto seguro.
–
gcc,make: compilador de lenguaje C y herramientas
–
libc-dev,
libssl-dev,
libmysqlclient14-dev
zlib1g-dev,
libncurses5-dev,
Descarga del código fuente de Asterisk
El proyecto Asterisk se divide en las siguientes partes:
– Asterisk: Núcleo (core) del sistema.
–
Asterisk-sounds: Voces de calidad pregrabadas.
–
Asterisk-addons: Software adicional.
–
Libpri: Librería para gestionar enlaces RDSI Primarios.
–
Libiax: Librería para utilizar el protocolo IAX.
–
Zaptel: Interfaz del Kernel para acceder a tarjetas de
comunicaciones para líneas analógicas o digitales.
Por el momento solo serán necesarios los dos primeros.
Descarga del código fuente de Asterisk
Ahora que ya se instalo Linux y las bibliotecas necesarias, vamos a obtener las
fuentes de Asterisk y drivers de Zaptel para el uso con hardware. Primeramente
baje los paquetes desde Digium, lo puede hacer desde Windows con Internet
Explorer o directamente desde Linux Debian mediante el comando wget para
lo cual debe crear el directorio /usr/src que este no existe mediante los
siguientes comandos:
#mkdir /usr/src
15
#cd /usr/src
#wget http://ftp.digium.com/pub/zaptel/zaptel-1.4.9.2.tar.gz
#wget http://ftp.digium.com/pub/libpri/libpri-1.4.3.tar.gz
#wget http://ftp.digium.com/pub/asterisk/asterisk-1.4.18.1.tar.gz
#wget http://ftp.digium.com/pub/asterisk/asterisk-addons-1.4.6.tar.gz
Las voces pregrabadas de Asterisk están disponibles en castellano, gracias a
la empresa Capatres SL:
#wget
http://www.capatres.com/asterisk-sonidos-es-0.4.tar.gz
Luego Descomprimirlos los archivos usando:
#tar -zxvf asterisk-1.4.18.1.tar.gz
#tar -zxvf asterisk-addons-1.4.6.tar.gz
#tar -zxvf libpri-1.4.3.tar.gz
#tar -zxvf zaptel-1.4.9.2.tar.gz
#tar –zxyf asterisk-sonidos-es-0.4.tar.gz
Se crean los directorios asterisk-1.4.18.1 con el código fuente listo para ser
compilado y asterisk-sounds con las voces y sonidos en español preparadas
para ser instaladas.
Compilando los Driver ZAPTEL
Normalmente los drivers de zaptel se compilan con los siguientes comandos:
#cd /usr/src/zaptel-1.4.9.2/
#make clean
#./configure
#make install
#make config
#update-rc.d zaptel defaults
16
Compilando Asterisk y sus librerías.
La compilación se la hace de la misma manera para cada paquete de Libpri,
Asterisk y Asterisk-Addons. La herramienta make se encarga de compilar y
enlazar todos los ficheros fuente necesarios, a partir del Makefile. Se invoca
con 'make' desde el directorio correspondiente.
En caso de error, se nos informará de las posibles librerías necesarias que
no están instaladas (Generalmente: zlib1g- dev, libssl-dev).
#cd /usr/src/libpri-1.4.3/
#make clean
#make install
#cd /usr/src/asterisk-1.4.18.1/
#make clean
#./configure
#make install
#make samples
#make config
Nota: la línea de comando make config permite que el programa se ejecute en
el arranque del sistema operativo, y el comando make samples crea archivos
17
de configuración. Todos los ficheros .conf de ejemplo necesarios para
correcto arranque de Asterisk.
el
#cd /usr/src/asterisk-addons-1.4.6/
#make clean ; make clean
Configurar canales en drivers de Zaptel
Un canal equivale a una línea telefónica en la forma de un circuito de voz
digital. Este generalmente consiste de una señal analógica en un sistema de
telefonía convencional (POST) o alguna combinación de CODEC y protocolos
de señalización (GSM con SIP, U).
Según el tipo de tarjeta que se este utilizando y después de encajarla en el slot
PCI se configura editando los archivos zaptel.conf en el directorio /etc que es
el archivo de configuración de la tarjeta zaptel., y zapata.conf en el directorio
/etc/asterisk que es el archivo de configuración de los canales zapata de
Asterisk.
Esto es para integrar el Asterisk a la red de telefonía pública utilizando una
placa o tarjeta tipo FXO (entrada de línea analógica al PC).
Mediante los siguientes comandos procedemos a editar estos archivos.
#cd /etc
#vim zaptel.conf
El archivo zaptel.conf tienen que costar las siguientes líneas básicas:
fxsks=1
analógicas
loadzone=us
defaultzone=us
; entradas de líneas telefónicas
; locación o zona del servido
; locación o zona del servido
y el archivo zapata.conf tienen que costar las siguientes líneas básicas:
18
[channels]
context=default
signalling=fxs_ks
group=1
channel=>1
Luego de configurar estos archivos hay que cargar los drivers de zaptel en la
línea de comandos:
#modprobe zaptel
#ztcfg –vvv
#modprobe wcfxo
Y para verificar si los drivers de la tarjeta se han cargado correctamente se
puede utilizar el comando zttool el cual presentara el estado.
Configuración de los teléfonos.
Internamente en asterisk se utiliza canales de voz sobre IP los cuales utilizan el
protocolo de señalización para establecer las conexiones de un teléfono a otro,
el protocolo más usado es el SIP ( Session Initiated Protocol).
SIP es configurado desde el archivo /etc/asterisk/sip.conf y contiene
parámetros relacionados con la configuración de los teléfonos y operadoras
SIP. Los clientes SIP deben estar configurados antes que puedan hacer y
recibir llamadas. En nuestro ejemplo práctico crearemos 4 extensiones (ext101,
ext102,ext103 y ext104). Editamos el archivo sip.conf y ponemos las siguientes
líneas:
#cd /etc/asterisk/
#vim sip.conf
[general]
context=internal
srvlookup=yes
19
bindaddr=0.0.0.0
port=5060
[ext101]
type=friend
callerid="ext101" <101>
secret=1234
quality=yes
nat=no
host=dynamic
canreinvite=no
[ext102]
type=friend
callerid="ext102" <102>
secret=1234
quality=yes
nat=no
host=dynamic
canreinvite=no
[ext103]
type=friend
callerid="ext103" <103>
secret=1234
quality=yes
nat=no
host=dynamic
canreinvite=no
[ext104]
type=friend
callerid="ext104" <104>
secret=1234
quality=yes
nat=no
host=dynamic
canreinvite=no
20
Plan de discado.
El plan de discado es lo mas importante en el asterisk en la medida que este
define como asterisk irá gestionando las llamadas. Este consiste en una lista de
instrucciones o pasos que asterisk debería seguir, las mismas que son
activadas a partir de los dígitos recibidos de un canal o aplicación.
La mayor parte del plan de discado está contenida en el archivo
extensions.conf que está en el directorio /etc/asterisk
#cd /etc/asterisk/
#vim extensions.conf
[internal]
; sección para salida de llamadas
ignorepat =>9
; se asigna Numero para salida automática comúnmente el
9
exten => 9,1,Dial(Zap/1) ; si se marca el 9 asterisk saldrá a la red de
; telefonía pública por el primer canal
disponible
exten => 9,n,Hangup
exten => 81,1,Dial(Zap/2) ; para salir con un canal especifico se marca el 8
exten => 81,n,Hangup
; seguido del Nro del canal ejemplo 81.
exten => 82,1,Dial(Zap/3)
exten => 82,n,Hangup
exten => 83,1,Dial(Zap/4)
exten => 83,n,Hangup
exten => 101,1,Dial(SIP/ext101) ; si marca 101 asterisk marcara a la extensión
exten => 102,1,Dial(SIP/ext102) ; 100 (ext101) sin hacer uso de la red de
exten => 103,1,Dial(Sip/ext103) ;telefonía publica
; [pstn] es la sección que maneja las entradas o marcaciones externas o sea
que ;
vienen desde la red de telefonía pública
[pstn]
include => internal
exten => 0,1,Dial(SIP/ext101)
exten => 1,1,Dial(SIP/ext102)
exten => 2,1,Dial(Sip/ext103)
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Background(graciasporllamar)
exten => s,n,Background(siconocelaext)
exten => s,n,Background(conlaoperadoraofax)
exten => s,n,Background(0)
exten => s,n,Background(soprtetecnico)
exten => s,n,Background(1)
exten => s,n,Background(soprtetecnicoauto)
exten => s,n,Background(2)
exten => s,n,Wait(2)
exten => s,n,Background(mmntollamadatransf)
exten => s,n,Dial(SIP/ext102) ; si nadie responde suena el sip 101
21
exten => s,n,Hangup
Nota: los archivos de sonido que se utilizan con la función background()
deben ser creados y copiados a directorio.
/usr/src/asterisk-1.4.18.1/sounds
Las funciones y aplicaciones de Asterisk se profundizaran según como se
avance la tesis.
Instalando un Softphone para las pruebas del IVR.
Para estas pruebas utilizaremos el softphone XLITE que es gratuito y lo
tenemos previamente bajado de la web en un laptop con Windows XP.
Instalamos y configuramos el X-Lite en system settings en la cual en la línea
SIP PROXY damos la dirección IP del servidor Linux, en la línea USER NAME
ponemos “ext102” (será esta la extensión 102”, y en el Linux cargamos
nuevamente el asterisk con la siguiente línea:
#asterisk –vvvv
Para verificar que se registre el Xlite, y estaremos listos para las pruebas,
adicionalmente se puede conectar un ATA con un teléfono convencional o un
teléfono IP los cuales se configuraran como otras extensiones ejemplo (ext101,
ext102, ..etc).
22
Descargar