BAJANDO E INSTALANDO ASTERISK

BAJANDO E INSTALANDO ASTERISK

Bajando e instalando Asterisk

 

En este capítulo vamos abordar la instalación e ejecución de Asterisk.

2.1 Objetivos del capítulo 

2.2 Introducion

Este capítulo va ha ayudarlo a preparar su sistema para la instalación de Asterisk. Este funciona en muchas plataformas y sistemas operacionales, mas nosotros escojemos mantener las cosas simples y permanecer en una única plataforma y distribuición de Linux. Vamos usar la distribución de Debian en este libro. Las instruciones abajo pueden funcionar con otra distribuición, pero esto no fue testado. Asterisk es conocido por funcionar en la mayoria de las distribuciones. Testeamos en Debian, Suse 9.2 y en CentOS.

2.3 Hardware Mínimo

Asterisk puede ser intensivo en el uso del procesador, pues el usa el próprio processador de la pc para hazer el procesamiento de los canales de voz. Si usted estubiese construyendo un sistema complejo con carga elevada es importante entender este concepto.  Para construir su primer PABX un procesador compatible con Intel que sea mejor que un Pentium 300Mhz con 256 MB RAM es lo suficiente. Asterisk no requiere mucho espacio en disco, cerca de 100 MB compilados, más código fuente, voice-mail, prompts customizados y todos requieren espacio.

 
  Si usted usa apenas VOIP, ningun otro hardware es necesario. Se puede usar softfones como los de Counterpath (X-Lite) y hacer troncales con operadoras de voz sobre IP. Una lista de las operadoras de voz sobre IP en Brasil puede ser encontrada en:

http://www.voipcharges.com/providers.php?_filter=1&country_sid=31

 

Cuidado !

Algunas aplicaciones de Asterisk como el “Meetme” requieren una fuente de clock para proveer la temporización. Normalmente la fuente de clock de Asterisk es una placa TDM. Si su sistema no tiene una placa TDM, usted puede usar un driver ztdummy que usa el USB como fuente de temporizacion

 

Una pista: Usted puede usar una placa de fax/modem con chipset Intel 537 o MD3200, ella se comporta como una Digium X100P. Nosotros conseguimos algunas de estas placas por un precio bastante accesible, bien más bajo que importar las de Digium.

2.3.1 Montando su sistema

El hardware necesario para Asterisk no es muy complicado. Usted no precisa de una placa de vídeo sofisticada o periféricos. Puertos seriales, paralelos y USB pueden ser completamente desabilitados. Una buena placa de rede es escencial. Si usted estubiese usando una de las placas de Digium, seria bueno verificar las instruccciones de su placa-madre para determinar si los Slots PCI soportan estas placas. Muchas placas-madres compartiran interrupciones en slots PCI. Conflito de interrupciones es una fuente potencial de problemas de qualidad de áudio en Asterisk.  Una manera de liberar IRQs es desabilitar desde el BIOS todo lo que no fuera necesario.

2.3.2 IRQ compartidas

Muchas placas de telefonia como la X100P pueden generar grandes cantidades de interrupciones, atenderlas toma tiempo. Los drivers pueden no conseguir hacerlo a tiempo si otro dispositivo estubiese procesando la misma IRQ compartida y la linea de IRQ no pudra recibir otra interrupcion. Tiende a funcionar mejor en sistemas multiprocesados. En sistemas monoprocesados usted puede tener muchas perdidas de interrupcion y clock desfasado. Cualquiera  de las placas de Digium y otras placas de telefonia pueden estar sujetas al mismo problema. Como la entrega precisa de IRQs es una necesidad primária en telefonia, usted no debe compartir IRQs con nada. No siempre esto ocurre, pero usted debe prestar atención al problema. Se usted está usando un computador dedicado para  Asterisk, desabilite el mayor número de dispositivos que usted no va a usar.

La mayoria de las BIOS permite que usted manualmente designe las IRQs. Vayase hasta la BIOS y obserbe en la secion de IRQs. Es  posiblemente cierto que usted consiga configurar las interrupciones manualmente por slot.

 Una vez iniciado el computador, vea en /proc/interrupts las IRQs designadas.

 #

cat /proc/interrupts

CPU0

0: 41353058 XT-PIC timer

1: 1988 XT-PIC keyboard

2: 0 XT-PIC cascade

3: 413437739 XT-PIC wctdm <-- TDM400

4: 5721494 XT-PIC eth0

7: 413453581 XT-PIC wcfxo <-- X100P

8: 1 XT-PIC rtc

