asterisk-elastix-trixbox-linux

0 Desde cero

Este documento te mostrara paso a paso como instalar varios programas para convertir tu maquina de linux en un servidor útil, que puede ser utilizado en casa, si tienes mas de una maquina o en una empresa.

El servidor te proveerá de varios servicios;

Windows File sharing (Servidor de archivos) - Telefonía IP - Servidor de WEB, Servidor de MySQL, Servidor de email , etc.

El poner todos estos servicios juntos en una sola maquina no es recomendado, al menos no en un ambiente comercial, pero esto sirve para demostrar lo fácil que es reemplazar los servidores de NT sin preocuparte tanto de los virus disponibles para Windows. :0)

0.1 PuTTy

Personalmente me gusta usar el programa PuTTY para conectarme remotamente a las maquinas de Linux – puedes bajarlo desde acá : Bajar Putty

1 Trixbox - ElastiX

Trixbox reemplaza al proyecto Asterisk@home, la imagen puede ser bajada aqui

Te recomendaria instalar Trixbox directamente del ISO, de esta manera tienes el sistema andando en cuestion de minutos y le agregas los paquetes extras si quieres.

Para instalar el ISO, simplemente pone el CD en tu Servidor, ten cuidado ya que formateara todos los discos duros que encuentre en tu maquina.

Cuando instales el ISO, te conectas desde otra maquina usando Explorer o Firefox http://ipdetuservidor te pedira el usuario y la clave, los cuales por defecto son

Usuario maint y la clave es password Lo primero que tienes que hacer es ir a System Administration --> selecciona FreePBX ---> Tools ---> Module Admin (Selecciona todos los modulos que desees tener) y presiona SUBMIT

ElastiX

Elastix es otro proyecto similar al Trixbox, pero con otros agregados, personalmente me gustan los dos.

Muchas de las cosas en esta página pueden ser usadas en los dos.

Un par de cosas básicas que no están incluidas en Elastix pero, fáciles de agregar son nano para editar, rsync para sincronizar con otras maquinas, y webmin para configurar tu servidor remotamente, smartools para ver el estado de los discos duros, Sendmail para enviar emails.

Para instalar estas herramientas

yum install rsync nano webmin smartmontools sendmail -y

En caso que webmin no se instale, ya que en este momento webmin no está en el repositorio de Elastix , puedes instalarlo directamente de esta forma

mkdir /usr/src/redhat

mkdir /usr/src/redhat/SOURCES

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.530/webmin-1.530-1.noarch.rpm && rpm -Uvh webmin-* && rm webmin-* -f

Esto ya es obsoleto pero lo dejo como referencia para instalar, descomprimir, etc

Asterisk@home fue creado para simplificar la administracion de Asterisk. hay dos formas de instalarlo,

1 Bajando el ISO, el mismo es el mas recomendado ya que instala todo sin tener que configurar nada durante la instalacion, el unico problema es que las personas que no tienen experiencia en Linux no van a tener GUI

2 La otra forma, si ya tienes instalado Centos 4.2 puedes bajar el paquete de la siguiente manera.

Abre tu terminal y copia/pega lo siguiente;

wget http://easynews.dl.sourceforge.net/sourceforge/asteriskathome/asteriskathome-2.8.tar.gz

mkdir /var/aah_load

cp asteriskathome-2.8.tar.gz /var/aah_load

cd /var/aah_load

tar xvfz asteriskathome-2.8.tar.gz

./install.sh

2 Samba

Si copias el contenido del cuadro, instalaras Samba

yum install samba -y

Tambien Puedes instalar varios paquetes en una linea si lo deseas Ej;

yum install webmin samba -y

Esto compartirá dos directorios los cuales podrán ser accedidos por otras maquinas de Windows o Linux

Corre esto para crear el directorio que vas a compartir, la segunda linea no te la recomiendo en un servidor de produccion, o al menos no en el mismo directorio de /var/www

en este caso solo esta para mostrar que puedes ver los archivos de tu servidor Appache con control completo del directorio y archivos, practico si quieres editar tus paginas desde una maquina de windows.

