Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar Asterisk en Centos

VoIP es un protocolo que revoluciono las llamadas telefónicas dándoles un vuelco en cuanto a costos, formas de implementarla y principalmente en permitir ya poder usarse por cualquiera, sea una pequeña, mediana, gran empresa o una persona particular. Uno de los impulsores es Digium, creador de Asterisk, el cual hoy les mostrare como instalar paso a paso en un servidor Linux Centos 6.4.

Requerimientos

  • Servidor Linux Centos 6.4
  • Red ethernet preferiblemente certificada minimo categoria 5e (WiFi no es recomendable por el ancho de banda necesitado)
  • Mínimo una linea telefónica para recibir o hacer llamadas externas

-Instalamos dependencias

yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel

-Como usaremos los fuentes de asterisk para compilarlos, los colocaremos en /usr/src. Descargamos los paquetes a compilar
cd /usr/src/
wget -c http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget -c http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget  -c http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz

-Descomprimimos los paquetes
tar xzvf asterisk-11-current.tar.gz
tar xzvf dahdi-linux-complete-current.tar.gz
tar xzvf libpri-1.4-current.tar.gz

-Compilamos e instalamos dahdi
cd dahdi-linux-complete-2.7.0.1+2.7.0.1/

make
make install
make config

-Compilamos e instalamos libpri
cd ..
cd libpri-1.4.14/

make
make install

-Compilamos e instalamos asterisk. En el paso del menuselect se nos da la posibilidad de activar o desactivar módulos dependiendo de nuestras necesidades. Por lo general los defaults son suficientes. En este caso estoy usando un Centos de 64 bits, si instalas en uno de 32 bits, el camino del libdir seria /usr/lib

cd ..
cd asterisk-11.6.0/

./configure --libdir=/usr/lib64
make menuselect
DriveMeca instalando Asterisk en un servidor Linux Centos 6.4
Por default vienen los sonidos en English, debemos activar los de Español (ES)

make
make install
make samples

-Directorios a tener en cuenta donde encontraemos los archivos de asterisk instalados
/etc/asterisk
/var/lib/asterisk
/usr/lib/asterisk/modules

-Iniciamos servicios
service dahdi start
chkconfig dahdi on
service asterisk start
chkconfig asterisk on

-Comandos útiles de asterisk

asterisk -rvvvvv
Asterisk 11.6.0, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 11.6.0 currently running on cenpg (pid = 20945)
cenpg*CLI>

-Si presionamos la Tecla TAB o ? nos mostrara los comandos que podemos ejecutar en el CLI

cenpg*CLI> 
!              acl            ael            agent          agi            aoc            calendar       cc             cdr            cel            
channel        cli            confbridge     config         console        core           data           database       devstate       dialplan       
dnsmgr         dundi          event          fax            features       file           group          hangup         help           http           
iax2           indication     keys           local          logger         manager        mgcp           minivm         mixmonitor     module         
moh            no             originate      parkedcalls    phoneprov      presencestate  pri            queue          realtime       reload         
rtcp           rtp            say            sip            skinny         stun           timing         transcoder     udptl          ulimit         
unistim        voicemail

Y ya tenemos nuestro PBX instalado; siguiente paso, crear troncales, conectar lineas telefónicas, extensiones, etc lo que dejaremos para futuros artículos.
Tienes una PBX? Es de un fabricante o ya usas Asterisk? Piensas implementar Asterisk pronto?
Si te resulto útil este articulo, se social, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar SmokePing en Centos

Necesitas una herramienta que te muestre de forma gráfica la latencia de tu red?. Te presento SmokePing, una magnifica aplicación del creador de RRDtool escrita en perl y con una variedad de plugins para poder monitorear latencia en una fácil interfaz web que hoy te mostrare como instalar paso a paso en un servidor Linux Centos 6.4.

Requerimientos


-Instalamos repositorio epel de Fedora para algunos paquetes que no los tiene Centos

rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install yum-priorities

-Editamos para quitarle prioridad a los rpm de epel
vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

-Instalamos dependencias
yum install openssl-devel popt-devel libidn-devel curl bind-utils openssh-server mod_fcgid
yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-RRD-Simple perl-CGI-SpeedyCGI perl-ExtUtils-MakeMaker perl-Net-OpenSSH

