MANUAL: Configuración VoIP FTTH Jazztel

Buenos días:

Por algunos motivos tanto laborales como personales no he podido seguir durante algún tiempo escribiendo en el foro.

Bien, después de algunas pruebas, he resuelto algunas peculiaridades pero otras aun quedan por resolver.

Actualmente tengo funcionando Asterisk 13.26 tanto con Jazztel como con Movistar. Quiero exponer mis configuraciones, las cuales tengo colgadas en mi web con los detalles de las configuraciones de los archivos pjsip.conf y extensions.conf.

Uno de los primeros problemas fue el Voicemail, que no debe de ir precedido de PJSIP como se puede ver ya que cuando realizas un Voicemailmain(), e introduces el numero de buzón de voz, toma como extensión por ejemplo 30100 y no PJSIP/30100. Eso esta resuelto.

Segundo problema, las molestas llamadas reclamando una deuda de algún usuario anterior (da igual decir que no eres tu la persona, se revenderán la misma y seguirán llamando), así que como no hay forma humana de que no te llamen, opte por hacer un filtrado de llamadas.

Inicialmente, cuando una llamada entra por el troncal, la contesto y comparo el numero entrante con una blacklist (los números los introduzco desde la consola de Asterisk, aunque se podría hacer desde alguna extensión), si ese numero esta en esta lista negra, automáticamente reproduce un mensaje diciendo que esta en lista negra y cuelga.

Esto generaba un problema y es que siempre debía de coger al menos una llamada, o por lo menos sonar el teléfono al menos la primera vez antes de meterlo en la lista. Fue entonces cuando pensé en crear un horario de llamadas entrantes, pero claro quería poder dejar pasar las llamadas que a mi me interesasen como las de familiares o amigos. Como hacia esto? Bien pues después de comparar la lista negra, y ver que no estaba en ella, el siguiente paso es comprobar la lista blanca, si esta el numero en ella, automáticamente pasa a timbrar las extensiones y por tanto a realizar la llamada habitual. Si no esta, pasa al siguiente punto que es la regla de tiempo, en mi caso la cree de lunes a sábado, de 8.30 a 21.30 todos los días del año. Si la llamada esta dentro de este periodo, escuchan una bonita locución y después les salta el buzón de voz, en caso contrario dejaría entrar la llamada normalmente.

Esto igualmente me genera un problema que es que no se aun en que archivo se guardan las listas negras y blancas, esta claro que dentro de la consola si puedo ver lo que esta en la lista negra o blanca con un "database show blacklist/whitelist" asi como puedo introducir o quitar numeros con un database put blacklist/whitelist XXXXXXXXX 1 o quitar con un database del blacklist/whitelist XXXXXXXXX

Os dejo pjsip de Jazztel y el dialplan.
Todo esto esta en mi web como dije
http://www.ea4fyh.com/index.php/cat...8/46-introduccion-al-dialplan-extensions-conf
http://www.ea4fyh.com/index.php/categorias-4/categorias-8/45-bases-pjsip-para-jazztel-y-movistar

Código:
[general]
language=es
allowguest=no
autodomain=yes
domain=ims.jazzztel.net ; En el caso de movistar es telefonica.net
sipdomain=ims.jazztel.net ; En el caso de movistar es telefonica.net

[general]
type=global
user_agent=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

[endpoint]
100rel=yes
sdp_session=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

; ############# Transporte interno Centralita #############

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24 ; Define el rango IP de nuestra red
local_net=127.0.0.1/32 ; Define el rango IP interno de la centralita

Ahora vamos a definir las extensiones a continuación:

Código:
; ################## Extension en casa #################

; #####  100  ##### Extension que queramos

[100]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm
force_rport=yes
direct_media=no
mailboxes=100@default
auth=100
aors=100

[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100

[100]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30

; #####  200  ##### Extension que queramos

[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200
aors=28200

[200]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=200

[200]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30
Ahora vamos con la parte del troncal, la de Jazztel en si:

Código:
; ########### Registro linea telefonica de Jazztel #############

[Jazztel_registration]
type=registration
transport=transport-udp
outbound_auth=Jazztel_auth
server_uri=sip:XXX.XXX.XXX.XX:5060 ; IP usada en nuestra conexión SIP
client_uri=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
retry_interval=60
expiration=3600
support_path=yes

[Jazztel_auth]
type=auth
auth_type=userpass
password=XXXXXX ; Contraseña de nuestra conexión SIP, se debe sacar del router en cuestion
username=[EMAIL]XXXXXXXXXXXXXXX@ims.jazztel.net[/EMAIL] ; Usuario de nuestra conexión SIP
realm=ims.jazztel.net

[Jazztel_endpoint]
type=endpoint
transport=transport-udp
context=Jazztel
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
outbound_auth=Jazztel_auth
aors=Jazztel_aor
from_user=+3491XXXXXXX ; Nuestro número de teléfono
from_domain=ims.jazztel.net

[Jazztel_aor]
type=aor
max_contacts=2
contact=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
qualify_frequency=60
qualify_timeout=5
support_path=yes

[Jazztel_identify]
type=identify
endpoint=Jazztel_endpoint
match=XXX.XXX.XXX.XX ; IP de nuestro servidor SIP

[acl]
type=acl
acl=internal
Ahora vemos el dialplan

Código:
[general]

static=yes
writeprotect=yes
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no
Ahora vamos a definir que hacer con las numeraciones:

Recibir lo que no tiene un contexto definido y rechazarlo por seguridad.

Código:
[default]
exten => _X.,1,hangup(21)
exten => s,1,hangup(21)
Ahora declaramos el contexto extensiones que contendrá lo que hacer con las llamadas internas (ya sean las entrantes desde el troncal, las internas entre extensiones y los servicios propios)

Código:
[extensiones]
include => internas
include => externas
include => echo
include => ring-group
include => contestador
include => contestador_ext
Definimos el contexto para las llamadas salientes por el troncal pjsip de movistar:

Código:
[externas]
include => fijos
include => moviles
include => especiales
include => informacion
include => emergencias
include => internacionales
include => sociales
include => nomadas
include => info_Telefonica
Ahora definimos las llamadas con origen y destino interno del contexto extensiones:

Código:
; ############### Llamadas origen y destino interno ##########

[internas] ; Llamadas internas
exten => _30[1-5]00,1,NoOp(Llamada entre extensiones)
same => n,Dial(PJSIP/${EXTEN},30,Tti)
same => n,Voicemail(${EXTEN}@default)
same => n,Hangup()

[ring-group] ; Grupo de timbrado, cuando la llamada entra por el troncal suenan todas las extensiones
exten => 30000,1,Log(NOTICE, Call group All in rin-group context)
exten => 30000,2,Set(ringgroup=PJSIP/28100&PJSIP/28200&PJSIP/28300&PJSIP/28400&PJSIP/28500)
exten => 30000,n,Dial(${ringgroup},60)
exten => 30000,n,Voicemail(28100@default)
exten => 30000,n,Hangup()

[echo] ; Prueba de eco
exten => 30999,1,Answer(500)
exten => 30999,n,Playback(es/demo-echotest)
exten => 30999,n,Echo()
exten => 30999,n,Playback(es/demo-echodone)
exten => 30999,n,Goto(s,6)

[contestador] ; Contestador desde el mismo numero desde el que se llama
exten => *97,1,Answer()
exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)
exten => *97,n,Hangup()

[contestador_ext] ; Contestador de otra extensión
exten => *98,1,Answer()
exten => *98,n,VoiceMailMain(@default)
exten => *98,n,Hangup()
Definimos las llamadas salientes por el troncal:

Código:
; ######### Llamadas origen interno destino externo ##########

[fijos]
exten => _[89]ZXXXXXXX,1,NoOp(Llamada salida fijo)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup

[moviles]
exten => _[67]XXXXXXXX,1,NoOp(Llamada a moviles)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[especiales]
exten => _[89]0XXXXXXX,1,NoOp(Llamadas a numeros de tarificacion especial)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[informacion]
exten => _11XXX,1,NoOp(Números de información)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[emergencias]
exten => _112,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
exten => _0XX,1,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)