cd /etc/samba

cp smb.conf smb.viejo

rm smb.conf -f

wget http://pezoa.com/Asterisk/smb.conf

Esto le dara acceso al usuario ROOT o a cualquier usuario del sistema linux

smbpasswd -a root

Para correr samba

/etc/rc.d/init.d/smb start

Para parar samba

/etc/rc.d/init.d/smb stop

2.1 Conectar desde windows o Linux

Primero tendras que saber como obtener tu IP

En windows ipconfig

En Linux ifconfig

En Windows Explorer copia y pega esto \\192.168.100.10

En linux usa Konqueror o Firefox smb://192.168.100.10

Si todo esta bien podrás ver dos directorios, ServerRoot (lo configure para leer solamente, ya que es un riesgo dar acceso a esto)

y el otro directorio es WEB, (con acceso completo a todo el contenido del área de web)

map

Desde windows podras configurar una letra, en este caso X

NET USE X: \\192.168.100.10\web /persistent:yes

  • Esta es una configuracion basica, la idea es dar funcionalidad sin ir demasiado en detalles, como en seguridad, o como comenzar el servidor de Samba automaticamente ...
  • Si quieres modificar el servidor de samba tienes que cambiar los parametros de smb.conf localizado en /etc/samba/smb.conf

3 Webmin

Webmin es una herramienta para configurar tu sistema Linux, el mismo tiene una interfaz Web que te permite configurar la mayor parte del sistema operativo.

Muy útil para configurar Samba, Apache, y para controlar los programas que quieres que comiencen automáticamente, tambien para crear usuarios.

.

3.1 Instalar Webmin

yum install webmin -y

Tambien Puedes instalar varios paquetes en una linea si lo deseas Ej;

yum install webmin samba -y

Para acceder el mismo

http://TUSERVIDOR:10000/

O

https://TUSERVIDOR:10000/

  • Esto que esta en rojo es obsoleto, pero puedes usarlo como referencia para versiones anteriores.
  • Puedes instalar webmin directamente usando yum install webmin el problema con esto es que el paquete original no esta configurado para Centos 4.2 te instalara

correctamente, pero tendras que modicar cosas como, la ubicacion de los archivos instalados por defecto de apache y otros programas, para evitar todo esto simplemente

modifica el archivo que le indica a yum donde buscar programas

Encuentra esto y abrelo con un editor /etc/yum.repos.d/CentOS-Base.repo

Al final del documento copia y pega esto (linea por linea, no entero porque te va a deformar todo si usas Internet Explorer)

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=0

enabled=1

Corre esto usando el Terminal rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

4 Conferencias no andan

Te recomendaria que luego del rebote hagas lo siguiente para resolver problemas con las conferencias.

rebuild_zaptel

genzaptelconf

5 Como cambiar el IP en Asterisk / Centos / Linux

Para cambiar el IP en centos, desde el commando tienes que tipear netconfig

Le pones los valores correspondientes a tu red y aprietas OK, y rebota

6 Varios comandos utiles para Asterisk@home o Trixbox

yum install kernel-utils.i386 (Esto instalara utilitarios para revisar tus discos rigidos)

Algunos de estos ya son obsoletos.

Luego de instalar kernel-utils puedes usar smartctl -a /dev/hda o para simplificar las cosas puedes usarlo desde el Webmin (con esto podras ver el stado de tu disco)

config set (Cambia la hora zona etc)

netconfig (Configura la placa de network)

genzaptelconf (autoconfigura la placa Zaptel )

bundle-crm (backup CRM para correr en otra maquina)

