Translate

martes, 9 de febrero de 2021

Configuración de PJSIP Trunk en Asterisk 16 - OXE

 ¡Hola Bloggers!

El día de hoy les estaré compartiendo la configuración necesaria para establecer una troncal SIP en PJSIP de Asterisk 16 sin Autenticación:

Los parámetros a modificar son los siguientes dentro de PJSIP.CONF:

[root@str asterisk]# vim pjsip.conf


[transport-udp]

type=transport

protocol=udp

bind=10.247.0.100:5060


;TRONCALES DE ASTERISK PJSIP SIN AUTENTICACIÓN


[oxe] ; El códec usado para la comunicación sip con OXE es G711

type=endpoint

transport=transport-udp

context=from-external

disallow=all

allow=ulaw,alaw

aors=oxe

rtp_symmetric=yes


[oxe] ; al no ingresar una contraseña ya no requiere autenticar

type=auth

auth_type=userpass

password=

username=oxe


[oxe] ; indicamos la IP de destino y el puerto en que buscará

type=aor

qualify_frequency=60

contact=sip:192.168.5.80:5060


[oxe] ; hacemos una verificación de la IP de destino

type=identify

endpoint=oxe

match=192.168.5.80


No he probado esta troncal con AVAYA, CUCM o otra central mas que con OXE-Alcatel o OmniPCX Enterprise.

Si funciona o no con las otras me lo hacen saber en los comentarios:


¡Gracias!

Saludos,

Tracert-BBc

Instalación Asterisk 16 en CentOS7 + DAHDI

 ¡Hola Bloggers!

Muy buenas tardes/noches/días el día de hoy les traigo una guía de instalación de Asterisk 16 en CentOS 7 con paquete de DAHDI y LIPPRI para tarjetería física.

Para información adicional busquen en:

https://www.voip-info.org/voip-infoorg/ 

Ahora, para la implementación de Asterisk dependiendo del uso se tendrá la consideraciones especiales, si eres un experto y solo buscas la guía paso a paso de instalación sigue abajo, pero si eres una persona que quiere incursionar y no implementar aún sigue las recomendaciones.

En nuestro caso usaremos una máquina virtual sea en VMware o VirtualBox.

Con las siguientes características básicas:

Procesador: Dual-Core 3.2GHz

Memoria RAM: 1 GB

Almacenamiento: 40 a 60 GB

Gráfica: 250 Mb o superior

Sistema: Centos 7 Core o GUI

Primeros Pasos:

Para esta guía no consideraremos la instalación del sistema CentOS 7, en todo caso sugiero esta guía:

https://www.server-world.info/en/note?os=CentOS_7&p=install

También sugiero hacer una instalación CORE sin ninguna paquetería mas que viene con el sistema base, pues así tendremos una instalación limpia y con la menor cantidad de errores.

Una vez que tengamos instalado nuestro sistema procederemos iniciar sesión con el usuario root.

Configuración Base Pre-Instalación:

Necesitamos deshabilitar selinux con el siguiente comando y edición de línea:

vim /etc/selinux/config

    SELINUX=disabled


Ahora realizaremos la descarga de la siguiente paquetería base para Asterisk 16:

yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel wget


Crearemos un usuario exclusivo para que ejecute Asterisk 16:

adduser asterisk -c "Asterisk User"

passwd asterisk 

usermod -aG wheel asterisk

su asterisk


Ahora, realizaremos la descarga e instalación del proyecto PJ:

mkdir ~/build && cd ~/build

wget https://github.com/pjsip/pjproject/archive/2.10.tar.gz

tar -zxvf 2.10.tar.gz

cd pjproject-2.10

./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

make dep

make && sudo make install && sudo ldconfig

ldconfig -p | grep pj


Continuando, crearemos una carpeta de instalación temporal para hacer la instalación de la paquetería:

mkdir ~/build

cd ~/build


A continuación descargaremos la versión 16.16.0 que en este caso será la descargada en el paquete "asterisk-16-current.tar.gz" y procederemos a descomprimirlo:

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

tar -zxvf asterisk-16-current.tar.gz


También haremos lo mismo para DAHDI y LIBPRI:

wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz

tar -zxvf dahdi-linux-complete-current.tar.gz

wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz

tar -zxvf libpri-current.tar.gz


Empecemos la instalación:

Ingresamos a la carpeta descomprimida de asterisk-16.16.0 y instalamos los archivos MP3 para MUSICA DE ESPERA:

cd asterisk-16.16.0

cd /usr/local/src/asterisk-16.16.0/contrib/scripts/

