Asterisk 18 PJSIP con fallo de llamadas salientes en Movistar

Buenos dias a todos:

Desde hace unos 3 años, vengo funcionando en casa con Asterisk en su versión 16 sin problemas. Tengo una configuración algo compleja, con IVR y enlace IAX con otra centralita, que como digo vienen funcionando sin problemas.

Recientemente me he planteado pasar a Asterisk en su versión 18, ya que su soporte LTS será mas largo que lo que quede al 16 además de sus pequeñas mejoras y seguridad respecto al 16.

He compilado e instalado sin problema (bueno si los tuve al principio, pero ya realice la instalación limpia de cero), tanto el códec g729, como exim para gestionar los sms enviados por email, como voces en castellano así como chan_dongle para las llamadas por la línea móvil.

Todo lo que se gestiona por la línea móvil, he de decir que no da problema alguno, así como las extensiones y enlace entre centralita.

Únicamente fallan las llamadas salientes, porque incluso las entrantes funcionan perfectamente.

He intentado realizar un log, donde me da un error inespecífico, el 34 (No circuit/channel available) y arroja un Congestion, y un poco antes un Unauthorized que no tengo muy claro porque me lo da, siendo la misma configuración, me inclino por algún n parámetro en pjsip que no sepa.

La configuración es la misma que uso en Asterisk 16, la que lleva 3 años funcionando sin problemas, por tanto la estructura debería estar bien. Lo que no se es si en la versión 18 hay algún detalle que se me escape y no lo logre solucionar.

En la versión que funciona OK, utilizo Asterisk 16 + PJSIP 2.10

En la versión que no funciona, uso Asterisk 18 + PJSIP 2.10

Pego la configuración del Trunk en pjsip, así como un ejemplo de como saco una llamada desde el archivo extensión.conf.

Código:
[general]
pjsip.conf

language=es
allowguest=no
autodomain=yes
domain=telefonica.net
domainsasrealm=yes
sipdomain=telefonica.net
allowsubscribe=yes
subscribecontext=BLF

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

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24

; ###########################################################
; ######### Registro linea telefonica de Telefonica #########

[Telefonica_registration]
type=registration
transport=transport-udp
outbound_auth=Telefonica_auth
server_uri=sip:10.31.255.134:5070
client_uri=sip:91xxxxxxx@telefonica.net
retry_interval=60
expiration=600
support_path=yes

[Telefonica_auth]
type=auth
auth_type=userpass
password=xxxxxxxxx
username=xxxxxxxxx@telefonica.net
realm=telefonica.net

[Telefonica_endpoint]
type=endpoint
transport=transport-udp
context=Telefonica
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=gsm
outbound_auth=Telefonica_auth
aors=Telefonica_aor
from_user=xxxxxxxxx
from_domain=telefonica.net
dtmf_mode=auto
rewrite_contact=yes
rtp_symmetric=yes
send_rpid=yes
100rel=yes

[Telefonica_aor]
type=aor
max_contacts=2
contact=sip:10.31.255.134:5070
qualify_frequency=60
qualify_timeout=30
support_path=yes
remove_existing=yes
maximum_expiration=600

[Telefonica_identify]
type=identify
endpoint=Telefonica_endpoint
match=10.31.255.134/24
match=telefonica.net

[acl]
type=acl
acl=internal

Código:
extensions.conf

[general]
static=yes
writeprotect=no ; antes yes
priorityjumping=no
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no

[fijos]; Llamadas a telefonos fijos nacionales desde el fijo xx xxx xx xx.
exten => _[89]ZXXXXXXX,1,NoOp(Llamada a fijo ${EXTEN} a las ${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)})
same => n,System(echo '${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)} Llamada de ${CALLERID(num)} a ${EXTEN}' >> /var/log/asterisk/llamadas_salientes.txt)
same => n,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)
same => n,hangup();(Llamada a fijo ${EXTEN} finalizada)

