VoIP jazztel ftth y asterisk pjsip

En esta ocasión, registraremos nuestro servicio de VoIP de fibra Jazztel en nuestro asterisk.

Requisitos:

1º) Capturar el proceso de register del router de jazztel contra sus SBC. Para ello, mediante un hub colocado entre el router y la ONT, colocaremos nuestro pc capturando el paquete deseado.

En las capturas, deberás ver un paquete tal que:


Via: SIP/2.0/UDP x.x.x.x:5060;branch=asdfgsdfgsdfgsdfgsd
To:
From: ;tag=d2derwerqwer19-f45ffrr
Call-ID: xxxxxxxxxxx-xxxxxxxxx@x.x.x.x
CSeq: 46360 REGISTER
Contact:
Authorization: Digest username="misuperusuario007@ims.jazztel.net",realm="ims.jazztel.net",nonce="elsuperNonce",uri="sip:ims.jazztel.net",response="idRespuestaasfasdfasdfwererer",algorithm=MD5,cnonce="sdferelcenoncd",qop=auth,nc=00000001
Expires: 3600
Max-Forwards: 70
Supported: 100rel
User-Agent: ZXHN H218N/V2.0.0_JAZZT7
Content-Length: 0

En vez de las ‘x’, saldrán tus valores xDDD; no preguntes

2º) HTTPBrute, que nos servirá para sacar el password con el paquete SIP.

Pantallazo

Rellena cada casilla con lo que toca…. es bastante clarito todo. Le das a crack y calculate y te esperas unas horas (en mi caso)

3º) Asterisk 12 o 13 con pjSip. Yo en mi caso tengo una 12 con poca ram y cpu.

La versión 12 o 13 tiene su razón bastante obvia…… Para poder hacer una llamada, tienes que tener activada la opción 100rel…. en el chan_sip de asterisk, esta opción no está, pero en pjsip si, así que ya sabéis.

El user-agent, debe ser igual al que os proponga el router.

4º) Configuración del pjsip.conf

[global]
user_agent=ZXHN H298N/V1.1.4_JAZZT15

[endpoint]
100rel=yes --> Importante definir el endpoint con el 100rel=yes
sdp_session=ZXHN H298N/V1.1.4_JAZZT15

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.0.0/16 --> tu red local
local_net=127.0.0.1/32

[Jazztel]
type=registration
transport=transport-udp
outbound_auth=Jazztel
server_uri=sip:212.106.212.22:5060
client_uri=sip:+349xxxxxxxx@ims.jazztel.net --> tu número de teléfono con el +34
retry_interval=60
expiration=3600
support_path=yes

[Jazztel]
type=auth
auth_type=userpass
password=PasswordQueHayasCalculado
username=tuUsuari0DeJazttel@ims.jazztel.net
realm=ims.jazztel.net

[Jazztel]
type=aor
contact=sip:ip.del.sbc.jazztel:5060

[Jazztel]
type=endpoint
transport=transport-udp
context=Tu_Contexto_De_Llamadas_Entrantes
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
outbound_auth=Jazztel
aors=Jazztel
from_user=+349xxxxxxxx --> tu número de teléfono de jazztel
from_domain=ims.jazztel.net
aors=Jazztel
direct_media=no

[Jazztel]
type=identify
endpoint=Jazztel
match=ip.del.sbc.de.jazztel

Y a partir de aquí…. enjoy your VoIP FTTH Service 😉

Añadir schema zarafa a openLdap

Otra entrada que es un apunte.

Recientemente he tenido que volver a instalar otro zarafa y necesitaba añadir el esquema en el openLdap.

Tras intentar importar el schema con zcat:

zcat /usr/share/doc/zarafa/zarafa.ldif.gz | ldapadd -H ldapi:/// -Y EXTERNAL

Y ver los múltiples errores con las comillas, atributos y demás gaitas, googleando he visto este post:


http://www.linuxquestions.org/questions/linux-server-73/how-to-add-a-new-schema-to-openldap-2-4-11-a-700452/

Resumiendo……. para poder importar el schema de manera correcta, los pasos:

1º) Generamos el fichero schema_convert.conf con el siguiente contenido:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/pmi.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/zarafa.schema

2º) Creamos el directorio temporal

# mkdir /tmp/ldif_output

3º) Generamos los ldif

# slaptest -f schema_convert.conf -F /tmp/ldif_output

4º) Nos vamos al directorio donde hemos generado los ficheros

cd tmp/ldif_output/cn=config/cn=schema

Y creamos el fichero fixit.sed con el siguiente contenido:

s~dn: cn=\{([0-9]+)\}(.*)$~dn: cn=\2,cn=schema,cn=config~g
s~cn: \{([0-9]+)\}(.*)$~cn: \2~g
s~^(structuralObjectClass|entryUUID|creatorsName|createTimestamp|entryCSN|modifiersName|modifyTimestamp):.*$~~g

5º) Una vez creado el fichero, creamos el directorio fixed y ejecutamos el siguiente script:

for f in *ldif; do sed -rf fixit.sed "$f" > fixed/$f; done

Llegados aquí, en el directorio fixed, tendremos los directorios:

root@radius:/tmp/ldif_output/cn=config/cn=schema/fixed# ls -l
total 96
-rw-r--r-- 1 root root 15267 Aug 24 10:39 cn={0}core.ldif
-rw-r--r-- 1 root root 1091 Aug 24 10:39 cn={10}openldap.ldif
-rw-r--r-- 1 root root 6212 Aug 24 10:39 cn={11}pmi.ldif
-rw-r--r-- 1 root root 3073 Aug 24 10:39 cn={12}ppolicy.ldif
-rw-r--r-- 1 root root 11121 Aug 24 10:39 cn={13}zarafa.ldif
-rw-r--r-- 1 root root 1289 Aug 24 10:39 cn={1}collective.ldif
-rw-r--r-- 1 root root 1051 Aug 24 10:39 cn={2}corba.ldif
-rw-r--r-- 1 root root 11129 Aug 24 10:39 cn={3}cosine.ldif
-rw-r--r-- 1 root root 4253 Aug 24 10:39 cn={4}duaconf.ldif
-rw-r--r-- 1 root root 1461 Aug 24 10:39 cn={5}dyngroup.ldif
-rw-r--r-- 1 root root 2623 Aug 24 10:39 cn={6}inetorgperson.ldif
-rw-r--r-- 1 root root 2357 Aug 24 10:39 cn={7}java.ldif
-rw-r--r-- 1 root root 1280 Aug 24 10:39 cn={8}misc.ldif
-rw-r--r-- 1 root root 6259 Aug 24 10:39 cn={9}nis.ldif

6º) Importamos el ldif de zarafa:

# ldapadd -Y EXTERNAL -H ldapi:/// -f cn\=\{13\}zarafa.ldif

Esto se puede aplicar, como me ha pasado a mi, con el schema de freeradius o otros schemas.

enjoy 🙂

Freeradius stop on logger rotate

Otra entrada que es un apunte.

Cuando instalas el freeradius y lo dejas tal cual configurado, cuando hace el log rotate, se queda parado….. aquí explican el bug:

Freeradius stop

Para impedir que se quede parado, tras hacer el logrotate, hemos de modificar el siguiente fichero:


# nano /etc/logrotate.d/freeradius

Y ha de quedar tal que:

/var/log/freeradius/*.log {
weekly
rotate 52
compress
delaycompress
notifempty
missingok
postrotate
/etc/init.d/freeradius restart > /dev/null
endscript
}

Hemos de cambiar la línea

/etc/init.d/freeradius reload > /dev/null

a

/etc/init.d/freeradius restart > /dev/null

enjoy 😉