./install_prereq test

./install_prereq install

yum groupinstall "Development Tools"

yum install kernel-devel-$(uname -r)

yum install svn

./contrib/scripts/get_mp3_source.sh


Solo luego de hacer esto procederemos a instalar DAHDI y LIBPRI:

cd dahdi-linux-complete-3.1.0+3.1.0/

make

make install

cd libpri-1.6.0/

make

make install


Ahora desde la misma raíz de Asterisk-16.16.0 y configuraremos el PJProjects, ahora seleccionaremos la paquetería de Music Hold On en "Add-ons" "format_mp3" tras ejecutar "make menuselect" :

./configure --libdir=/usr/lib64 --with-jansson-bundled

make menuselect


Y desde la misma raíz instalaremos Asterisk-16.16.0:

make && make install

make progdocs

make samples


Ahora, solo desde el usuario Asterisk que creamos anteriormente daremos los privilegios a la carpetas de la instalación de Asterisk, lo siguiente:

sudo chown asterisk. /var/run/asterisk

sudo chown asterisk. -R /etc/asterisk

sudo chown asterisk. -R /var/{lib,log,spool}/asterisk


Volvemos a la raíz de Asterisk-16.16.0:

make config

make install-logrotate


Ahora, para finalizar la instalación y ejecución de Asterisk corremos los siguientes comandos:

asterisk -&

asterisk -rvvv


Validación de la Instalación:


Validemos la instalación de DAHDI, si falta los archivos de configuración lo indicará tras querer iniciarlo:

/etc/init.d/dadhi start


En ese caso nos dirigimos a la raíz de instalación que es la ruta /etc y todos los archivos con ".sample" los pasamos a mover sin la extensión.

cd /etc/dahdi/

mv system.conf.sample system.conf


Luego podremos iniciar el servicio de DAHDI:

service dahdi start

lsmod | grep dahdi


Y finalmente podremos ver que el servicio de Asterisk está activo:

systemctl start asterisk

systemctl enable asterisk

systemctl start dahdi

systemctl enable dahdi


Como consideración final, es necesario habilitar el puerto 5060 o el puerto que vayan a usar para la telefonía SIP desde el firewall, les recomiendo instalar "firewall-cmd" y realizar la habilitación del puerto en la interfaz que contenga la IP de la red.


Cualquier duda o consulta pueden validar en los siguientes fuentes o la escriben en los comentarios:

https://www.geekdecoder.com/install-asterisk/

https://www.tecmint.com/install-asterisk-on-centos-7/

https://community.asterisk.org/t/dahdi-installation-with-centos8/85266/4

https://superuser.com/questions/814876/kernel-source-error-on-dahdi-installation-in-centos

https://stackoverflow.com/questions/2800924/asterisk-unable-to-connect-to-remote-asterisk-does-var-run-asterisk-ctl-exis

https://wiki.asterisk.org/wiki/display/AST/Installing+Initialization+Scripts


¡Muchas gracias!

Tracert-BBc

Instalación de Lightsquid 1.8 en CentOS 6.8

¡Hola un gusto bloggers!

A continuación les presentare la configuración necesaria para iniciar su proyecto de LIGHTSQUID proxy Server.

Se tomó como base de la siguiente fuente:

https://www.server-world.info/en/note?os=CentOS_6&p=squid&f=6

Cualquier sugerencia o duda me la pueden hacer en los comentarios.

¡Comencemos!

Requerimientos:

Maquina Virtual o Física:

    - Procesador: Dual-Core 3.2Ghz (o superior)

    - RAM: 2 GB

    - Memoria: 40 - 60 GB

    - Grafica: 250 Mb

    - Sistema: CentOS 6.8

    - Tipo: Core o GUI


Instalación de Squid 3.1.23 con LightSquid 1.8 - CentOS 6.8

En primer lugar descarguemos e instalemos el paquete de 'squid' con el comando yum:

# Es preferible correr todos estos comandos desde el usuario ROOT

yum -y install squid


# Editemos con el mando 'vi' 

vi /etc/squid/squid.conf


# Comentar todas las acl's por defecto con "#" al inicio.)

# Ingresar la acl que permitirá el acceso proxy debajo de "acl CONNECT method CONNECT":

acl CONNECT method CONNECT

acl nombredetured src 192.168.0.0/24 (escriban el nombre que gusten)


# Comentemos la primera línea de "http_access allow localnet" con un "#" delante

# Y apliquemos nuestro acl debajo de "http_access allow localhost":


#http_access allow localnet