[moviles]; Llamadas a telefonos moviles a traves del Dongle con numero yyy yy yy yy.
exten => _[67]XXXXXXXX,1,NoOp(Llamada a movil ${EXTEN}  a las ${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)})
same => n,System(echo '${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)} Llamada de ${CALLERID(num)} a ${EXTEN}' >> /var/log/asterisk/llamadas_salientes.txt)
same => n,Dial(Dongle/dongle1/${EXTEN},60)
same => n,hangup();(Llamada a movil finalizada a ${EXTEN})

Código:
PJSIP Logging enabled
<--- Transmitting SIP request (425 bytes) to UDP:192.168.1.27:5060 --->
OPTIONS sip:8400@192.168.1.27:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.25:5060;rport;branch=z9hG4bKPj05c407d5-f27a-4147-afd9-9c8a55fd0c6d
From: <sip:8400@192.168.1.25>;tag=b1538f52-852b-4ab2-a1d5-05337ddde40c
To: <sip:8400@192.168.1.27>
Contact: <sip:8400@192.168.1.25:5060>
Call-ID: aa7ec9a8-6a1f-4a6d-a2f2-107866e60383
CSeq: 38827 OPTIONS
Max-Forwards: 70
User-Agent: Asterisk PBX 18.5.0
Content-Length:  0


<--- Received SIP response (518 bytes) from UDP:192.168.1.27:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.25:5060;rport=5060;branch=z9hG4bKPj05c407d5-f27a-4147-afd9-9c8a55fd0c6d
From: <sip:8400@192.168.1.25>;tag=b1538f52-852b-4ab2-a1d5-05337ddde40c
To: <sip:8400@192.168.1.27>;tag=861101037
Call-ID: aa7ec9a8-6a1f-4a6d-a2f2-107866e60383
CSeq: 38827 OPTIONS
Supported: replaces, path, timer
User-Agent: ZTEF680/V2.0.10T5_JAZZT11I Grandstream GXP2130 1.0.11.35
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
Content-Length: 0


<--- Received SIP request (1175 bytes) from UDP:192.168.1.28:5062 --->
INVITE sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK1770163423;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 310 INVITE
Contact: "Salon - 8200" <sip:8200@192.168.1.28:5062>
Max-Forwards: 70
User-Agent: Grandstream DP750 1.0.15.9
Privacy: none
P-Preferred-Identity: "Salon - 8200" <sip:8200@192.168.1.25>
Supported: replaces, path, timer, 100rel, eventlist
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, PRACK
Content-Type: application/sdp
Accept: application/sdp, application/dtmf-relay
Content-Length:   478

v=0
o=8200 8020 8000 IN IP4 192.168.99.28
s=SIP Call
c=IN IP4 192.168.99.28
t=0 0
m=audio 5008 RTP/AVP 8 0 18 4 9 2 97 125 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=ptime:20
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:125 opus/48000/2
a=fmtp:125 maxplaybackrate=16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32-36,54