-Instalamos fping
wget -c http://www.fping.org/dist/fping-3.8.tar.gz

tar xzvf fping-3.8.tar.gz
cd fping-3.8

-Compilamos
./configure
make
make install

-Instalamos echoping
wget -c http://downloads.sourceforge.net/project/echoping/echoping/6.0.2/echoping-6.0.2.tar.gz

tar xzvf echoping-6.0.2.tar.gz
cd echoping-6.0.2

./configure
make
make install

-Activamos sus librerias
vi /etc/ld.so.conf
/usr/local/lib/echoping

-Activamos el cambio
ldconfig

-Descargamos smokeping
wget -c http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz
tar xzvf smokeping-2.6.9.tar.gz

-Descargamos e instalamos módulos de perl necesitados
cd smokeping-2.6.9/setup/
./build-perl-modules.sh

-Compilamos
./configure --prefix=/opt/smokeping
make install

-Creamos algunos directorios que faltan y modificamos los ficheros de configuracion
cd /opt/smokeping
mkdir data var cache
cd etc/
for foo in *.dist; do cp $foo `basename $foo .dist`; done

-Las pruebas hay muchas formas de configurarlas como se explica en la ayuda de la aplicación (bastante larga por cierto) o podemos usar parte de los ejemplos que también ahí podemos consultar. Por el momento para esta prueba mostraremos algunas. Editamos

vi config

owner    = DriveMeca
contact  = pepe@gmail.com
mailhost = localhost
cgiurl   = http://192.168.1.167/smokeping/smokeping.cgi
imgcache = /opt/smokeping/cache
datadir  = /opt/smokeping/data
piddir  = /opt/smokeping/var
smokemail = /opt/smokeping/etc/smokemail.dist
tmail = /opt/smokeping/etc/tmail.dist
*** Alerts ***
to = drivemeca@test.com
from = smokealert@test.com

*** Probes ***

+ DNS
 binary = /usr/bin/dig
 server = 8.8.8.8
 pings = 3
 forks = 5

+ FPing
binary = /usr/local/sbin/fping

+ EchoPingHttp
 binary = /usr/local/bin/echoping
 pings = 5
 forks = 5
 offset = 50%
 ipversion = 4
 url = /

+ EchoPingHttps
 binary = /usr/local/bin/echoping
 pings = 5
 forks = 5
 offset = 50%
 ipversion = 4

+ Curl
 binary = /usr/bin/curl
 pings = 5

urlformat = http://%host%/

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of test.com

 + network
 menu = Net latency
 title = Network latency (ICMP pings)

 ++ www1
 host = www.google.com

 + services
 menu = Service latency
 title = Service latency (DNS, HTTP)

 ++ DNS
 probe = DNS
 menu = DNS latency
 title = Service latency (DNS)

 +++ www1
 host = www.google.com

 + HTTP
 probe = Curl
 menu = http full page
 title = HTTP latency

 ++ www1
 host = www.google.com

-Creamos un enlace simbolico a la carpeta cache
ln -s /opt/smokeping/cache /opt/smokeping/htdocs/cache

-Nos creamos un conf para apache con pedido de usuario y contraseña
vi /etc/httpd/conf.d/smokeping.conf
ScriptAlias /smokeping/smokeping.cgi "/opt/smokeping/htdocs/smokeping.fcgi.dist"
Alias /smokeping/ "/opt/smokeping/htdocs/"

<Directory "/opt/smokeping/htdocs">
        Options FollowSymLinks
        AuthType Basic
        AuthName "Smokeping"
        AuthBasicProvider file
        AuthUserFile /var/www/cgi-bin/htpasswords
        Require valid-user
</Directory>

-Nos creamos el usuario y su contraseña (podemos agregar los que necesitemos)
htpasswd -c /var/www/cgi-bin/htpasswords drivemeca
New password: 
Re-type new password: 
Adding password for user drivemeca

-Cambiamos permisos
chmod 600 /var/www/cgi-bin/htpasswords
chown apache.apache /var/www/cgi-bin/htpasswords
chmod 600 /opt/smokeping/etc/smokeping_secrets.dist
chown -R apache.apache /opt/smokeping/

-Creamos un script de inicio para SmokePing