9: 413445182 XT-PIC wcfxo <-- X100P

12: 0 XT-PIC PS/2 Mouse

14: 179578 XT-PIC ide0

15: 3 XT-PIC ide1

NMI: 0

ERR: 0

 
Arriba usted puede ver las tres placas de Digium cada una en su IRQ. Si este fuera el caso, usted puede ir en frente e instalar los drivers de hardware. Si no fuera el caso, vuelva a la BIOS hasta que las placas no esten compartiendo las IRQs.

2.4 Escogiendo una distribucion de Linux.

Asterisk fue originalmente desarrollado para correr en Linux, Ahora puede ser usado en BSD y OS X. No entanto esto, las placas PSTN de Digium fueron diseñadas para trabajar con Linux i386. Si usted fuese nuevo con Asterisk procure usar Linux.

2.4.1 Requisitos de Linux

Várias distribuciones como RedHat, Mandrake, Fedora, Debian, Slackware y Gentoo fueron usadas con Asterisk.

2.4.2 Paquetes necesarios.

Antiguamente existian algunos paquetes que eran necesarios para instalar Asterisk como el readline y readline-devel que no son  necesarios hoy. No existe hardware especial tal como una placa de sonido y el único paquete necesario es el própio Asterisk. Si usted estubiera usando hardware de Digium o ztdummy, usted va  a precisar del paquete zaptel. El paquete zaptel es necesario para que algunas aplicaciones sean incluídas en tiempo de compilación. Si usted escoge compilar Asterisk y no el zaptel, pero descubre que esta faltando una aplicación relacionada al paquete zaptel (Como el Meetme()), usted tendra que compilar el zaptel y entonces sera necesario recompilar Asterisk para que la aplicación sea incluída.  Para interfaces T1 y E1 el paquete libpri es necesario. Bison es necesario para compilar el Asterisk. Los paquetes de desarrollo ncurses y ncurses-development son necesarios si usted quisiera construir nuevas herramientas (Como el astman). Las bibliotecas zlib y zlib-devel son necesarias ahora para compilar. Esto se debe a la adhesión del protocolo DUNDi (Distributed Universal Number Discovery).

2.5 Instalando Linux para atender al Asterisk.

 Usamos Debian con Kernel 2.6 para la instalación de Asterisk con  Linux. Escojemos esta distribuición por la gran aceptación que tiene y por ser una de las distribuciones soportadas por la Digium. Abajo siguen las instrucciones de instalación de Asterisk a partir do zero. Junto con el libro usted puede estar recibiendo un CD (opcional) que es la distribuición de Debian con el Asterisk. Si usted pidio el CD y desea instalar más rapidamente todos los paquetes y no quisiera conocer los detalles de compilación de Asterisk usted puede consultar el apendice B. Instalación rápida usando el VTS-CD. 

 

Passo 1: Coloque el CD de Debian el la lectora de cdrom e inicialize el booteo de su su PC desde alli.

 

Paso 2 : Selecione el idioma para la instalación.

 

Paso 3: Selecione el país de idioma selecionado anteriormente.

 

Paso 4: Escoja ahora el mapa de teclado correspondiente.

 

Paso 5: Escriba el nombre de host de la máquina.

 

Paso 6: Escriba el domínio al cual este equipo es parte.

 

Paso 7: Será hecha la configuración de particionamiento de disco del equipo, apenas confirme las opciones presentadas.

 

Cuidado !

Todos las datos de su disco rígido seran perdidos. Instale en un PC nuevo o que usted pueda formater !!!



Paso 8: Confirme que usted va a formatear todo el disco.

 

Paso 9: Confirme que todos los archivos estara en una particion.

 

Paso 10: Acepte y finalize las opciones de particionamiento.

 

Paso 11: Confirme nuevamente.

 

Paso 12: Acepte la instalación de GRUB.

 

Paso 13: La instalación está completa, digite <enter> para continuar.

 

Paso 14: Ahora la máquina se reiniciara, remueva el CD.

 

Paso 15: Siga las opciones presentadas para la configuraçión del horário.

 

Paso 16: Escoja América.

 

Paso 17: Escoja “Other”.

 

Paso 18: Escoja “São Paulo”.

 

Paso 19: Digite “asterisk” de contraseña para o usuário root.

 

Paso 20: Reescriba la contraseñaa para confirmar.

 

Paso 21: Cree un usuario llamado asterisk.

 

Paso 22: Escriba el nombre de usuario Asterisk nuevamente.

 