<--- Transmitting SIP response (493 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK1770163423
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=z9hG4bK1770163423
CSeq: 310 INVITE
WWW-Authenticate: Digest realm="asterisk",nonce="1626514955/593b5176f9e01b25d1c97d722192b620",opaque="54dbc3d748841d69",algorithm=md5,qop="auth"
Server: Asterisk PBX 18.5.0
Content-Length:  0


<--- Received SIP request (296 bytes) from UDP:192.168.1.28:5062 --->
ACK sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK1770163423;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=z9hG4bK1770163423
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 310 ACK
Content-Length: 0


<--- Received SIP request (1442 bytes) from UDP:192.168.1.28:5062 --->
INVITE sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK69658759;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 311 INVITE
Contact: "Salon - 8200" <sip:8200@192.168.1.28:5062>
Authorization: Digest username="8200", realm="asterisk", nonce="1626514955/593b5176f9e01b25d1c97d722192b620", uri="sip:1004@192.168.99.25", response="7550a9e247d2b526f8d73d80b94f52bf", algorithm=md5, cnonce="09266247", opaque="54dbc3d748841d69", qop=auth, nc=00000001
Max-Forwards: 70
User-Agent: Grandstream DP750 1.0.15.9
Privacy: none
P-Preferred-Identity: "Salon - 8200" <sip:8200@192.168.1.25>
Supported: replaces, path, timer, 100rel, eventlist
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, PRACK
Content-Type: application/sdp
Accept: application/sdp, application/dtmf-relay
Content-Length:   478

v=0
o=8200 8020 8000 IN IP4 192.168.1.28
s=SIP Call
c=IN IP4 192.168.1.28
t=0 0
m=audio 5008 RTP/AVP 8 0 18 4 9 2 97 125 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=ptime:20
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:125 opus/48000/2
a=fmtp:125 maxplaybackrate=16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32-36,54

<--- Transmitting SIP response (317 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK69658759
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
CSeq: 311 INVITE
Server: Asterisk PBX 18.5.0
Content-Length:  0


    -- Executing [1004@extensiones:1] NoOp("PJSIP/8200-00000006", "Llamada a servicios de valor social a 1004 a las 11:42:35 del dia 17-07-2021)") in new stack
    -- Executing [1004@extensiones:2] Dial("PJSIP/8200-00000006", "PJSIP/Telefonica_endpoint/sip:1004@telefonica.net:5070,60") in new stack
    -- Called PJSIP/Telefonica_endpoint/sip:1004@telefonica.net:5070
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing [1004@extensiones:3] Hangup("PJSIP/8200-00000006", "") in new stack
  == Spawn extension (extensiones, 1004, 3) exited non-zero on 'PJSIP/8200-00000006'
<--- Transmitting SIP response (395 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK69658759
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=320884e7-b394-468a-ba1c-40ba15df794c
CSeq: 311 INVITE
Server: Asterisk PBX 18.5.0
Reason: Q.850;cause=34
Content-Length:  0


<--- Received SIP request (313 bytes) from UDP:192.168.99.28:5062 --->
ACK sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK69658759;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=320884e7-b394-468a-ba1c-40ba15df794c
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 311 ACK
Content-Length: 0
Captura de pantalla 2021-07-17 a las 11.42.04.png


Espero que podais arrojar algo de luz sobre ello.

Os agradezco de antemano cualquier ayuda posible.
 
Únicamente fallan las llamadas salientes, porque incluso las entrantes funcionan perfectamente.

No entiendo del tema pero me acuerdo que había gente que le fallaban las llamadas salientes y lo que le faltaba era declarar en su máquina servidor la siguiente entrada. Prueba a ver.
Suerte.

Prueba a poner esta línea en tu archivo /etc/hosts:
10.31.255.134 telefonica.net
 
No entiendo del tema pero me acuerdo que había gente que le fallaban las llamadas salientes y lo que le faltaba era declarar en su máquina servidor la siguiente entrada. Prueba a ver.
Suerte.
Ya lo tengo declarado, perdón por no poner ese detalle, pero el hosts lo tengo con esa linea declarada desde el principio.

Tengo que seguir buscando...
 
Finalmente encontré la solución. Espero poder ayudar a más gente en este proceso. Es aplicable a cualquier version de asterisk:
Dentro de /etc encontramos un archivo llamado dhcpcd.conf al cual debemos añadir la linea siguiente al final del párrafo comentado #Example static IP configuration:
- static domain_name_servers=192.168.1.1 (o la ip del router)

Si a alguien le ha sucedido lo mismo y me puede confirmar si así lo soluciono lo agradecería.

Saludos a todos!! y Gracias!
 
Hola ea4fyh (otro de la radio por aqui!).

Yo estoy en las mismas, llamadas entrantes funcionando... luego nada. La entrada en el hosts por cierto no deberia usarse, telefonica.net es el realm que el proxy nos debe de resolver (una chapuza de telefonica al final como tantas), pero bueno...

Al lio: estoy intentado todo esto con FreePBX sobre Debian bullseye. Usando la interfaz, y no se puede configurar con los archivos a mano realmente. Sabes que hay que poner en cada campo del trunk? Para construir las direcciones sip adecuadas y demas.

En los telefonos directamente me funciona, por cierto.
 
Buenas noches!

(Compañero de radio )
Pues te comento. Intente levantar la conexion con Issabel, con interfaz gráfica y posteriormente con freepbx y el mismo problema. Con la interfaz gráfica no he sido capaz de ponerlo a andar correctamente. Pero el tema de que no deje realizar llamadas es por la resolución de nombre de dominio, porque ya me ha pasado, es mas he tenido que añadir en el dhcpcd.conf static domain_name_servers=ip del router ya que si no no se pierden las llamadas salientes de igual forma. Esta mal montado desde movistar, yo de momento estoy funcionando con asterisk puro y raspbian, pero me he llegado a plantear alquilar un número geográfico y solucionar todos estos problemas, y contratar solo la fibra o no usar el numero de telefonica. Todo depende del uso que se le vaya a dar claro.

Como ves no puedo ayudarte mucho ya que mis pruebas con freepbx no han funcionado correctamente despues de seguir miles de manuales por la red…

Lo siento


Enviado desde mi iPhone utilizando Tapatalk
 
Gracias por responder tan deprisa!

Mira, el asunto del 'realm' (telefonica.net) es que no se trata realmente de un DNS a resolver. Eso lo pasan al proxy SIP que tenemos (el tuyo es el mismo que tengo yo, tambien para clientes de O2) e internamente resuelve. Hay tambien cosas interesantes que saltan en los Via de la red interna de Movistar (ja).

Ahora, el problema es curioso: en los Yealink me funciona perfecto todo. De hecho, lo tengo configurado en uno de ellos asi, para no perder el uso del telf.

Pero en FreePBX sobre Debian bullseye todo arranca menos las llamadas salientes. Uso pjsip. Me esta dirigiendo las tramas de RTP a la direccion externa/ip de WAN... todo esto lo veo en el fw (tipo pfsense) cuando saltan los logs de la VLAN donde tengo las cosas de voz IP. He intentado cambiar la media_address y la external_address para SIP y para el trunk, sin exito.

Alquilar un trunk con un DID de .es es barato, te ahorras muchos problemas y es muy versatil.
 
Gracias por responder tan deprisa!

Mira, el asunto del 'realm' (telefonica.net) es que no se trata realmente de un DNS a resolver. Eso lo pasan al proxy SIP que tenemos (el tuyo es el mismo que tengo yo, tambien para clientes de O2) e internamente resuelve. Hay tambien cosas interesantes que saltan en los Via de la red interna de Movistar (ja).

Ahora, el problema es curioso: en los Yealink me funciona perfecto todo. De hecho, lo tengo configurado en uno de ellos asi, para no perder el uso del telf.

Pero en FreePBX sobre Debian bullseye todo arranca menos las llamadas salientes. Uso pjsip. Me esta dirigiendo las tramas de RTP a la direccion externa/ip de WAN... todo esto lo veo en el fw (tipo pfsense) cuando saltan los logs de la VLAN donde tengo las cosas de voz IP. He intentado cambiar la media_address y la external_address para SIP y para el trunk, sin exito.

Alquilar un trunk con un DID de .es es barato, te ahorras muchos problemas y es muy versatil.

El gran problema que surge con esto es que Asterisk no es capaz por si solo de resolver las rutas salientes por si solo.

Te explico lo que he podido averiguar hasta ahora. Si tú haces un Ping a telefónica.net nunca llegas (lógico). Por tanto tú envías a telefónica.net el registro, este contesta con la IP (no el dominio) y Asterisk ya no es capaz de responder a la IP porque nunca llega, ya que debe resolver de nuevo el dominio.
Esto lo he solucionado en mikrotik ponieneo en static DNS la DNS y el dominio telefónica.net.
Sin embargo, los teléfonos que tienes su software propio (que se paga al comprarlo claro) ya solucionan este problema (me imagino que serán capaces de resolver el dominio.

Como te digo el tema de llamadas salientes no es tanto el trunk sino meter las líneas en dhcpcd en servers y en static DNS de mikrotik, yo es así como lo he solucionado. De esta forma freepbx debería de funcionar. Al final usa archivos .conf con scripts que puentean la interfaz gráfica y Asterisk. Pero creo recordar que en freepbx podías configurar manualmente los .conf pero claro no aparece la info en la interfaz gráfica.

No sé si he arrojado algo de luz sobre ello.


Enviado desde mi iPhone utilizando Tapatalk
 
Hola de nuevo! :)

Unos apuntes rapidos:

- Para resolver las rutas tienes que hacerlo en tu router/cortafuegos en L3, me explico: Movistar y amigos te ponen VOIP en una VLAN etiquetada en el 'trunk' de fibra de la ONT, de ahi sale la WAN para PPPoE y la VOIP. Bueno, la clave es que esa vlan de VOIP tiene una gateway y una asignacion DHCP propia que se completa con rutas servidas por RIPv2. En el momento que configuras la interfaz de esa vlan para aceptar RIPv2 y dejar que pasen las tramas, te pone las rutas en la tabla correspondiente.

- Ahora lo siguiente: una vez eso esta lista tienes un problema: las comunicaciones hacia la VLAN de VOIP tienen que pasar por NAT, la direccion "mascara" de salida hacia el proxy de VOIP de Movistar (el que acaba en .134), debe ser la direccion asignada a la interfaz de la vlan de VOIP. Esto es sencillo de arreglar, usando policy routing pones una regla en cada vlan que tenga equipos que conectan al proxy .134 para que cambien la gateway a la de la interfaz VOIP y permitan ese trafico. Luego una regla de NAT para enmascarar todas esas conexiones como si vinieran de la IP asignada a la interfaz VOIP y listos...

Una vez esta eso, ya puedes conectar. No hay nada misterioso en los telefonos, el problema es que operan como clientes, no como un PBX, si me explico bien. No hay doble NAT ni nada. RTP va directo. Por eso funcionan sin mas. Luego el 'realm' de telefonica.net es 'virtual', lo resuelve el propio proxy SIP (.134).

Cuando configuramos nuestro PBX ahi estas realmente haciendo un paso intermedio mas sin 'direct media', es decir, cliente a PBX, PBX a Movistar. Hay algo en PJSIP que no entiendo bien por ahora pero casca con el sistema de Movisar por algo de NAT+asignaciones internas.
Es mas facil hablar esto en tiempo real, tambien.

Resumen: se puede hacer, pero hay algun rollo de NAT y PJSIP propio de FreePBX que toca las narices.
 
Buenas noches!

(Compañero de radio )
Pues te comento. Intente levantar la conexion con Issabel, con interfaz gráfica y posteriormente con freepbx y el mismo problema. Con la interfaz gráfica no he sido capaz de ponerlo a andar correctamente. Pero el tema de que no deje realizar llamadas es por la resolución de nombre de dominio, porque ya me ha pasado, es mas he tenido que añadir en el dhcpcd.conf static domain_name_servers=ip del router ya que si no no se pierden las llamadas salientes de igual forma. Esta mal montado desde movistar, yo de momento estoy funcionando con asterisk puro y raspbian, pero me he llegado a plantear alquilar un número geográfico y solucionar todos estos problemas, y contratar solo la fibra o no usar el numero de telefonica. Todo depende del uso que se le vaya a dar claro.

Como ves no puedo ayudarte mucho ya que mis pruebas con freepbx no han funcionado correctamente despues de seguir miles de manuales por la red…

Lo siento


Enviado desde mi iPhone utilizando Tapatalk
Creo que el problema es que telefónica lo tiene bastante controlado... al principio funcionaba pero rápido te dan el corte.
Si solo lo quieres para llamadas entrantes puedes alquilar un numero como dices pero no aprovechas los minutos que te regalan en llamadas ya que sacarías las llamadas por el proveedor ip. Si quieres mantener el numero también puedes alquilar uno como dices y desviarlo sobre el nuevo, así quien ya conozca tu numero no sabrá que está trasladándose esa llamada a otro y con un buen proveedor ip puedes identificarte con una numeración que posees aunque esté en otra compañía por lo que tendrías llamadas entrantes y salientes con ese numero de la fibra.
 
Pues puedo asegurarte que llevo más de dos años y funcionan las llamadas entrantes y salientes


Enviado desde mi iPhone utilizando Tapatalk
 
Algo tiene que tener cuando unos pueden y otros no... igual están en distintas plataformas como cuando clasifican las fibras de los clientes...
 
Yo te puedo decir que tengo una levantada en el centro de Madrid y otra en Torrejón de Ardoz y no he tenido problema hasta la fecha. Cierto es que al principio me dio muchos problemas hasta dar con la correcta configuración. No solo es asterisksinl la redirección que es lo que más problemático es en cuanto a las llamadas salientes.


Enviado desde mi iPhone utilizando Tapatalk
 
Buenos dias a todos:

Desde hace unos 3 años, vengo funcionando en casa con Asterisk en su versión 16 sin problemas. Tengo una configuración algo compleja, con IVR y enlace IAX con otra centralita, que como digo vienen funcionando sin problemas.

Recientemente me he planteado pasar a Asterisk en su versión 18, ya que su soporte LTS será mas largo que lo que quede al 16 además de sus pequeñas mejoras y seguridad respecto al 16.

He compilado e instalado sin problema (bueno si los tuve al principio, pero ya realice la instalación limpia de cero), tanto el códec g729, como exim para gestionar los sms enviados por email, como voces en castellano así como chan_dongle para las llamadas por la línea móvil.

Todo lo que se gestiona por la línea móvil, he de decir que no da problema alguno, así como las extensiones y enlace entre centralita.

Únicamente fallan las llamadas salientes, porque incluso las entrantes funcionan perfectamente.

He intentado realizar un log, donde me da un error inespecífico, el 34 (No circuit/channel available) y arroja un Congestion, y un poco antes un Unauthorized que no tengo muy claro porque me lo da, siendo la misma configuración, me inclino por algún n parámetro en pjsip que no sepa.

La configuración es la misma que uso en Asterisk 16, la que lleva 3 años funcionando sin problemas, por tanto la estructura debería estar bien. Lo que no se es si en la versión 18 hay algún detalle que se me escape y no lo logre solucionar.

En la versión que funciona OK, utilizo Asterisk 16 + PJSIP 2.10

En la versión que no funciona, uso Asterisk 18 + PJSIP 2.10

Pego la configuración del Trunk en pjsip, así como un ejemplo de como saco una llamada desde el archivo extensión.conf.

Código:
[general]
pjsip.conf

language=es
allowguest=no
autodomain=yes
domain=telefonica.net
domainsasrealm=yes
sipdomain=telefonica.net
allowsubscribe=yes
subscribecontext=BLF

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

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.1.0/24

; ###########################################################
; ######### Registro linea telefonica de Telefonica #########

[Telefonica_registration]
type=registration
transport=transport-udp
outbound_auth=Telefonica_auth
server_uri=sip:10.31.255.134:5070
client_uri=sip:91xxxxxxx@telefonica.net
retry_interval=60
expiration=600
support_path=yes

[Telefonica_auth]
type=auth
auth_type=userpass
password=xxxxxxxxx
username=xxxxxxxxx@telefonica.net
realm=telefonica.net

[Telefonica_endpoint]
type=endpoint
transport=transport-udp
context=Telefonica
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=gsm
outbound_auth=Telefonica_auth
aors=Telefonica_aor
from_user=xxxxxxxxx
from_domain=telefonica.net
dtmf_mode=auto
rewrite_contact=yes
rtp_symmetric=yes
send_rpid=yes
100rel=yes

[Telefonica_aor]
type=aor
max_contacts=2
contact=sip:10.31.255.134:5070
qualify_frequency=60
qualify_timeout=30
support_path=yes
remove_existing=yes
maximum_expiration=600

[Telefonica_identify]
type=identify
endpoint=Telefonica_endpoint
match=10.31.255.134/24
match=telefonica.net

[acl]
type=acl
acl=internal

Código:
extensions.conf

[general]
static=yes
writeprotect=no ; antes yes
priorityjumping=no
autofallthrough=yes
language=es
extenpatternmatchnew=yes
clearglobalvars=no

[fijos]; Llamadas a telefonos fijos nacionales desde el fijo xx xxx xx xx.
exten => _[89]ZXXXXXXX,1,NoOp(Llamada a fijo ${EXTEN} a las ${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)})
same => n,System(echo '${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)} Llamada de ${CALLERID(num)} a ${EXTEN}' >> /var/log/asterisk/llamadas_salientes.txt)
same => n,Dial(PJSIP/Telefonica_endpoint/sip:${EXTEN}@telefonica.net:5070,60)
same => n,hangup();(Llamada a fijo ${EXTEN} finalizada)

[moviles]; Llamadas a telefonos moviles a traves del Dongle con numero yyy yy yy yy.
exten => _[67]XXXXXXXX,1,NoOp(Llamada a movil ${EXTEN}  a las ${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)})
same => n,System(echo '${STRFTIME(${EPOCH},,%H:%M:%S)} del dia ${STRFTIME(${EPOCH},,%d-%m-%Y)} Llamada de ${CALLERID(num)} a ${EXTEN}' >> /var/log/asterisk/llamadas_salientes.txt)
same => n,Dial(Dongle/dongle1/${EXTEN},60)
same => n,hangup();(Llamada a movil finalizada a ${EXTEN})

Código:
PJSIP Logging enabled
<--- Transmitting SIP request (425 bytes) to UDP:192.168.1.27:5060 --->
OPTIONS sip:8400@192.168.1.27:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.25:5060;rport;branch=z9hG4bKPj05c407d5-f27a-4147-afd9-9c8a55fd0c6d
From: <sip:8400@192.168.1.25>;tag=b1538f52-852b-4ab2-a1d5-05337ddde40c
To: <sip:8400@192.168.1.27>
Contact: <sip:8400@192.168.1.25:5060>
Call-ID: aa7ec9a8-6a1f-4a6d-a2f2-107866e60383
CSeq: 38827 OPTIONS
Max-Forwards: 70
User-Agent: Asterisk PBX 18.5.0
Content-Length:  0


<--- Received SIP response (518 bytes) from UDP:192.168.1.27:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.25:5060;rport=5060;branch=z9hG4bKPj05c407d5-f27a-4147-afd9-9c8a55fd0c6d
From: <sip:8400@192.168.1.25>;tag=b1538f52-852b-4ab2-a1d5-05337ddde40c
To: <sip:8400@192.168.1.27>;tag=861101037
Call-ID: aa7ec9a8-6a1f-4a6d-a2f2-107866e60383
CSeq: 38827 OPTIONS
Supported: replaces, path, timer
User-Agent: ZTEF680/V2.0.10T5_JAZZT11I Grandstream GXP2130 1.0.11.35
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
Content-Length: 0


<--- Received SIP request (1175 bytes) from UDP:192.168.1.28:5062 --->
INVITE sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK1770163423;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 310 INVITE
Contact: "Salon - 8200" <sip:8200@192.168.1.28:5062>
Max-Forwards: 70
User-Agent: Grandstream DP750 1.0.15.9
Privacy: none
P-Preferred-Identity: "Salon - 8200" <sip:8200@192.168.1.25>
Supported: replaces, path, timer, 100rel, eventlist
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, PRACK
Content-Type: application/sdp
Accept: application/sdp, application/dtmf-relay
Content-Length:   478

v=0
o=8200 8020 8000 IN IP4 192.168.99.28
s=SIP Call
c=IN IP4 192.168.99.28
t=0 0
m=audio 5008 RTP/AVP 8 0 18 4 9 2 97 125 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=ptime:20
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:125 opus/48000/2
a=fmtp:125 maxplaybackrate=16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32-36,54

<--- Transmitting SIP response (493 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK1770163423
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=z9hG4bK1770163423
CSeq: 310 INVITE
WWW-Authenticate: Digest realm="asterisk",nonce="1626514955/593b5176f9e01b25d1c97d722192b620",opaque="54dbc3d748841d69",algorithm=md5,qop="auth"
Server: Asterisk PBX 18.5.0
Content-Length:  0


<--- Received SIP request (296 bytes) from UDP:192.168.1.28:5062 --->
ACK sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK1770163423;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=z9hG4bK1770163423
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 310 ACK
Content-Length: 0


<--- Received SIP request (1442 bytes) from UDP:192.168.1.28:5062 --->
INVITE sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK69658759;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 311 INVITE
Contact: "Salon - 8200" <sip:8200@192.168.1.28:5062>
Authorization: Digest username="8200", realm="asterisk", nonce="1626514955/593b5176f9e01b25d1c97d722192b620", uri="sip:1004@192.168.99.25", response="7550a9e247d2b526f8d73d80b94f52bf", algorithm=md5, cnonce="09266247", opaque="54dbc3d748841d69", qop=auth, nc=00000001
Max-Forwards: 70
User-Agent: Grandstream DP750 1.0.15.9
Privacy: none
P-Preferred-Identity: "Salon - 8200" <sip:8200@192.168.1.25>
Supported: replaces, path, timer, 100rel, eventlist
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, PRACK
Content-Type: application/sdp
Accept: application/sdp, application/dtmf-relay
Content-Length:   478

v=0
o=8200 8020 8000 IN IP4 192.168.1.28
s=SIP Call
c=IN IP4 192.168.1.28
t=0 0
m=audio 5008 RTP/AVP 8 0 18 4 9 2 97 125 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=ptime:20
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:125 opus/48000/2
a=fmtp:125 maxplaybackrate=16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32-36,54

<--- Transmitting SIP response (317 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK69658759
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>
CSeq: 311 INVITE
Server: Asterisk PBX 18.5.0
Content-Length:  0


    -- Executing [1004@extensiones:1] NoOp("PJSIP/8200-00000006", "Llamada a servicios de valor social a 1004 a las 11:42:35 del dia 17-07-2021)") in new stack
    -- Executing [1004@extensiones:2] Dial("PJSIP/8200-00000006", "PJSIP/Telefonica_endpoint/sip:1004@telefonica.net:5070,60") in new stack
    -- Called PJSIP/Telefonica_endpoint/sip:1004@telefonica.net:5070
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing [1004@extensiones:3] Hangup("PJSIP/8200-00000006", "") in new stack
  == Spawn extension (extensiones, 1004, 3) exited non-zero on 'PJSIP/8200-00000006'
<--- Transmitting SIP response (395 bytes) to UDP:192.168.1.28:5062 --->
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP 192.168.1.28:5062;rport=5062;received=192.168.1.28;branch=z9hG4bK69658759
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=320884e7-b394-468a-ba1c-40ba15df794c
CSeq: 311 INVITE
Server: Asterisk PBX 18.5.0
Reason: Q.850;cause=34
Content-Length:  0


<--- Received SIP request (313 bytes) from UDP:192.168.99.28:5062 --->
ACK sip:1004@192.168.1.25 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.28:5062;branch=z9hG4bK69658759;rport
From: "Salon - 8200" <sip:8200@192.168.1.25>;tag=1045748764
To: <sip:1004@192.168.1.25>;tag=320884e7-b394-468a-ba1c-40ba15df794c
Call-ID: 951378316-5062-32@BJC.BGI.JJ.CI
CSeq: 311 ACK
Content-Length: 0
Ver el adjunto 84324

Espero que podais arrojar algo de luz sobre ello.

Os agradezco de antemano cualquier ayuda posible.
Hola!

Has conseguido que te funcione? Yo tenía una versión antigua de asterisk funcionando correctamente (con chan_sip), pero con la versión 16 que tengo ahora y pjsip no hay forma de que funcionen las llamadas salientes. El registro y las llamadas entrantes funcionan sin problema. Aguas arriba tengo un Mikrotik con RIP y srcnat/masquerade activados en la VLAN 3.
Veo que dices que en tu caso la versión 16 de asterisk funcionaba y es la 18 la que falla. En mi caso, la 16.24.1 no hay forma de que funcione y en vista de lo que dices no he probado con la 18.

He estado haciendo todo tipo de pruebas y capturas de tráfico. La principal diferencia que encuentro con otros sistemas que funcionan correctamente (p.e. 3CX) es que el INVITE/SDP que genera asterisk no incluye el teléfono de destino. En mi caso, el INVITE para originar una llamada es INVITE sip:10.31.255.134:5070 (en vez de INVITE sip:xxxxxxxxx@10.31.255.134:5070 que generan otros sistemas). No se si eso podría ser la causa y, en caso de serlo, si se puede modificar con algún parámetro de asterisk.

Saludos y gracias!
 
Arriba