vi /etc/init.d/smokeping
#!/bin/sh
#
# smokeping    This starts and stops the smokeping daemon
# chkconfig: 345 98 11
# description: Start/Stop the smokeping daemon
# processname: smokeping
# Source function library.
. /etc/rc.d/init.d/functions

SMOKEPING=/opt/smokeping/bin/smokeping
LOCKF=/var/lock/subsys/smokeping
CONFIG=/opt/smokeping/etc/config

[ -f $SMOKEPING ] || exit 0
[ -f $CONFIG ] || exit 0

RETVAL=0

case "$1" in
  start)
        echo -n $"Starting SMOKEPING: "
        daemon $SMOKEPING
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $LOCKF
        ;;
  stop)
        echo -n $"Stopping SMOKEPING: "
        killproc $SMOKEPING
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $LOCKF
        ;;
  status)
        status smokeping
        RETVAL=$?
        ;;
  reload)
        echo -n $"Reloading SMOKEPING: "
        killproc $SMOKEPING -HUP
        RETVAL=$?
        echo
        ;;
  restart)
        $0 stop
        sleep 3
        $0 start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f $LOCKF ]; then
                $0 stop
                sleep 3
                $0 start
                RETVAL=$?
        fi
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
        exit 1
esac

-Activamos permisos
chmod 755 /etc/init.d/smokeping

-Ejecutamos los servicios de httpd y SmokePing
service httpd start
chkconfig httpd on
service smokeping start
chkconfig smokeping on

-Nos logeamos con el usuario creado en el URL de nuestro servidor, en este caso http://192.168.1.167/smokeping/smokeping.cgi
DriveMeca instalando SmokePing en Centos

-En el menu de la izquierda veremos los links de las pruebas que configuramos en el config
DriveMeca instalando SmokePing en Centos

-En la medida que pase el tiempo, los valores irán apareciendo
DriveMeca instalando SmokePing en Centos

Te resulta útil SmokePing? Ya lo usas o planeas implementarlo?
Si te resulto útil este articulo, se social, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar RRDtool en Centos 6.4

RRD (Round Robin Database) es una aplicación opensource para almacenar y mostrar gráficos de series de tiempo que hace mucho tiempo se volvió el estándar de uso para otras aplicaciones en perl, python, ruby, etc. Aunque es muy útil, su instalación a veces es algo compleja al depender de varias dependencias pero no te preocupes, hoy les mostrare como instalar rrdtool en Linux Centos 6.4 paso a paso.

Requerimientos

  • Linux Centos 6.4 (para este ejemplo de 64 bits)
  • Apache web server para visualizar los graficos

-Instalamos dependencias

yum install gcc make cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel httpd wget perl-ExtUtils-MakeMaker xorg-x11-fonts*

-Activamos variables de entorno

BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/opt/rrdtool

-Creamos directorio temporal y nos pasamos a el

mkdir -p $BUILD_DIR
cd $BUILD_DIR

-Descargamos la ultima versión, la descomprimimos y entramos a su directorio

wget -c http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
tar xzvf rrdtool.tar.gz
cd rrdtool-1.4.8/

-Activamos variable de entorno de pkgconfig, en caso de que estés instalando en un servidor Linux Centos de 32 bits, el path seria /usr/lib/pkgconfig/

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig/

-Comenzamos la configuración

./configure --prefix=$INSTALL_DIR

-Compilamos e instalamos

make
make install



-Verificamos nos haya quedado bien ejecutando uno de los ejemplos que viene en la aplicación

cd /opt/rrdtool/share/rrdtool/examples/
./stripes.pl
cp stripes.png /var/www/html/

-Iniciamos Apache para poder ver el gráfico del ejemplo

service httpd start

-Nos conectamos desde un browser para ver el gráfico, en este caso al URL http://192.168.1.167/stripes.png
DriveMeca instalando rrdtool en Centos 6.4

-Otro gráfico de ejemplo
DriveMeca instalando rrdtool en Centos 6.4

Seguramente ya haz oído hablar de rrdtool y es posible que ya alguna aplicación que usas lo aplique para sus gráficos. Ahora que sabes como instalarlo, lo usaras? en que proyectos? Ya lo usas?
Si te resulto útil este articulo, se social, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark