About Me
Vistas a la página totales
GeoCounter

contador visitas
sábado, junio 17, 2017

SIP Trunk entre 2 asterisk



Me he encontrado varias veces con configuraciones incorrectas entre troncales SIP que se configuran para comunicar dos servidores Asterisk, esta es la configuración sugerida y la que siempre me funciona de manera correcta:


Asterisk-A:

[PBX-B] o cualquier cosa, es para identificar tu troncal
host=IP-Servidor-B
type=friend
secret=clave123 (o una de tu preferencia)
fromuser=TroncalA
context=from-trunk
disallow=all
allow=ulaw (o el codec que desees)
qualify=yes
dtmfmode=rfc2833
directmedia=no
nat=no
insecure=port,invite
sendrpid=no
trustrpid=no


Asterisk-B:

[PBX-A] o cualquier cosa, es para identificar tu troncal
host=IP-Servidor-A
type=friend
secret=clave123 (o una de tu preferencia)
fromuser=TroncalB
context=from-trunk
disallow=all
allow=ulaw (o el codec que desees)
qualify=yes
dtmfmode=rfc2833
directmedia=no
nat=no
insecure=port,invite
sendrpid=no
trustrpid=no


Listo!!!
Crear los dialplan para marcar entre extensiones, es decir, 9XXX envia la llamada a PBX-B o como desees marcar y sale pa pintura!
martes, febrero 11, 2014

Como usar certificados exportados de IIS (Microsoft) en vCloud (VMWare)


Aqui tienen una guia basica de como utilizar un certificado exportado de IIS para poder ser usado en vCloud director.

El caso inicia cuando se creo un CSR (request) en un servidor IIS, se firmo con una CA (en este caso godaddy) y se completo el Signing request en este servidor Microsoft Windows (IIS), este es un certificado wilcard, que queremos usar en otro servidor pero esta vez no windows sino un servidor linux que en este caso utiliza llaveros JAVA tipo JCEKS, para ello exportamos el certificado desde el IIS donde normalmente nos pide una contraseña, colocaremos cl4v3s3cr3t4 y obtendremos un archivo completo.pfx

Este archivo contiene tanto la llave privada, como el root CA como el certificado wilcard ejemplo *.k4dm3l.com

Ahora bien, lo que necesitamos hacer es:
1. Convertir nuestro pfx en formato PEM
2. Obtener la llave privada
3. Recreamos los pfx para incluirlos en el llavro JCEKS de vcloud
4. Creamos el llavero JCEKS con los pfx exportados
5. Incluimos el root (godaddy) en el JCEKS recien creado
6. Reconfiguramos vcloud
7. Verificamos funcionalidad

Manos a la obra!!

1. Convertir nuestro pfx en formato PEM

user@cell0 $ openssl pkcs12 -in completo.pfx -out wilcard.cer -nodes

2. Obtener la llave privada
hacemos un "cat wilcard.cer", veremos una seccion que inicia con BEGIN PRIVATE KEY y termina con END PRIVATE KEY, copiamos toda esa seccion a un nuevo archivo guardamos y lo llamamos privada.key

3. Recreamos los pfx para incluirlos en el llavro JCEKS de vcloud

Aqui nos preguntará por la contraseña de la llave privada (fue la misma que usamos en el export del pfx desde IIS, para nuestro caso "cl4v3s3cr3t4".

De la misma manera, creamos un pfx para el consoleproxy:

user@cell0 $ openssl pkcs12 -export -in wilcard.cer -inkey privada.key -name consoleproxy -passout pass:ll4v3vcl0ud -out consoleproxy.pfx

4. Creamos el llavero JCEKS con los pfx exportados

Importamos el http
user@cell0 $ /usr/java/latest/bin/keytool -importkeystore -srckeystore http.pfx -srcstoretype PKCS12 -destkeystore certificates.ks -deststoretype JCEKS -deststorepass ll4v3r0vcl0ud -srcalias http -destalias http -srcstorepass ll4v3vcl0ud

Importamos luego el console proxy

user@cell0 $ /usr/java/latest/bin/keytool -importkeystore -srckeystore consoleproxy.pfx -srcstoretype PKCS12 -destkeystore certificates.ks – deststoretype JCEKS -deststorepass ll4v3r0vcl0ud -srcalias consoleproxy -destalias consoleproxy -srcstorepass ll4v3vcl0ud

5. Incluimos el root (godaddy) en el JCEKS recien creado
user@cell0 $ /usr/java/latest/bin/keytool -importcert -alias root -file RootCA.crt -storetype JCEKS -keystore certificates.ks -storepass ll4v3r0vcl0ud

A este momento debemos ya tener 3 entradas en el llavero, para verificarlas usamos el siguiente comando:

user@cell0 $/usr/java/latest/bin/keytool -list -keystore certificates.ks -storetype JCEKS -storepass ll4v3r0vcl0ud

6. Reconfiguramos vcloud
detenemos el servicio "vmware-vcd" asi:

root@cell0 # service vmware-vcd stop

Luego, copiamos el archivo del llavero que generamos "certificates.ks" en la ruta donde por omisión vCloud almacena los certificados "/opt/vmware/vcloud-director/certs/certificates.ks"

Reconfiguramos vCloud ejecutando el comando siguiente:

root@cell0 # /opt/vmware/vcloud-director/bin/configure

Alli nos pide la ruta donde se encuentra el llavero: /opt/vmware/vcloud-director/certs/certificates.ks

Nos pide la contraseña del llavero : ll4v3r0vcl0ud
Aqui debemos fijarnos que no nos salga un error "cryptographic error", porque esto quiere decir que o bien el llavero no está bien formado o bien la contraseña es erronea.

Al finalizar la comprobacion, nos pide iniciar el servicio, respondemos "y" y verificamos por la URL de acceso al vcloud, en el ejemplo seria algo como: vcloud.k4dm3l.com

Listo!!!
Ya podemos usar nuestro wilcard en cualquier servidor vcloud o parecido =)
sábado, junio 22, 2013

Como configurar Troncal SIP de UNE - Asterisk/Elastix

Aqui esta el paso a paso de como lo hice.

Datos para el ejemplo:

IP Planta: 172.16.1.2
Mascara red: 255.255.255.248
Gateway: 172.16.1.1

SIP Server: 210.22.200.22 <--- de="" donde="" el="" es="" esta="" este="" ip="" registrada="" servidor="" sip.="" span="" troncal="" tu="" une="">
RTP Proxy Servers: 210.22.234.111 Y 210.22.234.112 <--- da="" el="" estos="" los="" nos="" proveedor.="" proxy="" que="" rtp="" son="" span="">

Estos son los datos que entrega UNE para cada caso son diferentes, puede que los servidores RTP sean iguales en algunos casos pero no siempre es asi.

Ahora bien, en el caso normal tendremos una red LAN donde estan los PCs funcionando normal y con sus servicios estandar, para este caso diremos que es la red 192.168.10.0/24 donde tenemos un router/firewall con la IP 192.168.10.1 que para este ejemplo, es la puerta de enlace de la red LAN de PCs.

Puede existir el ambiente en que la red LAN es la misma red donde tenemos nuestros telefonos IP o bien no tenemos telefonos IP sino que trabajamos con Softphone en cada PC.

Teniendo el escenario normal, lo que debemos hacer es configurar nuestro Elastix con su tarjeta de red LAN en la misma red 192.168.10.0/24 donde estan los demas PCs.

Tomaremos como IP para el Elastix la direccion 192.168.10.2 con mascara 255.255.255.0 es decir 24 bits.

Si miramos sobre consola (modo linea de comandos) las rutas e interfaces para este momento, tendremos una puerta de enlace configurada 192.168.10.1, con esto tenemos conectividad con todos los equipos de la LAN y tenemos internet en el elastix.

Lo que haremos sera conectar el cable del equipo de FibraOptica y lo conectaremos al Switch de la LAN donde estan los demas equipos (seria ideal manejar VLANs pero lo dejare para un proximo ejemplo).

Ahora configuraremos otra interfaz para el elastix, la mejor manera es ir al directorio /etc/sysconfig/network-scripts
alli encontraremos un archivo llamado ifcfg-eth0, este archivo es el archivo de configuracion para la interfaz LAN que tenemos ya configurada (debimos haberla configurado en la instacion del elastix)

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth0:0

Ahora editamos ese archivo y debemos tener la siguiente configuracion
vim ifcfg-eth0:0

#--------Inicio contenido del archivo
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=172.16.1.2
NETMASK=255.255.255.248
ONBOOT=yes
#---------Fin contenido del archivo

luego podemos levantar la interface asi:

ifup eth0:0

Verificamos las interfaces con: ifconfig

Debemos obtener un resultado parecido a este:

eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 
inet addr:192.168.10.2 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6562 errors:0 dropped:0 overruns:0 frame:0
TX packets:3017 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:5001849 (4.7 MiB) TX bytes:202213 (197.4 KiB)

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:EE:6C:B8 
inet addr:172.16.1.2 Bcast:172.16.1.7 Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

En este momento tenemos dos interfaces una fisica "eth0" y una virtual o alias para esa eth0 que le pusimos "eth0:0" (no confunfir los dos puntos ":" con el "." al momento de nombrar un dispositivo de red, el punto "." es utilizado para crear vlans)

probamos conectividad con el gateway de nuestro proveedor de Troncal SIP, en este caso UNE.

# ping 172.16.1.1
64 bytes from 172.16.1.1: icmp_seq=1 ttl=52 time=10 ms
64 bytes from 172.16.1.1: icmp_seq=1 ttl=52 time=10 ms
64 bytes from 172.16.1.1: icmp_seq=1 ttl=52 time=10 ms
64 bytes from 172.16.1.1: icmp_seq=1 ttl=52 time=10 ms

Para terminar el ping lo hacemos con "Control + C"

Ahora bien, con esto ya tenemos respuesta de la puerta de enlace del proveedor de la troncal SIP, lo que haremos ahora es crear rutas estaticas para poder encontrar el SIP server a traves de esta interface virtual.

Estamos en el directorio /etc/sysconfig/network-scripts

Crearemos un archivo para las rutas llamado "route-eth0:0"

#---Inicio Contenido
210.22.200.22/32 via 172.16.1.1 dev eth0:0
210.22.234.111/32 via 172.16.1.1 dev eth0:0
210.22.234.112/32 via 172.16.1.1 dev eth0:0
#--- Fin Contenido

Ahora debemos reiniciar la red para esta interface, no es necesario reiniciar todas las interfaces, lo podemos hacer con:

# ifdown eth0:0
# ifup eth0:0

En este momento lo que hace el sistema operativo es leer los archivos y configurar la interface y las rutas que creamos, hay otros tutoriales donde colocan las rutas en el archivo /etc/rc.local, tambien es una opcion, pero esta es la mejor practica para hacerlo dado a que se tiene un mejor orden y mayor control sobre el networking.

Ya tenemos todo el networking funcionando, ahora configuraremos la troncal SIP.

En el Modulo PBX, Accedemos a Troncales (Trunks)

Agregamos una troncal SIP
Colocamos un nombre para identificarla, colocamos un Outbound Caller ID que es el numero telefonico que asignaron incluyendo el indicativo de la ciudad, por ejemplo 18434343 siendo 1 para bogota y el numero 8434343
especificamos el numero maximo de sesiones que se permiten, normalmente se entrega con 10.
En el apartado "Outgoing Settings" especificamos un nombre y el contenido de la configuracion debe ser como sigue

-------Inicio de config
host=200.13.230.38
fromuser=18434343
username=18434343
type=friend
disallow=all
allow=gsm,ulaw,alaw
insecure=port,invite
dtmfmode=rfc2833
canreinvite=no
context=from-trunk
qualify=yes
-------Fin de config

Salvamos la configuracion, creamos una ruta saliente que utilice la troncal creada y listo!!!

Pueden seguirme en twitter @k4dm3l
cualquier duda y/o comentario no duden en escribir!

Saludos

K.
PS: Tengan en cuenta que todos los datos de IP y numeros son de ejemplo, no son reales, por favor utilicen los que les asigno el proveedor.