restore-aah (rechttp://www.voip-info.org/obrar de un backup)

install-ZAPHFC (instala soporte para las placas HFC ISDN )

install-AVMB1ISDN (instala soporte para las placas AVB B1 ISDN )

install-EiconDiva (instala soporte para las placas Eicon Diva ISDN )

install-pdf (instala soporte para enviar PDFs o faxes)

passwd-maint (esto es para cambiar la clave del usuario maint)

passwd-amp (esto es para cambiar la clave de AMP)

passwd-meetme (esto es para cambiar la clave MeetMe )

passwd (esto es para cambiar la clave de ROOT) - se usa de esta manera passwd root

passwd admin (esto es para cambiar la clave de admin , esta cuenta es usada para revisar email)

setup-dhcp ( para configurar el servidor DHCP cuidado, que si ya tienes DHCP activado en otra maquina no necesitas de esto)

asterisk -r Asterisk CLI

yum -y update (para poner al dia tu Centos, no te lo recomendaria si ya tienes Asterisk instalado, ya que tendras que reconfigurar tu placa Zaptel )

dmesg para obtener info de tu maquina (bastante util)

6.1 Clientes

Los mejores clientes son Hardware no Software, yo uso los Sipuras de Linksys , hay varias otras alternativas, en mi oficina tengo un Polycom (foto abajo) y en casa uso ATAs de Linksys, los que no me gustan mucho son los USB, ya que usan software desde tu PC,

y la calidad en las llamadas al usar Software no es muy buena.

Clientes SIP : uno de los mejores es el X-ten, no se si seguirá siendo gratis o no, por el momento se puede bajar desde aqui

Clientes IAX2 - He usado el programa (Kiax) puedes bajarlo desde aqui para Windows o Linux

7 Para Copiar o sincronizar directorios/archivos entre diferentes servidores usando RSYNC

Hay varias formas de copiar directorios de una maquia a otra, scp, unison, rsync, etc, en este caso te mostrare como usar rsync

Esto sincroniza desde la maquina que tiene el directorio Vol1 y lo pone en otra maquina linux en la red local , en este caso 192.168.1.102

rsync -rtvaz --delete /var/www/Vol1 192.168.1.102:/var/www > /var/rsync.txt

Mas en detalle RSYNC

Si no tienes instalado el RSYNC lo puedes instalar poniendo

yum install rsync.i386 -y

O para ver que tipo de RSYNC es apropiado para tu maquina

yum search rsync

8 Placas FXO

Si consigues una placa de las que venden en Ebay por unos $15 Dollares, puedes hacer que tu servidor de Asterisk pueda hacer o recibir llamadas en tu línea telefónica.

Puedes usar esto en caso que tengas una de estas placas

cd /etc/sysconfig

cp zaptel zaptel.viejo

rm zaptel -r

wget http://pezoa.com/Asterisk/zaptel

Lo único que hace esto, es activar la placa FXO, seria mejor que la edites tu mismo removiendo el # del modulo que quieras usar, lo anterior seria practico si tienes que configurar varios servidores al mismo tiempo

Este es el lugar donde encontraras esto /etc/sysconfig/zaptel y si usas windows para editar \\IP_DEL_SERVIDOR\ServerRoot\etc\sysconfig\zaptel

9 Panico Kernel (kernel panic)

Para resolver este problema, usa esto

anda a

cd /etc/rc6.d

Edita el archivo

K92zaptel En la linea 115 a la 123 simplemente ponele # en frente y listo.

Si no tienes ganas de editar copia y pega esto en tu terminal

cd /etc/rc6.d

cp K92zaptel K92zaptel.old

rm K92zaptel -r

wget http://pezoa.com/Asterisk/K92zaptel

10 Configurar SIP en un NAT

Editar sip_nat.conf

nat=yes

externhost=ElNombreDeTuDominio.com

localnet=192.168.1.0/255.255.255.0

externrefresh=10

Esta parte no hace falta pero puede ser util como test solamente

Editar sip_additional.conf

[6409]

;type=friend

secret=****

record_out=Adhoc

record_in=Adhoc

qualify=yes

port=5060

nat=yes

host=dynamic

dtmfmode=rfc2833

dial=SIP/6409

context=from-internal

canreinvite=no

callerid=device <6409>

externip=xxx.xxx.xxx.xxx (el IP publico del cliente)

disallow=all

allow=ulaw

allow=gsm

type=peer

insecure=very

11 Puertos del firewall / Firewall ports

RTP, MGCP, IAX, IAX2, SIP, FLASH_OP, Estos puertos son los básicos para Asterisk, pero también tienes que agregar el puerto 80 para el servidor de Web, 22 si quieres conectarte a la Terminal, etc.

FLASHOP 4445 TCP/UDP --> Int IP server

RTP 10000-20000 UDP --> Int IP server

SIP 5030 5092 UDP --> Int IP server

IAX 4550 4570 UDP --> Int IP server

Para Broadvoice 68-69 UDP --> Int IP server

12 Cambiar IP de Centos/Elastix/Trixbox desde la consola

Hay varias formas de hacer esto, la mas fácil es usar Webmin, pero es bueno conocer las otras formas;

Si deseas asignarle un valor por tu cuenta puedes editar un par de archivos,

ifconfig -a

ifconfig eth0

Para ver el IP que esta configurado

Ver la configuracion de eth0 o eth1 si tienes mas de una placa de red

Editar ifcfg-eth0 o ifcfg-eth1 si tienes mas de una placa

cat /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

HWADDR=00:1e:37:3c:d7:7e

IPADDR=192.168.1.10

NETMASK=255.255.255.0

NETWORK=192.168.1.0

ONBOOT=yes

TYPE=Ethernet

Para ver la configuracion

Editar la configuracion

Pone algo similar a esto, si quieres que el servidor tenga el IP 192.168.1.10

Lo que marque en rojo no lo copies, deja lo que ya esta en tu configuracion.

Editar lo siguiente para gateway y nombre de la maquina

cat /etc/sysconfig/network

nano /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=elastix1.pezoa.com

GATEWAY=192.168.1.1

Para ver el archivo

Editar y guardar la configuracion

Le pones el nombre del servidor, y el ip del gateway, el IP del ejemplo es uno de los mas comunes en redes pequeñas

Editar DNS o tu maquina solo tendra acceso a la red local

cat /etc/resolv.conf

nano /etc/resolv.conf

search pezoa.com

nameserver 192.168.1.1

nameserver 67.11.20.32

Para ver resolv.conf

Editar resolv.conf

La primera linea no es necesaria, dependiendo de tu red.

Luego el name server es el valor de tu DNS, en redes pequeñas casi siempre es igual al gateway.

Puedes poner mas si conoces los valores de DNS que te asigna tu proveedor de internet.

service network restart

- reiniciara la red

La forma mas fácil de hacer esto es usando el comando sytem-config-network , si no lo tienes lo puedes instalar asi yum install sytem-config-network -y

Luego de configurar, reinicia la red con este comando

/etc/init.d/network restart

Otra forma de cambiar el IP es asi (no es permanente);

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up

13 KDE en Trixbox Interfaz grafica en Trixbox (Linux Centos)

Esto no te lo recomiendo en un ambiente de producción, pero hace la vida más fácil, o simplemente úsalo para configurar y cuando estés listo lo cierras

El proceso es bastante sencillo, baja los paquetes básicos y algunos otros que son útiles para editar, controlar, quemar etc.

Antes de correr los comandos tendras que modificar el repositorio de Centos

Encuentra esto y abrelo con un editor /etc/yum.repos.d/CentOS-Base.repo

Al final del documento copia y pega lo siguiente tal y como esta abajo:

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=0

enabled=1

Luego corre lo siguiente en tu terminal

Con el siguiente comando lo configuras a una resolución basica de 1024 X 768 para ver si anda bien

Reinicia la maquina y pones lo siguiente cuando quieras usar la interfaz grafica

También puedes usar XFCE el cual no usa tantos recursos como el KDE pero también es interesante y fácil de usar

yum install kdebase kdeutils firefox system-config* nedit vim-X11 vim-enhanced yum-utils yum-plugin-fastestmirror yum-plugin-protectbase yumex partimage* -y

system-config-display

startx

yum install xf* -y

system-config-display

startxfce4

* Si Quieres agregar otras cosas utiles como para ver y/o copiar DVDs, quemar CD / DVD o simplemente para tocar tu musica en MP3 o formato preferido

yum install -y vobcopy libdvdplay-devel libdvdplay ogle transcode xvidcore mplayer vlc k3b mencoder