Paso 23: Escriba “asterisk” como contraseña para el usuário asterisk.

 

Paso 24: Reescriba la contraseña para confirmar.

 

Paso 25: Responda no a la pregunta para verificación del otro CD.

 

Paso 26: Yá que utilizaremos esta máquina como servidor Asterisk PBX, no es necesario selecionar ninguna opción de las presentadas aqui. Reescriba la contraseña para confirmar.

 

Paso 27: Apenas confirme la opcion presentada para la terminacion de las configuraciones de Debian

Paso 28: Use la cuenta Asterisk para el servidor de e-mail:

 

 

2.6 Preparando Debian para Asterisk.

La instalación de Debian está completa, vamos ahora instalar los paquetes necesarios para la instalación/compilación de los drivers de las placas zaptel y del propio Asterisk.

 Paso 1: Haga login como root

Paso 2: Agregar fuente para download de paquetes (/etc/apt/sources.list))

 

#apt-setup

 

Paso 3: Seleccionar ftp.

 

 

Paso 4: Seleccione Brasil.

 

Paso 5: Selecionar ftp.br.debian.org

 

Paso 6: Selecionar <no> para no insertar ninguna otra fuente.

 

Paso 7:  Instalar los Headers del Kernel en ejecución:

 

#apt-get install kernel-headers-`uname –r`

#ln -s /usr/src/kernel-headers-`uname -r` /usr/src/linux

 

Paso 8: Instalación de los paquetes necesarios para Asterisk:

#apt-get install bison openssl libssl-dev libasound2-dev libc6-dev libnewt-dev libncurses5-dev zlib1g-dev zlib-bin gcc make

2.7 Obteniendo y compilando Asterisk

Ahora que usted ya instalo Linux y las bibliotecas necesarias, vamos hacer la instalación de Asterisk.

2.7.1 Obteniendo las fuentes de Asterisk

Para obtener las fuentes de Asterisk y drivers de Zaptel para el uso con hardware de digium, usted debe bajar los paquetes de Digium. Baje los archivos usando el comando wget. Cree el diretório /usr/src se este no existe. En el momento de finalización de este libro estas eran las versiones corrientes, substituya los comandos abajo con los archivos de las versiones más actuales.

 

# cd /usr/src

 

Descomprima los archivos usando:

 

# tar –xzvf asterisk-1.2.5.tar.gz

# tar –xzvf libpri-1.2.2.tar.gz

# tar –xzvf asterisk-addons-1.2.2.tar.gz

# tar –xzvf asteriks-sounds-1.2.1.tar.gz

# tar –xzvf zaptel-1.2.4.tar.gz

 

2.7.2 Compilando los driver zaptel

Normalmente la compilación de los drivers zaptel es simple. En tanto que  pueden ocurrir casos donde usted no posea ninguna placa TDM que use el driver zaptel. Asterisk precisa de una fonte de temporización que normalmente sea provista por una placa con driver zaptel. Si esta placa no existe va ha ser preciso compilar el módulo ztdummy. El módulo ztdummy usa el relój de interface USB para dar temporizacion al Asterisk.

El driver ztdummy requiere que usted tenga una controladora USB UHCI. Si usted estubiera usando una controladora USB OHCI, usted tendra que usar el zaprtc. Usted puede verificar si su placa-madre tiene una controladora UHCI USB escribiendo lsmod en la linea de comandos.

# lsmod

Module Size Used by Not tainted

...

uhci-hcd 29725 0 [unused]

<-- usb-uhci

usbcore 105342 3uhci-hcd

 

El recuadro encima muestra los módulos USB cargados. Si usted ve una linea que dice usb-uhci. Esto mostra que el módulo UHCI está cargado y pronto para ser usado con el ztdummy.

2.7.2.1 Compilando el ztdummy

Para compilar ztdummy usted tiene que editar el archivo makefile localizado en su diretório /usr/src/zaptel. Encuentre la linea que contenga:

MODULES=zaptel tor2 torisa wcusb wcfxo wcfxs \ ztdynamic ztd-eth wct1xxp wct4xxp # ztdummy

 

Retire el comentário de modulo ztdummy removiendo el simbolo (#). Salve el archivo y haga la compilación normalmente. Una vez que usted tenga compilado con exito el ztdummy, usted puede cargarlo en memória usando el comando modprobe.

2.7.2.2  Compilando los drivers zaptel

Usted va ha necesitar compilar los módulos de Zaptel si usted planea usar el ztdummy o cualquier hardware de Digium. Los siguientes comandos iran a compilar e instalar módulos para cualquier hardwar de Digium que usted pueda tener instalado en su sistema.

Ejemplo: Compilando los drivers de Zaptel.

cd /usr/src/zaptel-1.2.4/

make clean

make install

Se usted usa cualquier distribución que use el kernel 2.6, usted precisa hacer un paso adicional antes de hacer el make install.
 

cd /usr/src/zaptel-1.2.4/

make clean

make linux26

make install

2.8 Compilando Asterisk 

Si usted ya compilo software antes, compilar Asterisk le va a  parecer simple. Corra los siguientes comandos para compilar e instalar Asterisk despues que usted tenga bajado este del servidor CVS.

cd /usr/src/libpri-1.2.2/

make clean

make

make install

 

cd /usr/src/asterisk-1.2.5/

make clean

make

make install

2.9 Iniciando y deteniendo Asterisk

Antes de usar Asterisk, usted debe crear los archivos de configuración. Más ahora la cantidad de configuraciones posibles sera muy amplia, apenas un pequeño conjunto es necesario para iniciar Asterisk con exito. Genere la configuración ejemplo de Asterisk usando:

cd /usr/src/asterisk-1.2.5/

make samples

 Con esta configuración mínima, ya es posible iniciar Asterisk con con exito

/usr/sbin/asterisk –vvvgc

 Use el comando stop now para parar Asterisk. Vea los comandos disponibles en la interface de linea de comando de Asterisk.

CLI>stop now

2.9.1 Parametros de linea de comando de Asterisk.

El proceso de ejecutar Asterisk es facil. Si Asterisk fuese corrido sin argumentos, el es lanzxdo como un “daemon” (Processo que espera conexiones en un puerto TCP o UDP). 

/sbin/asterisk

 Usted puede aceder a la consola de un proceso de Asterisk que ya este en ejecución usando el comando escrito debajo. Más de una consola puede ser conectada al Asterisk simultaneamente.

/sbin/asterisk –r

2.9.2 Los parametros disponíbles

-h: Help muestra las opciones de parametros de linea de comando.

-C <configfile>: Inicia Asterisk con archivo de configuración diferente del standard /etc/asterisk/asterisk.conf

-f: Foreground. Inicia Asterisk, pero no coloca un proceso en Background.

-c: Habilita el modo de consola. Inicia Asterisk en Foreground (adelante, implica la opción –f), con una consola con interface de linea de comando.

-r: Consola remota.

-n: Desabilita el color en consola.

-i: Pide los códigos criptográficos de inicialización.

-p: Corre como pseudo-realtime. Corre con prioridad de tiempo real.

-q: Modo silencioso suprime los mensages.

-v: Incluye mensages detalladas, (múltiplos v’s = más verbose).

-d: Habilita debug extra en todos los módulos

-g: Hace que Asterisk descargue el núcleo en caso de segment violation.

-x<cmd>: Ejecuta el comando <cmd> (válido solo con r)

2.10 Iniciando Asterisk en tiempo de inicialización.

 Vamos Ahora a preparar Asterisk para iniciar automaticamente en el boot de Linux, Escriba:

cd /etc/init.d

cp /usr/src/asterisk/contrib/init.d/rc.debian.asterisk ./asterisk

 Para actualizar los scripts de inicialización de Linux escriba:

update-rc.d asterisk defaults

 

2.11 Iniciando Asterisk usando un usuário diferente de root.

 Es más seguro ejecutar Asterisk con un usuario diferente del usuario root. En caso de falla de seguridad o ataque de tipo “buffer overflow” es más seguro que Asterisk haya sido iniciado con un usuario menos privilegiado.

 
Para alterar el usuario de ejecución de Asterisk:

1)    Edite el archivo asterisk: vi /etc/init.d/asterisk

2)    Descomente las siguintes lineas de arquivo removiendo el # del início de cada linea:

AST_USER="asterisk"

AST_GROUP="asterisk"

 3)    Para alterar los derechos de usuário asterisk en las tareas utilizadas para la ejecución de Asterisk, digite:
 

cd /

chown --recursive asterisk:asterisk /etc/asterisk

chmod --recursive u=rwX,g=rX,o= /etc/asterisk

chown --recursive asterisk:asterisk /var/lib/asterisk

chown --recursive asterisk:asterisk /var/log/asterisk

chown --recursive asterisk:asterisk /var/run/asterisk

chown --recursive asterisk:asterisk /var/spool/asterisk

chown --recursive asterisk: asterisk /dev/zap

chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk

chmod --recursive u=rwX,g=rX,o= /var/log/asterisk

chmod --recursive u=rwX,g=rX,o= /var/run/asterisk

chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk

chmod --recursive u=rwX,g=rX,o= /dev/zap

4)    Testeé las alteraciones realizadas escribiendo: /etc/init.d/asterisk start

2.12 Consideraciones sobre la instalación de Asterisk

2.12.1 Sistemas en produción

Si Asterisk fue instalado en un ambiente de produción, se debe prestar atención en el proyecto del sistema. El servidor debe ser optimizado de forma que las funciones de telefonia tengan prioridad sobre otros procesos de sistema. En la mayoria de los casos  Asterisk no debe correr otros procesos, principalmente si fueran intensivos en CPU. Si fueran necesarios procesos que utilizan mucha CPU como las bases de dados, por ejemplo, estos debem ser instalados eventualmente em un servidor separado.

De una forma general Asterisk es un sistema sensible a variaciones en la perfomance de la máquina. Esto significa que en un sistema en produción lo ideal es no usar interfaces gráficas como es KDE o GNOME.

2.12.2 Consideraciones sobre la red

Si usted va a usar telefonos IP, lo que es muy provable es importante que usted preste atención a algunas questiones sobre la red. Los protocolos de voz sobre IP son muy buenos y resistentes a perdidas de paquetes, atrasos y variaciones de atrasos. Entretanto si usted abusa, la calidad de voz no sera buena. Solo es posíble garantizar la calidad de voz utilizando QoS extremo-a-extremo, lo que es inviable principalmente en telefonia sobre Internet. De esta forma es que estan las siguientes recomendaciones.

Implemente QoS extremo-a-extremo siempre que puera. Lo mismo en switches de 100Mbps donde es raro tener un congestionamento, vale a pena, un vírus o unaa condicion de red inesperada puede hechar todo a perder.

Sea conservador, use, por ejemplo, una conexion de Internet exclusiva para softfones y telefonos IP. En la mayoria de las veces los backbones tienen bajo trafico, pero una conexion de acesso es congestionada por los própio usuario com downloads, navegacion, e-mail entre otras cosas.

Evite hubs de 10 y 100 Mbps, las coliciones en estos equipamientos, causan variacion de atraso (jitter). Jitter es uno de los peores inemigos de telefonia IP.

Oriente los usuarios de telefonia sobre Internet donde no es posible garantizar la calidad. Mantener las expectativas en un nível realista evita problemas futuros y comentários como “Si yo hubiese que era asi....”.

Cuando usa una red IP privada con equipamentos que soportan QoS extremo-a-extremo, si la calidad de voz estubiese baja, verifique inmediatamente, es provable que exista algun problema en su red. Con QoS bien implementado la calidad de voz es perfecta, “sin disculpas”.

2.13 Sumário

En este capítulo usted aprendió que el requisito mínimo de hardware de Asterisk es un Pentium 300 Mhz con 256 MB RAM y poco más de 100 MB de espacio libre en disco para instalar  Asterisk. Por fin aprendimos a inicializar Asterisk con un usuario diferente de “root”.

2.14 Questionário 

1. Cual es la configuración mínima para Asterisk.

 

 

 

2. Las placas de telefonia para Asterisk tienen un procesador própio (DSP), no siendo necesario de mucha CPU del servidor.

  • Correcto
  • Incorrecto

3. Para que la telefonia IP funcione con perfección es necesario que la red posea QoS extremo-a-extremo.

  • Correcto
  • Incorrecto

4. Es posible obtener una buena calidad de voz en una red que no este congestionada con switches de 100 Mbps.

  • Correcto
  • Incorrecto

5. Liste abajo las bibliotecas necesarias para compilar Asterisk.
 

 

 6. Si usted no tiene una placa zaptel, usted precisa una fuente de tiempo. El driver ztdummy desempeña este papel aprovechando una biblioteca USB. Esto es necesario, pues algunas aplicaciones como  _______  y ______ precisan de una referencia de tiempo.

7. Cuando usted hce una instalación de Asterisk, lo mejor es no instalar los paquetes gráficos como KDE y GNOME, pues Asterisk es sensible a questiones de CPU y las interfaces gráfica roban muchos ciclos de CPU al servidor.

  • Correcto
  • Incorrecto

8. Los archivos de configuración de Asterisk se encuentran en ____________________.

 9.  Para instalar los archivos de configuración de ejemplo usted precisa ejecutar los siguientes comandos.

 

 

 
10. Porque es importante iniciar Asterisk con un usuario diferente de root.