Your SlideShare is downloading. ×
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Proyecto asterisk debian_xen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Proyecto asterisk debian_xen

447

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
447
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. INSTALACIÓN Y CONFIGURACIÓNDE CENTRALITA VoIP BASADA EN ASTERISK
  • 2. Pag. - 1 -Instalación y configuración de centralita VoIP basada en asterisk IndiceINTRODUCCIÓN..............................................................................................................................5..............................................................................................................................................................OBJETIVOS.......................................................................................................................................8..............................................................................................................................................................MATERIAL......................................................................................................................................111 ELEMENTOS HARDWARE........................................................................................................111.1 CPU SERVIDOR ASTERISK....................................................................................................111.1.1 Procesador.................................................................................................................................111.1.2 Placa base.................................................................................................................................111.1.3 Memoria RAM.........................................................................................................................121.1.4 Disco duro................................................................................................................................121.1.5 Tarjeta gráfica...........................................................................................................................121.1.6 Lector óptico.............................................................................................................................131.1.7 Chasis (caja CPU).....................................................................................................................131.2 TARJETA DE COMUNICACIONES DIGIUM.........................................................................131.3 PORTÁTIL KIRA N1070...........................................................................................................141.4 THOMPSON SPEEDTOUCH 2030...........................................................................................141.5 PLANTRONICS AUDIO 650 USB............................................................................................141.6 BLUETOOTH JABRA BT250V................................................................................................141.7 LINKSYS PAP2..........................................................................................................................151.8 TELÉFONO AIRIS T800M1......................................................................................................151.9 TELÉFONO AIRIS T850M........................................................................................................15..............................................................................................................................................................2 ELEMENTOS SOFTWARE.........................................................................................................152.1 DEBIAN GNU/LINUX..............................................................................................................162.2 SOPORTE RAID1......................................................................................................................172.3 XEN............................................................................................................................................192.4 ASTERISK.................................................................................................................................202.5 SUBSISTEMA ZAPTEL (ZAPATA TELEPHONY).................................................................212.6 SOFTPHONE VOIXPHONE.....................................................................................................212.7 CDR ASTERISK........................................................................................................................22MÉTODO.........................................................................................................................................231 OBTENCIÓN Y PREPARACIÓN DEL SOFTWARE DEBIAN.................................................23 José Manuel campos moreno y Miguel José guzmán munuera
  • 3. Pag. - 2 -Instalación y configuración de centralita VoIP basada en asterisk2 INSTALACIÓN Y CONFIGURACIÓN DE DEBIAN.................................................................253 INSTALACIÓN Y CONFIGURACIÓN DE SERVIDOR XEN...................................................314 COMANDOS PARA GESTIONAR LAS MAQUINAS VIRTUALES XEN...............................444.1 LISTAR MAQUINAS VIRTUALES..........................................................................................444.2 LISTAR RECURSOS CONSUMIDOS POR LAS MAQUINAS..............................................444.3 AJUSTAR CANTIDAD DE MEMORIA USADA POR MÁQUINA.......................................444.4 INSTRUCCIONES DE PARADA..............................................................................................454.5 INSTRUCCIÓN DE MIGRACIÓN...........................................................................................454.6 INICIO MANUAL DE MÁQUINA XEN..................................................................................454.7 MÉTODOS DE ACCESO A MÁQUINA VIRTUAL XEN.......................................................45..............................................................................................................................................................5 INSTALACIÓN Y CONFIGURACIÓN DE ASTERISK.............................................................465.1 PAQUETES BÁSICOS NECESARIOS.....................................................................................475.2 DESCARGA Y COMPILACION DE SOFTWARE ASTERISK..............................................485.3 CONFIGURACIÓN INICIAL TRAS LA INSTALACIÓN.......................................................515.4 FICHEROS Y DIRECTORIOS DE ASTERISK.......................................................................525.5 ASTERISK CLI (COMMAND LINE INTERFACE)................................................................535.6 CONFIGURACIÓN INICIAL DE LOS FICHEROS DE ASTERISK......................................545.7 ARCHIVOS SIP.CONF, IAX.CONF Y DEMAS FICHEROS DE PROTOCOLO....................58..............................................................................................................................................................6 CONFIGURANDO EL ENTORNO (PARTE I)...........................................................................647 CONFIGURANDO EL ENTORNO (PARTE II)..........................................................................678 CONFIGURACIÓN DEL SOFTPHONE VOIXPHONE.............................................................709 COMPROBACION DEL FUNCIONAMIENTO DE LA INSTALACIÓN HARDWARE...........71..............................................................................................................................................................10 DIALPLAN (AÑADIENDO FUNCIONES A LA CENTRALITA)...........................................7410.1 LOCUCION DE ENTRADA....................................................................................................7410.2 CONTROL HORARIO.............................................................................................................7910.3 CONFIGURANDO NUEVAS POSIBILIDADES DE MARCADO........................................8310.4 BUZONES DE VOZ Y MENSAJES DE AUDIO AL CORREO............................................8510.5 GRABACIÓN DE CONVERSACIONES Y LEY DE PROTECCIÓN DE DATOS...............9110.6 INSTALACIÓN DE HYLAFAX, SERVIDOR DE GESTIÓN DE FAX.................................9310.7 CONFIGURACIÓN DE HYLAFAX PARA UTILIZAR MODEM VIRTUAL ASTERISK. .95 José Manuel campos moreno y Miguel José guzmán munuera
  • 4. Pag. - 3 -Instalación y configuración de centralita VoIP basada en asterisk10.8 RECEPCION DE FAX EN EL CORREO ELECTRÓNICO...................................................9810.9 INTEGRAR CDR ASTERISK. GESTIÓN DE BASE DE DATOS........................................99..............................................................................................................................................................RESULTADOS...............................................................................................................................1031 CREACIÓN DE MAQUINA VIRTUAL CON SOPORTE LVM, DNS, ETC............................1041.1 DEFINICIÓN Y CARACTERÍSTICAS DE LVM...................................................................1041.1.1 Ventajas de usar LVM.............................................................................................................1051.1.2 Anatomía de un LVM.............................................................................................................1061.1.3 Instantáneas (copias de seguridad).........................................................................................1071.2 EMPEZAMOS LA INSTALACIÓN........................................................................................1071.3 PRUEBAS CON LVM...............................................................................................................1111.3.1 Eliminando un LV...................................................................................................................1111.3.2 Extendiendo un LV.................................................................................................................1111.3.3 Reduciendo un LV..................................................................................................................1111.3.4 Removiendo un PV.................................................................................................................1121.4 CONCLUSIÓN.........................................................................................................................113..............................................................................................................................................................2 DEFINICIÓN Y CARACTERÍSTICAS DEL FIREWALL (SHOREWALL + IPTABLES)......1132.1 INSTALACIÓN DEL FIREWALL...........................................................................................114..............................................................................................................................................................3 CONFIGURACIÓN SERVIDOR DHCP.....................................................................................1173.1 PROCEDIMIENTO PARA LA PUESTA EN MARCHA........................................................118..............................................................................................................................................................4 REALIZACIÓN DE COPIAS DE SEGURIDAD CON SAMBA + CRON................................1194.1 SAMBA.....................................................................................................................................1204.2 CRON........................................................................................................................................1214.2.1 Sintaxis de configuración de CRON......................................................................................122..............................................................................................................................................................CONCLUSIONES..........................................................................................................................123BIBLIOGRAFÍA............................................................................................................................124ANEXOS.................................................................................................................................125­140 José Manuel campos moreno y Miguel José guzmán munuera
  • 5. Pag. - 4 -Instalación y configuración de centralita VoIP basada en asteriskINTRODUCCIÓN Es innegable que en nuestra sociedad el mayor activo es la información. La informaciónnos facilita la toma de decisiones a todos los niveles... personal, político, económico, social, etc.De echo en todas las épocas de la humanidad, la información ha sido vital para el avance de lascivilizaciones, desde los griegos a los persas pasando por los romanos. Mas la información no escomo el agua de lluvia, que un buen día sin pedirla cae sobre nosotros. La información requiere demedios que nos permitan transmitirla y que llegue a donde nos interesa y a quien o quienes nosinteresa. A lo largo de la historia se han usado para transmitir información personas a pie y acaballo, palomas mensajeras, señales de humo, sonidos de animales y múltiples formulas más quela inventiva de la raza humana a pergeñado en diferentes épocas. Y llegamos a la actualidad. Tenemos tal cantidad de información a nuestra disposición ytantos medios para transmitirla, tantas personas a las que queremos hacer llegar dicha información,tantos peligros que acechan a dicha información en ruta hacia su receptor que necesitamos mediospara hacer que esa información sea correctamente dirigida, protegida y entregada donde y comodeseamos. Es claro que el medio de comunicación que más se ha usado hasta la llegada de Internetha sido el teléfono. Fue el primer medio que unió naciones y continentes e incluso a día de hoycompite aún denodadamente contra su sucesor para seguir siendo la perla de las comunicaciones.Pero los días del teléfono están contados puesto que llega la convergencia de redes, esto es, launión de Internet y el sistema telefónico tradicional. Las grandes operadoras de telefonía y lasgrandes empresas ya hace tiempo que están adaptando y convirtiendo sus sistemas para distribuirel trafico telefónico como datos mediante la VoIP (voz sobre redes basadas en protocolos IP), perolas pequeñas y medianas empresas aún no han llegado a dar ese paso por los altos costestecnológicos y de infraestructuras que ello supone. Pero en el teatro de las comunicaciones ha entrado un nuevo actor: el software libre. José Manuel campos moreno y Miguel José guzmán munuera
  • 6. Pag. - 5 -Instalación y configuración de centralita VoIP basada en asteriskGracias a ciertas aplicaciones informáticas de las que hablaremos más adelante, todas ellasrealizadas de manera altruista por personas que dedican parte de su tiempo libre a desarrollarlas ypor empresas que han visto en el software libre un modelo de negocio descentralizado, con unpotencial de crecimiento casi ilimitado y una filosofía más afín al ser humano que el modelo denegocio basado exclusivamente en el capital. Gracias a este nuevo actor (más particularmente a LINUX DEBIAN y a ASTERISKcomo software de gestión de comunicaciones) y a un fabricante norteamericano llamado DIGIUM,se puede con un coste muy reducido crear una centralita telefónica IP que nos permita usarteléfonos especiales conectados a nuestra red de área local, gestionar las llamadas que nos hacen yque realizamos, recibir faxes y mensajes de voz enviando los mensajes al correo electrónico,enviar mensajes cortos de texto (SMS) desde aplicaciones informáticas y decenas de posibilidadesmás que nos pueden hacer prescindir definitivamente del teléfono tal y como lo concebimos. Estenuevo actor nos permite hacer llegar la información a donde nos interesa con facilidad y elegancia. Aunque tenemos que tener en cuenta la importancia antes comentada de la seguridad enlas comunicaciones. Si a día de hoy es pernicioso que por motivos técnicos no tengamos conexióna Internet, habría que imaginar que pasaría si a la misma vez nos quedásemos sin ningún medio decomunicación. Hacer que un sistema basado en software y hardware nos gestione lascomunicaciones nos proporciona flexibilidad y potencia, pero a la par nos genera algunos riesgosque hay que tener en cuenta. Para reducir esos riesgos a la mínima expresión, volvemos a utilizarel software libre. Vamos a utilizar en este Proyecto Integrado un sistema informático conmáquinas virtuales llamado XEN. Este método nos permite que si nuestro servidor decomunicaciones cae por problemas hardware, software o problemas externos tales como robo,incendio o similar, se pueda tener funcionando en cuestión de minutos otro servidor y con tan solocopiar la máquina virtual volvamos a tener funcionando todo nuestro entorno de comunicaciones. Además al trabajar con máquinas virtuales conseguimos mayor seguridad en nuestrosistema informático, puesto que si alguien desea acceder al mismo para conseguir nuestraapreciada información, tendría que conseguir burlar la seguridad de varios sistemas operativos José Manuel campos moreno y Miguel José guzmán munuera
  • 7. Pag. - 6 -Instalación y configuración de centralita VoIP basada en asteriskhasta llegar a controlar la totalidad del sistema. Las máquinas virtuales se instalan sobre un sistemaoperativo LINUX que hace las funciones de guardián y aparte cada uno de los sistemas operativosvirtuales tienen sus propias defensas. En Internet hay un caso de un Ingeniero Informático de una ONG que cuenta laexperiencia en un pueblo perdido de África al que solamente llegaba una línea de teléfono (allí laslíneas telefónicas tienen un coste prohibitivo), consiguió gracias al software libre ASTERISK darservicio telefónico al Hospital, al “Ayuntamiento” y a la sede de la ONG, consiguiendo todos ellosusar el teléfono sin necesidad de desplazarse. Esperamos sinceramente que este Proyecto Integradosea el germen que haga que personas con conocimientos informáticos y buena voluntad, puedanhacer pequeños milagros. El pequeño milagro de la comunicación. José Manuel campos moreno y Miguel José guzmán munuera
  • 8. Pag. - 7 -Instalación y configuración de centralita VoIP basada en asteriskOBJETIVOS 1 Obtención de todo el software necesario para el proyecto a través de Internet sin costes de licencias al usar software libre o versiones gratuitas plenamente operativas. 2 Instalación de una distribución DEBIAN del sistema operativo LINUX. 2.1 Durante el proceso de instalación dejar documentados los pasos a seguir para llevar a buen termino la misma. 2.2 En el inicio de la instalación configurar el sistema operativo Debian en RAID1 para mejorar en lo posible la seguridad y estabilidad del mismo. 2.3 Configurar el entorno de red para el servidor Linux, que permita llamadas por internet. 2.4 Configurar entorno de trabajo Xen en Debian para gestionar máquinas virtuales. 2.5 Configurar usuarios y contraseñas para una correcta gestión del servidor, adecuando la seguridad y los permisos. 3 Creación de máquina virtual Xen con las herramientas básicas de trabajo (paquetes de software imprescindibles) para poder transformarla posteriormente en un servidor de centralita Asterisk. 3.1 Configurar entorno de red y repositorios desde los que realizar las descargas de paquete de programas. 3.2 Descargar los paquetes necesarios para la instalación y configuración posterior de Asterisk. 3.3 Duplicar (copiar) la máquina virtual para tener una configuración base sobre la que poder crear sucesivas máquinas virtuales. 3.4 Sobre un clon de la máquina virtual original, preparar la configuración de nombre de host y direcciones IP correspondientes a nuestra futura máquina Asterisk. José Manuel campos moreno y Miguel José guzmán munuera
  • 9. Pag. - 8 -Instalación y configuración de centralita VoIP basada en asterisk 3.5 Mostrar usar y detallar las herramientas de gestión de las que dispone Xen para visualizar, mover o modificar las máquinas virtuales. 3.6 Hacer que la máquina virtual se cargue automáticamente al inicio del sistema para automatizar al máximo el servidor. 4 Descargar de la página web de Digium el software libre Asterisk, compilarlo e instalarlo en la máquina virtual creada al efecto. 4.1 Configurar tarjeta de comunicaciones Digium para que sea reconocida correctamente por el software Asterisk. 4.2 Crear una configuración base de una centralita y un dialplan para Asterisk, que permita como mínimo realizar y recibir llamadas desde un teléfono con una sola línea telefónica. 4.3 Mostrar, usar y detallar el uso del interfaz de comandos de Asterisk llamado CLI, el cual provee un modo consola para suministrar comandos de gestión y control a la centralita. 4.4 Configurar Asterisk para ser inicializado automáticamente en el encendido del servidor, para hacer el sistema lo más autónomo posible. 5 Configurar una centralita Asterisk. 5.1 Configurar diferentes protocolos de transmisión de voz sobre IP. 5.2 Permitir llamadas entrantes a la centralita. 5.3 Permitir llamadas salientes desde la red de área local a la que se haya conectado la centralita. 5.4 Crear extensiones telefónicas dentro de la red de área local. 5.5 Permitir llamadas internas entre extensiones y transferencia de llamadas tanto internas como externas entre las mismas. 5.6 Permitir restringir numeración de marcado en llamadas salientes ya sea en general, o por extensión. 5.7 Gestionar llamadas entrantes generales o personalizadas por extensión en función de mes, día y hora. José Manuel campos moreno y Miguel José guzmán munuera
  • 10. Pag. - 9 -Instalación y configuración de centralita VoIP basada en asterisk 5.8 Crear un sistema de grabación y escucha de locuciones para ser usadas posteriormente en las diferentes opciones de la centralita. 5.9 Crear buzones de voz generales o para cada usuario que permitan tener contestador automático y poder hacer una gestión personalizada del mismo. 5.10 Crear un sistema de envío y recepción de fax no físico mediante detección del tipo de llamada recibida. 5.11 Crear un servidor de correo electrónico que permita a la centralita Asterisk, según la configuración que le suministremos, enviar a uno o varios usuarios a sus respectivas cuentas de correo electrónico, los mensajes de voz y faxes que hayan recibido, pudiendo ver y escuchar dichos mensajes y faxes desde sus respectivos clientes de correo. 5.12 Descargar el paquete de software CDR Asterisk, que trae la configuración base para el almacenamiento de todos los datos de las llamadas realizadas o recibidas con sus atributos de hora, origen, destino, etc. 5.13 Preparar el entorno MySQL para poder crear la base de datos sobre la que va a trabajar el software CDR Asterisk. 5.14 Crear la base de datos para el CDR Asterisk. 5.15 Preparar el entorno Apache para poder acceder a la base de datos del CDR Asterisk desde cualquier cliente WEB y visualizar el contenido de la misma. José Manuel campos moreno y Miguel José guzmán munuera
  • 11. Pag. - 10 -Instalación y configuración de centralita VoIP basada en asteriskMATERIAL 1 ELEMENTOS HARDWARE 1.1 CPU SERVIDOR ASTERISK : Para la gestión de la centralita se pueden utilizar sin ningún problema equipos informáticos reciclados, siendo los requisitos mínimos recomendados para hacer funcionar una CPU con ASTERISK tener un procesador superior a 300MHZ, 64 MB de memoria RAM y 512 MB de espacio disponible en disco duro. Como los requisitos de instalación de DEBIAN son similares, podría instalarse prácticamente en cualquier tipo de ordenador. Es muy importante el que las tarjetas de comunicaciones compatibles con ASTERISK no usen IRQ (interrupciones del sistema) que ya están siendo usadas por otros elementos de la CPU. En todo caso y debido a que aparte de querer usar nuestra CPU para la gestión de la centralita de VoIP, vamos a hacerlo mediante máquinas virtuales, y que además queremos dejar abierta la posibilidad de que la centralita tenga posibilidad de gestionar un volumen alto de llamadas (lo cual consume recursos de la CPU), hemos optado por una configuración de gama media-alta. Dicha configuración sería la siguiente : 1.1.1 Procesador : Hemos optado por un procesador AMD64 4800+ DUAL CORE en socket AM2. Este procesador utiliza una tecnología llamada AMD VIRTUALIZATION que permite mejorar el rendimiento de máquinas virtuales. Eso hace que sea una elección idónea para que el funcionamiento de los diferentes servicios que se le vayan implementando a nuestro Servidor aprovechen al máximo los recursos de la CPU. 1.1.2 Placa base : En este caso hemos decidido instalar una placa base ASUS modelo M2N-SLI. Hemos optado por esta placa por ser ASUS una marca de reconocido prestigio y calidad. Además de ser aparentemente compatible con el resto de componentes que vamos a añadir. La placa usa el socket AM2 al igual José Manuel campos moreno y Miguel José guzmán munuera
  • 12. Pag. - 11 -Instalación y configuración de centralita VoIP basada en asterisk que el procesador AMD64 4800+ DUAL CORE y soporta módulos de memoria DDR2. Al tener una ranura para conectar tarjetas gráficas PCI Express, si en un momento dado queremos hacer vídeo conferencia y deseamos visualizar en pantalla a uno o más interlocutores, nos puede hacer falta tener una cierta potencia gráfica que si no se dispusiera de dicha ranura, no se podría obtener. 1.1.3 Memoria RAM : Hemos incluido 2GB de memoria RAM DDR2 a 800 MHz en la configuración de nuestro Servidor. Creemos que esta cantidad de memoria cubre ampliamente las necesidades de recursos para nuestra instalación y en todo caso, la placa base que estamos usando tiene zócalos de ampliación de memoria que usaremos en el caso de encontrar problemas por carga excesiva de trabajo a nivel de asignación de memoria RAM. 1.1.4 Disco duro : Para el almacenamiento hemos tenido muy en cuenta la velocidad de acceso y la fiabilidad, con lo que se han instalado en el Servidor dos discos duros SATA (serial ata) de 320 GB de la marca SEAGATE, con una velocidad de giro de 7200 revoluciones por minuto. Estos discos duros van a funcionar en modo espejo (RAID1) para conseguir que en todo momento tengamos posibilidad de recuperar nuestro Servidor en casos de desastre (rotura de un disco duro). 1.1.5 Tarjeta gráfica : La marca NVIDIA es bien conocida por su robustez y estabilidad y por ello es la gráfica instalada en nuestro Servidor. El modelo exacto es una NVIDA GFORCE 8500GT con 512 Mb de memoria y tecnología PCI Express con refrigeración pasiva. La refrigeración pasiva (sin ventiladores) creemos que es vital para Servidores, puesto que es conveniente eliminar la mayor cantidad posible de elementos mecánicos que tienen tendencia a estropearse con mayor frecuencia que los elementos electrónicos. 1.1.6 Lector óptico : Para realizar la instalación, usamos un lector-grabador de DVD de la marca LG con una velocidad de lectura de 18X y conectado, al igual que el disco duro, mediante el interface SATA. Es un grabador que también nos José Manuel campos moreno y Miguel José guzmán munuera
  • 13. Pag. - 12 -Instalación y configuración de centralita VoIP basada en asterisk permitirá realizar copia de seguridad del sistema a DVD tanto de simple como de doble capa y por tanto poder copiar las máquinas virtuales u otros datos. 1.1.7 Chasis (caja CPU) : Aunque no es la opción más recomendable, la instalación de todos los componentes la hemos realizado en una caja mixta sobremesa/semitorre de dimensiones reducidas. Esto es debido a que vamos a tener que trasladar el Servidor y no podíamos permitirnos que fuese muy pesado o engorroso de transportar. En todo caso, recomendamos que si se fuese a utilizar la centralita en producción (en una empresa o institución a pleno rendimiento) se utilizara un chasis con fuente redundante (dos fuentes de alimentación por si una de ellas fallase) y más amplio para evitar calentamientos innecesarios. No creemos que vayamos a tener problemas en este aspecto, puesto que nuestro Servidor solo estará operativo un par de meses y en ese tiempo es altamente improbable que se dañe ningún componente por sobrecalentamientos. 1.2 TARJETA DE COMUNICACIONES DIGIUM : Como alma de nuestra centralita vamos a instalar una tarjeta de comunicaciones DIGIUM TDM400P certificada ASTERISK con posibilidad de conectarle hasta cuatro módulos FXO o FXS que permiten conectar hasta cuatro líneas telefónicas o dispositivos de salida analógica. Para la conexión dispone de 4 tomas RJ11 (clavijas telefónicas convencionales de cuatro hilos). El corazón de esta tarjeta es un chip INFINEON AN983B. La tarjeta dispone de un conector molex estándar para poder conectarla a la fuente de alimentación y que esta le suministre energía extra para que así la tarjeta pueda suministrar tensión a dispositivos analógicos que se conecten a los conectores RJ11 y que requieran dicho suministro, tales como teléfonos o fax convencionales. 1.3 PORTÁTIL KIRA N1070 : Para realizar las pruebas con los clientes VoIP por software, vamos a utilizar un ultra portátil AIRIS KIRA N1070. Esto es un ordenador con pantalla de 7”, procesador AMD Geode a 500 MHz, un giga byte de memoria RAM y un disco duro de 80Gb. Al disponer de tecnología inalámbrica tanto mediante Wifi como mediante Bluetooth, nos va a permitir realizar todo tipo de José Manuel campos moreno y Miguel José guzmán munuera
  • 14. Pag. - 13 -Instalación y configuración de centralita VoIP basada en asterisk pruebas y demostraciones con auriculares inalámbricos. 1.4 THOMPSON SPEEDTOUCH 2030 : Para realizar las conferencias telefónicas vamos a utilizar un terminal telefónico THOMPSON SPEEDTOUCH 2030 el cual es un teléfono VoIP de gama alta que dispone de una gran cantidad de funciones que le dotan de un gran valor añadido. Entre ellas cabe destacar la posibilidad de comunicarse con servicios de directorio externos como Directorio Activo u OpenLDAP + Apache. Además soporta NAT, VLAN, registro de llamadas y múltiples codecs de transmisión. Todas estas funciones nos van a permitir intentar usar el terminal conectado a través de Internet con nuestra centralita (uso desde diferentes redes) y probar la calidad con varios codecs de gestión de datos de voz. 1.5 PLANTRONICS AUDIO 650 USB : Con los clientes software VoIP usaremos un auricular profesional PLANTRONICS AUDIO 650 USB. Esto es un auricular con micrófono que gracias a tener una alta ganancia y cancelación de ruidos, nos va a permitir mantener conversaciones sin que notemos que estamos usando algo que no es un sistema telefónico analógico convencional. La idea es que el usuario no note diferencia entre la telefonía clásica y nuestra flamante centralita VoIP. 1.6 BLUETOOTH JABRA BT250V : Para integrar mediante Bluetooth con el portátil AIRIS KIRA N1070, vamos a usar un auricular Bluetooth JABRA BT250V, que una vez sincronizado nos permitirá comunicarnos con otros terminales gracias al software cliente de VoIP. Este auricular dispone de batería de litio que nos dará la autonomía necesaria para realizar las pruebas que consideremos pertinentes. 1.7 LINKSYS PAP2 : Una de las posibilidades que tiene la telefonía IP es el poder utilizar teléfonos convencionales como terminales VoIP. Pierden unas pocas funcionalidades, pero son plenamente operativos. Para poder hacer esto necesitamos un adaptador que nos permita conectar el teléfono a la red local. Ese adaptador es un ADAPTADOR VoIP LINKSYS PAP2 que dispone de dos conexiones para poder tener dos teléfonos clásicos. José Manuel campos moreno y Miguel José guzmán munuera
  • 15. Pag. - 14 -Instalación y configuración de centralita VoIP basada en asterisk 1.8 TELÉFONO AIRIS T800M1 : Para conectar al adaptador VoIP mencionado anteriormente vamos a usar un teléfono inalámbrico marca AIRIS modelo T800M1 con altavoz manos libres y baterías recargables, el cual será perfecto para realizar las demostraciones oportunas al poder escucharse en publico, gracias al manos libres, las locuciones que queremos poner en la centralita IP. 1.9 TELÉFONO AIRIS T850M : También vamos a usar un teléfono fijo de sobremesa AIRIS T850M conectado a la segunda toma del ADAPTADOR PAP2 para demostrar que se pueden usar sin problemas este tipo de terminales con las opciones añadidas por la centralita. 2 ELEMENTOS SOFTWARE Como se podrá comprobar a lo largo de este proyecto integrado, nuestra principal apuestaes el software libre, con lo que vamos a intentar por todos los medios no usar en ningún momentosoftware propietario de ningún fabricante. Esto significa que a excepción del gasto de loselementos hardware, el coste del software va a ser nulo en lo que se refiere a licencias, aunque síque existe un coste que es el tiempo empleado por los recursos humanos necesarios paraconfigurar todo el sistema. Nuestra opinión es que siempre va a salir más rentable el coste deltrabajo de un técnico local que configure y gestione todo el sistema, que el pago de licencias a unfabricante foráneo. Además esto hace que se produzca riqueza y valor añadido en nuestro entorno,y no la fuga constante de divisas a los grandes fabricantes que en poco o nada repercuten en lamejora de nuestro I+D y nuestra calidad de vida. Ni que decir tiene que para los países másdesfavorecidos, el software libre puede ser su tabla de salvación tecnológica. Tras este pequeño alegato en favor del software libre vamos a exponer los elementossoftware utilizados en este Proyecto Integrado. 2.1 DEBIAN GNU/LINUX : Hemos utilizado una distribución de LINUX llamada DEBIAN por ser la más reticente a usar programas con licencias propietarias. Además tiene fama de ser la distribución más estable y segura. Múltiples José Manuel campos moreno y Miguel José guzmán munuera
  • 16. Pag. - 15 -Instalación y configuración de centralita VoIP basada en asterisk distribuciones están basadas en DEBIAN y a día de hoy en Internet hay miles de páginas y de foros donde se puede conseguir ayuda en el caso de que tengamos problemas de instalación, configuración o uso. Dentro de DEBIAN hay diferentes ramas de desarrollo. Estas ramas de desarrollo catalogan la distribución en ESTABLE, DE PRUEBAS, INESTABLE, CONGELADA Y EXPERIMENTAL. Nosotros nos hemos decidido por instalar la rama de desarrollo ESTABLE, porque creemos que tendrá todos los drivers hardware y los elementos software necesarios para nuestro Proyecto. En caso de que no fuese así, actualizar en todo o en parte a INESTABLE no sería un problema excesivo. Aunque la palabra asusta un poco, la rama INESTABLE de DEBIAN es la rama estable en otras distribuciones tales como UBUNTU o KNOPPIX. Una vez instalada la distribución, actualizaremos todos los paquetes tanto de seguridad como de sistema. El Proyecto Debian es una asociación de personas que han hecho causa común para crear un sistema operativo (SO) libre. Este sistema operativo se llama Debian GNU/ Linux, o simplemente Debian para acortar. Un sistema operativo es un conjunto de programas y utilidades básicas que hacen que un ordenador funcione. El centro de un sistema operativo es el núcleo (también llamado kernel). El núcleo es el programa más importante, realiza todo el trabajo básico y permite ejecutar otros programas. Los sistemas Debian actualmente usan el núcleo de Linux. Linux es una pieza de software creada en un principio por Linus Torvalds y soportada de manera altruista por miles de programadores a lo largo del mundo. Sin embargo, se está trabajando para ofrecer Debian con otros núcleos, en especial con el núcleo Hurd. El Hurd es una colección de servidores que se ejecutan sobre un micronúcleo para implementar las distintas funcionalidades. El Hurd es software libre producido por el proyecto GNU. Una gran parte de las herramientas básicas que completan el sistema operativo, vienen del proyecto GNU; de ahí los nombres: GNU/ Linux y GNU/Hurd. Estas herramientas también son libres. Hay que tener en cuenta que lo que la gente quiere es software de aplicación y herramientas que los ayuden a realizar lo que necesiten hacer, desde editar José Manuel campos moreno y Miguel José guzmán munuera
  • 17. Pag. - 16 -Instalación y configuración de centralita VoIP basada en asterisk documentos, ejecutar aplicaciones de negocios hasta divertirse con juegos o programar más software; es por lo que Debian viene con más de 18733 paquetes (software precompilado y empaquetado en un formato de instalación sencilla en un ordenador) todos ellos de forma gratuita. Es un poco como una torre. En la base está el núcleo. Encima se encuentran todas las herramientas básicas. Después está todo el software que ejecutamos en el ordenador. En la cima de la torre se encuentra Debian organizando y encajando las diferentes piezas software cuidadosamente para que todo el sistema trabaje en conjunto. 2.2 SOPORTE RAID1 : Durante el proceso de instalación vamos a usar el soporte RAID de DEBIAN. Aunque en si mismo no es un programa, las distribuciones LINUX funcionan mediante el método de paquetes. Eso significa que no tienes que instalar los programas, sino que solamente se tiene que instalar una porción de código de programa que viene precompilado en formatos estándar tales como RPM o DEB. Así que vamos a describir todos los paquetes que van a ser representativos durante el proceso de instalación del Servidor VoIP. Así que volviendo al RAID, vamos a instalar DEBIAN en nuestros discos duros con el soporte RAID1 por software de DEBIAN, lo cual va a permitir que nuestros discos duros contengan cada uno de ellos una copia íntegra de todo el sistema. Un RAID1 crea una copia exacta (o espejo) de un conjunto de datos en dos o más discos. Esto resulta útil cuando el rendimiento en lectura es más importante que la capacidad. Un conjunto RAID1 sólo puede ser tan grande como el más pequeño de sus discos. Un RAID1 clásico consiste en dos discos en espejo, lo que incrementa exponencialmente la fiabilidad respecto a un sólo disco; es decir, la probabilidad de fallo del conjunto es igual al producto de las probabilidades de fallo de cada uno de los discos (pues para que el conjunto falle es necesario que lo hagan todos sus discos). Adicionalmente, dado que todos los datos están en dos o más discos, con hardware habitualmente independiente, el rendimiento de lectura se incrementa aproximadamente como múltiplo lineal del número del copias; es decir, un RAID1 puede estar leyendo simultáneamente dos datos diferentes en dos discos diferentes, José Manuel campos moreno y Miguel José guzmán munuera
  • 18. Pag. - 17 -Instalación y configuración de centralita VoIP basada en asterisk por lo que su rendimiento se duplica. Para maximizar los beneficios sobre el rendimiento del RAID1 se recomienda el uso de controladoras de disco independientes, una para cada disco (práctica que algunos denominan splitting o duplexing). El tiempo medio de lectura se reduce, ya que los sectores a buscar pueden dividirse entre los discos, bajando el tiempo de búsqueda y subiendo la tasa de transferencia, con el único límite de la velocidad soportada por la controladora RAID. Sin embargo, muchas tarjetas RAID1 IDE antiguas leen sólo de un disco de la pareja, por lo que su rendimiento es igual al de un único disco. Al escribir, el conjunto se comporta como un único disco, dado que los datos deben ser escritos en todos los discos del RAID1. Por tanto, el rendimiento no mejora. El RAID1 tiene muchas ventajas de administración. Por ejemplo, en algunos entornos es posible «dividir el espejo»: marcar un disco como inactivo, hacer una copia de seguridad de dicho disco y luego «reconstruir» el espejo. Esto requiere que la aplicación de gestión del conjunto soporte la recuperación de los datos del disco en el momento de la división. 2.3 XEN : Cuando nuestra distribución DEBIAN esté funcionando en RAID1, el siguiente paso será instalar XEN. Es una máquina virtual de código abierto desarrollada por la Universidad de Cambridge. La meta del diseño es poder ejecutar instancias de sistemas operativos con todas sus características, de forma completamente funcional en equipos que no tienen por que ser muy potentes. Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en caliente. Los sistemas operativos deben ser modificados explícitamente para ejecutar Xen (aunque manteniendo la compatibilidad con aplicaciones que el usuario tenga instaladas). Utiliza una técnica llamada paravirtualización con la que puede alcanzar alto rendimiento (es decir, bajas penalizaciones del rendimiento, típicamente alrededor del 2%, con los peores casos de rendimiento rondando el 8%; esto contrasta con las soluciones de emulación que habitualmente sufren penalizaciones de un 20%). Con la paravirtualización, se puede alcanzar alto rendimiento incluso en arquitecturas (x86) que no suelen conseguirse con técnicas tradicionales de virtualización. José Manuel campos moreno y Miguel José guzmán munuera
  • 19. Pag. - 18 -Instalación y configuración de centralita VoIP basada en asterisk A diferencia de las máquinas virtuales tradicionales, que proporcionan entornos basados en software para simular hardware, Xen requiere portar los sistemas operativos para adaptarse al API (interfaz de programa) de Xen. Hasta el momento hay ports (traducciones o versiones de un mismo programa) para NetBSD, Linux, FreeBSD y Plan 9. Novel ha realizado un port de NetWare para Xen. Un port de Windows XP fue creado durante el desarrollo inicial de Xen, pero las licencias de Microsoft prohíben su lanzamiento público. Las máquinas virtuales Xen pueden ser migradas en caliente entre equipos físicos sin pararlos. Durante este proceso, la memoria de la máquina virtual es copiada iterativamente al destino sin detener su ejecución. Una parada muy breve de alrededor de 60 a 300 milisegundos es necesaria para realizar la sincronización final antes de que la máquina virtual comience a ejecutarse en su destino final. Una tecnología similar es utilizada para suspender las máquinas virtuales a disco y cambiar a otra máquina virtual. 2.4 ASTERISK : Una vez que tengamos nuestra distribución plenamente operativa, en RAID con una distribución DEBIAN como máquina principal y otra DEBIAN virtualizada, vamos a instalar el software ASTERISK que se incluye en los repositorios (almacenes de paquetes) de DEBIAN. Asterisk es una aplicación de software libre (bajo licencia GPL) de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios. Asterisk incluye muchas características anteriormente sólo disponibles en sistemas costosos propietarios PBX como buzón de voz, conferencias, distribución automática de llamadas, y otras muchas más. Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan en el lenguaje de programación de script de Asterisk o añadiendo módulos escritos en lenguaje C o en cualquier otro lenguaje de programación soportado por Linux. José Manuel campos moreno y Miguel José guzmán munuera
  • 20. Pag. - 19 -Instalación y configuración de centralita VoIP basada en asterisk Para conectar teléfonos estándar analógicos son necesarias tarjetas electrónicas telefónicas FXS o FXO fabricadas por Digium u otros proveedores compatibles con Asterisk, ya que para conectar el servidor a una línea externa no basta con un simple módem. Quizá lo más interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP, H.323, IAX y MGCP. Asterisk puede interoperar con terminales IP actuando como un registrador y como gateway entre ambos. Lejos de poder competir con las compañías que comercializan soluciones de VoIP hardware/software de alta calidad como Alcatel-Lucent, Cisco, Avaya, Nortel, Linksys o Thompson, Asterisk se empieza a adoptar en algunos entornos corporativos como solución de bajo coste y esta pasando a ser asequible a PYMES para las que hasta hace poco no había soluciones en buena relación prestaciones precio que les permitieran mejorar sus comunicaciones. 2.5 SUBSISTEMA ZAPTEL (ZAPATA TELEPHONY) : Es un software que permite operar con las tarjetas de comunicaciones, siendo una especie de puente entre estas y Asterisk. Contiene los drivers para configurarlas y es imprescindible su correcta instalación y configuración para el funcionamiento de una centralita IP. 2.6 SOFTPHONE VOIXPHONE : Un Softphone (en inglés combinación de Software y de Telephone) es un software que hace una simulación de teléfono convencional por ordenador. Es decir, permite usar el ordenador para hacer llamadas a otros Softphone o a otros teléfonos convencionales usando algún tipo de enlace, como por ejemplo una centralita IP. Normalmente, un Softphone es parte de un entorno Voz sobre IP y puede estar basado en los estándares SIP/H.323/IAX o protocolos privativos. Hay muchas implementaciones disponibles, aunque el más usado y conocido es sin lugar a dudas el Microsoft Messenger. Los Softphone más utilizados basados en el protocolos SIP/IAX actualmente son eyeBeam, OpenWengo, Nexge, sipXphone, Adore Softphone, Express Talk, Zoiper, SJPhone, Ekiga y VoixPhone. Funcionan bien con la mayoría de los proveedores de José Manuel campos moreno y Miguel José guzmán munuera
  • 21. Pag. - 20 -Instalación y configuración de centralita VoIP basada en asterisk servicios de telefonía por Internet. Se puede llamar con ellos usando un teléfono USB o auricular y obtener un servicio gratuito VoIP de teléfono a teléfono. El muy popular Skype no es simplemente un Softphone sino un servicio P2P VoIP. Los Softphone son realmente parte de un grupo tecnológico mayor, el CTI (Computer Telephone Integration). Algunos Softphone están implementados completamente en software, que se comunica con las PBX (centralitas) a través de LAN (Red de Área Local) para controlar y marcar a través del teléfono físico. Se hace a través de un entorno de centro de llamadas, para llamar usando una base de datos de clientes o para recibir llamadas. En estos casos la información del cliente aparece en la pantalla de gestión cuando el teléfono suena, dando a los operadores del centro de llamadas determinada información sobre quién está llamando, cómo recibirlo y dirigirse a esa persona. Hemos optado por VoixPhone porque tiene versiones libres, y es un cliente VoIP con múltiples opciones que pese a su potencia no consume excesivos recursos del sistema. Tiene versión para Windows con lo que si queremos realizar pruebas desde algún sistema operativo propietario, tendríamos la posibilidad. 2.7 CDR ASTERISK : Sorprendiendo una vez más, resulta que Asterisk almacena todo el tráfico de llamadas tanto entrantes como salientes en bases de datos. En esas bases de datos tenemos identificado el teléfono o extensión que se ha visto involucrado en la llamada, cuánto tiempo ha empleado en dicha llamada, hora de inicio y final, amén de mucha más información. Esta información nos puede ayudar a gestionar con eficiencia los recursos humanos y de comunicación de los que disponemos. Entre la información que podemos obtener del sistema de analítica de llamadas de Asterisk tenemos informes de llamadas diarias o mensuales por extensión, tráfico total de llamadas, comparativa de llamadas con días anteriores, llamadas por números específicos mediante criterios de búsqueda y todo ello presentado en atractivas gráficas que nos muestran con claridad la información solicitada. José Manuel campos moreno y Miguel José guzmán munuera
  • 22. Pag. - 21 -Instalación y configuración de centralita VoIP basada en asterisk José Manuel campos moreno y Miguel José guzmán munuera
  • 23. Pag. - 22 -Instalación y configuración de centralita VoIP basada en asteriskMÉTODO 1 OBTENCIÓN Y PREPARACIÓN DEL SOFTWARE DEBIAN Para poder comenzar la instalación de nuestra centralita IP, lo primero que hemos de hacer es conseguir el sistema operativo que vamos a instalar. En este caso hemos de conseguir la distribución de LINUX denominada DEBIAN. Al ser software libre, se puede descargar desde Internet. La página web desde donde se puede descargar es www.debian.org y más exactamente desde este enlace http://cdimage.debian.org/debian-cd/4.0_r3/amd64/iso-cd/debian-40r3-amd64- netinst.iso el cual nos permite descargar la versión AMD64 NETINSTALL SMALL CD ESTABLE. Para tipo de procesador podemos usar una “versión” de LINUX que aprovecha al máximo sus características y es por eso que siendo el nuestro un AMD64 descargamos la distribución apropiada. Aparte de eso, también existen diferentes “versiones” de formulas de instalación, y podemos elegir una u otra en función del uso que le vayamos a dar a nuestro ordenador. La formula de instalación más común es la descarga de un CD o DVD que contiene el sistema operativo LINUX completo, más múltiples programas y aplicaciones. Pero en nuestro caso, para no cargar el sistema de aplicaciones que en nuestro servidor de telefonía IP no vamos a utilizar, hemos descargado una versión NETINSTALL que lo que hace es instalar una base muy pequeña del sistema operativo y que posteriormente a través de Internet adquiere el resto de aplicaciones y programas que sean necesarios en función de las selecciones que realicemos durante la instalación. Es por lo que a esta versión, al ser muy reducida y entrar en un CD más pequeño que los habituales, se le llama SMALL CD (pequeño CD). Una vez descargada la imagen ISO a un ordenador, tenemos que grabarla en un CD para poder usarla. Para ello podemos usar nuestro ordenador habitual instalado con LINUX y usar una de las aplicaciones de LINUX más conocida para grabar CD que se llama BRASERO. Si no lo tenemos instalado, podemos conseguirlo escribiendo en consola José Manuel campos moreno y Miguel José guzmán munuera
  • 24. Pag. - 23 -Instalación y configuración de centralita VoIP basada en asterisk sudo aptitude install brasero lo que hará que lo tengamos disponible en el menú Aplicaciones – Sonido y Vídeo. Al pulsar en el icono del programa, nos saldrá una pantalla como la siguiente en la que tenemos que seleccionar la opción Grabar imagen al pulsar en dicha opción nos sale otra pantalla en la que tenemos que pulsar donde pone ruta y seleccionamos el archivo que hemos descargado (debian-40r3-amd64-netinst.iso en nuestro caso o el que esté disponible en Internet en ese momento) con lo que el botón José Manuel campos moreno y Miguel José guzmán munuera
  • 25. Pag. - 24 -Instalación y configuración de centralita VoIP basada en asterisk Grabar que estaba sombreado, permitirá ser pulsado, realizando la copia a CD si lo tuviésemos insertado, o pidiéndonos que le suministremos un CD virgen para proceder a realizar la copia del mismo. En caso de no disponer de un ordenador con LINUX, en este proyecto no damos soporte a software propietario, con lo que la grabación del CD corre a cargo del lector :) pues Windows a día de hoy no dispone de ninguna herramienta gratuita para poder grabar imágenes de CD. 2 INSTALACIÓN Y CONFIGURACIÓN DE DEBIAN Para proceder a la instalación de la distribución de LINUX DEBIAN (en adelante simplemente la denominaremos Debian), hay que asegurarse de que en BIOS del ordenador que se va a utilizar esté configurada la opción de arranque desde la unidad de CD. Debido a que esto suele venir configurado por defecto y a la gran cantidad de placas base y BIOS diferentes que hay en el mercado, no creemos pertinente el explicar cómo se puede modificar dicha configuración. Solo indicar que si se introduce en el lector o grabador del ordenador Debian copiado en un CD tal y como hemos descrito anteriormente debe de aparecer una pantalla en la que veremos el logotipo de Debian y un mensaje que nos invita a pulsar ENTER para continuar con la instalación. Si hemos llegado hasta este punto, para facilitar la instalación y para facilitarnos a nosotros el poder realizar capturas de pantalla de la instalación, vamos a utilizar un entorno gráfico de instalación (instalación mediante entorno de ventanas mediante uso del ratón). Para acceder a ese entorno gráfico, es necesario que en la posición donde nos aparece el mensaje que nos invita a pulsar ENTER en lugar de hacerlo, pongamos la orden installgui tal y como se indica a continuación Press F1 for help, or ENTER to boot : installgui_ y posteriormente pulsamos la tecla ENTER. En unos segundos tendremos a nuestra disposición una pantalla en la que se nos solicita el idioma en el que deseamos instalar Debian, y nosotros vamos a seleccionar Spanish – Español José Manuel campos moreno y Miguel José guzmán munuera
  • 26. Pag. - 25 -Instalación y configuración de centralita VoIP basada en asterisk A partir de aquí vamos a ir seleccionando las siguientes opciones para realizar la instalación: REGIÓN : España LOCALIZACIÓN : es_ES.UTF-8 En la pantalla que nos aparece a continuación se nos piden idiomas adicionales para los que queremos que Debian tenga soporte. En nuestro caso no vamos a indicar ninguno, aunque habrá quien desee modificar esta opción y añadir uno o más idiomas. Siéntase libre de modificar esta o cualquier otra opción a su discreción, puesto que para eso estamos usando software libre. Pulse en Continuar cuando termine la selección. IDIOMA DEL TECLADO : Español (viene por defecto) Seguidamente nos aparece un mensaje en pantalla en el que se nos informa de que se está intentando configurar la red buscando un servidor DHCP (un servidor de asignación automática de direcciones de red). Lo normal es que nuestra red disponga de dicho servidor, ya que normalmente todos los ROUTERS, (dispositivos de interconexión entre redes con los que habitualmente conectamos nuestros ordenadores a Internet), tienen un servidor de este tipo. En el caso de que no exista ningún servidor DHCP en nuestra red, nos saldrían unas opciones en las que se nos permitiría modificar manualmente los parámetros de nuestra red de área local. Debido a que una configuración de este tipo tampoco entra en lo que consideramos los objetivos fundamentales de este proyecto, dejamos en manos del usuario el informarse para configurar adecuadamente las direcciones IP y resto de parámetros necesarios para conectar correctamente a Internet el ordenador usado para la configuración de la centralita. Si todo ha salido bien aparecerá una pantalla en la que se nos pedirá el nombre que deseamos ponerle a nuestro servidor de telefonía. Nosotros le vamos a llamar gestormv (ya que este servidor va a gestionar nuestras máquinas virtuales) y pulsaremos en Continuar para proceder a introducir el nombre de dominio que vamos a utilizar en nuestra red. Tal y como nos indica este dato puede ser real o inventado. Ha de ser real si tenemos los conocimientos necesarios para integrar nuestro servidor en un dominio en el José Manuel campos moreno y Miguel José guzmán munuera
  • 27. Pag. - 26 -Instalación y configuración de centralita VoIP basada en asterisk que vaya a interactuar con otros servidores y clientes, o podemos sencillamente poner un nombre que nos resulte sugestivo. En este caso nuestro dominio se llamará proyectoasterisk.net. Llegamos al particionado de discos. Lo primero que tenemos claro es que deseamos tener un servidor que sea lo más seguro posible y para eso hemos decidido el particionar los dos discos duros de los que disponemos en RAID1 (configuración de discos en espejo ya mencionada en el apartado 2.2 del capítulo MATERIALES). Para cargar los paquetes software necesarios hemos de seleccionar en la pantalla de particionado de discos la opción Manual, con lo que nos aparecerá la información de los discos duros y del espacio libre que tienen para poder realizar la instalación. Debido a que nuestros discos duros están totalmente vacíos, disponemos del 100% del espacio libre para configurar las particiones en las que posteriormente vamos a proceder a instalar Debian, así que pulsamos doble click en la primera partición vacía (donde pone pri/lóg xxx.xx GB ESPACIO LIBRE) y en la siguiente pantalla seleccionamos la opción Crear una partición nueva para poder elegir que capacidad del disco duro vamos a dedicar a la partición que deseamos crear. Tenemos disponible todo el disco duro y por defecto nos selecciona el tamaño máximo, así que tendremos que indicarle que deseamos una partición de 2GB (que usaremos como partición de intercambio o SWAP). Como hemos indicado antes, siéntase libre de modificar la capacidad usada para las particiones. En la bibliografía hay un enlace a una página web en la que explican cuál es el tamaño ideal de la partición de intercambio para cada tipo de instalación. Para quien no esté familiarizado con el concepto de la memoria de intercambio, aclarar que se trata de un espacio del disco duro que el sistema operativo usa como memoria RAM y en el que se almacenan los procesos que tienen poco uso, permitiendo dejar la memoria RAM libre para otros programas y procesos. PARTICIÓN : Primaria POSICIÓN : Principio Seleccionamos Utilizar como: sistema ext3 transaccional y en la siguiente pantalla pulsamos sobre área de intercambio, lo que nos devolverá a la pantalla anterior que se nos mostrará modificada con la selección que hemos realizado. Pulsamos en Se ha terminado de definir la partición y veremos que el disco duro en el José Manuel campos moreno y Miguel José guzmán munuera
  • 28. Pag. - 27 -Instalación y configuración de centralita VoIP basada en asterisk que hemos creado la partición de intercambio ahora presenta una partición nueva llamada > #1 primaria 2GB f intercambio intercambio, justo debajo de la cual tenemos el espacio libre disponible para generar más particiones. Pulsamos en pri/lóg xxx.xx GB ESPACIO LIBRE Crear una partición nueva Continuar PARTICIÓN : Primaria En este punto volvemos seleccionar Utilizar como: sistema ext3 transaccional y en la siguiente pantalla seleccionaremos volumen físico para RAID, lo que nos devolverá a la pantalla anterior que se nos mostrará modificada con la selección que hemos realizado. Pulsamos en Se ha terminado de definir la partición y estaremos de nuevo en la pantalla inicial en la que se nos mostrará una partición RAID llamada > #2 primaria 318 GB k raid. Hemos de repetir toda la operación de creación de particiones con el segundo disco duro, y nos tiene que quedar la pantalla de configuración de particiones con algo parecido a la captura que vemos a continuación José Manuel campos moreno y Miguel José guzmán munuera
  • 29. Pag. - 28 -Instalación y configuración de centralita VoIP basada en asterisk Seleccionamos Configurar RAID por software para hacer que las particiones que hemos creado se unan creando el espejo. Para ello en la siguiente pantalla se nos indica que hay que realizar unos cambios IRREVERSIBLES que van a destruir la información de los discos duros. Seleccionamos Sí y Continuar. Llegaremos a la configuración MD-RAID (configuración Multi-Disco RAID). Crear un dispositivo MD TIPO : RAID1 ACTIVOS : 2 Nos pregunta cuántos dispositivos libres vamos a usar. Los dispositivos libres son discos duros particionados para RAID, pero que se quedan en estado latente a la espera de que alguno de los discos duros que están en uso falle, pasando en ese momento a estar activo y a suplir la carencia del disco duro defectuoso. En nuestro caso no hemos querido tener este sistema de seguridad extra, con lo que dejamos la opción que viene por defecto (0 discos) y Continuar. Llegamos a una nueva pantalla de configuración de RAID en la que se nos solicita que marquemos dos particiones como dispositivos activos. En nuestra instalación nos aparecen dos pequeños recuadros junto a los que nos aparecen José Manuel campos moreno y Miguel José guzmán munuera
  • 30. Pag. - 29 -Instalación y configuración de centralita VoIP basada en asterisk las reseñas /dev/sda1 y /dev/sdb1. Ni que decir tiene que hemos de marcar los dos recuadros y Continuar lo que nos hace regresar a la pantalla de configuración MD- RAID. Como ya hemos terminado de configurar nuestro sistema multi-disco en RAID1, podemos Terminar. Volvemos a la pantalla inicial donde hemos configurado las particiones, la cual ha cambiado y ahora se nos presenta un nuevo disco llamado Dispositivo RAID1 #0 – xxx.xx GB dispositivo RAID por software bajo el que aparece como está configurada la partición RAID. Para poder acceder a dicha partición y modificarla, pulsaremos doble click sobre > #1 xxx.xx GB. Volvemos a estar en una pantalla conocida, así que iremos rápido. Utilizar como: no utilizar, sistema ext3 transaccional Punto de montaje: ninguno / - sistema de ficheros raíz Se ha terminado de definir la partición Finalizar el particionado y escribir los cambios en el disco Y aunque nos parezca increíble, solamente nos falta seleccionar Sí y Continuar para tener nuestro sistema asegurado mediante un disco duro espejo. ZONA : Península Para realizar cualquier operación crítica en el servidor, éste nos solicitará una contraseña de superusuario. La contraseña ha de ser eficiente en términos de seguridad, con lo que debe tener letras, números, símbolos y más de ocho caracteres. Para nuestra instalación, vamos a poner como contraseña de root aste-2008*risk. Pulsamos en Continuar y se nos solicita el nombre de un usuario para acceder al sistema. Aquí puedes introducir tu nombre, Continuar. Ahora el nombre con el que el usuario va a acceder a la cuenta del servidor que es operador (Continuar) y la contraseña operador2008 (Continuar). Es importante tener en cuenta que Debian distingue entre mayúsculas en minúsculas. Debian nos solicita una replica de red de la instalación para configurar el Gestor de paquetes. Esto es debido a que el CD de Debian que estamos usando tiene solamente los programas necesarios para comenzar las instalación, pero no el sistema operativo completo, hemos de descargar desde una copia en Internet todos los programas que José Manuel campos moreno y Miguel José guzmán munuera
  • 31. Pag. - 30 -Instalación y configuración de centralita VoIP basada en asterisk necesitemos. Seleccionamos lo siguiente : CONFIGURAR REPLICA : Si REPLICA : España SELECCIÓN DE REPLICA : Continuar ENCUESTA DE PAQUETES : Sí TIPO DE INSTALACIÓN : Sistema estándar GRUB : Sí Finalmente la instalación expulsa la bandeja del lector de CD (de la que hemos de extraer la copia de Debian desde la que hemos estado instalando) y nos informa de que la instalación a concluido. Pulsemos felices en Continuar y el sistema se reiniciará para que podamos comenzar a trabajar con nuestro servidor. 3 INSTALACIÓN Y CONFIGURACIÓN DE SERVIDOR XEN Vamos a proceder a la instalación del servidor XEN. Para ello hemos de iniciar sesión en nuestro servidor con el usuario operador que hemos creado durante la instalación. Una vez dentro del terminal del servidor, cambiamos la sesión a modo root con la instrucción su, que nos pedirá la contraseña de administración. Ahora instalamos los paquetes necesarios para XEN. Para instalarlos hemos de introducir el siguiente comando : aptitude install screen ssh debootstrap python python-twisted iproute bridge-utils libcurl3-dev Al hacerlo nos indicará que va a adquirir unos 25MB de archivos desde los repositorios a lo que diremos que sí. Durante el proceso puede ser que el sistema nos solicite la inserción del CD de instalación de Debian. Una vez finalizado el proceso vamos instalar un meta paquete (conjunto de paquetes que hacen que una aplicación funcione) que nos instalará XEN : aptitude install xen-linux-system-2.6.18-6-xen-amd64 José Manuel campos moreno y Miguel José guzmán munuera
  • 32. Pag. - 31 -Instalación y configuración de centralita VoIP basada en asterisk Igualmente solicitará la descarga de los paquetes. Una vez instalados, hay que tener en cuenta que XEN solamente permite por defecto el uso de cuatro máquinas virtuales, pero en nuestra instalación es probable que necesitemos más. Es por lo que vamos a cambiar en GRUB (el gestor de arranque del sistema) un valor para permitir hasta 6 máquinas virtuales. Para hacerlo hemos de usar un procesador de textos de consola de los muchos que vienen con Debian (Emacs, vi, joe, nano, etc) y editar el archivo menu.lst añadiendo al final de la línea module /boot/vmlinux-2.6.18-6-xen-amd64 root=/dev/sda1 ro console=tty0 la instrucción max_loop=X donde X es la cantidad máxima de máquinas virtuales que queremos tener en ejecución. En este caso nosotros vamos a asegurarnos de que la linea quede así: module /boot/vmlinux-2.6.18-6-xen-amd64 root=/dev/sda1 ro console=tty0 max_loop=8. Para editar el fichero la instrucción y la ruta es vi /boot/grub/menu.lst En una instalación normal, el siguiente paso sería configurar la tarjeta de comunicaciones Digium mediante el driver existente para Debian, pero debido a que queremos que la tarjeta funcione en una máquina virtual, hay que indicarle al sistema que tiene que “enmascarar” el funcionamiento de la tarjeta Digium y hacer que la use una máquina virtual. Para ello lo primero que hemos de hacer es comprobar en qué dirección del BUS PCI está detectada la tarjeta. Usamos la instrucción lspci -v que nos suministra información en pantalla de todos los recursos PCI usados, y buscamos donde nos pone algo similar a lo siguiente (cambia en función de cada marca y modelo de tarjeta de comunicaciones) : 01:06.0 Ethernet controller Digium Inc. Unknown device 8005. Esto nos informa que la dirección 01:06.0 es la que vamos a indicar a la máquina virtual para que use en exclusiva la tarjeta de comunicaciones. Es importante comprobar en el resultado devuelto por lspci que ninguna otra tarjeta ni dispositivo del sistema está ocupando la misma dirección, puesto que podría provocar problemas. Si algo estuviese usando la misma dirección debemos intentar solucionarlo cambiando la tarjeta de slot PCI o deshabilitando en la BIOS del servidor dispositivos que no sean necesarios, tales como puertos serie, paralelo, firewire, etc. Y para que XEN use la tarjeta en exclusiva hemos de volver a editar el archivo menu.lst y añadir a la linea de XEN, que hemos modificado anteriormente para poder tener más máquinas virtuales, la instrucción José Manuel campos moreno y Miguel José guzmán munuera
  • 33. Pag. - 32 -Instalación y configuración de centralita VoIP basada en asterisk pciback.hide=(01:06.0). Una vez modificado reiniciamos el servidor con reboot. Al reiniciar entramos ya con la opción de GRUB que hemos estado modificando (la opción que carga XEN. Ahora tenemos que indicar al sistema que la gestión de red que van a usar las máquinas virtuales será pasando por la máquina principal. Para ello hemos de editar como administrador de sistema el fichero xend-config.sxp vi /etc/xend-config.sxp y buscamos la linea # (network-script network-bridge), a la que le hemos de eliminar la # para que este activa. Y hemos de hacer la operación inversa con la linea (network- script network-dummy) a la que le tenemos que añadir # delante para que no se tenga en cuenta a la hora del inicio de XEN. Para que los cambios realizados en la configuración de XEN sean operativos hemos de reiniciar el demonio (daemon) que lo gestiona. Un demonio es un programa que entra en funcionamiento al iniciar el sistema y que realiza una labor de manera transparente al usuario, sin que tenga que intervenir para nada en su ejecución o gestión. Existen demonios que están funcionando para comprobar cuando se inserta un dispositivo USB o que comprueban si existen peticiones de acceso al servidor por ftp, ssh, etc. Para poder reiniciar el demonio que gestiona XEN hemos de introducir la instrucción /etc/init.d/xend restart que hace que tengamos finalmente configurado y en espera nuestro servidor XEN. Ahora vamos a crear nuestra primera máquina virtual en la que vamos a instalar Asterisk. En primer lugar hemos de crear un usuario para almacenar las máquinas virtuales. Le vamos a llamar mvirtual. Para crear el usuario usamos adduser mvirtual y entramos en la carpeta /home de dicho usuario cd /home/mvirtual José Manuel campos moreno y Miguel José guzmán munuera
  • 34. Pag. - 33 -Instalación y configuración de centralita VoIP basada en asterisk creamos un directorio para almacenar las máquinas virtuales mkdir maquinas y accedemos al directorio cd maquinas creamos las imágenes del sistema de archivos que vamos a usar para la máquina virtual, necesitando una partición que nosotros vamos a generar de 20GB en ext3 para el sistema y otra partición de 500Mb para intercambio. Creamos las imágenes con dd if=/dev/zero of=mvasterisk.img bs=1024k count=20000 dd if=/dev/zero of=mvasterisk-swap.img bs=1024k count=500 y le indicamos a cada imagen el sistema de archivos que va a usar (nos avisará de que mvasterisk.img es un dispositivo especial de bloques y pedirá autorización) mkfs.ext3 mvasterisk.img mkfs.ext3 mvasterisk-swap.img Ya tenemos preparadas las máquinas virtuales para instalarles el sistema operativo sobre el que va a correr Asterisk. Para instalar el sistema operativo, lo haremos directamente desde Internet mediante la instrucción debootstrap que descarga, con una sola línea de comando, lo imprescindible para que funcione un sistema Debian. Para hacerlo primero creamos una carpeta temporal para “montar”, (almacenarlo en una carpeta a la que Debian tenga acceso), el sistema de archivos ext3 que hemos creado para la máquina virtual mkdir /home/mvirtual/maquinas/temporal montamos la imagen virtual mount -o loop /home/mvirtual/maquinas/mvasterisk.img /home/mvirtual/maquinas/ José Manuel campos moreno y Miguel José guzmán munuera
  • 35. Pag. - 34 -Instalación y configuración de centralita VoIP basada en asterisk temporal/ instalamos el sistema desde Internet debootstrap --arch amd64 etch /home/mvirtual/maquinas/temporal/ http://ftp.es.debian.org/debian Esto iniciará un proceso de descarga de archivos del sistema operativo nos dará el mensaje I: Base system installed successfully si todo ha salido bien. En este momento tenemos un sistema Debian instalado en el sistema de archivos que hemos creado con anterioridad y que hemos montado en el directorio temporal/ (si miramos en el directorio, veremos una estructura de árbol de ficheros clásica de Debian). Vamos a conectar con este nuevo sistema operativo. Para hacerlo, vamos a usar la instrucción chroot /home/mvirtual/maquinas/temporal/ Un entorno chroot sirve para trabajar "como si" tuviéramos un árbol de ficheros diferente. Esto sirve para simular, por ejemplo, que tenemos instalado un cierto conjunto de paquetes, o incluso distribuciones Linux enteras. Por ejemplo, en una máquina instalada con Debian “estable” podemos crear un directorio donde instalemos Debian “inestable” para probar algunos paquetes más actualizados. Una vez que tenemos montado el entorno chroot, podemos preparar de forma sencilla unos scripts (programas) para ejecutar aplicaciones que residen en él de forma casi transparente. Así podemos utilizar aplicaciones de una versión más nueva de Debian sin tener que reinstalar todo el sistema. Esto significa que desde el momento en el que hemos ejecutado la instrucción chroot temporal/ estamos “dentro” de un nuevo sistema operativo y las operaciones que hagamos sobre el mismo no afectan al sistema base sobre el que se está ejecutando. Todos los comandos que escribamos a partir de ahora solamente afectaran a la máquina que hemos creado. chroot temporal/ El sistema base Debian adolece de no tener configurado absolutamente nada de lo que José Manuel campos moreno y Miguel José guzmán munuera
  • 36. Pag. - 35 -Instalación y configuración de centralita VoIP basada en asterisk nos va a hacer falta, con lo que hemos de adquirir desde los repositorios de Debian los paquetes con los programas que vamos a usar. En primer lugar obtenemos el editor de textos que vayamos a usar, en nuestro caso aptitude install vim con lo cual ya podemos editar el archivo sources.list para añadir los repositorios desde los que vamos a ir actualizando y mejorando nuestro sistema base vi /etc/apt/sources.list Hemos de asegurarnos que en el archivo que estamos editando aparezcan las siguientes líneas (si no están, hemos de añadirlas): deb http://ftp.es.debian.org/debian/ etch main deb-src http://ftp.es.debian.org/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib y una vez añadidas y guardado el archivo, hemos de actualizar nuestro sistema aptitude update aptitude dist-upgrade Instalamos el paquete locales que nos pondrá el sistema en español mediante dos sencillas instrucciones aptitude install locales dpkg-reconfigure locales En el listado de locales que nos sale, seleccionamos es_ES.UTF-8 UTF-8 y en_US.UTF-8 UTF-8, con lo que tras darle a ok tendremos habilitados los idiomas Español e Inglés. Se nos solicita cuál va a ser el idioma predeterminado, a lo que contestamos es_ES.UTF-8. José Manuel campos moreno y Miguel José guzmán munuera
  • 37. Pag. - 36 -Instalación y configuración de centralita VoIP basada en asterisk Y ahora instalamos de una sentada varias aplicaciones útiles para nuestros fines de las cuales iremos viendo posteriormente su uso aptitude install ssh zip unzip screen less iftop psmisc udev Editamos el fichero que contiene el nombre de nuestra nueva máquina virtual vi /etc/hostname y le ponemos de nombre asterisk para que se llame así en nuestra red la máquina virtual, solamente tendríamos que añadir la línea asterisk Editamos un fichero de configuración de gestión de dispositivos llamado fstab. Este fichero se encarga de configurar, al inicio del sistema, las particiones y dispositivos a los que va a tener acceso una máquina o servidor (ya sea real o virtual), para modificarlo vi /etc/fstab y añadir dos lineas como las indicadas a continuación /dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0 lo que hará que nuestra máquina virtual sepa que dispone de una partición ext3 para el sistema y de otra partición swap para intercambio, no configurando ningún dispositivo tipo lector de DVD o almacenamiento USB. Solamente tendremos acceso a esta máquina virtual a través de la red, la cual también tenemos que configurar, puesto que si no lo hacemos dejamos la máquina sin posibilidad de acceso. Para configurar la red modificamos el archivo interfaces vi /etc/network/interfaces añadiendo dos lineas que le indican cual es el interface de red que va a utilizar, que en nuestro caso no es una tarjeta de red física, sino una interconexión entre máquinas (en José Manuel campos moreno y Miguel José guzmán munuera
  • 38. Pag. - 37 -Instalación y configuración de centralita VoIP basada en asterisk este caso entre la virtual y la real). Las lineas a añadir son auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.111 netmask 255.255.255.0 gateway 192.168.0.1 Seguimos configurando la red. Ahora le toca el turno al fichero hosts, en el que normalmente se indican las IP conocidas de máquinas a las que queramos tener acceso habitualmente, junto con su nombre en la red. En nuestro caso solamente vamos a indicar la dirección IP local vi /etc/hosts y añadimos 127.0.0.1 localhost.localdomain localhost # Las siguientes lineas son convenientes para hosts con soporte Ipv6 ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts Ha todo esto ya hemos terminado de realizar casi todas las modificaciones requeridas para que nuestra máquina virtual esté terminada. Nos queda salirnos del “chroot” para que las operaciones que hagamos a partir de ahora se ejecuten en nuestra máquina real, para ello escribimos exit José Manuel campos moreno y Miguel José guzmán munuera
  • 39. Pag. - 38 -Instalación y configuración de centralita VoIP basada en asterisk y ya en la máquina real copiamos parte de los archivos de XEN dentro del árbol de archivos de la máquina virtual (el cual aún tenemos montado en el directorio temporal). Para realizar la copia al sitio adecuado, la instrucción es cp -dpR /lib/modules/2.6.18-6-xen-amd64/ /home/mvirtual/maquinas/temporal/lib/modules tras lo que desmontamos de la carpeta temporal/ el archivo de imagen de la máquina virtual con la el comando umount umount temporal/ En este punto tenemos la maquina virtual con nombre de host mvbase almacenada en el archivo de imagen mvasterisk.img dentro del directorio /home/mvirtual/maquinas/ y preparada para entrar en funcionamiento. Vamos a crear una carpeta llamada asterisk y vamos a copiar dentro la máquina base con el nombre mv01.img (acrónimo de máquina virtual 01) . Es en esa máquina virtual donde vamos a instalar y configurar realmente Asterisk. Para ello mkdir /home/mvirtual/maquinas/asterisk cp -pf /home/mvirtual/maquinas/mvasterisk.img/ /home/mvirtual/maquinas/asterisk/mv01.img cp -pf /home/mvirtual/maquinas/mvasterisk-swap.img/ /home/mvirtual/maquinas/ asterisk/mv01-swap.img Entramos en la recta final. Ahora tenemos que crear el fichero de configuración de la máquina virtual en la máquina real, que le va a indicar a esta ultima como va a tener que gestionar los recursos hardware de los que dispone y que parte de esos recursos van a ser dedicados a la máquina virtual. Creamos el directorio mkdir /etc/xen/auto y creamos el fichero José Manuel campos moreno y Miguel José guzmán munuera
  • 40. Pag. - 39 -Instalación y configuración de centralita VoIP basada en asterisk vi /etc/xen/auto/asterisk.sxp con las siguientes instrucciones en su interior name=”asterisk” kernel=”/boot/vmlinuz-2.6.18-6-xen-amd64” ramdisk=”/boot/initrd.img-2.6.18-6-xen-amd64” root=”/dev/hd1 ro” memory=256 disk=[file:/home/mvirtual/maquinas/asterisk/mv01.img,hda1,w,file:/mvirtual/maqui nas/asterisk/mv01-swap.img,hda2,w] vif=[mac=] dhcp=”off” pci=[01:06.0] ip=”172.16.0.211” netmask=”255.255.255.0” gateway=”172.16.0.1” hostname=”asterisk” extra=2 Creemos conveniente explicar someramente para qué sirven las instrucciones que hemos introducido en este fichero, por si el lector desea realizar modificaciones. Name es lógicamente el nombre de la máquina virtual (nombre que tendrá en la red). Las lineas kernel y ramdisk hacen referencia a dos ficheros de imagen del kernel (núcleo del sistema operativo Linux) que están almacenados en nuestra máquina principal y que son los que hacen que la máquina arranque, puesto que contienen la base del sistema. Al hacer referencia a ese kernel, la máquina virtual adquiere dicho núcleo y lo utiliza para su funcionamiento. El que esto sea un parámetro modificable es debido a que en un sistema Linux podemos tener instalados varios núcleos diferentes y usarlos en función de nuestras necesidades. José Manuel campos moreno y Miguel José guzmán munuera
  • 41. Pag. - 40 -Instalación y configuración de centralita VoIP basada en asterisk La linea root indica cual va a ser el disco duro principal de la máquina virtual. En este caso nosotros le estamos indicando que es hda1. La linea memory indica cuanta de la memoria física de nuestra máquina real va a ser dedicada en exclusiva a la máquina virtual. La linea disk describe que archivos de imagen serán usados como discos duros y en que dispositivo se van a montar. La linea vif sirve para asignar a la tarjeta de red virtual de la máquina una dirección mac (dirección única para cada dispositivo de red). Esto es debido a que si no le asignamos una mac, cada vez que iniciamos el sistema se creará aleatoriamente una nueva, que nos generará a su vez un nuevo dispositivo de red. Eso conlleva dificultades de configuración que no nos podemos permitir. Es por ello que hay que poner una mac dentro de un rango que tiene asignado XEN por el organismo certificador IEEE. El rango es la mac cuyos tres primeros pares sean 00:16:e3:xx:xx:xx, debiendo sustituir las xx por los dígitos hexadecimales generados por el sistema en el primer inicio. La linea dhcp sirve para, en el caso de que tengamos un servidor dhcp, que la máquina virtual adquiera automáticamente la dirección ip que le permita conectar a la red. La linea pci le dice a la máquina virtual que use en exclusiva un dispositivo pci con la dirección de bus que se le indica. El resto de parametros son obviamente la configuración de red que el lector ha de adecuar los valores en función de sus necesidades. Ahora nos queda reiniciar nuestro servidor y volver a acceder como administrador sudo reboot introducir usuario y contraseña de operador su José Manuel campos moreno y Miguel José guzmán munuera
  • 42. Pag. - 41 -Instalación y configuración de centralita VoIP basada en asterisk introducir contraseña de root y ejecutar una orden que nos va a permitir conectarnos con nuestra máquina virtual xm console asterisk a partir de este momento estamos dentro de la máquina virtual asterisk, para acceder indicamos que el usuario es root (sin contraseña, puesto que aún no se la hemos configurado a esta máquina), una vez accedemos a la consola de la máquina virtual, ejecutamos el comando que nos muestra los interfaces de red y sus parametros de configuración ifconfig donde vemos que dirección física ha tomado la tarjeta de red eth0, la cual comenzará con 00:16:3e: y hemos de copiar completa para poder introducirla en el fichero de configuración de XEN. Para ello cambiamos de consola con ALT+F3 (por ejemplo, aunque podemos usar cualquier de las otras consolas disponibles en Debian) y volvemos a seguir los pasos de acceso hasta ser usuario administrador. En ese momento editamos de nuevo el fichero vi /etc/xen/auto/asterisk.sxp y la linea con la instrucción vif debemos añadir la dirección mac que hemos copiado de los parametros del interface de red eth0 en la máquina virtual asterisk. La línea debería de quedar mas o menos vif=[mac=00:16:3e:xx:xx:xx] guardamos el fichero y hemos terminado de configurar XEN. Ahora podemos usar algunas instrucciones para controlar nuestra, de momento, única máquina virtual. José Manuel campos moreno y Miguel José guzmán munuera
  • 43. Pag. - 42 -Instalación y configuración de centralita VoIP basada en asterisk 4 COMANDOS PARA GESTIONAR LAS MÁQUINAS VIRTUALES XEN Estar delante de una linea de comandos nos da poca información de como está configurado un sistema de máquinas virtuales, así que vamos a aprender un poco a 4.1 LISTAR MÁQUINAS VIRTUALES : Para ello hemos de usar la instrucción xm list que nos indica cuantas máquinas virtuales tenemos operativas y su estado, suministrando información útil como el nombre de las máquinas (siendo Domain-0 la máquina real), la id asignada por XEN para referirnos a ellas, la memoria RAM asignada, las CPUS virtuales que van a ser usadas por cada máquina, el estado y los tiempos de proceso consumidos para saber que máquinas tienen más carga de trabajo. 4.2 LISTAR RECURSOS CONSUMIDOS POR LAS MÁQUINAS : Usando el comando xm top podemos observar los recursos consumidos por las diferentes máquinas y ordenarlos por CPU, memoria, o cualquier otro parámetro que nos resulte útil para poder asignar recursos del sistema a las diferentes máquinas. 4.3 AJUSTAR CANTIDAD DE MEMORIA USADA POR MÁQUINA : Con el comando xm mem set podemos repartir y modificar en “caliente” (estando las máquinas virtuales funcionando) la memoria del sistema e indicar cuanta queremos que use cada máquina virtual en un momento determinado. Si reiniciamos cualquiera de las máquinas, tomará la cantidad de memoria por defecto que se le haya indicado en el fichero de configuracion .sxp con el nombre de la máquina. José Manuel campos moreno y Miguel José guzmán munuera
  • 44. Pag. - 43 -Instalación y configuración de centralita VoIP basada en asterisk 4.4 INSTRUCCIONES DE PARADA : Con los comandos xm pause, xm reboot y xm shutdown podemos respectivamente pausar, reiniciar y apagar una máquina virtual. Una vez apagada la máquina virtual volveremos a la consola desde la que accedimos a ella o desde la que la iniciamos. 4.5 INSTRUCCIONES DE MIGRACIÓN : Con la instrucción xm migrate podemos mover una máquina virtual completa que esté gestionando por ejemplo nuestra centralita y cambiarla de un ordenador a otro sin que en ningún momento (o solo unos pocos milisegundos) deje de funcionar nuestro sistema. Las posibilidades de esta instrucción son tremendas, ya que podemos mover un servicio desde una máquina situada en un país a otra máquina en otro país distinto. 4.6 INICIO MANUAL DE MÁQUINA XEN : Hemos configurado el sistema para que arranque automáticamente nuestra máquina virtual, pero podríamos iniciar máquinas que no deseemos que se ejecuten al inicio con la instrucción xm create /<ruta>/<nombre fichero .sxp>. 4.7 MÉTODOS DE ACCESO A MÁQUINA VIRTUAL XEN : Para poder acceder a nuestras máquinas virtuales, tenemos la opción de conectarnos tal que si de un ordenador normal se tratase, a través de cualquiera de los puertos de uso común, tal que por ejemplo ssh, telnet, ftp, etc o podríamos iniciar una sesión de consola con algún programa de gestión remota tipo PUTTY, pero la forma más cómoda de acceder a nuestras máquinas virtuales cuando estamos en el equipo que las está ejecutando, es usar la instrucción xm console <nombre máquina virtual> con lo que se nos abrirá un terminal de consola que nos pedirá usuario y contraseña. José Manuel campos moreno y Miguel José guzmán munuera
  • 45. Pag. - 44 -Instalación y configuración de centralita VoIP basada en asterisk Una vez introducidos, estaremos dentro de la máquina virtual, y podremos manipularla, instalarle paquetes (programas) y usar dichos programas, tal que si de un ordenador real se tratase. Para cerrar la consola de la máquina virtual, hay que usar la secuencia de teclas control + ] (símbolo de cerrar corchete). 5 INSTALACIÓN Y CONFIGURACIÓN DE ASTERISK. Para instalar Asterisk, en primer lugar reiniciamos nuestra máquina real para que todos los cambios que hemos realizado se ejecuten. Podemos comprobar si nuestra máquina virtual está operativa con la instrucción xm list que nos reportará información de Domain-0 (nuestra máquina real) y de Asterisk (nuestra máquina virtual). Para poder acceder a nuestra máquina virtual solamente tendremos que poner xm console asterisk y estaremos en una consola de la máquina virtual que nos solicita el usuario. Accedemos como usuario root sin contraseña y escribimos la instrucción passwd tras lo que el sistema nos solicita por dos veces una contraseña para el usuario administrador. El lector puede tomarse la libertad de elegir una contraseña, aunque recomendamos que cumpla los mínimos exigidos de seguridad que exponíamos en el punto dos de este documento (denominado Instalación y configuración de Debian). Por fin estamos dentro de nuestra máquina virtual y autentificados como root. Vamos a instalar Asterisk. El software de gestión PBX Asterisk está capacitado para trabajar con diferentes tarjetas de comunicaciones. Pero hemos de saber a que tipo de línea telefónica nos vamos a conectar para poder instalar y configurar en nuestra máquina virtual la tarjeta adecuada. Nuestra línea puede ser analógica (convencional) o digital (RDSI), en el caso de ser José Manuel campos moreno y Miguel José guzmán munuera
  • 46. Pag. - 45 -Instalación y configuración de centralita VoIP basada en asterisk digital podríamos tener una linea de acceso BRI (acrónimo de Basic Rate Interface – interface de tipo básico) que nos proporciona dos canales de voz, o podríamos tener una línea PRI (acrónimo de Primary Rate Interface – interface de tipo primario) que nos proporciona treinta canales de voz en formato de transmisión digital E1. Este ultimo solamente suele ser utilizado en medianas y grandes empresas. Pero como desgraciadamente no disponemos de una linea digital, vamos a centrarnos en lo que necesitamos para funcionar con líneas analógicas. Para ello se necesitan tarjetas con interfaces FXO (acrónimo de Foreign Exchange Office – oficina de intercambio externo) que son dispositivos informáticos que permiten conectar un ordenador a la red telefónica básica (RTB) y mediante un software especial, realizar y recibir llamadas de teléfono. También necesitaremos interfaces FXS que son dispositivos que permiten conectar un teléfono a un ordenador. Grosso modo podríamos decir que los interfaces FXO son de entrada y los FXS son de salida. En nuestro caso, debido a que solo tenemos una línea de teléfono solamente vamos a necesitar un FXO y debido también a que los teléfonos analógicos que vamos a utilizar los vamos a conectar a un dispositivo hardware que nos los va a transformar en extensiones IP, no necesitaremos conectar a nuestra tarjeta de comunicaciones ningún interface FXS. Un interface FXO físicamente es un conector RJ11 como aquel en el que conectamos nuestros teléfonos fijos en la pared de nuestras casas, y que gracias a las tarjetas de comunicaciones lo tenemos disponible en nuestro ordenador. Para “instalarlo” solo tenemos que conectar con un cable de teléfono el ordenador a la pared. 5.1 PAQUETES BÁSICOS NECESARIOS. Para poder instalar Asterisk, necesitamos instalar antes unos cuantos paquetes desde los repositorios Debian. Para poder instalar dichos paquetes, solamente tendremos que copiar en la consola de nuestra máquina virtual, estando validados como administradores, la siguiente instrucción en la que vienen recogidos los nombres de los mismos aptitude install bison libncurses5-dev libnewt-dev zlib1g-dev libssl-dev initrd- tools procps linux-headers-2.6.18-6-xen-amd64 build-essentials pciutils José Manuel campos moreno y Miguel José guzmán munuera
  • 47. Pag. - 46 -Instalación y configuración de centralita VoIP basada en asterisk libmysqlclient15-dev Con esto obtenemos librerías (conjuntos de pequeños programas para ser usados en programas más complejos) y herramientas de compilación (que permiten generar programas ejecutables a partir de lineas de código de programación). Estas herramientas de compilación son indispensables para configurar nuestra tarjeta de comunicaciones y el software Asterisk. Es muy importante leer los resultados de las descargas e instalación de los paquetes, ya que en ocasiones puede pasar que no sea correcto el nombre de alguno de ellos por cambio de la versión o cualquier otra circunstancia. En caso de que alguno fallara, hemos de mirar en los repositorios el nombre de la versión nueva y modificar la instrucción aptitude con nombre correcto del paquete. 5.2 DESCARGA Y COMPILACIÓN DEL SOFTWARE ASTERISK. Creamos y accedemos a una carpeta donde vamos a guardar el software necesario para instalar y configurar Asterisk mkdir asterisk cd asterisk y ejecutamos las instrucciones de descarga de la ultima versión de los paquetes necesarios desde la página web de la empresa Digium (creadora e impulsora de Asterisk) wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4- current.tar.gz En el momento en el que nosotros nos descargamos estos paquetes ya existen en fase beta (fase de pruebas) unos paquetes correspondientes a la versión 1.6 y por José Manuel campos moreno y Miguel José guzmán munuera
  • 48. Pag. - 47 -Instalación y configuración de centralita VoIP basada en asterisk ello avisamos al lector que si las instrucciones de descarga no funcionan, acceda al ftp de Digium mediante un navegador web y compruebe cual es la ultima versión disponible para indicarlo en las instrucciones wget. Ahora descomprimimos y compilamos cada uno de los archivos que hemos descargado, para ello hemos de utilizar secuencialmente las siguientes instrucciones (tener en cuenta que pueden cambiar si cambian las versiones de los paquetes) tar -zxvf zaptel-1.4-current.tar.gz cd zaptel-1.4.10.1 ./configure make menuselect en este momento nos sale un menú ZAPTEL MODULE SELECTION en el que usando los cursores entramos en todos los apartados y seleccionamos todos los módulos, tras lo que pulsamos la tecla x para grabar los cambios Continuamos, (revisando que las instrucciones no generan ningún error), con make make install make config cd .. tar -zxvf libpri-1.4-current.tar.gz cd libpri-1.4.4 make make install cd .. tar -zxvf asterisk-1.4-current.tar.gz cd asterisk-1.4.19.2 ./configure make menuselect en el menú dejamos todo por defecto, a excepción de la sección CORE SOUND PACKAGES en la que añadimos todos los paquetes de sonidos en José Manuel campos moreno y Miguel José guzmán munuera
  • 49. Pag. - 48 -Instalación y configuración de centralita VoIP basada en asterisk español marcando los puntos donde pone CORE-SOUNDS-ES-<formato audio>. Estos sonidos son locuciones que podremos usar en el contestador automático de la centralita si no queremos generar unos ficheros de audio propios. También podemos incluir los puntos 13 y 14 completos, lo que nos facilita música para dejar llamadas en espera y complementos de sonido para usos varios. Pulsamos x para salvar y continuamos con la compilación make make install make samples cd .. tar -zxvf asterisk-addons-1.4-current.tar.gz cd asterisk-addons-1.4.6 ./configure make menuselect no tocamos nada de la configuración y pulsamos x para grabar make make install make samples cd / con lo que hemos terminado de instalar Asterisk y el software Zaptel, que contiene los drivers de la tarjeta de comunicaciones Digium TDM400P que estamos usando en nuestro servidor. Además hemos instalado los módulos necesarios para poder utilizar usar la información que genera Asterisk desde una base de datos y gestionar dicha información (CDR). 5.3 CONFIGURACIÓN INICIAL TRAS LA INSTALACIÓN. Ahora que tenemos instalado Asterisk, hemos de realizar unas modificaciones al sistema para que cada vez que lo iniciemos, cargue todo lo necesario para que nuestra centralita funcione. En primer lugar configuramos Zaptel con la zona donde nos encontramos y la cantidad de FXO y FXS que va a gestionar. Para José Manuel campos moreno y Miguel José guzmán munuera
  • 50. Pag. - 49 -Instalación y configuración de centralita VoIP basada en asterisk ello editamos vi /etc/zaptel.conf y como solamente vamos a usar una linea FXO, buscamos donde aparece fxsks=1 y si no existe lo añadimos. Si quisiéramos añadir teléfonos analógicos conectados directamente al ordenador en los hipotéticos FXS que podríamos instalar en nuestra tarjeta de comunicaciones, tendríamos que asegurarnos que aparece la linea fxoks=1,2,3,4 (o el número de lineas que quisiéramos gestionar). Dentro del mismo fichero hemos de modificar o añadir también donde pone loadzone por loadzone = es. Es conveniente hacer notar que para las líneas FXO estamos añadiendo la orden de señal fxsks (señal FXS) y viceversa para las lineas FXS. Esto es porque las tomas de entrada, requieren señal de salida y porque las tomas de salida requieren señal de entrada. Guardamos los cambios y continuamos. Para que los módulos de Zaptel se carguen en el encendido de nuestra máquina virtual, hemos de modificar el fichero vi /etc/rc.local y añadir por encima de la instrucción exit 0 estos comandos /etc/rc.local/modprobe zaptel /etc/rc.local/modprobe wctdm ztcfg Guardamos, reiniciamos nuestra máquina virtual con reboot y volvemos a acceder a ella (con xm console asterisk y suministrando la contraseña de root). Con la instrucción ztcfg -vv nos aparecen los canales que tenemos disponibles para configurar. En nuestro caso nos aparece “Channel 01 : FXS Kewlstart (Default) (Slaves : 01)” indicando que tenemos un canal analógico disponible para darnos servicios de voz. Estamos en el buen camino, parece que todo José Manuel campos moreno y Miguel José guzmán munuera
  • 51. Pag. - 50 -Instalación y configuración de centralita VoIP basada en asterisk funciona. 5.4 Ficheros y directorios de Asterisk. En la instalación, Asterisk a creado una serie de directorios y ficheros que es conveniente conocer, para proceder a la configuración de las extensiones y conocer un poco mejor la aplicación. Veamos una somera explicación de lo que contiene cada uno. /etc/asterisk : Contiene los ficheros de configuración. Gracias a haber ejecutado la instrucción make samples durante el proceso de instalación, tenemos unos ejemplos de dichos ficheros de configuración sobre los que podríamos comenzar a funcionar. /usr/lib/asterisk/modules : Contiene los módulos de Asterisk que hemos compilado con las instrucciones make. /var/lib/asterisk : Aquí están almacenadas las librerías (archivos que contienen secciones de programa o subprogramas que son necesarios para el funcionamiento de otro programa más complejo). /var/lib/asterisk/agi-bin : Directorio para contener los AGI (acrónimo de Asterisk Gateway Interfaces), que son interfaces para poder integrar PHP, C, PERL y otros lenguajes de programación con Asterisk. /var/spool/asterisk : Directorio de almacenamiento de archivos generados por Asterisk durante su funcionamiento. Estos archivos pueden ser por ejemplo de audio, generados por el contestador automático al grabar los mensajes de los usuario y almacenarlos para ser enviados por correo electrónico al usuario de la extensión que ha recibido la llamada. También pueden ser documentos de imagen de fax, etc. José Manuel campos moreno y Miguel José guzmán munuera
  • 52. Pag. - 51 -Instalación y configuración de centralita VoIP basada en asterisk /var/log/asterisk : Almacén de los archivos log de Asterisk. Un archivo log es un archivo de texto plano en el que se plasma cualquier acción que realiza un programa, servidor o aplicación. Aquí podremos encontrar información pormenorizada de que ha hecho Asterisk desde el inicio de sistema, hasta la ultima de las llamadas emitidas o recibidas con información relativa a las mismas. Aquí se almacenan los archivos de los que se alimenta el CDR de Asterisk que nos va a suministrar información estadística de las llamadas. 5.5 ASTERISK CLI (COMMAND LINE INTERFACE) : Asterisk dispone de una interfaz de comandos (como una consola de Linux, pero que incluye instrucciones que afectan directamente al funcionamiento de la centralita). La cantidad de instrucciones de manipulación y gestión es inmensa y no está a nuestro alcance el hacer un manual pormenorizado de cada una de ellas. Durante la configuración de la centralita vamos a usar apenas dos o tres instrucciones y para quién desee profundizar en el tema, en la bibliografía hemos indicado unas cuantas páginas web que explican (en ingles) el uso de los diferentes comandos. Para iniciar Asterisk y acceder al CLI solamente tendríamos que escribir la instrucción asterisk -vvvvvvvvvvc (no usar) aunque lo normal no es que se acceda al CLI Asterisk mediante este método, sino escribiendo la instrucción asterisk que arranca la aplicación en segundo plano y accediendo al CLI mediante la instrucción asterisk -vvvvvvvvvvr En el CLI existen instrucciones para crear extensiones, perfiles, gestionar codecs (interpretes) de audio y etc. Estas instrucciones no las vamos a utilizar, José Manuel campos moreno y Miguel José guzmán munuera
  • 53. Pag. - 52 -Instalación y configuración de centralita VoIP basada en asterisk puesto que vamos a realizar las modificaciones “a pelo” en los ficheros de configuración. Esperamos en futuras revisiones de este proyecto, el añadir un manual completo del CLI Asterisk. Para salir del CLI se usa el comando exit. Hasta este punto, si hemos introducido la instrucción asterisk, tenemos nuestra centralita funcionando y corriendo en segundo plano. 5.6 CONFIGURACIÓN INICIAL DE FICHEROS DE ASTERISK; LÍNEA, EXTENSIONES Y CONTEXTOS. Durante el proceso de instalación, se nos han generado en la carpeta /etc/asterisk una serie de archivos de configuración a los que si echamos una mirada, veremos que traen una cantidad brutal de información. En particular los que más nos interesan son tres, denominados zapata.conf, extensions.conf y sip.conf. Los ficheros generados automáticamente por asterisk en /etc/asterisk tienen una configuración base y comentarios antes de cada instrucción que explican (en inglés) qué hacen todos y cada uno de los parametros usados en estos archivos. Casi todos los parametros están comentados para que no tengan efecto, puesto que la mayor parte de ellos se usan solamente en configuraciones muy complejas de entornos de red. Para evitar confusiones y clarificar lo que vamos haciendo, renombramos los ficheros, llamándolos por ejemplo copiazapata.conf, copiaextensions.conf y copiasip.conf, para tener acceso a la información que suministran en caso de que la necesitemos. Para renombrar podemos usar la instrucción mv /etc/asterisk/zapata.conf /etc/asterisk/copiazapata.conf mv /etc/asterisk/extensions.conf /etc/asterisk/copiaextensions.conf mv /etc/asterisk/sip.conf /etc/asterisk/copiasip.conf El fichero zapata.conf es el que configura los canales (lineas telefónicas) que va a tener activos nuestra tarjeta de comunicaciones. Como en este caso solamente vamos a tener un canal, vamos a editar el archivo y a introducir las instrucciones para activar y gestionar ese canal José Manuel campos moreno y Miguel José guzmán munuera
  • 54. Pag. - 53 -Instalación y configuración de centralita VoIP basada en asterisk vi /etc/asterisk/zapata.conf e insertamos lo siguiente [channels] ; afecta a todos los canales configurados language = es ; selecciona el lenguaje usercallerid = yes ; identifica la llamada hidecallerid = no ; oculta la identificación de llamada callwaiting = yes ; activa la llamada en espera threewaycalling = yes ; activa la llamada a tres transfer = yes ; permite transferir las llamadas immediate = yes ; faxdetect = both ; detecta si la llamada recibida es un fax busydetect = yes ; detecta si la linea esta ocupada group =1 ; Indica que esta será la linea Zap 1 context = inicio ; contexto al que va a dirigir la linea la llamada busycount =7 ; immediate = yes ; signalling = fxs_ks ; tipo de señal que usa la linea echocancel = yes ; cancelación de eco echocancelwhenbridged = yes answeronpolarityswitch = yes hanguponpolarityswitch = yes rxgain = 0.5 ; txgain = 1.0 ; channel =>1 ; la linea Zap 1 usará el canal 1 de la tarjeta Digium ahora editamos por primera vez un extensions.conf limpio al que vamos a introducir dos contextos para realizar las pruebas de emisión y recepción de llamadas. Un contexto es una secuencia de ordenes que englobamos con etiquetas para clarificar su funcionamiento. En este caso vamos a crear un contexto [inicio] que haga que se reciban llamadas desde la extensión 100 y otro José Manuel campos moreno y Miguel José guzmán munuera
  • 55. Pag. - 54 -Instalación y configuración de centralita VoIP basada en asterisk [salida] que haga que puedan hacerse llamadas desde dicha extensión, para ello vi /etc/asterisk/extensions.conf y añadimos en el fichero las siguientes instrucciones [general] static = yes ; writeprotect = no ; autofallthrough = yes ; clearglobalvars = no ; priorityjumping = no ; language = es ; idioma español en todos lo ficheros [inicio] include = salida exten => s,1,Answer() ; descuelga exten => s,n,Dial(Sip/100,30,tr) ;manda la llamada a ext100 exten => s,n,Hungup() ; cuelga al terminar [salida] exten => _9XXXXXXXX,1,Dial(Zap/1/${EXTEN},,tTr) exten => _9XXXXXXXX,n,Hangup exten => _6XXXXXXXX,n,Dial(Zap/1/${EXTEN},,tTr) exten => _6XXXXXXXX,n,Hangup Por ultimo editamos el fichero del protocolo de transmisión sip.conf para añadir una extensión que llamaremos [100]. El nombre ha de ser numérico y nos va a permitir posteriormente realizar o pasar llamadas entre extensiones, así que editamos vi /etc/asterisk/sip.conf José Manuel campos moreno y Miguel José guzmán munuera
  • 56. Pag. - 55 -Instalación y configuración de centralita VoIP basada en asterisk añadiendo los siguientes parametros [100] ; nombre de la extensión (linea personal) username=100 ; nombre del usuario (mismo que extensión) type=friend ; permite enviar y recibir llamadas ;secret= ; permite poner una contraseña para activación ;callerid= ; muestra este valor al hacer una llamada language=es ; lenguaje en español en todos los ficheros context=inicio ; contexto al que se dirige esta extensión nat=yes ; permite llamadas por internet host=dynamic ; se puede usar desde cualquier ip de la red canreinvite=no ; Con estos tres ficheros, si lo hemos hecho bien, nuestra centralita debe de poder recibir llamadas a la extensión 100 (en el capitulo 6 configuraremos el hardware PAP2T para que funcione dicha extensión). Pero antes de pasar a realizar las pruebas, vamos a detenernos a examinar que es lo que hemos hecho en los tres ficheros de configuración que hemos introducido. Es muy importante y conveniente tener claro que hace cada uno de los ficheros y conocer las instrucciones básicas que hemos introducido, para poder posteriormente ir aumentando la complejidad del entramado de nuestra centralita. La mayoría de las opciones las hemos comentado con ; <nota del programador> , que es como se hacen los comentarios en los ficheros de Asterisk, pero vamos a hacer especial hincapié en aquellas líneas que son cruciales para la configuración y en aquellos conceptos que han de ser comprendidos. 5.7 ARCHIVOS SIP.CONF, IAX.CONF Y DEMÁS FICHEROS DE PROTOCOLO DE COMUNICACIONES. Los archivos de protocolo de comunicaciones se usan para seleccionar que protocolo usará cada extensión. Asterisk lee todos los archivos de protocolo a la José Manuel campos moreno y Miguel José guzmán munuera
  • 57. Pag. - 56 -Instalación y configuración de centralita VoIP basada en asterisk hora de iniciarse y activa las extensiones (lineas personales) que estén configuradas en todos ellos. Lógicamente hemos de evitar tener la extensión [100] configurada simultáneamente en dos de los archivos de protocolo. Cada protocolo es conveniente en ciertos casos. El más usado y compatible es el protocolo SIP (acrónimo de Session Initiation Protocol – protocolo de inicio de sesiones) que es el que hemos usado en nuestra configuración inicial. Para poder hacer que el hardware que vamos a usar funcione con Asterisk, es necesario que el mismo sea compatible con este protocolo. El protocolo IAX es un protocolo libre creado por la empresa Digium para su uso específico en la gestión de voz sobre IP a través de redes WAN y su uso facilita la comunicación a través de internet. Si quisiéramos que nuestra centralita tuviera extensiones no conectadas a la red local sino conectadas a internet en cualquier lugar del mundo y que dichas extensiones pudieran usar la centralita con todo su potencial, tendríamos que crear estas extensiones dentro del fichero iax.conf. Existen otros ficheros de protocolo tales como h323.conf, jabber.conf, etc, cada uno con su idiosincrasia a la hora de configurarlos, pero con SIP e IAX tenemos los más estandarizados y es más que suficiente para nuestros fines. Una vez razonado que hace exactamente el archivo sip.conf, veamos un poco mejor el contenido que le hemos introducido : [100] ; nombre de la extensión (linea personal) Vamos a poder añadir al archivo sip.conf tantas extensiones como queramos, y podemos llamarlas con el número que nos parezca conveniente. Podemos organizarlo por departamentos de una empresa, y por ejemplo el teléfono principal de administración sea el [100], el de Rosa [101], el de Pablo [102], la extensión del fax del departamento [110]. O por ejemplo podemos añadir una extensión para emergencias en la garita del guardia de la empresa y llamarle [091]. Es solo un ejemplo para que nos demos cuenta que tenemos en nuestras manos el poder de configurar miles de extensiones (nada nos impide poner la extensión [72384236427834623], solo que es un poco difícil de recordar). username=100 ; nombre del usuario (mismo que extensión) El nombre de usuario, que usaremos en los programas Softphone o en el hardware de gestión de VoIP para configurar la extensión ;secret= ; permite poner una contraseña para activación José Manuel campos moreno y Miguel José guzmán munuera
  • 58. Pag. - 57 -Instalación y configuración de centralita VoIP basada en asterisk En este punto nosotros hemos dejado la contraseña sin configurar. Para una gestión segura del sistema, sobre todo si se va a tener acceso desde internet, es conveniente quitar el “ ; ” (comentario) y poner una contraseña de nuestra elección. Se usará al configurar en el hardware y en los Softphone al igual que el nombre de usuario. El siguiente archivo que vamos a ver en detalle es el extensions.conf, el cual configura los “caminos” (Dial Plan – plan de marcado) que van a seguir las llamadas en función de diferentes parámetros que nosotros podemos definir mediante “contextos”. Un contexto es el medio mediante el que vamos a organizar las acciones que la centralita va a realizar. Lo dividimos en contextos para que sea más sencillo el posteriormente modificar dichos caminos. Para la creación de los contextos, se usa un sencillo lenguaje de programación que permite el uso y creación de variables y los saltos entre lineas de código (el nunca bien ponderado GO TO). Veamos los contextos que hemos creado : [general] El contexto general contiene parámetros de Asterisk, que no vamos a entrar a explicar. Se puede ver que hace cada uno de ellos en la copia de seguridad copiaextensions.conf que hemos dejado almacenada para consulta. [inicio] El contexto inicio es donde vamos a configurar que va a hacer Asterisk cuando reciba una llamada en cualquiera de las lineas que le hayamos configurado. El nombre del contexto lo podemos poner a nuestro gusto y debería ser aclaratorio de que función va a realizar dicho contexto dentro de la centralita. En nuestro caso va a ser el punto del “camino” donde las llamadas van a dar sus primeros “pasos”. include = salida Asterisk solamente usa el primer contexto que encuentra en el fichero extensions.conf, en nuestro caso el contexto [inicio], y ejecuta los pasos que José Manuel campos moreno y Miguel José guzmán munuera
  • 59. Pag. - 58 -Instalación y configuración de centralita VoIP basada en asterisk encuentra en ese contexto. Pero nosotros hemos creado un segundo contexto para las llamadas salientes. Si no incluimos el contexto [salida] con una orden include en el contexto principal y marcamos cualquier número, Asterisk nos dará errores y comunicará. Hemos de añadir mediante include todos los contextos que hayamos creado y que consideremos necesarios. Los contextos secundarios pueden ser incluidos en el contexto principal o solamente ser llamados desde otros contextos, si con ello conseguimos algún objetivo que se nos haya propuesto por los usuarios de la centralita. Lo veremos más a fondo cuando compliquemos nuestro Dial Plan. exten => s,1,Answer() ; descuelga Todos los “pasos” del camino, que ha partir de ahora vamos a llamar prioridad, comienzan con la palabra exten y el símbolo => , eso es una prerrogativa del lenguaje de programación de Asterisk. A continuación se introducen las instrucciones que constan de varias partes separadas por comas. En la instrucción que estamos viendo, en primer lugar tenemos la extensión “s” (start). La extensión “s” es la primera de varias extensiones especiales (h, i, T, t y fax), de las que solamente vamos a usar inicialmente “s” y “fax”. La extensión start capta una llamada no generada por nosotros y que por tanto no tiene número de extensión. El número de extensión en este caso sería el número de teléfono del llamante. El número “1” que aparece tras la coma, es la prioridad, o sea, el “paso” dentro de nuestro camino particular hacia gestionar esa llamada. Lógicamente no debemos comenzar el camino dando el quinto “paso”, pues lo más probable será que tropecemos. Por ultimo la función de Asterisk “Answer()” ordena que “conteste” (descuelgue) la linea para ser enrutada hacia pasos posteriores. exten => s,2,Dial(Sip/100,30,tr) ;manda la llamada a ext100 En esta orden continuamos manteniendo el mismo llamante que está almacenado en la extensión “s”, le asignamos la prioridad dos (segundo paso en nuestro plan de marcado) y vemos la función Dial(), que sirve para obligar a Asterisk a marcar una extensión que le indiquemos por parámetros. En este caso lo parametros que le estamos dando son Sip/100, que le indica a Asterisk que busque en el archivo sip.conf una extensión llamada [100] (que hemos creado anteriormente). Si por ejemplo hubiésemos creado la extensión dentro del José Manuel campos moreno y Miguel José guzmán munuera
  • 60. Pag. - 59 -Instalación y configuración de centralita VoIP basada en asterisk fichero iax.conf (para su posterior uso a través de internet) tendríamos que haber solicitado el marcado a la extensión IAX/100. El segundo parámetro de Dial() es el tiempo que deseamos que “suene” la extensión a la que llamamos. En este caso intentaría que la extensión respondiera durante 30 segundos y seguidamente desistiría pasando a la siguiente prioridad en el enrutado. Podríamos no poner el número 30 (dejando únicamente ;;) y se intentaría contactar indefinidamente con la extensión. Esto no es conveniente (hay que poner limites), puesto que si la extensión no funciona por el motivo que sea, dejamos el sistema en un bucle del que la única salida es que el llamante cuelgue. El ultimo parámetro son dos letras. La letra “t” permite que el receptor pueda transferir la llamada a otra extensión si le parece conveniente y la letra “r” indica que se va a generar un timbrado (va a sonar un teléfono). También se podría usar la letra “T” que permite que el llamante pueda transferir la llamada. exten => s,3,Hungup() ; cuelga al terminar Y en este tercer paso usamos la función Hungup() (colgar), lo que hacemos con prioridad tres y para la extensión “s” (teléfono llamante). Hemos colgado a nuestro paciente usuario. En las pruebas del sistema veremos como afectan físicamente estas instrucciones al hardware de la centralita. [salida] Sin este contexto, con las instrucciones que lo integran, no podríamos realizar llamadas. Las instrucciones podríamos haberlas escrito en el contexto [inicio], y funcionarían correctamente, pero veremos como se puede llegar a complicar este fichero/programa y agradeceremos el tenerlo todo bien organizado. exten => _9XXXXXXXX,1,Dial(Zap/1/${EXTEN},,tTr) Esta instrucción tiene exactamente el mismo formato que las que hemos visto en el contexto [inicio], pero en lugar de usar la extensión “s” (recordamos por ultima vez que esta extensión es la primera que se busca si no se ha marcado ningún número y sirve para dar acceso a la centralita de un usuario llamante), comprueba que la extensión sea un número que comience por 9 y que posteriormente tenga ocho dígitos (por eso las ocho “X”). José Manuel campos moreno y Miguel José guzmán munuera
  • 61. Pag. - 60 -Instalación y configuración de centralita VoIP basada en asterisk Cuando marcamos desde cualquiera de los teléfonos conectados a la centralita un número cualquiera (por ejemplo 12345), ese número se almacena en una variable llamada ${EXTEN} (las variables en Asterisk siempre tienen el formato ${NOMBRE_VARIABLES}). Así que nos atenemos al ejemplo, Asterisk irá mirando paso por paso en todos los contextos buscando el número 12345 o cualquier orden que le permita usarlo (por ejemplo 1XXXX). Si no lo encuentra, nos dará un error de que no puede marcar dicho número. Pero marcando por ejemplo el 953291383 si que estamos cumpliendo la condición exigida en la instrucción que estamos viendo, con lo que comprueba la prioridad que en este caso es “1” y por tanto pasa gestionar el parámetro en el que mediante la función Dial() le indicamos que llame a Zap/1. Antes hemos visto que al entrar una llamada la dirigiamos hacia Sip/100 (extensión 100 dentro del fichero Sip), pues ahora vamos a dirigir a Zap/1 (extensión 1 dentro del fichero zapata). En el fichero zapata.conf hemos introducido la configuración de todas las líneas que nos permite usar nuestra tarjeta de comunicaciones, así que estamos obligando a Asterisk a llamar a la linea 1 de la tarjeta. Pero la llamada exacta es Zap/1/${EXTEN}, con lo que le estamos diciendo que llame a la extensión “1” del fichero zapata.conf y que lo haga con el número que hemos tomado a través del teclado de nuestro teléfono y que se ha almacenado en la variable ${EXTEN}. Es un poco enrevesado, pero estamos obligando a Asterisk a llamar al número de teléfono almacenado en la variable. Asterisk usa ese número como una extensión más de la centralita aunque no pertenezca a la misma red (pertenece a la red del operador de telefonía). Lógicamente al pasar la llamada a través de la red telefónica de nuestra compañía telefónica, esta nos cobrará por sus servicios el coste que tengamos contratado (tarifa plana, coste por minutos, etc). Solo pagamos las llamadas que usan las líneas Zap. exten => _9XXXXXXXX,2,Hangup() Una vez terminada la llamada realizada en la instrucción anterior (cuando nosotros o el receptor cuelga el teléfono), nos aseguramos que dicha llamada se cuelgue en la centralita con prioridad 2. Para colgar usamos la función Hangup(). exten => _6XXXXXXXX,1,Dial(Zap/1/${EXTEN},,tTr) Esta instrucción posibilita que se puedan marcar números de teléfono móvil desde nuestra centralita. Si no se añade, no podríamos llamar a móviles con lo José Manuel campos moreno y Miguel José guzmán munuera
  • 62. Pag. - 61 -Instalación y configuración de centralita VoIP basada en asterisk cual ya estamos gestionando las llamadas. Solo tenemos que comentar con “;” dos instrucciones y evitamos que los usuarios de la centralita llamen a la novia. exten => _6XXXXXXXX,2,Hangup Nos aseguramos que tras la llamada se cuelga la extensión en la centralita. 6 CONFIGURANDO EL ENTORNO (PARTE I). Para comenzar a hacer las pruebas vamos a conectar algunos de los dispositivos hardware que hemos descrito en el punto 1 de la sección MATERIAL. Primero hemos de conectar un cable de teléfono desde la línea telefónica (la toma de pared RJ11 donde habitualmente conectamos el teléfono) hasta la linea 1 de nuestra tarjeta de comunicaciones Digium TDM-400. Posteriormente conectamos nuestro Internet Phone Adapter Linksys PAP2T. Para ello hemos de usar un cable RJ45 (cable estándar de red) con el que conectaremos el puerto INTERNET del dispositivo a nuestro ROUTER o SWITCH para añadirlo a nuestra red local y posteriormente conectamos el teléfono analógico AIRIS T850M al conector PHONE 1 del PAP2T. Ya tenemos nuestro escenario de pruebas preparado, con un único teléfono conectado a nuestra centralita y con el que vamos a intentar enviar y recibir llamadas. Una vez que logremos hacerlo, conectaremos más dispositivos e intentaremos interactuar entre ellos. Ahora que tenemos conectado un teléfono, la línea y el adaptador Linksys, hemos de configurar el adaptador Linksys para permitir gestionar llamadas. Dicho adaptador tiene activo un cliente DHCP (recibe una dirección IP automática desde un servidor DHCP), con lo que tomará una IP acorde con nuestra red. Para saber en que IP se ha conectado, podemos usar la orden nmap 172.16.0.* (con dígitos acordes a nuestro rango IP) y una vez sepamos en que IP está, desde un navegador WEB accedemos poniendo en la barra de direcciones José Manuel campos moreno y Miguel José guzmán munuera
  • 63. Pag. - 62 -Instalación y configuración de centralita VoIP basada en asterisk http://172.16.0.208 (en este caso la IP que tiene en nuestra red) Nos aparece un gestor WEB que nos permite modificar los diferentes parámetros de los que dispone este adaptador telefónico. Pulsamos en Admin Login para acceder a los recursos de administrador del dispositivo, pulsamos en System y en la pestaña donde aparece DHCP le indicamos “no”. Debajo ponemos los parametros de red que nos interesen, para que sean fijos y podamos acceder siempre al PAP2 desde la misma dirección IP. Lógicamente apuntamos la IP para crear luego nuestro mapeado de la red. Pulsamos donde pone “Line 1” y en la sección Proxy añadimos la dirección IP de nuestro servidor Asterisk (en nuestro caso es 172.16.0.211); en las secciones Auth Id y User Id ponemos el número de extensión que queramos asignar a esa línea del PAP2. Nosotros hemos creado en el fichero sip.conf un usuario llamado 100 con lo que ese número es el que tenemos que incluir en dichas secciones. Si a la hora de crear la extensión hubiésemos configurado una contraseña en la instrucción secret estaríamos obligados a incluir dicha contraseña en la sección password. Tiene que quedar la configuración tal y como mostramos en la captura de pantalla que vemos a continuación : José Manuel campos moreno y Miguel José guzmán munuera
  • 64. Pag. - 63 -Instalación y configuración de centralita VoIP basada en asterisk Pulsamos en Save Settings. Ya tenemos nuestra centralita preparada para realizar y recibir las primeras llamadas. Probamos a descolgar el teléfono y comprobamos que tenemos línea. Llamamos al vecino del cuarto. Si nos contesta, el estar leyendo este documento a merecido la pena. Podemos también probar a llamarnos al teléfono móvil, y disfrutar de nuestra tono de llamada favorito. El contexto [salida] funciona. Ahora probamos a llamar a nuestro número de teléfono fijo desde el móvil y comprobamos que el teléfono suena y podemos mantener una conversación con nuestro interlocutor. El contexto [inicio] también funciona. Ahora que sabemos que nuestra centralita funciona, solamente nos queda el añadir la José Manuel campos moreno y Miguel José guzmán munuera
  • 65. Pag. - 64 -Instalación y configuración de centralita VoIP basada en asterisk orden para que Asterisk arranque cada vez que se inicie el servidor. No lo hemos hecho hasta ahora por si teníamos cualquier problema de cuelgues por una mala configuración o una gestión errónea, poder usar el nunca bien ponderado botón de reset. Pero ya si que podemos editar el archivo vi /etc/rc.local y añadir la instrucción asterisk antes de la línea que pone “exit 0”. Guardamos y cerramos el archivo de configuración. 7 CONFIGURANDO EL ENTORNO (PARTE II). Una centralita que de servicio a una sola extensión (un solo teléfono físico) es muy triste, así que vamos a configurar en el PAP2 un teléfono inalámbrico analógico y vamos también a conectar un teléfono IP THOMSON. Cuando terminemos tendremos tres teléfono e intentaremos realizar llamadas internas a través de la centralita, que no tienen coste, puesto que se realizan a través de nuestra red local. Para ello, antes de conectar los dispositivos, vamos a añadir las extensiones en el fichero sip.conf con las siguientes instrucciones [200] username = 200 type = friend context = inicio host = dynamic [300] username = 300 type = friend José Manuel campos moreno y Miguel José guzmán munuera
  • 66. Pag. - 65 -Instalación y configuración de centralita VoIP basada en asterisk context = inicio host = dynamic y también vamos a añadir reglas de marcado en el fichero extensions.conf añadiendo en el contexto [salida] lo que indicamos a continuación exten => 100,1,Dial(Sip/100,30,tTr) exten => 100,2,Hangup() exten => 200,1,Dial(Sip/200,30,tTr) exten => 200,2,Hangup() exten => 300,1,Dial(Sip/300,30,tTr) exten => 300,2,Hangup() exten => 400,1,Dial(Sip/400,30,tTr) exten => 400,2,Hangup() Podemos poner estas líneas dentro del contexto donde nos parezca conveniente, teniendo en cuenta que tiene que revisar todas las instrucciones hasta encontrar la adecuada. Si nuestra centralita va a soportar principalmente tráfico de llamadas entre extensiones, es conveniente poner las instrucciones al principio del contexto, sin embargo, si lo que vamos a hacer es principalmente hacer llamadas a móviles, esas líneas son las que deben estar en primer lugar. Como se puede observar, vamos teniendo opciones más complejas de optimización y gestión de la centralita. Y es solo el principio de lo que vamos a hacer. Aunque es probable que por lo hecho hasta ahora tengamos claro que hacen las instrucciones anteriores, veamos detenidamente una de las extensiones creadas exten => 100,1,Dial(Sip/100,30,tTr) Si marcamos 100 en cualquiera de los teléfonos (excepto desde la extensión 100 que comunica), Asterisk intenta con prioridad 1 llamar a la extensión Sip/100 durante 30 segundos y permitiendo que tanto el llamante como el receptor, puedan desviar la llamada a otra extensión. De igual forma funcionan las otras dos extensiones creadas. exten => 100,2,Hangup() Terminada la comunicación, nos aseguramos que la conexión en la centralita se finalice. Para que la extensión [200] funcione, hemos de configurar nuestro teléfono THOMSON ST2022 con una IP dentro del rango de nuestra red. Conectamos el teléfono a la red eléctrica y a nuestra red local con un cable estándar RJ45. Lo dejamos unos segundos José Manuel campos moreno y Miguel José guzmán munuera
  • 67. Pag. - 66 -Instalación y configuración de centralita VoIP basada en asterisk que termine de configurarse y pulsamos las tecla MENU para ver una selección en pantalla. Pulsamos en dicha selección la opción Admin y nos pide una contraseña. La contraseña por defecto de este modelo de teléfono es 784518. La introducimos y le damos a OK. Pulsamos Select sobre la opción Networking y con la flecha abajo vamos pasando hasta encontrar la dirección IP. Le damos a Edit y ponemos la IP que nos convenga. En nuestro caso vamos a poner la IP 172.16.0.207 y pulsamos Save. El teléfono se reiniciará (de nuevo la discoteca) y volvemos a entrar en Admin introduciendo la contraseña. Ahora en lugar de entrar en la opción Networking, bajamos con la flecha y pulsamos sobre SIP Configuration. Nos aparece Profile 1. Lo seleccionamos con Select. Pulsamos la flecha abajo para encontrar una opción que pone Name, donde hemos de escribir el nombre de extensión que va a tener el teléfono. Nosotros le vamos a llamar Ext. 300. Pulsamos de nuevo la tecla abajo y nos aparece PxySrv y la siguiente RegSrv, teniendo que poner en ambas opciones la IP de nuestro servidor Asterisk pulsando sobre Edit (nuestro servidor es el 172.16.0.211). Seguimos bajando y donde pone RegID y TelNbr hemos de poner (también pulsando en Edit y posteriormente en Save) el número con el que hemos llamado a nuestra extensión en el fichero SIP. Como en este caso hemos añadido tres extensiones al fichero sip.conf ([200], [300] y [400]) le vamos a llamar a este teléfono 300. Nos faltaría configurar la extensión [200] en nuestro adaptador telefónico PAP2 para tener tres teléfonos operativos. Para ello accedemos desde el navegador WEB al la página de configuración y seguimos los mismos pasos que para configurar la extensión [100] (capítulo 6 – Configurando el entorno (Parte I)). Solo que en lugar de modificarlo en Line 1, las modificaciones las hacemos sobre Line 2 y lógicamente, en lugar de poner 100, pondremos 200 donde corresponda. Evidentemente tendremos que conectar nuestro teléfono inalámbrico AIRIS T800B1 al conector Phone 2 del adaptador Linksys para poder usar la extensión 200. 8 CONFIGURACIÓN DE SOFTPHONE VOIXPHONE. Queremos usar también “teléfonos” por software para nuestra instalación, así que vamos a descargar y configurar VoixPhone. Lo vamos a instalar en el portátil AIRIS Praxis N1070 que tiene instalada una distribución UBUNTU de Linux. Descargamos desde la siguiente web : http://www.voixphone.com/index.php/Download la versión para Linux. Descomprimimos el archivo descargado y pulsamos doble click sobre el mismo. Nos aparece un menú de instalación en el que seleccionamos la instalación Default (por José Manuel campos moreno y Miguel José guzmán munuera
  • 68. Pag. - 67 -Instalación y configuración de centralita VoIP basada en asterisk defecto) y posteriormente hay que pulsar siguiente hasta que nos solicita el idioma en el que seleccionamos español. Nos pedirá durante el proceso la contraseña de administrador la cual suministramos y por ultimo nos pregunta si queremos un acceso directo en el escritorio, a lo que contestamos que si. Para configurarlo hemos de modificar nuestro fichero iax.conf para lo que vamos a realizar una copia del que se crea por defecto con la instrucción mv /etc/asterisk/iax.conf /etc/asterisk/copiaiax.conf tras lo que editamos el fichero nuevo vi /etc/asterisk/iax.conf y le incluimos una nueva extensión mediante las siguiente instrucciones [general] bindport = 4569 ; puerto por defecto del protocolo bindaddr = 0.0.0.0 ; dirección ip para la conexión (todas) context = inicio ; contexto por defecto language = es delayreject = yes bandwitch = low ; usar codecs con bajo consumo de ancho de banda allow = all ; codecs que se usarán (permitimos todos) [700] username = 700 type = friend secret = 700 context = inicio host = dynamic nat = yes tras lo que guardamos y salimos. Ahora vamos a configurar en el Softphone la extensión que acabamos de crear. Para ello vamos a Opciones, Teléfono y donde nos pide dirección del servidor insertamos 172.16.0.211 (nuestra IP del servidor Asterisk). En puerto José Manuel campos moreno y Miguel José guzmán munuera
  • 69. Pag. - 68 -Instalación y configuración de centralita VoIP basada en asterisk dejamos 4569, en nombre de usuario ponemos 700, contraseña 700, nombre identificador 700 y número identificador 700 (fácil ¿no?). Le damos a la marca de aplicar y pulsamos en Discar para que nos aparezca el teclado numérico para poder llamar. Cada vez que modificamos los parámetros de los archivos de configuración de Asterisk, tenemos dos opciones para que estos parámetros se hagan efectivos. La primera es cerrar Asterisk desde el CLI con la instrucción stop when convenient, que cierra los servicios de Asterisk cuando detecta que ya no queda nadie hablando por teléfono (también se puede usar stop now, pero queda feo dejar a los usuarios con la palabra en la boca) y volver a iniciar Asterisk ya sea escribiendo asterisk en la consola o reiniciando la máquina virtual. El segundo método, mas eficiente es sencillamente poner en el CLI la instrucción dialplan reload, que hará que se ejecuten todas las modificaciones. Así que es lo que deberíamos hacer para que nuestra nueva extensión esté operativa. Es conveniente hacerlo antes de configurar el Softphone, puesto que en caso contrario, el mismo no podrá registrar la extensión en nuestra centralita y nos dará errores. ¿He avisado tarde? 9 Comprobación del funcionamiento de la instalación hardware. Ahora que tenemos operativa la centralita y todos los teléfonos hardware que vamos a usar, es oportuno el hacer comprobaciones de funcionamiento. Para ello es conveniente en nuestro servidor Asterisk el abrir la consola (CLI) de Asterisk con la instrucción asterisk -vvvvvvvvvvr Veremos que cada acción que hagamos con nuestra centralita se verá reflejada en pantalla, dando información, pistas y errores que nos ayudarán en la configuración. Si lo deseamos, podemos acceder desde una segunda consola a nuestro servidor Asterisk para poder seguir realizando modificaciones al sistema (ALT+F2 y nos autentificamos como administrador). Teniendo el CLI Asterisk en pantalla descolgamos nuestra extensión [100] (el teléfono sobremesa AIRIS) y marcamos el 300 (la extensión de nuestro teléfono THOMSON). Veremos lo siguiente -- Executing [300@inicio:1] Dial("SIP/100-006dd0c0", "Sip/300|30|tTr") in new José Manuel campos moreno y Miguel José guzmán munuera
  • 70. Pag. - 69 -Instalación y configuración de centralita VoIP basada en asterisk stack Nos dice que se va a ejecutar una llamada (Dial()) desde la extensión SIP/100 a la extensión Sip/300. -- Called 300 Indica que la llamada está en proceso (esta buscando la extensión y comprobando si está operativa). -- SIP/300-006e1400 is ringing Informa de que la conexión se ha establecido y que el teléfono está sonando. Si en este momento, descolgamos la extensión [300], veremos en pantalla -- SIP/300-006e1400 answered SIP/100-006dd0c0 lo que nos informa de SIP/300 ha contestado a la llamada de SIP/100 correctamente. Si en cualquier momento colgamos alguno de los teléfonos veremos == Spawn extension (inicio, 300, 1) exited non-zero on SIP/100-006dd0c0 que la conexión entre ambas extensiones ha terminado correctamente. Supongo que el afanado lector habrá constatado lo interesante que resulta tener operativo el CLI durante las configuración de la centralita, puesto que nos hace tener una idea clara de lo que va pasando en sus entrañas. Es conveniente que probemos a llamar entre las diferentes extensiones para ver si todo funciona correctamente y que veamos como afectan al CLI las diferentes llamadas. Realmente ahora esto si que parece una centralita. Podemos desde los teléfono analógicos desviar llamadas desde una extensión a otra marcando # y el número de extensión a la que queremos pasar la llamada (mientras observamos como afecta todo ello al CLI). Esta es la traza de una llamada de la extensión [100] a la [200], la cual a descolgado (se supone que hablan algo) y que la [200] ha transferido a la [300] (la trescientos a mantenido también una conversación) y por ultimo uno de los usuario (el [100] o el [300], puesto que el [200] al transferir la llamada, no esta involucrado) ha colgado. -- Executing [200@inicio:1] Dial("SIP/100-006dd0c0", "Sip/200|30|tTr") in new José Manuel campos moreno y Miguel José guzmán munuera
  • 71. Pag. - 70 -Instalación y configuración de centralita VoIP basada en asterisk stack marcamos desde la extensión [100] a la [200] -- Called 200 se realiza la llamada -- SIP/200-006e1400 is ringing suena el teléfono en la [200] -- SIP/200-006e1400 answered SIP/100-006dd0c0 la extensión [200] contesta -- Started music on hold, class default, on SIP/100-006dd0c0 la extensión [200] ha pulsado # y por tanto se llama al sistema de música en espera -- <SIP/200-006e1400> Playing pbx-transfer (language es) suena la música (el fichero que se está escuchando se llama pbx-transfer) -- Stopped music on hold on SIP/100-006dd0c0 la música termina porque se ha terminado de marcar un número en el terminal -- Executing [300@inicio:1] Dial("SIP/100-006dd0c0", "Sip/300|30|tTr") in new stack el número que se ha marcado es el 300 con lo que nos genera la llamada -- Called 300 y llama a la extensión [300] -- SIP/300-006f17f0 is ringing suena el teléfono en la extensión -- SIP/300-006f17f0 answered SIP/100-006dd0c0 se responde a la llamada y por ultimo == Spawn extension (inicio, 300, 1) exited non-zero on SIP/100-006dd0c0 uno de los usuario cuelga el teléfono. 10 DIALPLAN (AÑADIENDO FUNCIONES A LA CENTRALITA). 10.1 LOCUCIÓN DE ENTRADA. Tenemos operativa la centralita y nuestros teléfono. Es el momento de complicar un poco nuestro Dial plan. Actualmente nuestro Dial plan es un poco soso. Cuando entra una llamada la dirigimos directamente a la extensión [100] y José Manuel campos moreno y Miguel José guzmán munuera
  • 72. Pag. - 71 -Instalación y configuración de centralita VoIP basada en asterisk desde esa extensión podríamos derivar las llamadas donde nos interese, siendo este el clásico método de tener una persona atendiendo el teléfono. Pero nuestra centralita puede más que todo eso. Vamos a hacer que cuando alguien llame, le salga una locución (mensaje de voz) que le indique las posibilidades de contacto que le ofrece la centralita. El menú telefónico de la locución de acceso va a ser el siguiente : “Ha llamado a proyecto asterisk, si desea hablar con José Manuel Campos pulse uno, si desea hablar con Miguel Guzmán pulse dos, si desea hablar con tutoría pulse tres, si no desea hablar con ninguno de los anteriores, pulse 4 y será atendido por un operador” Lo primero que vamos a hacer es grabar la locución. Como a lo largo de la configuración de la centralita y de su vida útil, tendremos que grabar múltiples locuciones, lo ideal es automatizar las operaciones de grabación lo máximo posible. Es por lo que vamos a crear una extensión de marcado dedicada a realizar y escuchar las grabaciones, para ello hemos de incluir en nuestro extensions.conf unas nuevos comandos al final de los ya existentes en el contexto salida. Las instrucciones a incluir serían exten => 555,1,Answer() ; descuelga exten => 555,n,Wait(2) ; espera 2 segundos exten => 555,n,Record(locucion:gsm) con esta instrucción le indicamos que grabe un archivo llamado locucion.gsm con lo que nosotros digamos por el auricular telefónico exten => 555,n,Wait(2) ; espera 2 segundos exten => 555,n,Hangup() ; cuelga exten => 556,1,Playback(locucion) ; reproduce locucion.gsm exten => 556,n,Hangup() ; cuelga tras lo que guardamos y salimos del archivo. En el CLI de Asterisk usamos la instrucción dialplan reload para que los cambios tengan efecto y probamos el funcionamiento de nuestra extensión de grabación de mensajes marcando en cualquiera de los teléfonos 555. Esperamos a que nos salga un pitido fuerte y José Manuel campos moreno y Miguel José guzmán munuera
  • 73. Pag. - 72 -Instalación y configuración de centralita VoIP basada en asterisk agudo que indica que la grabación se ha iniciado (en el CLI también nos informará de ello), y es cuando ponemos nuestra mejor voz para grabar el mensaje que hemos escrito anteriormente. Esperamos unos segundos después de terminar de hablar y colgamos el teléfono. El mensaje se ha grabado en nuestro servidor en la carpeta /var/lib/asterisk/sounds/locucion.gsm y procedemos a escucharlo usando la extensión de escucha 556 para lo que descolgamos el teléfono y marcamos dicha extensión. Si lo que escuchamos nos parece correcto, tenemos nuestra locución de inicio preparada. Solo tendríamos que cambiar de nombre el archivo por otro que nos resultara más clarificador y sobre todo porque si grabamos otra locución, se grabaría encima de la ya existente. Para cambiar el nombre al archivo lo hacemos con la instrucción mv /var/lib/asterisk/sounds/locucion.gsm /var/lib/asterisk/sounds/loc_inicio.gsm Si nos fijamos, a la hora de añadir las instrucciones para grabación en el archivo extensions.conf no hemos marcado las prioridades en las instrucciones y las hemos sustituido por la letra n a excepción de la primera prioridad que si que le hemos indicado que es 1. En cualquiera de las instrucciones que vamos añadiendo a la centralita podemos hacer esto, ya que n indica a Asterisk que sume uno a la prioridad anterior. Es por lo que la segunda línea sería 1+n = 2. Esto hace que no tengamos que estar poniendo las prioridades a mano en largas cadenas de condiciones. Ahora vamos a añadir la locución a nuestro plan de marcado. Editamos el archivo extensions.conf por enésima vez y modificamos el contexto [inicio] para que quede mas o menos así [inicio] include = salida exten => s,1,Answer() ; descuelga exten => s,n,Background(loc_inicio) ; reproduce locucion exten => s,n,Dial(SIP/100,30,tr) ; marca a la extensión 100 exten => s,n,Hangup() ; cuelga José Manuel campos moreno y Miguel José guzmán munuera
  • 74. Pag. - 73 -Instalación y configuración de centralita VoIP basada en asterisk Probamos (recargando el dialplan) nuestra nueva configuración llamando a nuestra centralita desde un teléfono externo para así escuchar nuestra dulce voz. Ahora hemos de configurar el contexto inicio para que haga lo que dice la locución de entrada. Si asignamos la extensión [100] a José Manuel Campos, la [200] a Miguel Guzmán, la [300] a tutoría y la [400] a un hipotético operador, hemos de hacer que si el llamante marca alguno de los dígitos indicados en la locución, se transfiera correctamente la llamada al destinatario solicitado. Para ello volvemos a modificar el contexto para que quede como sigue [inicio] include = salida exten => s,1,Answer() ; descuelga exten => s,n,Background(loc_inicio) exten => s,n,WaitExten(5) ; espera 5 segundos exten => s,n,Background(loc_inicio) exten => s,n,WaitExten(5) exten => s,n,Goto(100,1) exten => s,n,Hangup() exten => 1,1,Goto(100,1) exten => 2,1,Goto(200,1) exten => 3,1,Goto(300,1) exten => 4,1,Goto(400,1) Grabamos, salimos, reiniciamos el dialplan, comprobamos que funciona y vamos a ver que diablos hemos hecho. Veamos las instrucciones más rocambolescas a fondo exten => s,n,Background(loc_inicio) Aunque ya la hemos visto anteriormente es conveniente indicar que para reproducir las locuciones podemos emplear Playback o Background. Playback José Manuel campos moreno y Miguel José guzmán munuera
  • 75. Pag. - 74 -Instalación y configuración de centralita VoIP basada en asterisk realiza la reproducción total del archivo de audio y Background reproduce hasta que se pulsa una tecla en el terminal. Es por lo que si deseamos obligar al llamante a escuchar nuestro mensaje usaríamos Playback, pero como no es el caso y si el llamante conoce la extensión queremos que acceda a ella en cualquier momento, con pulsar una adecuada, listo. exten => s,n,WaitExten(5) Dejamos un espacio de tiempo de 5 segundos para permitir al llamante ponderar cual de las opciones que le hemos suministrado en la locución es la que desea usar. Es el tiempo en el que se supone ha de pulsar la extensión adecuada. Si se pasan esos 5 segundos, le damos una segunda oportunidad reproduciendo totalmente la locución, por si no ha entendido algo en la primera reproducción, tras eso esperamos otros 5 segundos y si no ha marcado nada valido exten => s,n,Goto(100,1) le indicamos a Asterisk que transfiera la llamada entrante a la extensión [100] con la prioridad 1. Por ultimo las instrucciones del tipo exten => 1,1,Goto(100,1) son sencillas de entender. Si hemos marcado 1 en la locución nos pasa directamente a la extensión que hemos configurado para ese número con la prioridad 1 (en este caso la [100]). La orden Goto nos permite saltar automáticamente hasta cualquiera de las ordenes de los contextos activos. Podríamos poner 1,1,Goto(555,1) y nos saltaría automáticamente a nuestra extensión de grabación de locuciones al pulsar el llamante la opción 1. Si nos fijamos, nuestra instrucción de grabación es 555,1,Answer() y el inicio de esa instrucción que es 555,1 no se repite en ningún punto del dialplan. Goto es una herramienta muy potente que usaremos a discreción. José Manuel campos moreno y Miguel José guzmán munuera
  • 76. Pag. - 75 -Instalación y configuración de centralita VoIP basada en asterisk 10.2 CONTROL HORARIO. ¿Que pasaría si alguien llamara a nuestra centralita fuera del horario en el que las diferentes extensiones pueden atender las llamadas? El llamante pulsaría la extensión deseada y el teléfono sonaría durante el tiempo que le hayamos especificado, pero no contestaría nadie. Eso nos dejaría en muy mal lugar. Así que vamos a configurar en nuestro dialplan un control horario que haga saltar locuciones indicando que se está llamando en día festivo o que se está llamando fuera del horario en el que el usuario de la extensión está disponible. Para ello vamos a tener que modificar sustancialmente los contextos. En primer lugar le cambiamos al contexto [inicio] actual el nombre por [entrada] y justo antes de ese contexto hemos de crear de nuevo el contexto [inicio] que es donde vamos a añadir las instrucciones para redirigir las llamadas en función del día y hora. Hemos de tener en cuenta que tenemos que grabar las locuciones para cada uno de los escenarios en los que nos podemos encontrar. Primer escenario, que José Manuel Campos no esté, para lo que vamos a grabar la locución “Si desea contactar con José Manuel Campos, le rogamos llame de seis a diez de la tarde”. Esa locución, por supuesto, saldrá solamente cuando se llame fuera del horario indicado. Al archivo de audio el llamaremos joseno. Ponemos un ejemplo de como hacerlo y habría que repetirlo en el resto de escenarios. mv /var/lib/asterisk/sounds/locucion.gsm /var/lib/asterisk/sounds/joseno.gsm Segundo escenario, que Miguel Guzmán no esté, para lo que vamos a grabar la locución “Si desea contactar con Miguel Guzmán, le rogamos llame de 10 de la mañana a 3 de la tarde”. Al archivo de audio le llamaremos miguelno. Tercer escenario, que no haya nadie en tutoría, para lo que vamos a grabar la locución “Si desea contactar con tutoría, le rogamos llame lunes o martes a José Manuel campos moreno y Miguel José guzmán munuera
  • 77. Pag. - 76 -Instalación y configuración de centralita VoIP basada en asterisk partir de las seis y media de la tarde”. Al archivo de audio le llamaremos tutoriano. Cuarto escenario, que haya llamado a los operadores, que será enviada a la siguiente locución “Lamentamos comunicarle que aun no tenemos presupuesto para poder pagar operadores, intente contactar con otra extensión”. Al archivo de audio le llamaremos operadoresno. Quinto escenario, que haya llamado fuera del horario en el que alguien puede atender la llamada para lo que vamos a grabar “Ha llamado fuera de nuestro horario de atención de consultas, le rogamos llame de Lunes a Sábado de 10 a 15 horas o de 18 a 22 horas”. Al archivo de audio le llamaremos horano. Sexto escenario, que haya llamado en domingo que le saldría la locución “Hasta el creador descansó el séptimo día, con lo que hoy no podemos atenderle”. Al archivo de audio le llamaremos domingono. Grabamos los mensajes, recordamos cambiar el nombre de cada uno de ellos con la extensión .gsm después de cada grabación (si no se sobreescriben) y ahora hay que integrarlos en el dialplan, poniendo el nuevo contexto [inicio] al principio del archivo extensions.conf y el contexto [horario] al final del mismo [inicio] include = entrada include = horarios exten => s,1,Answer() exten => s,2,Wait(3) exten => s,3,GotoifTime(22:01-09:59|mon-sat|*|*?horario,s,13) exten => s,4,GotoifTime(15:01-17:59|mon-sat|*|*?horario,s,13) exten => s,5,GotoifTime(00:00-23:59|sun|*|*?horario,s,16) Con estas instrucciones en el nuevo contexto inicio, hacemos que si alguien llama en domingo o en horarios que no haya nadie no le de ni la opción a seleccionar una extensión, sino que automáticamente le indique al llamante que no se le puede atender. José Manuel campos moreno y Miguel José guzmán munuera
  • 78. Pag. - 77 -Instalación y configuración de centralita VoIP basada en asterisk Modificamos también el contexto [entrada], al que le quitamos la instrucción s,1,Answer() (puesto que la llamada ya está contestada en el contexto [inicio]), y nos aseguramos que como primera linea después del include está la instrucción exten => s,n,Background(loc_inicio) El no ponerle prioridad es porque va a pasar dicha prioridad desde el contexto [inicio] continuando por el orden que llevara en dicho contexto. Así podemos hacer todos los añadidos que queramos de horarios en [inicio] sin tener que modificar posteriormente las prioridades de todas la líneas del contexto [entrada]. Ahora hemos de crear el contexto [horario], que es el que realmente va a ejecutar la orden de reproducir las diferentes locuciones. Ponemos las siguientes instrucciones [horario] exten => s,1,Answer() ; comienza joseno exten => s,2,Playback(joseno) exten => s,3,Hangup() exten => s,4,Answer() ; comienza miguelno exten => s,5,Playback(miguelno) exten => s,6,Hangup() exten => s,7,Answer() ; comienza tutoriano exten => s,8,Playback(tutoriano) exten => s,9,Hangup() exten => s,10,Answer() ; comienza operadoresno exten => s,11,Playback(operadoresno) exten => s,12,Hangup() exten => s,13,Answer() ; comienza horano exten => s,14,Playback(horano) exten => s,15,Hangup() exten => s,16,Answer() ; comienza domingono exten => s,17,Playback(domingono) José Manuel campos moreno y Miguel José guzmán munuera
  • 79. Pag. - 78 -Instalación y configuración de centralita VoIP basada en asterisk exten => s,18,Hangup() y por ultimo para cada una de las extensiones [100], [200], [300] y [400] vamos a incluir una orden GotoifTime personalizada, con lo que tenemos que modificar en el contexto salida dichas extensiones y cambiar por lo que ponemos a continuación exten => 100,1,GotoifTime(22:01-17:59|mon-sat|*|*?horario,s,1) exten => 100,n,Dial(Sip/100,30,tTr) exten => 100,n,Hangup() exten => 200,1,GotoifTime(15:01-09:59|mon-sat|*|*?horario,s,4) exten => 200,n,Dial(Sip/200,30,tTr) exten => 200,n,Hangup() exten => 300,1,GotoifTime(00:01-18:29|wed-sun|*|*?horario,s,7) exten => 300,n,Dial(Sip/300,30,tTr) exten => 300,n,Hangup() exten => 400,1,GotoifTime(00:00-23:59|mon-sun|*|*?horario,s,10) exten => 400,n,Dial(Sip/400,30,tTr) exten => 400,n,Hangup() Ahora podemos guardar y salir del archivo, volver a cargar el dialplan en el CLI y comprobar si nuestras modificaciones son efectivas. Recomendamos ir haciendo pruebas, cambiando horas, y comprobando los diferentes efectos que esos cambios tienen sobre el funcionamiento de la centralita. Como siempre, veamos más detenidamente las mejores jugadas del partido exten => s,3,GotoifTime(22:01-09:59|mon-sat|*|*?horario,s,13) Esta instrucción que hemos puesto en el contexto [inicio] hace que si el horario en el que el llamante esta intentando contactar con nuestra centralita está entre las diez y un minuto de la noche y las nueve y cincuenta y nueve segundos de la mañana, de lunes a sábados, salte al contexto horario, a la prioridad 13. Aquí vemos el posible uso de las prioridades, que nos permiten ir a puntos concretos dentro de un contexto o extensión. Los asteriscos sirven para indicar si queremos que esa condición horaria se ejecute solamente ciertos días del mes o solamente ciertos meses. Un asterisco indica que no procede comprobar esa José Manuel campos moreno y Miguel José guzmán munuera
  • 80. Pag. - 79 -Instalación y configuración de centralita VoIP basada en asterisk opción. Para decirle por ejemplo que esa condición es para los días uno al quince de cada mes tendríamos que poner la siguiente instrucción exten => s,3,GotoifTime(22:01-09:59|mon-sat|1-15|*?horario,s,13) o si por el contrario queremos que solamente revise todos los meses del año excepto Julio y Agosto tendríamos que poner exten=> s,3,GotoifTime(22:01-09:59|mon-sat|*|Sep-Jun?horario,s,13) Con esta información consideramos que el lector que haya seguido el proceso de creación de la centralita, tiene datos suficientes para poder comprender el resto de modificaciones que hemos incluido en el dialplan y para poder realizar sus propias modificaciones para adaptar cada extensión al horario que le sea conveniente. 10.3 CONFIGURANDO NUEVAS POSIBILIDADES DE MARCADO Nos hemos cortado con una hoja de papel y decidimos llamar al 061; cual es nuestra sorpresa al comprobar que en el CLI (¿¡¡¡ como que no lo tenias abierto en pantalla !!!?) aparece un mensaje que dice así “061 rejected because extension not found“. Además para más inri, el teléfono comunica. Eso es debido a que hemos generado reglas de marcado (extensiones) para llamar a fijos 9XXXXXXXX y a móviles 6XXXXXXXX, pero no hemos dicho nada de los números especiales, así que en nuestro dialplan, en el contexto [salida], vamos a añadir lo siguiente exten => _0ZZ,1,Dial(Zap/1/${EXTEN},,r) exten => _0ZZ,n,Hangup() que quiere decir que si marcamos cualquier número que comience por cero y que los dos siguientes número sean cualquiera del uno al nueve, haga el marcado. Ni que decir tiene que Z es el comodín para todos los números menos el cero. Esta regla nos permite llamar a 061,091, etc. exten => _1ZZ,1,Dial(Zap/1/${EXTEN},,r) exten => _1ZZ,n,Hangup() José Manuel campos moreno y Miguel José guzmán munuera
  • 81. Pag. - 80 -Instalación y configuración de centralita VoIP basada en asterisk que nos permite llamar al teléfono 112 y similares. exten => _[89]0[0-289]XXXXXX,1,Dial(Zap/1/${EXTEN},, r) exten => _[89]0[0-289]XXXXXX,n,Hangup() nos permite llamar a teléfonos especiales que no sean de pago (los de pago son 803, 806, 807, 904, 905 y 907). Le estamos diciendo que el número puede tener en su primer dígito un 8 o un 9, en el segundo dígito un 0 y en el tercero cualquier número del 0 al 2 o los números 2489. Con esto podríamos llamar a teléfonos 900, 901, 902 y similares. Como podemos observar cabe la posibilidad de realizar combinaciones que restrinjan genéricamente las llamadas a teléfonos que no nos interesan. exten => _00.,1,Dial(Zap/1/${EXTEN},, r) exten => _00.,n,Hangup() con esta extensión permitimos llamadas internacionales. Le estamos diciendo que cuando marquemos dos veces el cero, acepte cualquier otra combinación de números que añadamos después (el comodín “punto” significa “cualquier cosa que marques, yo lo marco”). Si sabemos que las únicas llamadas internacionales que vamos a realizar son a República Checa, podemos restringir más el patrón de la extensión y poner algo como _00420.,1,Dial(Zap/1/${EXTEN},, r). Por ultimo comentar que al igual que podemos permitir, podemos denegar explícitamente extensiones. Si por ejemplo nuestra organización se dedica a negocios “turbios” puede ser que deseemos poder llamar al 061, pero no nos interesa que se realicen llamadas al 091. Para ello podríamos añadir un patrón de este tipo 091,1,Hangup(), con lo que cada vez que se marque el 091, automáticamente la centralita nos cuelgue. Por supuesto que no vamos a integrar esta norma en nuestro dialplan ¿o sí?. Es necesario que esta norma esté ANTES de la norma genérica que hemos creado para los teléfonos 0NN, pues recordamos que el dialplan es un sistema de caminos que comienza en el primer renglón del fichero extensions.conf y va pasando por todos los contextos incluidos, instrucción por instrucción. Si encuentra primero la extensión 0NN marcará el 091, pero si encuentra primero la línea que específicamente tiene el 091, colgará y no llegará a evaluar la extensión 0NN. Cada vez tenemos más herramientas para controlar nuestra centralita. José Manuel campos moreno y Miguel José guzmán munuera
  • 82. Pag. - 81 -Instalación y configuración de centralita VoIP basada en asterisk 10.4 BUZONES DE VOZ (CONTESTADOR AUTOMÁTICO) Y MENSAJES DE AUDIO AL CORREO. Asterisk nos permite configurar buzones de voz que permitan al llamante, si la persona que ha de atender la extensión no puede coger el teléfono, dejar un mensaje indicando cual es el motivo de la llamada o cualquier información que pueda ser de utilidad para el receptor. Para poder acceder a esos mensajes, hemos de crear nuevas reglas en nuestro dialplan y se podrían escuchar marcando la extensión del contestador y escuchando el mensaje, como se hace en todos los teléfonos analógicos. Una vez escuchado el mensaje tenemos opción de dejarlo almacenado, borrarlo, ver a que hora ha sido recibido, etc. Pero con Asterisk podemos rizar el rizo y hacer que el mensaje grabado, nos sea enviado por correo electrónico a nuestro cliente de correo habitual y podemos escucharlo en el ordenador con ayuda de unos auriculares o unos altavoces y nuestro reproductor de audio favorito (Amarok, Rhythmbox, Totem, Gstreamer, o Windows Media si no hay más remedio). Además esto nos permite almacenar fácil y ordenadamente todos los mensajes de voz que recibamos, pudiendo acceder a ellos con rapidez en caso de tener dudas con respecto a lo que se nos dijo en los mismos. Para poder realizar todas estas operaciones, lo primero que hemos de hacer es instalar un servidor de correo electrónico en nuestra máquina Asterisk para permitir el envío de los mensajes de voz a través de dicho servidor. Uno de los servidores de correo electrónico mas simples de instalar y configurar es exim4 así que lo instalamos con aptitude install exim4 mailutils Cuando termine de instalar con la siguiente instrucción nos aparece en pantalla el asistente de configuración José Manuel campos moreno y Miguel José guzmán munuera
  • 83. Pag. - 82 -Instalación y configuración de centralita VoIP basada en asterisk dpkg-reconfigure exim4-config Vamos a dejar las opciones que vienen por defecto sin modificar y solamente vamos a ir comentando los puntos en los que tenemos que realizar alguna variación o interacción con el asistente... con lo que llegamos a la pantalla en la que se nos muestra por primera vez “Configuración del servidor de correo” en la que tenemos que seleccionar la primera opción que pone “Internet site : el correo se envía y recibe directamente usando smtp”. En la siguiente pantalla, donde pide “Nombre del sistema de correo” ponemos proyectoasterisk.net o el que corresponda en la configuración de red del lector. En las siguientes pantallas seguimos pulsando sin miedo sobre las opciones por defecto hasta que se nos pide el “Destinatario de correo de root y postmaster”, donde hemos de poner un usuario valido, nosotros hemos querido que se envíe el correo a un usuario operador que hemos creado en la máquina Asterisk con adduser operador Podemos hacer una prueba de funcionamiento usando la siguiente instrucción ls -l | mail <cuenta de correo electrónico> Ejemplo : ls -l | mail operador@proyectoasterisk.net lo que hará que llegue un correo electrónico a la cuenta especificada con el contenido del directorio en el que estemos posicionados. Comprobamos en el cliente de correo que usamos habitualmente si ha llegado esta información y si es así, tenemos completamente configurado nuestro correo y podemos pasar a configurar los buzones de voz. Para configurar los buzones, hemos de modificar el archivo voicemail.conf, con lo que primero le hacemos una copia de seguridad (al igual que hemos hecho de todos los demás archivos de configuración) para tener salvaguardada la información que nos puede suministrar sobre cada una de las instrucciones que lo constituyen, y después lo editamos desde cero mv /etc/asterisk/voicemail.conf /etc/asterisk/copiavoicemail.conf vi /etc/asterisk/voicemail.conf José Manuel campos moreno y Miguel José guzmán munuera
  • 84. Pag. - 83 -Instalación y configuración de centralita VoIP basada en asterisk e incluimos en el fichero las siguientes instrucciones [general] format = wav ; formato de grabación del audio attach = yes ; enviar mensajes de voz por correo electrónico maxmessage = 180 mailcmd = /usr/sbin/exim4 serveremail = buzondevoz@proyectoasterisk.net fromstring = "Centralita Asterisk de Proyecto Asterisk" emailsubject = [PBX] Mensaje nº ${VM_MSGNUM} en buzón de voz. emailbody = nnn***** Este es un mensaje automático de la centralita de VoIP de *****n PROYECTOASTERISK *****nnnnt Tiene un mensaje nuevo en su buzón de voz: n Con el numero ${VM_MSGNUM}. n Recibido desde el numero de teléfono ${VM_CALLERID}. n El $ {VM_DATE} . n Dicho mensaje se adjunta a este mail, pero no obstante debe llamar a su buzón de voz y eliminarlo tras su escucha. Si no conoce como acceder a su buzón de voz, por favor contacte con el departamento al cargo.nnt Gracias.nnt [default] 100 => 1234,jose,jose@proyectoasterisk.net 200 => 1234,miguel,miguel@proyectoasterisk.net 300 => 1234,tutoria,tutoria@proyectoasterisk.net 400 => 1234,operador,operador@proyectoasterisk.net Con esto hemos creado cuatro buzones de voz independientes para cada una de las extensiones que salen en nuestra locución de entrada, y vamos a permitir que cuando el usuario no pueda coger el teléfono, salte automáticamente el buzón de voz dando al llamante la posibilidad de dejar un mensaje, que será enviado al correo electrónico que hallamos indicado en la configuración. Vamos a estudiar detenidamente las líneas de configuración que hemos incluido; en primer lugar 100 => 1234,jose,jose@proyectoasterisk.net José Manuel campos moreno y Miguel José guzmán munuera
  • 85. Pag. - 84 -Instalación y configuración de centralita VoIP basada en asterisk El 100 es una extensión que ya tenemos creada, 1234 es la contraseña que tendremos que poner para poder acceder al buzón de voz (puede ser la misma para todos los usuarios o ponerla a discreción de los mismos). El parámetro jose en este caso es el nombre que se le da al buzón y por último, se pone la cuenta de correo electrónico a la que queremos que vayan los mensajes de voz de esa extensión. El resto de parametros que aparecen en la sección general (y algunos que no aparecen) tienen los siguientes usos attach: Indica si se adjunta un archivo .wav con el contenido de la grabación del buzón de voz en las notificaciones de correo electrónico. delete: Indica que el mensaje de voz será borrado del servidor si es enviado por correo electrónico. mailcmd: Sirve para fijar la ruta del servidor de correo electrónico. maxsilence Indica los segundos de silencio que debe detectar el servidor para cortar la llamada al buzón. Por defecto es 0 que equivale a un tiempo infinito y no hace caso a los silencios, parando solamente cuando el llamante cuelgue. envelope: Si lo activamos con "yes" indicará el día y la hora en que se recibió el mensaje. externnotify: Sirve para ejecutar un programa externo cuando alguien deja un mensaje. externpass: Sirve para ejecutar un programa externo cuando alguien cambia su contraseña del buzón. silencetreshold: Funciona solamente si la opción maxsilence="yes" y sirve para fijar el umbral de silencio, para ajustar “que” consideramos silencio (cuando nos llaman puede haber ruido de fondo, pero no estar hablando nadie). serveremail: Indica el origen de los mensajes de notificación de e-mail. maxmessage: Indica el tiempo máximo de grabación de un mensaje. maxmsg: Indica el numero máximo de mensajes en un buzón. minmessage: Sirve para eliminar los mensajes que tienen menos duración que lo indicado por este comando. format: Indica el formato en que se guardará los mensajes e voz. Hay las siguientes posibilidades: "wav49", "gsm" y "wav". maxgreet Fija el tiempo máximo del mensaje de bienvenida que pueden configurar los usuarios. José Manuel campos moreno y Miguel José guzmán munuera
  • 86. Pag. - 85 -Instalación y configuración de centralita VoIP basada en asterisk maxlogins: Numero máximo de intentos fallidos al buzón de voz (por si alguien intenta escuchar nuestro buzón sin saber la contraseña). cdinternalcontexts: Distingue si los contextos son internos o externos (si el llamante es una extensión o sin embargo es un número de teléfono ajeno a la centralita). promiscredir: Permite soportar redirecciones 302. Por defecto "no". review: Por defecto es "no". Si lo pusiéramos a "yes" el usuario que deja el mensaje podría revisarlo antes de salvarlo y dejarlo en el buzón. operator: Permite marcar una extensión cuando ha saltado el buzón de voz. saycid: Si lo ponemos a "yes" nos informará del número que llamó antes de repetir el mensaje. fromstring: Establece el from (desde) del mensaje de aviso de correo. emailsubject: Establece el asunto del mensaje de aviso de correo. emailbody: Establece el cuerpo del mensaje de aviso de correo. nextaftercmd: Reproduce el siguiente mensaje automáticamente cuando se borra el anterior y ya tenemos un poco más claro como podemos gestionar la configuración de los buzones de voz. Mas... ¿como los integramos en nuestro dialplan? Muy sencillo, hemos de editar vi /etc/asterisk/extensions.conf y añadir al final del archivo un nuevo contexto con las siguientes instrucciones [buzondevoz] exten => 12345,1,VoicemailMain(${CALLERIDNUM}) exten => 12345,2,Hangup() Esto hace que cuando desde cualquiera de las extensiones marquemos el número de teléfono 12345 Asterisk comprobará cual es la extensión que realiza la petición (accediendo a la variable del sistema CALLERIDNUM) y le dará acceso al sistema de buzón de voz para poder escuchar los mensajes grabados. Nos va tocando hacer pruebas, pero antes será mejora que integremos con un include el contexto [buzondevoz] en el contexto [salida], puesto que si no lo José Manuel campos moreno y Miguel José guzmán munuera
  • 87. Pag. - 86 -Instalación y configuración de centralita VoIP basada en asterisk hacemos, por mucho que se marque el 12345, “va a ser que no”. Si hemos hecho todo lo anterior y recargamos el dialplan podemos hacer la primera prueba. Dejamos el CLI en pantalla para observar como afectan nuestras actuaciones a la centralita. En primer lugar marcamos el 12345 desde cualquiera de las extensiones y sale una voz solicitando el número de extensión del que deseamos acceder a su buzón de voz, indicamos en nuestro caso el 100 y posteriormente nos pide la contraseña (que tenemos definida como 1234). Eso nos va metiendo en una serie de submenus telefónicos, mediante sucesivas locuciones, que nos permiten gestionar el buzón. Es interesante el fijarse en los nombres de los ficheros de audio que se van reproduciendo en el CLI, puesto que podríamos sencillamente grabando un mensaje personalizado con nuestra voz y sobreescribiendo el archivo que aparece en el CLI por el nuestro, el conseguir un buzón de voz totalmente personalizado. Nosotros no lo hemos hecho, porque en principio pensamos usar principalmente el método de correos electrónicos, con los que no hace falta acceder para nada al sistema automatizado de buzón de voz. Ahora vamos a decidir cuando tiene que “saltar” el buzón de voz. Eso lo hacemos volviendo a editar extensions.conf y modificar las extensiones [100] [200][300] y [400] añadiendo en las mismas la siguiente instrucción exten => 100,n,Voicemail,100 justo antes de la instrucción que contiene el colgado (Hangup). Así antes de colgar, se pide al llamante si desea grabar un mensaje. En el caso de ser la extensión [200] o sucesivas, creo evidente cual sería la instrucción a insertar. Volvemos a recargar el dialplan y realizamos la prueba de llamar a las extensiones. Como tenemos configurado que nuestras extensiones suenen durante 30 segundo tendremos que esperar ese tiempo a que salte el contestador que nos indicará que dejemos un mensaje después de oír la señal. Dejamos un mensaje y, como las balas, abrimos nuestro cliente de correo electrónico para ver si tenemos un flamante y maravilloso archivo .wav con el mensaje que hemos dejado. José Manuel campos moreno y Miguel José guzmán munuera
  • 88. Pag. - 87 -Instalación y configuración de centralita VoIP basada en asterisk 10.5 GRABACIÓN DE CONVERSACIONES Y LEY DE PROTECCIÓN DE DATOS. Una de las cosas que hemos visto muy interesantes es la posibilidad de grabar todas o parte de las conversaciones que gestiona Asterisk. Eso supone una herramienta de control y gestión de personal extremadamente potente. Un supervisor puede asegurarse que los componentes de su equipo están siguiendo las directrices de atención telefónica que su organización a estipulado. Claro que esto entra en claro conflicto que la ley de protección de datos, que expresamente penaliza las grabaciones digitales sin el consentimiento de la persona grabada. Es por lo que en el caso de que quisiéramos legalmente grabar las conversaciones, en la locución de acceso tendríamos que añadir una locución extra indicando “Su mensaje puede ser grabado para la gestión de calidad, en caso de no desear ser grabado, indíquelo a la persona que le atienda”. Con esto estaríamos cumpliendo la ley. En todo caso, cumpliendo o no la ley, es una herramienta más de nuestra centralita y vamos a ver el modo de hacerlo. En primer lugar podemos hacer grabaciones puntuales. Eso significa que la persona que atiende la llamada puede decidir grabar la conversación en un momento dado, para lo que primero tendremos que haber habilitado la función de grabación en el extensions.conf para esa extensión y en segundo lugar el operador de la extensión a de pulsar *1 con lo que hace que a partir de ese momento la conversación se grabe en el directorio /var/spool/asterisk/monitor. Para habilitar la grabación en la linea de la extensión en el extensions.conf habría que añadir w en los parametros de la misma exten => 100,n,Dial(Sip/100,30,tTrw) Pero si lo que deseamos es grabar todo lo que pasa por una extensión, podemos añadir estas instrucciones a la extensión o extensiones que deseemos grabar de manera constante. Estas lineas tienen que ponerse al principio de la extensión, para que antes incluso de que se descuelgue el teléfono, el sistema ya esté en disposición de comenzar la grabación José Manuel campos moreno y Miguel José guzmán munuera
  • 89. Pag. - 88 -Instalación y configuración de centralita VoIP basada en asterisk exten => 100,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y-- %H-%M-%S--)}) exten => 100,2,MixMonitor(ENTRADA-${horadellamada}-$ {CALLERID(num)}-${EXTEN}.wav) y a continuación las líneas que normalmente hemos tenido operativas para usar la extensión. Explicamos que hacen exactamente estas instrucciones exten => 100,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y-- %H-%M-%S--)}) indica que las llamadas entrantes en la extensión [100] almacenaran una variable llamada horadellamada (eso es una variable de usuario creada por nosotros, por si no se ha notado). Esa variable contendrá el día, mes, año, hora, minuto y segundo de inicio de la llamada en formato texto para poder usarlo junto con más parametros en la confección de un nombre de archivo en el que se almacenará la grabación. exten => 100,2,MixMonitor(ENTRADA-${horadellamada}-$ {CALLERID(num)}-${EXTEN}.wav) indica que se almacenara en el directorio por defecto de grabaciones, que como hemos indicado antes es /var/spool/asterisk/monitor, un archivo cuyo nombre será ENTRADA seguido de un guión, seguido de la variable que hemos almacenado anteriormente con el dia y hora de la llamada, seguido de otro guión, seguido del número de la persona que ha llamado que está almacenado en la variable de sistema CALLERID (el poner num entre paréntesis es para indicar que solamente se aceptará para esa variable un parámetro numérico),seguido de un guión, seguido del número de extensión que ha recibido la llamada (almacenado en la variable de sistema EXTEN), seguido por ultimo de la extensión .wav que nos deja finalmente un nombre de archivo que permite identificar con facilidad las grabaciones, un ejemplo de nombre de archivo generado es este : ENTRADA-08-06-08— 21-58-08---953121212-200.wav José Manuel campos moreno y Miguel José guzmán munuera
  • 90. Pag. - 89 -Instalación y configuración de centralita VoIP basada en asterisk 10.6 INSTALACIÓN DE HYLAFAX, SERVIDOR DE GESTIÓN DE FAX. Uno de los puntos de mayor complejidad a la hora de configurar la centralita es la gestión de fax. Una vez configurada, nos permitirá enviar faxes desde los terminales informáticos de la empresa, sencillamente indicando que el documento que hemos de enviar lo queremos imprimir al fax, momento en que se nos solicitará el número de teléfono al que deseamos remitir dicho fax y Asterisk se encargará de todo. También estará Asterisk atento a todas las llamadas entrantes para asegurarse de si se identifican o no como una llamada de fax, para en el caso de que lo hagan, gestionarlas y remitirlas a una extensión donde hayamos conectado un fax físico, o si lo deseamos, a una cuenta de correo electrónico desde la que podremos revisar e imprimir si nos interesa el contenido de dicho fax. Para la gestión de fax vamos a usar el servidor hylafax y para instalarlo, tendremos que usar aptitude install hylafax-server Una vez instalado, ejecutamos la orden faxsetup que crea una configuración inicial almacenando la configuración en dos directorios. Ambos directorios contienen la misma información, aunque nosotros hemos de modificar archivos únicamente en uno de ellos. Cuando el servidor hylafax se reinicia, automáticamente copia los ficheros de configuración del directorio donde los modificamos al directorio para su uso “personal”. Esos directorios son /etc/hylafax, que es donde haremos las modificaciones y /var/spool/hylafax/etc que es donde estará almacenado el duplicado que usa el servidor. En el directorio /etc/hylafax podremos encontrar los ficheros que detallamos a continuación /etc/hylafax/hfaxd.conf Este es el archivo de configuración del demonio del servidor hylafax y en el se definen donde están los ficheros de configuración adicionales. Raramente hay que modificar los parametros que contiene, pero lo indicamos por si en un caso excepcional es necesario para alguna configuración compleja. /etc/hylafax/hyla.conf José Manuel campos moreno y Miguel José guzmán munuera
  • 91. Pag. - 90 -Instalación y configuración de centralita VoIP basada en asterisk Parámetros de configuración del los clientes para que puedan enviar fax desde el servidor mediante sendfax. /etc/hylafax/config Configuración general de hylafax para el sistema local. Se puede especificar en este archivo como llamará el servidor de fax a los diferentes números de teléfono (incluyendo como distinguir llamadas internacionales de locales). Se puede también configurar la gestión de archivos log (archivos que contienen información de todo lo que va haciendo el servidor de fax), el número máximo de trabajos concurrentes, tamaño máximo de la página del fax, si se desea página informativa añadida automáticamente al fax enviado con los datos de la organización, y por ultimo, pero no menos importante, el número máximo de intentos que realizará el servidor a un número de fax dado antes de indicarnos que no puede enviar el fax. /etc/hylafax/hosts.hfaxd Este archivo especifica los equipos y usuarios a los que se les permite acceder a los servicios de fax, por medio del proceso hfaxd. Podemos añadir y quitar usuarios de fax sin necesidad de editar el fichero ejecutando en la línea de comandos del sistema las instrucciones faxadduser y faxdeluser seguidas del nombre del usuario. /var/spool/hylafax/info Directorio con información de las máquinas receptoras a las que ya se ha enviado algún fax. /var/spool/hylafax/docq Directorio donde hylafax almacena todos los documentos enviados. 10.7 CONFIGURACIÓN DE HYLAFAX PARA UTILIZAR MODEM VIRTUAL DE ASTERISK. José Manuel campos moreno y Miguel José guzmán munuera
  • 92. Pag. - 91 -Instalación y configuración de centralita VoIP basada en asterisk En primer lugar hemos de crear una nueva extensión para la recepción de fax. Vamos añadir para ello en el fichero vi /etc/asterisk/iax.conf las instrucciones necesarias para añadir la extensión [777] (nuestra flamante nueva extensión para fax) [777] username = 777 type = friend secret = 777 qualify = yes notransfer = yes host = dynamic context = fax callerid = “Fax” <777> allow = all modificamos el archivo vi /etc/asterisk/zapata.conf añadiendo la instrucción faxdetect = both ; permite envío y recepción de fax modificamos por fin nuestro dialplan agregando en el archivo extensions.conf, al final del contexto [inicio] exten => fax,1,Goto(fax,777,1) y agregamos en el contesto inicio un include = fax. Ahora creamos el contexto de fax. Esto lo podemos poner al final del José Manuel campos moreno y Miguel José guzmán munuera
  • 93. Pag. - 92 -Instalación y configuración de centralita VoIP basada en asterisk extensions.conf donde nos parezca conveniente, recordando que al final del dialplan han de estar las extensiones a las que demos menos uso. La extensión quedaría así [fax] exten => 777,1,Answer() exten => 777,n,Dial(IAX2/777) exten => 777,n,Hangup() y para comprobar que todo esta correcto, en la línea de comandos del sistema ejecutamos la instrucción iaxmodem ttyIAX que nos mostrará unas lineas de registro del servicio (con algunos errores, eso es normal, no hay que asustarse), y que finalmente aparecerá un mensaje “Registration completed successfully” a lo que seguidamente en el CLI ejecutamos la instrucción iax2 show peers like 777 que nos responde con un mensaje como el siguiente Name Host Mask Port Status 777/777 127.0.0.1 (D) 255.255.255.255 45699 OK (2 ms) lo que nos indica que todo está preparado para poder recibir fax correctamente. Solo nos falta hacer que el proceso faxgetty esté constantemente a la escucha de los posibles fax entrantes. Para ello hemos de añadir en el archivo vi /etc/inittab justo al principio del fichero tras las dos primeras lineas de descripción del archivo, las dos instrucciones que indicamos a continuación iax:2345:respawn:/usr/local/bin/iaxmodem ttyIAX &> /var/log/asterisk/iaxmodem-ttyIAX fax:2345:respawn:/usr/local/sbin/faxgetty ttyIAX José Manuel campos moreno y Miguel José guzmán munuera
  • 94. Pag. - 93 -Instalación y configuración de centralita VoIP basada en asterisk tras lo que grabamos, salimos y reiniciamos nuestra máquina Asterisk para que cargue el proceso correspondiente. Aquí viene la complicación, pues hemos de buscar a alguien que tenga posibilidad de enviar fax para que haga unos intentos y veamos el resultado de nuestros esfuerzos. Podemos mandar un fax de prueba con la instrucción sendfax -n -d <número de fax> /etc/hylafax/faxcover.ps (o cualquier otro archivo .ps que tengamos) Cuando nos envíen un fax, comprobamos si dicho fax aparece en /var/spool/hylafax/recvq (estará en formato TIFF o PDF). Si no entran los fax o no se envían correctamente, podemos intentar comprender donde esta el problema echando un vistazo al archivo /var/log/messages. Para ver el estado del sistema de fax usaremos faxstat y para ver la cola de fax pendientes de envío usaremos faxstat -s. 10.8 RECEPCIÓN DE FAX EN EL CORREO ELECTRÓNICO. Hemos de crear un fichero de configuración nuevo mediante la instrucción vi /etc/hylafax/FaxDispatch que contenga los siguientes comandos FILETYPE=pdf; SENDTO=tutoria@proyectoasterisk.net; Añadimos al final del fichero José Manuel campos moreno y Miguel José guzmán munuera
  • 95. Pag. - 94 -Instalación y configuración de centralita VoIP basada en asterisk vi /etc/aliases FAXMASTER: tutoria@proyectoasterisk.net Por ultimo solo nos queda editar el fichero vi /etc/hylafax/FaxNotify y añadir NOTIFY_FAXMASTER=yes; RETURNFILETYPE=pdf; Con esto deberíamos de recibir en el correo electrónico que hemos indicado en la configuración tanto los fax entrantes en ficheros adjuntos a una notificación informativa de cual ha sido el número de teléfono que nos ha remitido dicho fax, como una confirmación de que los fax que estamos enviando, funcionan correctamente. 10.9 INTEGRAR CDR ASTERISK. GESTIÓN DE BASE DE DATOS. Una de las funciones más llamativas de Asterisk, es la posibilidad de gestión mediante bases de datos de toda la información obtenida de las llamadas que pasan a través del servidor. Es una maravilla que hay que ver para creer, así que aptitude install mysql-server apache2 php5 php5-mysql php5-pd Una vez instalado el servidor web y el servidor de base de datos entramos en la línea de comando del gestor de base de datos con la instrucción mysql y vamos introduciendo los siguientes comandos CREATE DATABASE asterisk; GRANT INSERT ON asterisk.* TO asterisk@localhost IDENTIFIED BY password José Manuel campos moreno y Miguel José guzmán munuera
  • 96. Pag. - 95 -Instalación y configuración de centralita VoIP basada en asterisk donde password lo sustituimos por la contraseña de root que tengamos en la máquina Asterisk. Seguimos introduciendo instrucciones USE asterisk; CREATE TABLE cdr (calldate datetime NOT NULL default 0000-00-00 00:00:00,clid varchar(80) NOT NULL default ,src varchar(80) NOT NULL default ,dst varchar(80) NOT NULL default ,dcontext varchar(80) NOT NULL default ,channel varchar(80) NOT NULL default ,dstchannel varchar(80) NOT NULL default ,lastapp varchar(80) NOT NULL default ,lastdata varchar(80) NOT NULL default ,duration int(11) NOT NULL default 0,billsec int(11) NOT NULL default 0,disposition varchar(45) NOT NULL default ,amaflags int(11) NOT NULL default 0,accountcode varchar(20) NOT NULL default ,userfield varchar(255) NOT NULL default ); ALTER TABLE cdr ADD INDEX (calldate); ALTER TABLE cdr ADD INDEX (dst); ALTER TABLE cdr ADD INDEX (accountcode); Y modificamos los ficheros de asterisk para la base de datos vi /etc/asterisk/cdr_mysql.conf que nos aseguramos que contenga las instrucciones que indicamos a continuación [global] hostname=localhost dbname=asterisk password= user=root editamos vi /etc/asterisk/res_mysql.conf José Manuel campos moreno y Miguel José guzmán munuera
  • 97. Pag. - 96 -Instalación y configuración de centralita VoIP basada en asterisk asegurándonos que contenga [general] dbhost = 127.0.0.1 dbname = asterisk dbtable= cdr dbuser = root dbpass = dbport = 3306 dbsock = /tmp/mysql.sock Descargamos asterisk-stat que contiene una página web en PHP que permite visualizar los datos que asterisk almacena en la base de datos, para que funcione nos vamos a cd /var/www descargamos y descomprimimos el siguiente archivo, con lo que se nos crea una carpeta llamada asterisk-stat-v2 wget http://areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz tar -zxvf asterisk-stat-v2_0_1.tar.gz modificamos el fichero vi /var/www/asterisk-stat-v2/lib/defines.php y comprobamos que en el principio del fichero las instrucciones que presentamos a continuación existen y con los parámetros que indicamos define ("WEBROOT", "http://localhost/asterisk-stat/"); define ("FSROOT", "/var/www/html/HTTP2/Asterisk/asterisk-stat-v2/"); define ("LIBDIR", FSROOT."lib/"); define ("HOST", "localhost"); define ("PORT", "3306"); define ("USER", "root"); José Manuel campos moreno y Miguel José guzmán munuera
  • 98. Pag. - 97 -Instalación y configuración de centralita VoIP basada en asterisk define ("PASS", ""); define ("DBNAME", "asterisk"); define ("DB_TYPE", "mysql"); define ("DB_TABLENAME", "cdr"); y finalmente, aleluya, para poder ver las estadísticas de nuestra centralita desde un cliente WEB, solamente tendríamos que escribir en la barra de direcciones http://172.16.0.211/asterisk-stat-v2/cdr.php La página de estadísticas tiene múltiples opciones que dejamos en manos del lector el explorar. Además es totalmente modificable para alguien con conocimientos de PHP (de echo la página que descargas está en ingles y nosotros la hemos traducido al castellano). Se pueden añadir nuevas estadísticas y funcionalidades que puedan ser útiles en nuestra organización. José Manuel campos moreno y Miguel José guzmán munuera
  • 99. Pag. - 98 -Instalación y configuración de centralita VoIP basada en asteriskRESULTADOS Durante la gestación del proyecto y su posterior desarrollo, hemos tenido que leercantidades ingentes de documentación. Esencialmente páginas web, foros y manuales en linea.Esas lecturas han conseguido principalmente dos cosas; por un lado que hayamos obtenido elresultado esperado, esto es, una centralita plenamente operativa con unas funciones que superan alas centralitas de gama media-alta que venden o alquilan las operadoras de telefonía, y por unprecio extremadamente inferior. Pero por otro lado, una vez el proyecto estaba maduro, y pasadala fase de pruebas iniciales, gracias a seguir extrayendo información de internet, nos dimos cuentaque muchas cosas que habíamos hecho de manera manual durante los procesos de instalación sepodían automatizar, haciendo más sencilla la creación e instalación de nuevas máquinas virtuales.Eso nos animó a pensar “¿por que no crear más máquinas virtuales que provean de más serviciosal servidor”? También, en nuestro afán porque nuestro servidor fuese lo más seguro y escalabledentro de lo posible, vimos que existe un sistema de archivos llamado LVM extremadamenteflexible que provee ciertas funciones interesantes.Planteamos en aras de las seguridad el añadirle un firewall al servidor (un corta fuegos –herramienta software para intentar evitar intrusiones o ataques a ordenadores) para lo queencontramos Shorewall y para que todo ello funcionara correctamente nos vimos en la necesidadde usar un servidor DHCP (que asigna direcciones IP automáticamente), un servidor SAMBA(que permite compartir archivos entre diferentes sistemas operativos) y hemos querido que tantoesfuerzo, se salvaguarde cada poco tiempo, para lo que hemos generado un sistema de copias deseguridad automatizado mediante CRON (un gestor de ejecución de tareas de Debian). Elresultado es que tenemos un pequeño proyecto secundario en el que explicamos las mejoras quehemos encontrado y con esas mejoras hemos generado las instrucciones de creación de una nuevamáquina virtual que engloba todas las funciones que, por desconocimiento, en un principio noteníamos previsto incluir en nuestro servidor de centralita Asterisk. He aquí el resultado : 1 CREACIÓN DE MAQUINA VIRTUAL CON SOPORTE LVM, SERVIDOR DE FICHEROS, SERVIDOR DNS, FIREWALL Y COPIAS DE SEGURIDAD CON José Manuel campos moreno y Miguel José guzmán munuera
  • 100. Pag. - 99 -Instalación y configuración de centralita VoIP basada en asterisk CRON. Una vez creada la primera máquina virtual nos planteamos crear otra que nos sirva de cortafuegos, copias de seguridad servidor de nombres (DNS) y ficheros (vamos a centralizar toda la información de la red en esta máquina que hará las veces de servidor de enlace entre redes). El primer problemas que se nos plantea es en el tema de la generación de datos, pues como nuestro sistema esta en maquinas virtuales de tamaño fijo, llegará un momento en que debido a los datos generados por el uso de la centralita (mensajes de voz archivados, faxes, datos del CDR), nos quedaremos sin espacio en el disco duro. Para solucionar esto utilizaremos volúmenes lógicos a la hora de crear las imágenes de las maquinas virtuales. El segundo problema a resolver es el como configurar nuestro sistema para que todo el trafico que pase desde internet a nuestra intranet pase por esta maquina y proteja tanto nuestros datos como toda nuestra red de Internet. Para esto le instalaremos a nuestro sistema una tarjeta de red extra que conectaremos directamente a Internet y configuraremos nuestro sistema Xen para que la máquina virtual administre esta tarjeta directamente, al igual que hicimos con la tarjeta de comunicaciones Asterisk, y así poder ejercer las funciones de router en nuestra intranet. 1.1 DEFINICIÓN Y CARACTERISTICAS DE LVM: LVM es una implementación de un administrador de volúmenes lógicos para el kernel Linux. LVM incluye muchas de las características que podemos esperar de un administrador de volúmenes, incluyendo: - Redimensionado de grupos lógicos - Redimensionado de volúmenes lógicos - Instantáneas de sólo lectura (LVM2 ofrece lectura y escritura) - RAID0 de volúmenes lógicos (unir varios discos duros como uno) José Manuel campos moreno y Miguel José guzmán munuera
  • 101. Pag. - 100 -Instalación y configuración de centralita VoIP basada en asterisk LVM no implementa RAID1 o RAID5, por lo que se recomienda usar software específico de RAID para estas operaciones, teniendo las LV por encima del RAID. En la imagen de la derecha podemos observar cómo trabaja LVM. Los volúmenes lógicos agrupan particiones físicas de disco, y éstos a su vez, aunque no está representado en la figura, se engloban en un grupo lógico. De esta forma, /home se compone de hda3, hda4 y hdb3, y a su vez, /usr engloba a hda1, hda2, hdb1 y hdb2. 1.1.1 Ventajas de usar LVM : - La gestión de volúmenes lógicos proporciona una vista de alto nivel sobre el almacenamiento en un ordenador, en vez de la tradicional vista de discos y particiones. - Los volúmenes de almacenamiento bajo el control de LVM pueden ser redimensionados y movidos a voluntad, aunque esto quizá necesite actualizar las herramientas del sistema. - LVM también permite la administración en grupos definidos por el usuario, permitiendo al administrador del sistema tratar con volúmenes llamados, por ejemplo, "ventas" o "desarrollo", en vez de nombres de dispositivos físicos, como "sda" o "sdb". José Manuel campos moreno y Miguel José guzmán munuera
  • 102. Pag. - 101 -Instalación y configuración de centralita VoIP basada en asterisk 1.1.2 Anatomía de un LVM : Un volumen LVM se descompone en tres partes: 1.1.2.1 Volúmenes físicos (PV): son los discos duros, particiones o cualquier otra "cosa" que parezca un disco duro (como por ejemplo los RAID). 1.1.2.2 Volúmenes lógicos (LV): es el equivalente a una partición en un sistema tradicional. El LV es visible como un dispositivo estándar de bloques, por lo que puede contener un sistema de archivos (por ejemplo /home). 1.1.2.3 Grupos de volúmenes (VG): es la parte superior de la LVM. Es la "caja" en la que tenemos nuestros volúmenes lógicos (LV) y nuestros volúmenes físicos (PV). Se puede ver como una unidad administrativa en la que se engloban nuestros recursos. Hay que hacer notar que mientras un PV no se añada al VG, no podemos comenzar a usarlo. A su vez, un PV se divide en “chunks” de datos, que se conocen como PE (acrónimo de physical extents – medidas físicas), que son del mismo tamaño que los PE del VG. Además, un LV se divide también en LE (logical extents), cuyo tamaño es el mismo para todos los LV del VG. Por ejemplo, teniendo como referencia la imagen del comienzo del artículo, supongamos que tenemos un VG llamado CASA, con 4MB de PE, al que queremos añadir un LV para /tmp/. Añadimos dos particiones de disco, /dev/sda4 y /dev/sdb3, que se llamarán PV1 y PV2 (se las puede renombrar a discreción del usuario). Los PV pueden ser de distinto tamaño y por lo tanto, tendrán un número distinto de PE, por lo que supongamos que tenemos para PV1 99 PE y para PV2 248 PE. Ahora, podemos crear el LV que necesitamos, que puede ser de cualquier tamaño entre 1 y 347 (99+248) PE. De esta forma se crea una tabla que relaciona los PE y los LE y si, por ejemplo, escribimos 4 MB en el LE número 1 del LV, se corresponderán con el PE 51 de la PV1. 1.1.3 Instantáneas (copias de seguridad) : Las instantáneas (snapshots) permiten al administrador crear un nuevo dispositivo que será una copia exacta del LV, José Manuel campos moreno y Miguel José guzmán munuera
  • 103. Pag. - 102 -Instalación y configuración de centralita VoIP basada en asterisk congelada en algún punto del tiempo. Normalmente esto se realiza de forma automática, para no alterar el funcionamiento normal del sistema. Cuando la instantánea ha terminado, el administrador puede quitar el dispositivo sin mayor complicación. Además, no es necesario que los datos en el LV se encuentren en un estado consistente, ya que muchos sistemas de ficheros en el kernel 2.6 lo realizan de forma automática. Una diferencia importante entre la versión 1 de LVM (LVM1 a partir de ahora) y la versión 2 (LVM2) es que en la primera, los snapshots eran de sólo lectura, mientras que en LVM2 son de lectura y escritura. ¿Cuál es la diferencia? En LVM1, se crea lo que se llama una tabla de excepciones, que se usa para mantener una lista de qué bloques en disco han cambiado. Si un bloque va a ser modificado en el origen, primero se copia en la instantánea, se marca como copiado en la tabla de excepciones y luego los nuevos datos se copian al volumen original. En LVM2, las instantáneas funcionan como en LVM1, pero con la característica de que si los datos se escriben en el snapshot (una vez montado), ese bloque se marca como usado en la tabla de excepciones y no se copia al volumen original. Esta característica es muy útil debido a que podemos crear nuestra instantánea, montarla y probar un programa o un nuevo navegador de ficheros. Si ocurre algo desastroso, la desmontamos, la borramos y volvemos a colocar el volumen original. 1.2 EMPEZAMOS LA INSTALACIÓN. Preparamos nuestro sistema, necesitamos una partición vacía o bien un disco duro, para esto vamos a utilizar un HD de 320 GB. Primero tendremos que particionar el disco duro. Utilizaremos el comando fdisk (fdisk /dev/hdb) creamos una partición nuevo con la opción “n” , le cambiamos el tipo con la opción “t” y elegimos el tipo de partición Linux LVM. Para escribir los datos en el disco duro y salir pulsamos “w”. fdisk /dev//hdb El número de cilindros para este disco está establecido en 38913 No hay nada malo en ello, pero es mayor que 1024, y en algunos casos podría causar problemas con: José Manuel campos moreno y Miguel José guzmán munuera
  • 104. Pag. - 103 -Instalación y configuración de centralita VoIP basada en asterisk 1) software que funciona en el inicio (ejemplo versiones antiguas de LILO) 2) software de arranque o particionamiento de otros sistemas operativos (ejemplo FDISK de DOS, FDISK de OS/2) Orden (m para obtener ayuda): p Disco /dev//hdb: 320.0 GB, 320072933376 bytes 255 cabezas, 63 sectores/pista, 38913 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev//hdb1 1 38913 312568641 8e Linux LVM Inicializamos la partición y creamos el volumen físico (PV), es decir pvcreate /dev/hdb1 Vemos el resultado con pvdisplay: --- Physical volume --- PV Name /dev/hdb1 VG Name vg PV Size 298,09 GB / not usable 0 Allocatable yes PE Size (Kbyte) 4096 Total PE 76310 Free PE 60424 Allocated PE 15886 PV UUID yeOwtx-Bt1Z-Q43X-cu3k-lM7z-Rwik-VcMH49 Ahora nos disponemos a crear un grupo de volumen (VG) llamado también vg vgcreate vg /dev/sdb1 que comprobamos también con vgdisplay, obteniendo --- Volume group --- VG Name vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 28 José Manuel campos moreno y Miguel José guzmán munuera
  • 105. Pag. - 104 -Instalación y configuración de centralita VoIP basada en asterisk VG Access read/write VG Status resizable MAX LV 0 Cur LV 10 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 298,09 GB PE Size 4,00 MB Total PE 76310 Alloc PE / Size 15886 / 62,05 GB Free PE / Size 60424 / 236,03 GB VG UUID 9P10qW-d6GW-tZnC-RWGC-E1fZ-poEs-pFhCsx Una vez hecho esto ya solo nos queda crear nuestra maquina virtual con soporte para LVM. Para ello instalamos un paquete para creación de maquinas virtuales que provee una forma más rápida que la descrita durante el proceso de instalación del servidor Asterisk aptitude install xen-tools modificaremos el fichero vi /etc/xen-tools/xen-tools.conf para que quede con las siguientes instrucciones #dir = /data/xenmachines/ lvm = vg # Nombre del volumen lvm debootstrap = 1 size = 4Gb # Tamaño que tomara en un principio memory = 128Mb # Memoria RAM reservada para esta maquina virtual swap = 128Mb # Tamaño de la partición Swap # noswap = 1 fs = ext3 # El sistema de ficheros que vamos a usar es ext3 dist = etch # Distribución a instalar por defecto image = sparse gateway = 172.16.0.1 José Manuel campos moreno y Miguel José guzmán munuera
  • 106. Pag. - 105 -Instalación y configuración de centralita VoIP basada en asterisk netmask = 255.255.255.0 kernel = /boot/vmlinuz-2.6.18-6-xen-amd64 # o la que estemos usando initrd = /boot/initrd.img-2.6.18-6-xen-amd64 # o la que estemos usando Una vez hecho esto ya podemos crear todas las imágenes que queramos con el comando: xen-create-image --hostname <nombre> --ip <ip de la maquina> Ejemplo: xen-create-image --hostname intranet --ip 172.16.0.212 Con este comando creamos directamente la maquina y con una Debian instalada. Este proceso tardara algo pues la instalación de la Debian en esta maquina virtual la hace desde internet con debootstrap (utilizado en la creación de la maquina Asterisk). Y arrancamos la maquina con: xm create -c /etc/xen/intranet.cfg Con esto ya tenemos creada nuestra maquina virtual con un tamaño fijo de 4 Gb y nos disponemos a probar como funciona eso del LVM. 1.3 PRUEBAS CON LVM. 1.3.1 Eliminando un LV. Supongamos que no deseamos, por el motivo que sea, seguir usando el LV llamado intranet y deseamos eliminarlo para disponer de ese espacio para otros usos. Lo hacemos con : lvremove /dev/vg/intranet 1.3.2 Extendiendo un LV. Supongamos que por el contrario en lugar de eliminar un LV queremos añadirle José Manuel campos moreno y Miguel José guzmán munuera
  • 107. Pag. - 106 -Instalación y configuración de centralita VoIP basada en asterisk 5GB de capacidad, para ello tendríamos que usar las instrucciones lvextend-L+5G /dev/vg/intranet ; extiende el LV en +X cantidad de espacio e2fsck -f /dev/vg/intranet ; examina la partición antes de tocarla resize2fs /dev/disk/intranet ; realiza el cambio definitivo de tamaño 1.3.3 Reduciendo un LV. Veamos el caso contrario, pensemos que queremos reducir intranet, le quitaremos 5GB, el proceso es parecido al anterior: e2fschk -f /dev/vg/intranet resize2fs /dev/vg/intranet 35G lvreduce -L-5G /dev/vg/intranet Esto consigue que 1- revisamos el sistema de archivos (FS) ext3 2- reducimos el tamaño del FS ext3 (aquí sí hay que saber a cuánto reducirlo) 3- reducimos el tamaño del LV intranet, si te fijas usamos -L-5G aunque también podíamos haber usado -L35G para indicarle el valor al que lo reducimos. Con esto nos basta para reducir el tamaño en 5GB. 1.3.4 Removiendo un PV. Supongamos que un PV nuestro lo queremos sacar. Puede ser porque hemos agregado un nuevo PV anteriormente que es muy grande y ya este PV viejo nos queda pequeño y nos molesta su pírrica presencia, queremos por tanto eliminar José Manuel campos moreno y Miguel José guzmán munuera
  • 108. Pag. - 107 -Instalación y configuración de centralita VoIP basada en asterisk el disco con pvmove /dev/hdb1 Este proceso puede durar mucho tiempo, puesto que pvmove saca la información que tenga guardada y la almacena en los otros PV, esto sin alterar el esquema de los LV. Por supuesto que la suma de capacidad disponible en los otros PV debe ser mayor o igual a la cantidad de información que se esté moviendo. Al finalizar de mover el PV, lo podemos eliminar del VG con: vgreduce vg /dev/hdb1 1.4 CONCLUSIÓN Una vez hechas todas las comprobaciones podemos asegurar que por muchas maquinas virtuales que creemos o por mucho información que vayamos a guardar en nuestro servidor de ficheros y copias de seguridad, vamos a poder en todo momento administrar la capacidad de disco duro pudiendo disminuir el tamaño de una maquina virtual que en un principio la creamos demasiado grande y poder dárselo a otra maquina virtual que realmente lo necesite. Si por el contrario ya hemos llenado toda la capacidad del disco duro se puede añadir otro mas (en cualquier momento) aumentando el tamaño del primero. Parecido a un RAID 0. La diferencia con este radica en que el RAID0 hace una escritura en paralelo con lo que es mucho mas rápido que el LVM pero no permite hacer las maravillas (en el aspecto de posibilidades de gestión del LVM. José Manuel campos moreno y Miguel José guzmán munuera
  • 109. Pag. - 108 -Instalación y configuración de centralita VoIP basada en asterisk 2 DEFINICIÓN Y CARACTERÍSTICAS DEL FIREWALL (SHOREWALL + IPTABLES). Shorewall (Shoreline Firewall) es una robusta herramienta de alto nivel para la configuración de cortafuegos. Shorewall solo necesita que se le proporcionen algunos datos en algunos ficheros de texto simple y éste creará las reglas de cortafuegos correspondientes a través de Iptables. Shorewall puede permitir utilizar un sistema como cortafuegos dedicado, permitiendo múltiples funciones como puerta de enlace, dispositivo de encaminamiento (router) y servidor de servicios de red. Iptables es el nombre de la herramienta de espacio de usuario (User Space, es decir, área de memoria donde todas las aplicaciones, en modo de usuario, pueden ser intercambiadas hacia memoria virtual cuando sea necesario) a través de la cual los administradores de sistemas crean reglas para cada filtrado de paquetes y módulos de NAT. Iptables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux. 2.1 INSTALACIÓN DEL FIREWALL. Primero le instalamos a nuestro sistema una tarjeta de red secundaria conectada directamente al dispositivo que nos suministra servicios de internet (router adsl , cable módem, etc) y configuramos (al igual que hicimos con tarjeta Asterisk) en el grub de nuestra maquina principal el parámetro necesario para poder administrar esta tarjeta directamente en la maquina virtual de cortafuegos, usando de nuevo la instrucción lspci y tomando nota de la dirección para añadirla INMEDIATAMENTE a continuación de la que teníamos añadida para la gestión de la tarjeta de comunicaciones (tal y como está explicado en el capítulo 3 - INSTALACIÓN Y CONFIGURACIÓN DE SERVIDOR XEN). La instrucción debería quedar más o menos así José Manuel campos moreno y Miguel José guzmán munuera
  • 110. Pag. - 109 -Instalación y configuración de centralita VoIP basada en asterisk module /boot/vmlinux-2.6.18-6-xen-amd64 root=/dev/sda1 ro console=tty0 max_loop=8 pciback.hide=(01:06.0)(01:07.0) Modificamos el fichero de configuración de la máquina virtual que nos han creado las herramientas de creación de Xen, mediante la instrucción vi /etc/xen/intranet.cfg y nos aseguramos que la instrucción PCI contenga lo siguientes pci=[01:07.0] Copiamos en /etc/xen/auto/ el archivo de configuración una vez modificado para que así se inicie automáticamente cada vez que encendamos el servidor y arrancamos la máquina virtual con xm create /etc/xen/auto/intranet.cfg -c Una vez arrancada la maquina virtual tenemos que decirle al sistema que tenemos una tarjeta de red extra y que nos conectaremos por dhcp a la red de Internet, para ello editamos el fichero de configuración de las tarjetas de red que en Debian se encuentra en /etc/network/interfaces auto eth0 iface eth0 inet static address 172.16.0.212 netmask 255.255.255.0 auto eth1 iface eth1 inet dhcp Al reiniciar la red con /etc/init.d/networking restart comprobaremos que en esta maquina virtual ya tenemos Internet. Podemos ver el resultado con la instrucción ifconfig. En este caso eth0 es la tarjeta (virtual en este caso) que se conecta a nuestra red y José Manuel campos moreno y Miguel José guzmán munuera
  • 111. Pag. - 110 -Instalación y configuración de centralita VoIP basada en asterisk eth1 es la tarjeta de red que conecta la máquina intranet directamente a internet para poder, una vez filtrada la conexión, suministrar servicios al resto de máquina reales y virtuales de la red. Pero para que comparta la conexión tenemos que instalar Shorewall en intranet mediante la instrucción aptitude install shorewall Shorewall es fácil de configurar. Al instalarlo se crean unos ficheros de configuración en /etc/shorewall que son los que tendremos que modificar para configurarlo. /etc/interfaces .- En este fichero configuramos las tarjetas de red que tenemos y donde están conectadas net eth1 detect dhcp,tcpflags,norfc1918,routefilter,nosmurfs,logmartians loc eth0 detect tcpflags,detectnets,nosmurfs /etc/masq .- Este fichero es el que nos sirve para configurar el enrutado de la conexión de internet de una tarjeta de red a otra y así poder compartir la conexión a internet #INTERFACE SUBNET ADDRESS PROTO PORT(S)IPSEC eth1 eth0 /etc/shorewall/policity .- Aquí indicamos la política que vamos a seguir. No es necesario modificarlo, pues como viene por defecto es suficiente para que el sistema funcione, aunque podríamos, dependiendo del grado de seguridad que queramos para nuestra red, cambiar las políticas por defecto. /etc/shorewall/rules .- En este fichero le vamos a decir al firewall que puertos queremos dejar abiertos y a que puertos de las maquinas de nuestra red va a ir. Ejemplo si queremos direccionar el puerto 110 (POP3) a la maquina 172.168.0.213 de nuestra red usaríamos la instrucción José Manuel campos moreno y Miguel José guzmán munuera
  • 112. Pag. - 111 -Instalación y configuración de centralita VoIP basada en asterisk NAT net loc:192.168.0.155:110 tcp 110 /etc/shorewall/zones .- Aquí configuramos las distintas zonas en que se va a componer nuestro cortafuegos, en nuestro caso configuramos 3 zonas una para nuestra red local otra para internet y otra para el cortafuegos. #ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONS fw firewall net ipv4 loc ipv4 Si todo esta bien configurado al hacer un /etc/init.d/shorewall restar ya estamos compartiendo con nuestra red la conexión a internet. Eso si la configuración IP de las máquinas de la red la tendremos que configurar a mano debido a que aun no hemos instalado ningún servidor DHCP (este se encarga de asignar direcciones IP, puerta de enlace y servidor de nombres automáticamente). 3 CONFIGURACIÓN SERVIDOR DHCP. DHCP (sigla en inglés de Dynamic Host Configuration Protocol) es un protocolo de red que permite a los nodos de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después. Sin DHCP, cada dirección IP debe configurarse manualmente en cada computadora y, si la computadora se mueve a otro lugar en otra parte de la red, se debe configurar otra dirección IP diferente. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si la computadora es conectado en un lugar diferente de la red. José Manuel campos moreno y Miguel José guzmán munuera
  • 113. Pag. - 112 -Instalación y configuración de centralita VoIP basada en asterisk El protocolo DHCP incluye tres métodos de asignación de direcciones IP: Asignación manual o estática: Asigna una dirección IP a una máquina determinada. Se suele utilizar cuando se quiere controlar la asignación de dirección IP a cada cliente, y evitar, también, que se conecten clientes no identificados. Asignación automática: Asigna una dirección IP de forma permanente a una máquina cliente la primera vez que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar cuando el número de clientes no varía demasiado. Asignación dinámica: el único método que permite la reutilización dinámica de las direcciones IP. El administrador de la red determina un rango de direcciones IP y cada computadora conectada a la red está configurada para solicitar su dirección IP al servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. Esto facilita la instalación de nuevas máquinas clientes a la red. En nuestro caso vamos a preparar nuestro servidor para poder suministrar este último método de asignación. 3.1 PROCEDIMIENTO PARA LA PUESTA EN MARCHA. aptitude install dhcpd y una vez terminada la instalación editamos el archivo vi /etc/dhcpd.conf que tiene que contener las siguientes instrucciones subnet 192.168.0.0 netmask 255.255.255.0 { range dynamic-bootp 172.16.0.220 172.16.0.240; option broadcast-address 172.16.0.255; José Manuel campos moreno y Miguel José guzmán munuera
  • 114. Pag. - 113 -Instalación y configuración de centralita VoIP basada en asterisk option domain-name-servers 172.16.0.1; option routers 192.168.0.212; } En la linea1, hace referencia a nuestra red local (al rango) y su mascara (en este caso, al ser de clase C, es 255.255.255.0). En la linea 2, configuramos el rango de IP que se van a dar a los clientes. En este caso de la IP 172.16.0.220 a la 172.16.0.240, es decir que el servidor configurará automáticamente hasta 20 clientes simultáneos. En la linea 3 está la dirección de broadcast de la red, que siempre que no haya subredes creadas terminara en .255 con la dirección de la red. En la linea 4, se hace referencia a la IP del servidor DNS que utilizaran los clientes de la red local. Como no hay ningún servidor DNS configurado aún en la red local, configuramos la IP del servidor DNS del proveedor de Internet. En la linea 5, finalmente, se referencia a la máquina que hace de gateway de la red, que en este caso es la misma que tiene el servidor DHCP configurado. Con esto solo ya solo nos resta reiniciar el servidor dhcp con un ‘/etc/init.d/dhcpd restart’ y listo, ya tenemos el servidor configurado y funcionando. 4 REALIZACIÓN DE COPIAS DE SEGURIDAD CON SAMBA + CRON. Hacer una copia de seguridad o copia de respaldo (backup en inglés, el uso de este anglicismo está ampliamente extendido) se refiere a la copia de datos de tal forma que estas copias adicionales puedan restaurar un sistema después de una pérdida de información. La copia de seguridad es útil por varias razones: - Para restaurar un ordenador a un estado operacional tras un desastre (copias de seguridad del sistema. - Para restaurar un pequeño número de ficheros después de que hayan sido borrados o dañados accidentalmente (copias de seguridad de datos). José Manuel campos moreno y Miguel José guzmán munuera
  • 115. Pag. - 114 -Instalación y configuración de centralita VoIP basada en asterisk - En el mundo de la empresa, además es útil y obligatorio, para evitar ser sancionado por los órganos de control en materia de protección de datos. La primera la tenemos cubierta con nuestro sistema de maquinas virtuales con Xen y para la segunda utilizamos esta maquina virtual para realizar la copia de los datos de todos los equipos de nuestra red, tanto Windows como Linux. Para esto utilizaremos el programa Samba para comunicarnos con las maquinas Windows y CRON para arrancar nuestro sistema de copias de seguridad. 4.1 SAMBA Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios. Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD. Samba configura directorios Unix/Linux como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estas unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente. José Manuel campos moreno y Miguel José guzmán munuera
  • 116. Pag. - 115 -Instalación y configuración de centralita VoIP basada en asterisk La configuración de Samba se logra editando un solo archivo, accesible en /etc/smb.conf o en /etc/samba/smb.conf. Para las copias de seguridad de todas las máquinas Windows de nuestra red hemos creado un script que copia todo lo que tenemos en un recurso compartido según el día de la semana. El archivo que contiene el script lo guardamos en /root/backupwindows y el script lo suministramos como anexo1 al documento, tanto en papel como en formato electrónico. El script hace copias de seguridad cada día de la semana de las carpetas que le indiquemos en la función function CopiaDiaria(). Para la copia de seguridad de las maquinas Linux, hemos generado un segundo script que al igual que el primero, guarda copia de seguridad de las carpetas que le indiquemos. Este script también lo almacenamos en /root/backuplinux y lo añadimos como anexo 2 a la documentación. 4.2 CRON. CRON es es un administrador regular de procesos en segundo plano (demonio) que ejecuta programas a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el archivo /etc/crontab. CRON se podría definir como el "equivalente" a Tareas Programadas de Windows. Los usuarios habilitados para crear su archivo crontab se especifican en el archivo /etc/cron.allow. De manera análoga, los que no lo tienen permitido figuran en /etc/cron.d/cron.deny o en /etc/cron.deny. Formato del archivo crontab José Manuel campos moreno y Miguel José guzmán munuera
  • 117. Pag. - 116 -Instalación y configuración de centralita VoIP basada en asterisk 01 * * * * root nice -n 19 run-parts /etc/cron.hourly 50 0 * * * root nice -n 19 run-parts /etc/cron.daily 22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly 42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly Para agregar, quitar o modificar tareas, hay que editar el crontab. Esto se hace con la orden crontab -e, que abrirá el editor definido en la variable entorno EDITOR y cargará el archivo crontab correspondiente al usuario que está autentificado en el sistema. 4.2.1 Sintaxis de configuración de CRON. El momento de ejecución de un script lo indicamos en el archivo crontab teniendo en cuenta que tiene cinco posibles parámetros en este orden : Minutos : (0-59) Horas : (0-23) Días : (1-31) Mes : (1-12) Día de la semana : (0-6), siendo 1=Lunes, 2=Martes, etc, 0=Domingo Por tanto para indicar en el crontab que queremos ejecutar nuestro script de copia de seguridad todos los Lunes a las diez de la noche tendríamos que indicar * 22 * * 01 /root/backuplinux o podríamos hacer que la copia fuese todos los días quince de cada mes a las doce y cinco de la madrugada 05 00 15 * * /root/backupwindows Ni que decir tiene que podemos ejecutar no solo nuestros scripts, sino también cualquier orden de sistema o cualquier aplicación que nos interese. José Manuel campos moreno y Miguel José guzmán munuera
  • 118. Pag. - 117 -Instalación y configuración de centralita VoIP basada en asteriskCONCLUSIONES El software libre es la panacea universal para la informática. Es el único medio que haceque el ser humano no tenga que reinventar la rueda una y mil veces. Es una perdida de recursos ytiempo el que si alguien quiere suministrar un procesador de textos, tenga que reescribir el códigodesde cero. Y eso por cada organización, empresa o particular que desee disponer de dichoprocesador de textos, creando además diferentes formatos incompatibles entre sí. Nosotros, sin tener que reinventar la rueda hemos podido crear una centralita telefónicade alto valor añadido, aprovechando el trabajo previo de personas que han cedido horas de sutiempo para generar esta maravilla de la computación que es Asterisk. Es por lo que por nuestraparte vamos a poner nuestro proyecto a disposición de la comunidad del software libre para quegracias a nuestras experiencias, podamos facilitar que otras personas no tengan que usar labarbaridad de horas de lectura y creación que hemos tenido que emplear nosotros para poner enmarcha un servidor Asterisk. Para que otras personas, no tengan que reinventar la rueda y puedandedicar su tiempo a sus aficiones, a su familia, a sus amigos o ¡¡¡ que diablos !!! a generar mássoftware libre que luego todos podamos disfrutar. José Manuel campos moreno y Miguel José guzmán munuera
  • 119. Pag. - 118 -Instalación y configuración de centralita VoIP basada en asteriskBIBLIOGRAFÍAhttp://www.genbeta.com/2007/09/29-cual-es-el-tamano-optimo-para-la-swap-en-linuxhttp://www.laespiral.org/articulos/chroot/entorno-chroot.htmlhttp://www.kriptopolis.org/instalar-xen-en-arch-linuxhttp://www.howtoforge.com/perfect_setup_xen3_debianhttp://linuxupc.upc.es/~kampa/blog/gnulinux/instalar-xen-en-gnudebian-etch/http://www.linuca.org/body.phtml?nIdNoticia=355&nIdPage=4http://julioduque.wordpress.com/2007/11/27/virtualizar-puerto-paralelo-en-xen/feed/http://es.wikipedia.org/wiki/E1http://es.wikipedia.org/wiki/RDSIhttp://www.escritura-uah.es/index.php?option=com_easyfaq&task=view&id=16http://www.voip-info.org/wiki-Asterisk+CLIhttp://www.ecualug.org/?q=2007/jul/29/forums/asterisk_clihttp://www.asteriskguru.com/tutorials/cli_cmd_14_page2.htmlhttp://www.pixelado.org/?p=36http://mdelgac.weblog.net/2007/10/12/escenario-de-configuracion-basica-de-asteriskpap2spa400/http://forum.asterisk-online.com.ar/phpBB2/viewtopic.php?p=560&sid=188d4322251373820ca88b291786b188http://www.3cx.es/voip-sip/telefonos-sip.phphttp://www.voipforo.com/asterisk/configuracion-extensions-conf.php José Manuel campos moreno y Miguel José guzmán munuera
  • 120. Pag. - 119 -Instalación y configuración de centralita VoIP basada en asteriskANEXO ISCRIPT DE COPIAS DE SEGURIDAD MEDIANTE RSYNC PARA SISTEMASWINDOWS#!/bin/sh#Copia un Recurso compartido SAMBA con montaje y desmontaje#Parámetros: Recurso CarpetaOrigen CarpetaDestinofunction CopiaCarpetas(){ echo "*** Comienza copia diaria de carpeta $1/$2 a $3" mount -t smbfs -o password= $1 /mnt rsync -a --delete /mnt/$2/ /backup2/$3 umount /mnt echo "*** Termina copia diaria de carpeta $1/$2 a $3"}function CopiaDiaria(){ #Insertar una linea por cada recurso compartido a copiar #PC MIGUEL CopiaCarpetas //172.16.0.241/AEAT . $1/miguel/AEAT CopiaCarpetas //172.16.0.241/mis_documentos . $1/miguel/mis_documentos #PC PEDRO CopiaCarpetas //172.16.0.242/Documents_and_settings . $1/pedro/Documents_and_settings}MiFecha=`date +%Y_%m_%d`echo "********************** BACKUP DEL $MiFecha ********************************" José Manuel campos moreno y Miguel José guzmán munuera
  • 121. Pag. - 120 -Instalación y configuración de centralita VoIP basada en asteriskdia=`date +%A`case "$dia" in lunes) CopiaDiaria lunes ;; martes) CopiaDiaria martes ;; miércoles) CopiaDiaria miércoles ;; jueves) CopiaDiaria jueves ;; viernes) CopiaDiaria viernes ;;esac José Manuel campos moreno y Miguel José guzmán munuera
  • 122. Pag. - 121 -Instalación y configuración de centralita VoIP basada en asteriskANEXO IISCRIPT DE COPIAS DE SEGURIDAD EN ARCHIVOS COMPRIMIDOS .TAR PARASISTEMAS LINUX#!/bin/bash#Directorios que queremos copiarETC=/etc/HOME=/home/almacen#Guardamos la fechaDIA=`date +%Y%m%d`#Destino, donde se almacenaran las copias de seguridadDEST=/backup2 /linuxecho “Creando copia completa”tar -cvzf $DEST/etc.$DIA.copia.tar.gz $ETCtar -cvzf $DEST/almacen.$DIA.copia.tar.gz $HOMEecho “Copia completa terminada”echo COPIA DE SEGURIDAD DEL $DIA DE $ETC $HOME CREADA | mail supervisor@proyectoasterisk.net José Manuel campos moreno y Miguel José guzmán munuera
  • 123. Pag. - 122 -Instalación y configuración de centralita VoIP basada en asteriskANEXO IIICONTENIDO DEL ARCHIVO ZAPATA.CONF[channels]language = esusecallingpres = yesusercallerid = yeshidecallerid = nocallwaiting = yesthreewaycalling = yestransfer = yesimmediate = yesfaxdetect = bothbusydetect = yesgroup=1context = iniciobusycount =7immediate = yessignalling = fxs_ksechocancel = yesechocancelwhenbridged=yesansweronpolarityswitch=yeshanguponpolarityswitch=yesrxgain = 0.5txgain = 1.0channel =>1 José Manuel campos moreno y Miguel José guzmán munuera
  • 124. Pag. - 123 -Instalación y configuración de centralita VoIP basada en asteriskANEXO IVCONTENIDO DEL ARCHIVO SIP.CONF[general]port = 5060bindaddr = 0.0.0.0context = iniciodisallow = allallow = alawlanguage = esuseragent = ASTERISK PBX PROYECTOtos = 0x18videosupport = yes[100]username = 100type = friend;secret =;callerid =context = inicio;nat = yes ; permitir que la extension se use desde internethost = dynamic ; permite que la extensión se use con todas ips;canreinvite = no;qualify = yes;call-limit = 10mailbox = 100[200]username = 200 José Manuel campos moreno y Miguel José guzmán munuera
  • 125. Pag. - 124 -Instalación y configuración de centralita VoIP basada en asterisktype = friendcontext = iniciohost = dynamicmailbox = 200[300]username = 300type = friendcontext = iniciohost = dynamicmailbox = 300[400]username = 400type = friendsecret = 400context = iniciohost = dynamicmailbox = 400 José Manuel campos moreno y Miguel José guzmán munuera
  • 126. Pag. - 125 -Instalación y configuración de centralita VoIP basada en asteriskANEXO VCONTENIDO DEL ARCHIVO IAX.CONF[general]bindport = 4569 ; puerto por defecto del protocolo IAXbindaddr = 0.0.0.0 ; dirección IP para la conexión (cualquiera)context = inicio ; contexto por defectolanguaje = esdelayreject = yesbandwitch = low ; usar codec con bajo consumo de ancho de bandaallow = all ; codecs que se usarán (permitimos todos)[700]username = 700type = friendsecret = 700context = iniciohost = dynamicnat = yes[777]username = 777type = friendqualify = yesnotransfer = yessecret = 777host = dynamiccontext = faxnat = nocallerid = “Fax” <777>allow = all José Manuel campos moreno y Miguel José guzmán munuera
  • 127. Pag. - 126 -Instalación y configuración de centralita VoIP basada en asteriskANEXO VICONTENIDO DEL ARCHIVO EXTENSIONS.CONF[general]static = yeswriteprotect = noautofallthrough = yesclearglobalvars = nopriorityjumping = nolanguage = es[inicio]include = entradainclude = horarioinclude = faxexten => s,1,Answer() ; descuelgaexten => s,n,Wait(3) ; espera 3 segundosexten => s,n,GotoifTime(22:01-09:59|mon-sat|*|*?horario,s,13) ;exten => s,n,GotoifTime(15:01-19:59|mon-sat|*|*?horario,s,13) ;exten => s,n,GotoifTime(00:00-23:59|sun|*|*?horario,s,16) ;exten => fax,1,Goto(fax,777,1) ; si es un fax marca la extensión 777[entrada] José Manuel campos moreno y Miguel José guzmán munuera
  • 128. Pag. - 127 -Instalación y configuración de centralita VoIP basada en asteriskinclude = salidaexten => s,n,Background(loc_inicio)exten => s,n,WaitExten(5)exten => s,n,Background(loc_inicio)exten => s,n,WaitExten(5)exten => s,n,Goto(100,1)exten => s,n,Hangup()exten => 1,1,Goto(100,1)exten => 2,1,Goto(200,1)exten => 3,1,Goto(300,1)exten => 4,1,Goto(400,1)[salida]include = buzondevoz; extensiones internasexten => 100,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y--%H-%M-%S--)})exten => 100,n,MixMonitor(ENTRADA-${horadellamada}-${CALLERID(num)}-${EXTEN}.wav)exten => 100,n,GotoifTime(22:01-17:59|mon-sat|*|*?horario,s,1)exten => 100,n,Dial(Sip/100,30,tTr)exten => 100,n,Voicemail,100exten => 100,n,Hangup()exten => 200,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y--%H-%M-%S--)})exten => 200,n,MixMonitor(ENTRADA-${horadellamada}-${CALLERID(num)}-${EXTEN}.wav)exten => 200,n,GotoifTime(15:01-09:59|mon-sat|*|*?horario,s,4)exten => 200,n,Dial(Sip/200,30,tTr) José Manuel campos moreno y Miguel José guzmán munuera
  • 129. Pag. - 128 -Instalación y configuración de centralita VoIP basada en asteriskexten => 200,n,Voicemail,200exten => 200,n,Hangup()exten => 300,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y--%H-%M-%S--)})exten => 300,n,MixMonitor(ENTRADA-${horadellamada}-${CALLERID(num)}-${EXTEN}.wav)exten => 300,n,GotoifTime(00:01-18:29|wed-sun|*|*?horario,s,7)exten => 300,n,Dial(Sip/300,30,tTr)exten => 300,n,Voicemail,300exten => 300,n,Hangup()exten => 400,1,Set(horadellamada=${STRFTIME(${EPOCH},,%d-%m-%y--%H-%M-%S--)})exten => 400,n,MixMonitor(ENTRADA-${horadellamada}-${CALLERID(num)}-${EXTEN}.wav)exten => 400,n,GotoifTime(00:00-23:59|mon-sun|*|*?horario,s,10)exten => 400,n,Dial(Sip/400,30,tTr)exten => 400,n,Voicemail,400exten => 400,n,Hangup(); llamadas a fijos y móvilesexten => _9XXXXXXXX,1,Dial(Zap/1/${EXTEN},,tTr)exten => _9XXXXXXXX,n,Hangupexten => _6XXXXXXXX,1,Dial(Zap/1/${EXTEN},,tr)exten => _6XXXXXXXX,n,Hangup; llamadas a teléfonos de policía, bomberos, emergenciasexten => _0ZZ,1,Dial(Zap/1/${EXTEN},,r)exten => _0ZZ,n,Hangup()exten => _1ZZ,1,Dial(Zap/1/${EXTEN},,r)exten => _1ZZ,n,Hangup(); llamadas a teléfonos superiores al 9xx y 8xx (teléfonos de pago por servicios)exten => _[89]0[0-289]XXXXXX,1,Dial(Zap/1/${EXTEN},, r) José Manuel campos moreno y Miguel José guzmán munuera
  • 130. Pag. - 129 -Instalación y configuración de centralita VoIP basada en asteriskexten => _[89]0[0-289]XXXXXX,n,Hangup(); llamadas internacionalesexten => _00.,1,Dial(Zap/1/${EXTEN},, r)exten => _00.,n,Hangup(); llamadas del sistema para grabar y escuchar locuciones de vozexten => 555,1,Answer()exten => 555,n,Record(locucion:gsm)exten => 555,n,Hangup()exten => 556,1,Playback(locucion)exten => 556,2,Hangup()[horario]exten => s,1,Answer() ; comienza josenoexten => s,2,Playback(joseno)exten => s,3,Hangup()exten => s,4,Answer() ; comienza miguelnoexten => s,5,Playback(miguelno)exten => s,6,Hangup()exten => s,7,Answer() ; comienza tutorianoexten => s,8,Playback(tutoriano)exten => s,9,Hangup()exten => s,10,Answer() ; comienza operadoresnoexten => s,11,Playback(operadoresno)exten => s,12,Hangup()exten => s,13,Answer() ; comienza horanoexten => s,14,Playback(horano)exten => s,15,Hangup()exten => s,16,Answer() ; comienza domingonoexten => s,17,Playback(domingono)exten => s,18,Hangup() José Manuel campos moreno y Miguel José guzmán munuera
  • 131. Pag. - 130 -Instalación y configuración de centralita VoIP basada en asterisk[fax]exten => 777,1,Answer()exten => 777,n,Dial(IAX2/777)exten => 777,n,Hangup()[buzondevoz]exten => 12345,1,VoicemailMain(${CALLERIDNUM})exten => 12345,2,Hangup() José Manuel campos moreno y Miguel José guzmán munuera
  • 132. Pag. - 131 -Instalación y configuración de centralita VoIP basada en asteriskANEXO VIICONTENIDO DEL ARCHIVO CDR_MYSQL.CONF[global]hostname=localhostdbname=asteriskpassword=user=root;port=3306;sock=/tmp/mysql.sock;userfield=1 José Manuel campos moreno y Miguel José guzmán munuera
  • 133. Pag. - 132 -Instalación y configuración de centralita VoIP basada en asteriskANEXO VIIICONTENIDO DEL ARCHIVO RES_MYSQL.CONF[general]dbhost = 127.0.0.1dbname = asteriskdbtable= cdrdbuser = rootdbpass =dbport = 3306dbsock = /tmp/mysql.sock José Manuel campos moreno y Miguel José guzmán munuera
  • 134. Pag. - 133 -Instalación y configuración de centralita VoIP basada en asteriskANEXO IXCONTENIDO DEL ARCHIVO VOICEMAIL.CONF[general]format=wav ; formato de grabación del audioattach=yes ; enviar mensajes de voz por correo electrónicomaxmessage=180mailcmd=/usr/sbin/sendmail -tserveremail=root@localhostfromstring="Centralita Asterisk de Proyecto Asterisk"emailsubject=[PBX] Mensaje número ${VM_MSGNUM} en buzón de voz.emailbody=nnn***** Este es un mensaje automático de la centralita de VoIP de *****nPROYECTOASTERISK *****nnnnt Tiene un mensaje nuevo en su buzón de voz: n Con elnumero ${VM_MSGNUM}. n Recibido desde el numero de teléfono ${VM_CALLERID}. n El${VM_DATE} . n Dicho mensaje se adjunta a este mail, pero no obstante debe llamar a su buzónde voz y eliminarlo tras su escucha. Si no conoce como acceder a su buzón de voz, por favorcontacte con el departamento al cargo.nnt Gracias.nnt[default]100 => 1234,100,100,jose@localhost200 => 1234,200,200,miguel@proyectoasterisk.net300 => 1234,300,300,tutoria@proyectoasterisk.net400 => 1234,400,400,operador@proyectoasterisk.net José Manuel campos moreno y Miguel José guzmán munuera
  • 135. Pag. - 134 -Instalación y configuración de centralita VoIP basada en asteriskANEXO XMANUAL DE INSTRUCCIONES DE CENTRALITA ASTERISK.Si suena el teléfono : Descolgar y hablar.Si queremos llamar : Descolgar, marcar y hablar (si nos lo cogen).Si deseamos transferir una llamada : Pulsamos # y el número de extensión donde deseamos pasar la llamada.Si deseamos grabar una llamada : Pulsamos *1 en cualquier momento durante la conversación.Si deseamos escuchar el buzón de voz : Pulsamos 12345, esperamos respuesta y seguimos instrucciones.Si deseamos grabar una locución para la centralita : Pulsamos 555, esperamos tono y declamamos la locución.Si deseamos escuchar la última locución grabada : Pulsamos 556 y escuchamos nuestra dulce voz. José Manuel campos moreno y Miguel José guzmán munuera

×