http_access allow localhost

http_access allow nombredetured <=======


# Al final de todo el archivo agregar los siguientes comandos:


request_header_access Referer deny all

request_header_access X-Forwarded-For deny all

request_header_access Via deny all

request_header_access Cache-Control deny all

forwarded_for off


# Una vez guardamos con :wq! en el archivo editado.

Iniciamos el squid sin problemas e indicamos que siempre esté activo:


/etc/rc.d/init.d/squid start

Starting squid:...........     [ OK ]


chkconfig squid on


# Ahora habilitamos el puerto 3128 y 8080 en iptables, en el que squid siempre 'escucha' debajo de "-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT" :


vi /etc/sysconfig/iptables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT


# Reiniciamos el servicio de iptables:


service iptables restart


# Probamos el cliente verificando que navega con la configuración hacia el proxy. Entramos a propiedades de internet en el navegador o avanzadas en google chrome ponemos la ip de nuestro proxy 

192.168.0.10 puerto: 3128



# Ahora instalaremos el servicio de Apache:

yum -y install httpd


# Removemos las páginas que se instalan por defecto:

rm -f /etc/httpd/conf.d/welcome.conf

rm -f /var/www/error/noindex.html


# Configuramos el apache:

vi /etc/httpd/conf/httpd.conf


Cambiar donde dice "ServerTokens" a esto:

ServerTokens Prod


Cambiar donde dice "KeepAlive" a esto:

KeepAlive On


Cambiar donde dice "Listen 80" a esto:

Listen 192.168.0.10:8080    (esta es la ip de nuestro proxy)


Cambiar donde dice "ServerAdmin" a esto:

ServerAdmin root@proxy


Cambiar donde dice "AllowOverride" a esto:

AllowOverride All


Agregar el ServerName (tienes que buscarlo y agregar)

ServerName www.proxy:8080


Cambiar donde dice "ServerSignature" a esto:

ServerSignature Off


# Iniciamos el servicio httpd:

/etc/rc.d/init.d/httpd start

Starting httpd:        [ OK ]


# Guardamos la configuración:

chkconfig httpd on


# Verificamos el nombre de nuestro host este permitido ponemos el nombre el final y guardamos:

vi /etc/hosts


127.0.0.1 localhost ..........  proxy


# Creamos una pagina de prueba, la cual no vamos a usar solo es con el fin de verificar que apache esté correctamente instalado:

vi /var/www/html/index.html


<html>

<body>

<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">

Página para Proxy - PRUEBA

</div>

</body>

</html>


# Probamos que funciona:

192.168.0.10:8080


Instalación de Repositorios LIGHTSQUID


# Ahora instalamos estos paquetes y ponemos estas sentencias:

yum -y install yum-plugin-priorities

sed -i -e "s/\]$/\]\npriority=1/g" /etc/yum.repos.d/CentOS-Base.repo


yum -y install epel-release

sed -i -e "s/\]$/\]\npriority=5/g" /etc/yum.repos.d/epel.repo

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo


yum -y install centos-release-scl-rh centos-release-scl

sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo

sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo


# Instalamos el lightsquid 1.8:

yum --enablerepo=epel -y install lightsquid lightsquid-apache


# Editamos el lightsquid agregando 3 parámetros nuevos incluyendo la red que haremos el escaneo:


vi /etc/httpd/conf.d/lightsquid.conf

<Directory /usr/share/lightsquid/cgi>

    DirectoryIndex index.cgi

    Options ExecCGI

    AddHandler cgi-script .cgi

    AllowOverride None

    Order Deny,Allow

    Deny from all

    Allow from 127.0.0.1 192.168.0.0/24

</Directory>


# Reiniciamos el servicio de Apache:

/etc/rc.d/init.d/httpd restart

Stopping httpd:   [ OK ]

Starting httpd:   [ OK ]


# Generamos los reportes:

/usr/sbin/lightparser.pl

chcon -R -t httpd_squid_content_t /var/lightsquid


# Ahora instalamos Python:

yum -y install policycoreutils-python


# Activamos por completo Lightsquid:

semanage fcontext -a -t httpd_squid_content_t /var/lightsquid


# Para ingresar a nuestro proxy lightsquid escribimos en el navegador.

192.168.0.10:8080/lightsquid  (referencia a nuestra interfaz de nuestro proxy)



Adicional, pueden restringir el acceso a la página desde una sola IP, si lo desean pero les sugiero que lo investiguen pues no lo he considerado aquí.

¡Eso es todo!

Muchas gracias,

Tracert-BBc