[internacionales]
exten => _00XXXXXX.,1,NoOp(Llamadas internacionales)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[nomadas]
exten => _051XXXXXXXXX,1,NoOp(Numeros nomadas VoIP)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[sociales]
exten => _10[012689][0-7],1,NoOp(Servicios de valor social)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[info_Telefonica]
exten => _1565,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

Aqui esta la ruta de las llamadas entrantes que indicaba al principio


Código:
; ############## Llamadas entrantes Jazztel #################

[Jazztel]
exten => s,1,NoOp(Llamada entrante Jazztel de ${CALLERID(num))
same => n,GotoIf(${BLACKLIST()}?black)
same => n,GotoIf(${DB_EXISTS(whitelist/${CALLERID(num)})}?permit)
same => n,GotoIfTime(08:30-21:30|mon-sat|1-31|jan-dec?notime)
same => n,Dial(Local/30000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(notime),Answer()
same => n,Playback(es/timewarp)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(black),Answer()
same => n,Playback(es/privacy-you-are-blacklisted)
same => n,Hangup()
same => n(permit),Dial(Local/28000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()

Un ultimo detalle seria como introducir números en las listas blancas o negras, que se hará desde dentro de la consola CLI>

Aunque existen comandos para poderlo hacer desde el una extensión, yo dejare solo esta forma.

Introducir un numero en la lista negra:

database put blacklist XXXXXXXXX 1

Introducir un numero en la lista blanca:

database put whitelist XXXXXXXXX 1

Borrar un numero de la lista negra/blanca:

database del blacklist/whitelist XXXXXXXXX

Mostrar listado de lista negra/blanca:

database show blacklist/whitelist


Ademas de esto tengo dos problemas sin resolver aun. El primero de ellos es el continuo error diciéndome que options no es enviado de forma correcta, si lo desactivo, no funciona el troncal.

ERROR[2636]: res_pjsip.c:4051 endp_send_request: Error 320053 'DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN)' sending OPTIONS request to endpoint Jazztel_endpoint

Por otro lado tengo un problema mayor, que es que rutinariamente, la conexión se cae, el troncal muestra como conectado pero al marcar un numero saliente por el troncal, indica un Congested o Busy y no se como resolverlo. De momento he bajado el tiempo de refresco de la conexion
 
Última edición:
Buenos días:

Por algunos motivos tanto laborales como personales no he podido seguir durante algún tiempo escribiendo en el foro.

Bien, después de algunas pruebas, he resuelto algunas peculiaridades pero otras aun quedan por resolver.

Actualmente tengo funcionando Asterisk 13.26 tanto con Jazztel como con Movistar. Quiero exponer mis configuraciones, las cuales tengo colgadas en mi web con los detalles de las configuraciones de los archivos pjsip.conf y extensions.conf.

Uno de los primeros problemas fue el Voicemail, que no debe de ir precedido de PJSIP como se puede ver ya que cuando realizas un Voicemailmain(), e introduces el numero de buzón de voz, toma como extensión por ejemplo 30100 y no PJSIP/30100. Eso esta resuelto.

Segundo problema, las molestas llamadas reclamando una deuda de algún usuario anterior (da igual decir que no eres tu la persona, se revenderán la misma y seguirán llamando), así que como no hay forma humana de que no te llamen, opte por hacer un filtrado de llamadas.

Inicialmente, cuando una llamada entra por el troncal, la contesto y comparo el numero entrante con una blacklist (los números los introduzco desde la consola de Asterisk, aunque se podría hacer desde alguna extensión), si ese numero esta en esta lista negra, automáticamente reproduce un mensaje diciendo que esta en lista negra y cuelga.

Esto generaba un problema y es que siempre debía de coger al menos una llamada, o por lo menos sonar el teléfono al menos la primera vez antes de meterlo en la lista. Fue entonces cuando pensé en crear un horario de llamadas entrantes, pero claro quería poder dejar pasar las llamadas que a mi me interesasen como las de familiares o amigos. Como hacia esto? Bien pues después de comparar la lista negra, y ver que no estaba en ella, el siguiente paso es comprobar la lista blanca, si esta el numero en ella, automáticamente pasa a timbrar las extensiones y por tanto a realizar la llamada habitual. Si no esta, pasa al siguiente punto que es la regla de tiempo, en mi caso la cree de lunes a sábado, de 8.30 a 21.30 todos los días del año. Si la llamada esta dentro de este periodo, escuchan una bonita locución y después les salta el buzón de voz, en caso contrario dejaría entrar la llamada normalmente.

Esto igualmente me genera un problema que es que no se aun en que archivo se guardan las listas negras y blancas, esta claro que dentro de la consola si puedo ver lo que esta en la lista negra o blanca con un "database show blacklist/whitelist" asi como puedo introducir o quitar numeros con un database put blacklist/whitelist XXXXXXXXX 1 o quitar con un database del blacklist/whitelist XXXXXXXXX

Os dejo pjsip de Jazztel y el dialplan.
Todo esto esta en mi web como dije
http://www.ea4fyh.com/index.php/cat...8/46-introduccion-al-dialplan-extensions-conf
http://www.ea4fyh.com/index.php/categorias-4/categorias-8/45-bases-pjsip-para-jazztel-y-movistar

Código:
[general]
language=es
allowguest=no
autodomain=yes
domain=ims.jazzztel.net ; En el caso de movistar es telefonica.net
sipdomain=ims.jazztel.net ; En el caso de movistar es telefonica.net

[general]
type=global
user_agent=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

[endpoint]
100rel=yes
sdp_session=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

; ############# Transporte interno Centralita #############

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24 ; Define el rango IP de nuestra red
local_net=127.0.0.1/32 ; Define el rango IP interno de la centralita

Ahora vamos a definir las extensiones a continuación:

Código:
; ################## Extension en casa #################

; #####  100  ##### Extension que queramos

[100]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm
force_rport=yes
direct_media=no
mailboxes=100@default
auth=100
aors=100

[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100

[100]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30

; #####  200  ##### Extension que queramos

[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200
aors=28200

[200]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=200

[200]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30
Ahora vamos con la parte del troncal, la de Jazztel en si:

Código:
; ########### Registro linea telefonica de Jazztel #############

[Jazztel_registration]
type=registration
transport=transport-udp
outbound_auth=Jazztel_auth
server_uri=sip:XXX.XXX.XXX.XX:5060 ; IP usada en nuestra conexión SIP
client_uri=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
retry_interval=60
expiration=3600
support_path=yes

[Jazztel_auth]
type=auth
auth_type=userpass
password=XXXXXX ; Contraseña de nuestra conexión SIP, se debe sacar del router en cuestion
username=[EMAIL]XXXXXXXXXXXXXXX@ims.jazztel.net[/EMAIL] ; Usuario de nuestra conexión SIP
realm=ims.jazztel.net

[Jazztel_endpoint]
type=endpoint
transport=transport-udp
context=Jazztel
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
outbound_auth=Jazztel_auth
aors=Jazztel_aor
from_user=+3491XXXXXXX ; Nuestro número de teléfono
from_domain=ims.jazztel.net

[Jazztel_aor]
type=aor
max_contacts=2
contact=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
qualify_frequency=60
qualify_timeout=5
support_path=yes

[Jazztel_identify]
type=identify
endpoint=Jazztel_endpoint
match=XXX.XXX.XXX.XX ; IP de nuestro servidor SIP

[acl]
type=acl
acl=internal
Ahora vemos el dialplan

Código:
[general]

static=yes
writeprotect=yes
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no
Ahora vamos a definir que hacer con las numeraciones:

Recibir lo que no tiene un contexto definido y rechazarlo por seguridad.

Código:
[default]
exten => _X.,1,hangup(21)
exten => s,1,hangup(21)
Ahora declaramos el contexto extensiones que contendrá lo que hacer con las llamadas internas (ya sean las entrantes desde el troncal, las internas entre extensiones y los servicios propios)

Código:
[extensiones]
include => internas
include => externas
include => echo
include => ring-group
include => contestador
include => contestador_ext
Definimos el contexto para las llamadas salientes por el troncal pjsip de movistar:

Código:
[externas]
include => fijos
include => moviles
include => especiales
include => informacion
include => emergencias
include => internacionales
include => sociales
include => nomadas
include => info_Telefonica
Ahora definimos las llamadas con origen y destino interno del contexto extensiones:

Código:
; ############### Llamadas origen y destino interno ##########

[internas] ; Llamadas internas
exten => _30[1-5]00,1,NoOp(Llamada entre extensiones)
same => n,Dial(PJSIP/${EXTEN},30,Tti)
same => n,Voicemail(${EXTEN}@default)
same => n,Hangup()

[ring-group] ; Grupo de timbrado, cuando la llamada entra por el troncal suenan todas las extensiones
exten => 30000,1,Log(NOTICE, Call group All in rin-group context)
exten => 30000,2,Set(ringgroup=PJSIP/28100&PJSIP/28200&PJSIP/28300&PJSIP/28400&PJSIP/28500)
exten => 30000,n,Dial(${ringgroup},60)
exten => 30000,n,Voicemail(28100@default)
exten => 30000,n,Hangup()

[echo] ; Prueba de eco
exten => 30999,1,Answer(500)
exten => 30999,n,Playback(es/demo-echotest)
exten => 30999,n,Echo()
exten => 30999,n,Playback(es/demo-echodone)
exten => 30999,n,Goto(s,6)

[contestador] ; Contestador desde el mismo numero desde el que se llama
exten => *97,1,Answer()
exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)
exten => *97,n,Hangup()

[contestador_ext] ; Contestador de otra extensión
exten => *98,1,Answer()
exten => *98,n,VoiceMailMain(@default)
exten => *98,n,Hangup()
Definimos las llamadas salientes por el troncal:

Código:
; ######### Llamadas origen interno destino externo ##########

[fijos]
exten => _[89]ZXXXXXXX,1,NoOp(Llamada salida fijo)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup

[moviles]
exten => _[67]XXXXXXXX,1,NoOp(Llamada a moviles)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[especiales]
exten => _[89]0XXXXXXX,1,NoOp(Llamadas a numeros de tarificacion especial)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[informacion]
exten => _11XXX,1,NoOp(Números de información)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[emergencias]
exten => _112,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
exten => _0XX,1,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)

[internacionales]
exten => _00XXXXXX.,1,NoOp(Llamadas internacionales)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[nomadas]
exten => _051XXXXXXXXX,1,NoOp(Numeros nomadas VoIP)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[sociales]
exten => _10[012689][0-7],1,NoOp(Servicios de valor social)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[info_Telefonica]
exten => _1565,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

Aqui esta la ruta de las llamadas entrantes que indicaba al principio


Código:
; ############## Llamadas entrantes Jazztel #################

[Jazztel]
exten => s,1,NoOp(Llamada entrante Jazztel de ${CALLERID(num))
same => n,GotoIf(${BLACKLIST()}?black)
same => n,GotoIf(${DB_EXISTS(whitelist/${CALLERID(num)})}?permit)
same => n,GotoIfTime(08:30-21:30|mon-sat|1-31|jan-dec?notime)
same => n,Dial(Local/30000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(notime),Answer()
same => n,Playback(es/timewarp)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(black),Answer()
same => n,Playback(es/privacy-you-are-blacklisted)
same => n,Hangup()
same => n(permit),Dial(Local/28000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()

Un ultimo detalle seria como introducir números en las listas blancas o negras, que se hará desde dentro de la consola CLI>

Aunque existen comandos para poderlo hacer desde el una extensión, yo dejare solo esta forma.

Introducir un numero en la lista negra:

database put blacklist XXXXXXXXX 1

Introducir un numero en la lista blanca:

database put whitelist XXXXXXXXX 1

Borrar un numero de la lista negra/blanca:

database del blacklist/whitelist XXXXXXXXX

Mostrar listado de lista negra/blanca:

database show blacklist/whitelist


Ademas de esto tengo dos problemas sin resolver aun. El primero de ellos es el continuo error diciéndome que options no es enviado de forma correcta, si lo desactivo, no funciona el troncal.

ERROR[2636]: res_pjsip.c:4051 endp_send_request: Error 320053 'DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN)' sending OPTIONS request to endpoint Jazztel_endpoint

Por otro lado tengo un problema mayor, que es que rutinariamente, la conexión se cae, el troncal muestra como conectado pero al marcar un numero saliente por el troncal, indica un Congested o Busy y no se como resolverlo. De momento he bajado el tiempo de refresco de la conexion




Mira esto, ¿esta puesto? En configuración del Mikrotik debes fijar la resolución del Dominio

esto:
/ip dns static> print
Flags: D - dynamic, X - disabled
# NAME REGEXP ADDRESS TTL
0 ims.jazztel.net 212.106.212.22 1d
 
Ademas de esto tengo dos problemas sin resolver aun. El primero de ellos es el continuo error diciéndome que options no es enviado de forma correcta, si lo desactivo, no funciona el troncal.

ERROR[2636]: res_pjsip.c:4051 endp_send_request: Error 320053 'DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN)' sending OPTIONS request to endpoint Jazztel_endpoint

Por otro lado tengo un problema mayor, que es que rutinariamente, la conexión se cae, el troncal muestra como conectado pero al marcar un numero saliente por el troncal, indica un Congested o Busy y no se como resolverlo. De momento he bajado el tiempo de refresco de la conexion
Lo dos problemas los solucioné yo modificando Transport, al definir redes locales me provocaba el problema. Dejándolo así ya no se producía ningún problema:

Código:
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
Supongo que el troncal no acepta bien que se limite la red. Al definirlas como red local son excluidas por asterisk de NAT.
 
Última edición:
[/QUOTE]
Mira esto, ¿esta puesto? En configuración del Mikrotik debes fijar la resolución del Dominio

esto:
/ip dns static> print
Flags: D - dynamic, X - disabled
# NAME REGEXP ADDRESS TTL
0 ims.jazztel.net 212.106.212.22 1d

Buenas tardes:

Pues si eso lo tengo así,

Por otro lado tambien modifique esto vigumo, voy a probar, pero asi de entrada no parece funcionar
Lo dos problemas los solucioné yo modificando Transport, al definir redes locales me provocaba el problema. Dejándolo así ya no se producía ningún problema:

Código:
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
Supongo que el troncal no acepta bien que se limite la red. Al definirlas como red local son excluidas por asterisk de NAT.
Estoy probando también todo esto sobre Asterisk 16, por ahora con la versión 16.3.0 LTS va igual que en la 13.26.0

A ver si la conexión no se cae ahora
 
Última edición:
Buenos días:

Por algunos motivos tanto laborales como personales no he podido seguir durante algún tiempo escribiendo en el foro.

Bien, después de algunas pruebas, he resuelto algunas peculiaridades pero otras aun quedan por resolver.

Actualmente tengo funcionando Asterisk 13.26 tanto con Jazztel como con Movistar. Quiero exponer mis configuraciones, las cuales tengo colgadas en mi web con los detalles de las configuraciones de los archivos pjsip.conf y extensions.conf.

Uno de los primeros problemas fue el Voicemail, que no debe de ir precedido de PJSIP como se puede ver ya que cuando realizas un Voicemailmain(), e introduces el numero de buzón de voz, toma como extensión por ejemplo 30100 y no PJSIP/30100. Eso esta resuelto.

Segundo problema, las molestas llamadas reclamando una deuda de algún usuario anterior (da igual decir que no eres tu la persona, se revenderán la misma y seguirán llamando), así que como no hay forma humana de que no te llamen, opte por hacer un filtrado de llamadas.

Inicialmente, cuando una llamada entra por el troncal, la contesto y comparo el numero entrante con una blacklist (los números los introduzco desde la consola de Asterisk, aunque se podría hacer desde alguna extensión), si ese numero esta en esta lista negra, automáticamente reproduce un mensaje diciendo que esta en lista negra y cuelga.

Esto generaba un problema y es que siempre debía de coger al menos una llamada, o por lo menos sonar el teléfono al menos la primera vez antes de meterlo en la lista. Fue entonces cuando pensé en crear un horario de llamadas entrantes, pero claro quería poder dejar pasar las llamadas que a mi me interesasen como las de familiares o amigos. Como hacia esto? Bien pues después de comparar la lista negra, y ver que no estaba en ella, el siguiente paso es comprobar la lista blanca, si esta el numero en ella, automáticamente pasa a timbrar las extensiones y por tanto a realizar la llamada habitual. Si no esta, pasa al siguiente punto que es la regla de tiempo, en mi caso la cree de lunes a sábado, de 8.30 a 21.30 todos los días del año. Si la llamada esta dentro de este periodo, escuchan una bonita locución y después les salta el buzón de voz, en caso contrario dejaría entrar la llamada normalmente.

Esto igualmente me genera un problema que es que no se aun en que archivo se guardan las listas negras y blancas, esta claro que dentro de la consola si puedo ver lo que esta en la lista negra o blanca con un "database show blacklist/whitelist" asi como puedo introducir o quitar numeros con un database put blacklist/whitelist XXXXXXXXX 1 o quitar con un database del blacklist/whitelist XXXXXXXXX

Os dejo pjsip de Jazztel y el dialplan.
Todo esto esta en mi web como dije
http://www.ea4fyh.com/index.php/cat...8/46-introduccion-al-dialplan-extensions-conf
http://www.ea4fyh.com/index.php/categorias-4/categorias-8/45-bases-pjsip-para-jazztel-y-movistar

Código:
[general]
language=es
allowguest=no
autodomain=yes
domain=ims.jazzztel.net ; En el caso de movistar es telefonica.net
sipdomain=ims.jazztel.net ; En el caso de movistar es telefonica.net

[general]
type=global
user_agent=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

[endpoint]
100rel=yes
sdp_session=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

; ############# Transporte interno Centralita #############

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24 ; Define el rango IP de nuestra red
local_net=127.0.0.1/32 ; Define el rango IP interno de la centralita

Ahora vamos a definir las extensiones a continuación:

Código:
; ################## Extension en casa #################

; #####  100  ##### Extension que queramos

[100]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm
force_rport=yes
direct_media=no
mailboxes=100@default
auth=100
aors=100

[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100

[100]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30

; #####  200  ##### Extension que queramos

[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200
aors=28200

[200]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=200

[200]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30
Ahora vamos con la parte del troncal, la de Jazztel en si:

Código:
; ########### Registro linea telefonica de Jazztel #############

[Jazztel_registration]
type=registration
transport=transport-udp
outbound_auth=Jazztel_auth
server_uri=sip:XXX.XXX.XXX.XX:5060 ; IP usada en nuestra conexión SIP
client_uri=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
retry_interval=60
expiration=3600
support_path=yes

[Jazztel_auth]
type=auth
auth_type=userpass
password=XXXXXX ; Contraseña de nuestra conexión SIP, se debe sacar del router en cuestion
username=[EMAIL]XXXXXXXXXXXXXXX@ims.jazztel.net[/EMAIL] ; Usuario de nuestra conexión SIP
realm=ims.jazztel.net

[Jazztel_endpoint]
type=endpoint
transport=transport-udp
context=Jazztel
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
outbound_auth=Jazztel_auth
aors=Jazztel_aor
from_user=+3491XXXXXXX ; Nuestro número de teléfono
from_domain=ims.jazztel.net

[Jazztel_aor]
type=aor
max_contacts=2
contact=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
qualify_frequency=60
qualify_timeout=5
support_path=yes

[Jazztel_identify]
type=identify
endpoint=Jazztel_endpoint
match=XXX.XXX.XXX.XX ; IP de nuestro servidor SIP

[acl]
type=acl
acl=internal
Ahora vemos el dialplan

Código:
[general]

static=yes
writeprotect=yes
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no
Ahora vamos a definir que hacer con las numeraciones:

Recibir lo que no tiene un contexto definido y rechazarlo por seguridad.

Código:
[default]
exten => _X.,1,hangup(21)
exten => s,1,hangup(21)
Ahora declaramos el contexto extensiones que contendrá lo que hacer con las llamadas internas (ya sean las entrantes desde el troncal, las internas entre extensiones y los servicios propios)

Código:
[extensiones]
include => internas
include => externas
include => echo
include => ring-group
include => contestador
include => contestador_ext
Definimos el contexto para las llamadas salientes por el troncal pjsip de movistar:

Código:
[externas]
include => fijos
include => moviles
include => especiales
include => informacion
include => emergencias
include => internacionales
include => sociales
include => nomadas
include => info_Telefonica
Ahora definimos las llamadas con origen y destino interno del contexto extensiones:

Código:
; ############### Llamadas origen y destino interno ##########

[internas] ; Llamadas internas
exten => _30[1-5]00,1,NoOp(Llamada entre extensiones)
same => n,Dial(PJSIP/${EXTEN},30,Tti)
same => n,Voicemail(${EXTEN}@default)
same => n,Hangup()

[ring-group] ; Grupo de timbrado, cuando la llamada entra por el troncal suenan todas las extensiones
exten => 30000,1,Log(NOTICE, Call group All in rin-group context)
exten => 30000,2,Set(ringgroup=PJSIP/28100&PJSIP/28200&PJSIP/28300&PJSIP/28400&PJSIP/28500)
exten => 30000,n,Dial(${ringgroup},60)
exten => 30000,n,Voicemail(28100@default)
exten => 30000,n,Hangup()

[echo] ; Prueba de eco
exten => 30999,1,Answer(500)
exten => 30999,n,Playback(es/demo-echotest)
exten => 30999,n,Echo()
exten => 30999,n,Playback(es/demo-echodone)
exten => 30999,n,Goto(s,6)

[contestador] ; Contestador desde el mismo numero desde el que se llama
exten => *97,1,Answer()
exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)
exten => *97,n,Hangup()

[contestador_ext] ; Contestador de otra extensión
exten => *98,1,Answer()
exten => *98,n,VoiceMailMain(@default)
exten => *98,n,Hangup()
Definimos las llamadas salientes por el troncal:

Código:
; ######### Llamadas origen interno destino externo ##########

[fijos]
exten => _[89]ZXXXXXXX,1,NoOp(Llamada salida fijo)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup

[moviles]
exten => _[67]XXXXXXXX,1,NoOp(Llamada a moviles)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[especiales]
exten => _[89]0XXXXXXX,1,NoOp(Llamadas a numeros de tarificacion especial)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[informacion]
exten => _11XXX,1,NoOp(Números de información)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[emergencias]
exten => _112,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
exten => _0XX,1,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)

[internacionales]
exten => _00XXXXXX.,1,NoOp(Llamadas internacionales)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[nomadas]
exten => _051XXXXXXXXX,1,NoOp(Numeros nomadas VoIP)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[sociales]
exten => _10[012689][0-7],1,NoOp(Servicios de valor social)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[info_Telefonica]
exten => _1565,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

Aqui esta la ruta de las llamadas entrantes que indicaba al principio


Código:
; ############## Llamadas entrantes Jazztel #################

[Jazztel]
exten => s,1,NoOp(Llamada entrante Jazztel de ${CALLERID(num))
same => n,GotoIf(${BLACKLIST()}?black)
same => n,GotoIf(${DB_EXISTS(whitelist/${CALLERID(num)})}?permit)
same => n,GotoIfTime(08:30-21:30|mon-sat|1-31|jan-dec?notime)
same => n,Dial(Local/30000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(notime),Answer()
same => n,Playback(es/timewarp)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(black),Answer()
same => n,Playback(es/privacy-you-are-blacklisted)
same => n,Hangup()
same => n(permit),Dial(Local/28000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()

Un ultimo detalle seria como introducir números en las listas blancas o negras, que se hará desde dentro de la consola CLI>

Aunque existen comandos para poderlo hacer desde el una extensión, yo dejare solo esta forma.

Introducir un numero en la lista negra:

database put blacklist XXXXXXXXX 1

Introducir un numero en la lista blanca:

database put whitelist XXXXXXXXX 1

Borrar un numero de la lista negra/blanca:

database del blacklist/whitelist XXXXXXXXX

Mostrar listado de lista negra/blanca:

database show blacklist/whitelist


Ademas de esto tengo dos problemas sin resolver aun. El primero de ellos es el continuo error diciéndome que options no es enviado de forma correcta, si lo desactivo, no funciona el troncal.

ERROR[2636]: res_pjsip.c:4051 endp_send_request: Error 320053 'DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN)' sending OPTIONS request to endpoint Jazztel_endpoint

Por otro lado tengo un problema mayor, que es que rutinariamente, la conexión se cae, el troncal muestra como conectado pero al marcar un numero saliente por el troncal, indica un Congested o Busy y no se como resolverlo. De momento he bajado el tiempo de refresco de la conexion


Buenas en el trunk prueba a quitar esto:

; [acl]
; type=acl
; acl=internal


[Jazztel_registration]
; client_uri=sip:+3491XXXXXXX@ims.jazztel.net ; Nuestro número de teléfono
 
Buenas tardes:

Pues si eso lo tengo así,

Por otro lado tambien modifique esto vigumo, voy a probar, pero asi de entrada no parece funcionar


Estoy probando también todo esto sobre Asterisk 16, por ahora con la versión 16.3.0 LTS va igual que en la 13.26.0

A ver si la conexión no se cae ahora
También modifiqué ACL porque ví que no solo se usa un servidor.

Código:
[internal]
deny=0.0.0.0/0.0.0.0
permit=X.X.X.X/24 ; Rango IP local
permit=212.106.212.22/24
permit=127.0.0.1
También en IDENTIFY

Código:
[Jazztel_identify]
type=identify
endpoint=Jazztel_endpoint
match=212.106.212.22/24
Y ENDPOINT del Trunk

Código:
[Jazztel_endpoint]
type=endpoint
transport=transport-udp
context=Jazztel
disallow=all
allow=alaw,g729,gsm
outbound_auth=Jazztel_auth
aors=Jazztel_aor
from_user=+34XXXXXXXXX
from_domain=ims.jazztel.net
rtp_symmetric=yes
rewrite_contact=yes
send_rpid=yes
 
Última edición:
Buenas noches:

Estoy probando las configuraciones de lerler60 y vigumo, anoche seguía dándome fallos.
InkedIMG_1282_LI.jpg
InkedIMG_1283_LI.jpg
InkedInkedimage1_LI.jpg


Durante la noche de hoy no estoy teniendo tantos fallos, pero el mas habitual es como se ve en la 2ª imagen una vez marcado el numero te cuelga dando un Everyone is busy/congested at this time (1:0/1/0).
Se soluciona con core reload, pero claro no es la mejor opción evidentemente, sobre todo porque tienes que abrir un terminal para ello.

Por otro lado, en Asterisk 16 (que lo tengo en pruebas a ratos) recibo llamadas pero no las puedo realizar dando ese mismo mensaje de Everyone is busy/congested at this time (1:0/1/0) pero no se soluciona con un core reload o reiniciando, pero sin embargo si aparece como registered.

Iré poniendo mas información cuando la vaya obteniendo. Es muy difícil reproducir una situación similar en cada usuario porque siempre hay variables modificables.

P.D.: A la vez también estoy haciendo las mismas pruebas con Movistar por si alguno le interesa también. Respecto a PJSIP hay muy poco en la red.
 
Buenos días:

Por algunos motivos tanto laborales como personales no he podido seguir durante algún tiempo escribiendo en el foro.

Bien, después de algunas pruebas, he resuelto algunas peculiaridades pero otras aun quedan por resolver.

Actualmente tengo funcionando Asterisk 13.26 tanto con Jazztel como con Movistar. Quiero exponer mis configuraciones, las cuales tengo colgadas en mi web con los detalles de las configuraciones de los archivos pjsip.conf y extensions.conf.

Uno de los primeros problemas fue el Voicemail, que no debe de ir precedido de PJSIP como se puede ver ya que cuando realizas un Voicemailmain(), e introduces el numero de buzón de voz, toma como extensión por ejemplo 30100 y no PJSIP/30100. Eso esta resuelto.

Segundo problema, las molestas llamadas reclamando una deuda de algún usuario anterior (da igual decir que no eres tu la persona, se revenderán la misma y seguirán llamando), así que como no hay forma humana de que no te llamen, opte por hacer un filtrado de llamadas.

Inicialmente, cuando una llamada entra por el troncal, la contesto y comparo el numero entrante con una blacklist (los números los introduzco desde la consola de Asterisk, aunque se podría hacer desde alguna extensión), si ese numero esta en esta lista negra, automáticamente reproduce un mensaje diciendo que esta en lista negra y cuelga.

Esto generaba un problema y es que siempre debía de coger al menos una llamada, o por lo menos sonar el teléfono al menos la primera vez antes de meterlo en la lista. Fue entonces cuando pensé en crear un horario de llamadas entrantes, pero claro quería poder dejar pasar las llamadas que a mi me interesasen como las de familiares o amigos. Como hacia esto? Bien pues después de comparar la lista negra, y ver que no estaba en ella, el siguiente paso es comprobar la lista blanca, si esta el numero en ella, automáticamente pasa a timbrar las extensiones y por tanto a realizar la llamada habitual. Si no esta, pasa al siguiente punto que es la regla de tiempo, en mi caso la cree de lunes a sábado, de 8.30 a 21.30 todos los días del año. Si la llamada esta dentro de este periodo, escuchan una bonita locución y después les salta el buzón de voz, en caso contrario dejaría entrar la llamada normalmente.

Esto igualmente me genera un problema que es que no se aun en que archivo se guardan las listas negras y blancas, esta claro que dentro de la consola si puedo ver lo que esta en la lista negra o blanca con un "database show blacklist/whitelist" asi como puedo introducir o quitar numeros con un database put blacklist/whitelist XXXXXXXXX 1 o quitar con un database del blacklist/whitelist XXXXXXXXX

Os dejo pjsip de Jazztel y el dialplan.
Todo esto esta en mi web como dije
http://www.ea4fyh.com/index.php/cat...8/46-introduccion-al-dialplan-extensions-conf
http://www.ea4fyh.com/index.php/categorias-4/categorias-8/45-bases-pjsip-para-jazztel-y-movistar

Código:
[general]
language=es
allowguest=no
autodomain=yes
domain=ims.jazzztel.net ; En el caso de movistar es telefonica.net
sipdomain=ims.jazztel.net ; En el caso de movistar es telefonica.net

[general]
type=global
user_agent=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

[endpoint]
100rel=yes
sdp_session=ZXHN ZTEF680/V2.0.10T5_JAZZT11I ; Esta linea solo seria necesaria en Jazztel, se consigue con el modelo y version de firm del router

; ############# Transporte interno Centralita #############

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24 ; Define el rango IP de nuestra red
local_net=127.0.0.1/32 ; Define el rango IP interno de la centralita

Ahora vamos a definir las extensiones a continuación:

Código:
; ################## Extension en casa #################

; #####  100  ##### Extension que queramos

[100]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm
force_rport=yes
direct_media=no
mailboxes=100@default
auth=100
aors=100

[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100

[100]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30

; #####  200  ##### Extension que queramos

[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200
aors=28200

[200]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=200

[200]
type=aor
max_contacts=1 ; Maximas llamadas simultaneas en caso de llamadas en espera u otras funciones similares
qualify_frequency=30
Ahora vamos con la parte del troncal, la de Jazztel en si:

Código:
; ########### Registro linea telefonica de Jazztel #############

[Jazztel_registration]
type=registration
transport=transport-udp
outbound_auth=Jazztel_auth
server_uri=sip:XXX.XXX.XXX.XX:5060 ; IP usada en nuestra conexión SIP
client_uri=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
retry_interval=60
expiration=3600
support_path=yes

[Jazztel_auth]
type=auth
auth_type=userpass
password=XXXXXX ; Contraseña de nuestra conexión SIP, se debe sacar del router en cuestion
username=[EMAIL]XXXXXXXXXXXXXXX@ims.jazztel.net[/EMAIL] ; Usuario de nuestra conexión SIP
realm=ims.jazztel.net

[Jazztel_endpoint]
type=endpoint
transport=transport-udp
context=Jazztel
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
outbound_auth=Jazztel_auth
aors=Jazztel_aor
from_user=+3491XXXXXXX ; Nuestro número de teléfono
from_domain=ims.jazztel.net

[Jazztel_aor]
type=aor
max_contacts=2
contact=sip:[EMAIL]+3491XXXXXXX@ims.jazztel.net[/EMAIL] ; Nuestro número de teléfono
qualify_frequency=60
qualify_timeout=5
support_path=yes

[Jazztel_identify]
type=identify
endpoint=Jazztel_endpoint
match=XXX.XXX.XXX.XX ; IP de nuestro servidor SIP

[acl]
type=acl
acl=internal
Ahora vemos el dialplan

Código:
[general]

static=yes
writeprotect=yes
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no
Ahora vamos a definir que hacer con las numeraciones:

Recibir lo que no tiene un contexto definido y rechazarlo por seguridad.

Código:
[default]
exten => _X.,1,hangup(21)
exten => s,1,hangup(21)
Ahora declaramos el contexto extensiones que contendrá lo que hacer con las llamadas internas (ya sean las entrantes desde el troncal, las internas entre extensiones y los servicios propios)

Código:
[extensiones]
include => internas
include => externas
include => echo
include => ring-group
include => contestador
include => contestador_ext
Definimos el contexto para las llamadas salientes por el troncal pjsip de movistar:

Código:
[externas]
include => fijos
include => moviles
include => especiales
include => informacion
include => emergencias
include => internacionales
include => sociales
include => nomadas
include => info_Telefonica
Ahora definimos las llamadas con origen y destino interno del contexto extensiones:

Código:
; ############### Llamadas origen y destino interno ##########

[internas] ; Llamadas internas
exten => _30[1-5]00,1,NoOp(Llamada entre extensiones)
same => n,Dial(PJSIP/${EXTEN},30,Tti)
same => n,Voicemail(${EXTEN}@default)
same => n,Hangup()

[ring-group] ; Grupo de timbrado, cuando la llamada entra por el troncal suenan todas las extensiones
exten => 30000,1,Log(NOTICE, Call group All in rin-group context)
exten => 30000,2,Set(ringgroup=PJSIP/28100&PJSIP/28200&PJSIP/28300&PJSIP/28400&PJSIP/28500)
exten => 30000,n,Dial(${ringgroup},60)
exten => 30000,n,Voicemail(28100@default)
exten => 30000,n,Hangup()

[echo] ; Prueba de eco
exten => 30999,1,Answer(500)
exten => 30999,n,Playback(es/demo-echotest)
exten => 30999,n,Echo()
exten => 30999,n,Playback(es/demo-echodone)
exten => 30999,n,Goto(s,6)

[contestador] ; Contestador desde el mismo numero desde el que se llama
exten => *97,1,Answer()
exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)
exten => *97,n,Hangup()

[contestador_ext] ; Contestador de otra extensión
exten => *98,1,Answer()
exten => *98,n,VoiceMailMain(@default)
exten => *98,n,Hangup()
Definimos las llamadas salientes por el troncal:

Código:
; ######### Llamadas origen interno destino externo ##########

[fijos]
exten => _[89]ZXXXXXXX,1,NoOp(Llamada salida fijo)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup

[moviles]
exten => _[67]XXXXXXXX,1,NoOp(Llamada a moviles)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[especiales]
exten => _[89]0XXXXXXX,1,NoOp(Llamadas a numeros de tarificacion especial)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[informacion]
exten => _11XXX,1,NoOp(Números de información)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[emergencias]
exten => _112,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
exten => _0XX,1,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)

[internacionales]
exten => _00XXXXXX.,1,NoOp(Llamadas internacionales)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[nomadas]
exten => _051XXXXXXXXX,1,NoOp(Numeros nomadas VoIP)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[sociales]
exten => _10[012689][0-7],1,NoOp(Servicios de valor social)
same => n,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

[info_Telefonica]
exten => _1565,1,Dial(PJSIP/Jazztel_endpoint/sip:${EXTEN}@ims.jazztel.net:5060,60)
same => n,hangup()

Aqui esta la ruta de las llamadas entrantes que indicaba al principio


Código:
; ############## Llamadas entrantes Jazztel #################

[Jazztel]
exten => s,1,NoOp(Llamada entrante Jazztel de ${CALLERID(num))
same => n,GotoIf(${BLACKLIST()}?black)
same => n,GotoIf(${DB_EXISTS(whitelist/${CALLERID(num)})}?permit)
same => n,GotoIfTime(08:30-21:30|mon-sat|1-31|jan-dec?notime)
same => n,Dial(Local/30000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(notime),Answer()
same => n,Playback(es/timewarp)
same => n,Voicemail(30100@default)
same => n,Hangup()
same => n(black),Answer()
same => n,Playback(es/privacy-you-are-blacklisted)
same => n,Hangup()
same => n(permit),Dial(Local/28000@extensiones,30,Tti)
same => n,Voicemail(30100@default)
same => n,Hangup()

Un ultimo detalle seria como introducir números en las listas blancas o negras, que se hará desde dentro de la consola CLI>

Aunque existen comandos para poderlo hacer desde el una extensión, yo dejare solo esta forma.

Introducir un numero en la lista negra:

database put blacklist XXXXXXXXX 1

Introducir un numero en la lista blanca:

database put whitelist XXXXXXXXX 1

Borrar un numero de la lista negra/blanca:

database del blacklist/whitelist XXXXXXXXX

Mostrar listado de lista negra/blanca:

database show blacklist/whitelist


Ademas de esto tengo dos problemas sin resolver aun. El primero de ellos es el continuo error diciéndome que options no es enviado de forma correcta, si lo desactivo, no funciona el troncal.

ERROR[2636]: res_pjsip.c:4051 endp_send_request: Error 320053 'DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN)' sending OPTIONS request to endpoint Jazztel_endpoint

Por otro lado tengo un problema mayor, que es que rutinariamente, la conexión se cae, el troncal muestra como conectado pero al marcar un numero saliente por el troncal, indica un Congested o Busy y no se como resolverlo. De momento he bajado el tiempo de refresco de la conexion

Buenas creo que en extensiones casa has puesto esto


[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100. CREO ESTO DEBE SER cambia 28100 por 100


[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200. DEBE SER 200
aors=28200. DEBE SER 200
 
Buenas noches:

Estoy probando las configuraciones de lerler60 y vigumo, anoche seguía dándome fallos.
Ver el adjunto 15246 Ver el adjunto 15248 Ver el adjunto 15250

Durante la noche de hoy no estoy teniendo tantos fallos, pero el mas habitual es como se ve en la 2ª imagen una vez marcado el numero te cuelga dando un Everyone is busy/congested at this time (1:0/1/0).
Se soluciona con core reload, pero claro no es la mejor opción evidentemente, sobre todo porque tienes que abrir un terminal para ello.

Por otro lado, en Asterisk 16 (que lo tengo en pruebas a ratos) recibo llamadas pero no las puedo realizar dando ese mismo mensaje de Everyone is busy/congested at this time (1:0/1/0) pero no se soluciona con un core reload o reiniciando, pero sin embargo si aparece como registered.

Iré poniendo mas información cuando la vaya obteniendo. Es muy difícil reproducir una situación similar en cada usuario porque siempre hay variables modificables.

P.D.: A la vez también estoy haciendo las mismas pruebas con Movistar por si alguno le interesa también. Respecto a PJSIP hay muy poco en la red.
Lo que falla no es el troncal, parece que es el endpoint del troncal de Jazztel. Intermitentemente se cae. Por eso se mantiene registrado, pero no se pueden realizar llamadas. Vigila porque en el router mantengo abierto el puerto NAT al servidor, pero filtro la IP de origen a 212.106.212.22/24. Espero que no la tengas más restringida.

Veo que en extensions.conf añades el puerto para la configuración de Jazztel. Para Movistar quizás haga falta, veo que es distinto al default, pero en Jazztel no se si puede generar un problema.

Yo tengo modificado en pjsip.conf también el qualify_frecuency a 30, en lugar de a 60. Salvo este detalle he modificado mi pjsip.conf, es igual que el tuyo salvo extensiones y autentificación, no me da ningún problema.
 
Buenas creo que en extensiones casa has puesto esto


[100]
type=auth
auth_type=userpass
password=contraseña ; Contraseña que queramos poner
username=28100. CREO ESTO DEBE SER cambia 28100 por 100


[200]
type=endpoint
transport=transport-udp
context=extensiones
disallow=all
allow=ulaw,alaw,gsm,g729
direct_media=no
mailboxes=200@default
auth=28200. DEBE SER 200
aors=28200. DEBE SER 200
Perdona es que puedo ocasionar confusión con ello. He borrado parte en las imágenes aposta. Realmente están bien y funcionando las extensiones. Tengo 5, y son 28100, 28200 así hasta 28500. Quise poner al traspasarlo al foro solo las 3 últimas cifras pero no debí cambiarlo en todo.
 
Lo que falla no es el troncal, parece que es el endpoint del troncal de Jazztel. Intermitentemente se cae. Por eso se mantiene registrado, pero no se pueden realizar llamadas. Vigila porque en el router mantengo abierto el puerto NAT al servidor, pero filtro la IP de origen a 212.106.212.22/24. Espero que no la tengas más restringida.

Veo que en extensions.conf añades el puerto para la configuración de Jazztel. Para Movistar quizás haga falta, veo que es distinto al default, pero en Jazztel no se si puede generar un problema.

Yo tengo modificado en pjsip.conf también el qualify_frecuency a 30, en lugar de a 60. Salvo este detalle he modificado mi pjsip.conf, es igual que el tuyo salvo extensiones y autentificación, no me da ningún problema.
Bueno parece que efectivamente algo estamos aclarando. Como bien dices yo inicialmente sospechaba del endpoint, no entendía porque no enviaba las opciones correctamente. Pero efectivamente el problema va a ser del Mikrotik.

Voy por partes. Empiezo por como tengo la red con voip de Jazztel.
Llega la fibra a un F601. Esto es una parte primordial porque yo he retirado el router de Jazztel. Bien... Desde este equipo me lanza el tráfico con IP pública al Mikrotik RB3011. La boca que tomo como WAN le asignó la VLAN 1074 y es por ella por la que resuelve la IP pública y DNS. Es decir resuelve el Mikrotik.

La apertura de puertos la hago desde la Vlan 1074 hasta la IP destino (no desde el WAN porque si no no abre). Hasta aquí ok. En DNS static tengo puesto ims.jazztel.net con su IP a resolver. Y tras abrir puertos sip y rtp, me daba los fallos anteriores de no resolver DNS.

Se me ocurrió en toda esta investigación, crear la Vlan 1074 en el.puerto que va a Asterisk y.... Reducción del 90%de fallos!!
53CDB091-026B-482A-BE56-B0AE79664C46.jpeg
493B97F7-1D95-416C-83EA-E54B2BA64FE9.jpeg
5EB6007E-4942-44F0-A187-77919A606D42.jpeg
CDFFF99A-9A44-42C4-8E79-030614DF2F57.jpeg
0E1DF01E-0FE5-448D-9231-128150BB4944.jpeg
142EB67E-A56E-4E97-9E89-67E1E2B0B261.jpeg


Aún así entiendo que no debería dar ni siquiera estos errores. Como veis en las fechas son las únicas caídas de conexión en tres días.

Sin embargo para comparar, en la red con Movistar, aunque nunca da un avail ya no me aparece el error (aquí sí que no me ha aparecido ya) y ha sido al abrir el rango de la DNS /24 hacia la IP de Asterisk (también lo hice en Jazztel). En este caso conservo el router de Movistar redirigido con dmz al rb3011 sin asignar ninguna Vlan, lo hace solo. Desactivando previamente la voip del router de compañía.

Por tanto el problema está en la correcta configuración del Mikrotik al eliminar el router de Jazztel. Que en cierto modo resolvía las DNS de voip. Así que el problema ahora es afinar en la configuración del Mikrotik. No sé si me dejo algo por el camino...
 
Añadiendo al texto anterior:

He reiniciado la Raspberry, ya que he actualizado a Asterisk 13.26 (tenía la 21). Y al reiniciar otra vez el continuo error de DNS he reiniciado de nuevo la Raspberry y a la vez el Mikrotik pero antes he añadido la Vlan 1074 al brigde y también he añadido un segundo DNS (ims.jazztel.net 212.106.212.22 ya que la mía era la 57)

Resultado ahora parece estable desde ese reinicio sobre las 22h (han pasado 2:30h).

Sigo pensando en que algo tengo mal en Mikrotik
 
Bueno pues a pesar de haber bajado el numero de desconexiones siguen dándose.
Lo que si me pasa es que no puedo hacer llamadas salientes proque todo el tiempo está busy/congested
65EC1938-CE82-43DC-BF3C-C753700DD6B2.jpeg
89E3FF1A-130F-4076-B22B-4A8EAAF6BD75.jpeg
1FC41F2F-CEF3-4F31-AF97-162388CEDFD3.jpeg
 
Arriba