Hola,
tengo montado el siguiente escenario:
pjsua1 ----- openser1 ----- asterisk ---- openser2 ----- pjsua2
En pjsua1 tengo una cuenta registrada en opensip1: juan@192.168.1.54 En pjsua2 tengo una cuenta registrada en opensip2: pepe@192.168.2.56 Entre cada openser y asterisk tengo creada una troncal SIP: troncal1 para openser1 y troncal2 para openser2.
Y los ficheros de configuración de asterisk los tengo así: sip.conf [general] #Registro ante openser register=>troncal1:troncal1@192.168.1.54/troncal1 register=>troncal2:troncal2@192.168.2.56/troncal2 #Extensión que funciona como troncal SIP [troncal1] type=friend secret=troncal1 username=troncal1 password=troncal1 fromuser=troncal1 fromdomain=192.168.1.54 host=192.168.1.54 context=from-openser insecure=invite
[troncal2] type=friend secret=troncal2 username=troncal2 password=troncal2 fromuser=troncal2 fromdomain=192.168.2.56 host=192.168.2.56 context=from-openser insecure=invite #Usuarios registrados en openser [pepe] username=pepe host=192.168.2.56 qualify=no context=from-openser
[juan] username=juan host=192.168.1.54 qualify=no context=from-openser
extensions.conf [from-openser] exten=>troncal1,1,Dial(SIP/troncal1) exten=>troncal2,1,Dial(SIP/troncal2)
exten=>pepe,1,Dial(SIP/pepe@192.168.2.56,30,Ttm) exten=>pepe,2,Hangup
exten=>juan,1,Dial(SIP/juan@192.168.1.54,30,Ttm) exten=>juan,2,Hangup
El problema que tengo es que las llamadas o funcionan de pjsua1 a pjsua2 o de pjsua2 a pjsua1, y el sentido en el que funcionan depende de que openser arranco primero. Si es el openser2 van de pjsua2 a pjsua1 y si es el openser1 es de pjsua1 a pjsua2. Yo quiero que las llamadas funcionen en los dos sentidos sin problemas.
Viendo el fichero de log de asterisk en ambos sentidos y comparándolo veo las siguientes diferencias:
Llamada OK: logger.c: No user 'pepe' in SIP users list logger.c: Found peer for 'troncal2' from '192.168.2.56:5060' logger.c: Looking for juan in from_openser (domain 192.168.1.54)
Llamada fallida: logger.c: No user 'juan' in SIP users list logger.c: No matching peer for 'juan' from '192.168.1.54:1053' logger.c: Looking for pepe in default (domain 192.168.2.56)
De lo que deduzco que no detecta bien la troncal1, aunque al hacer sip show registry en asterisk aparece correctamente registrada, y que como busca al usuario 'pepe' en el contexto default y este no aparece, por eso devuelve el mensaje '404 Not Found'.
He hecho el siguiente cambio para ver si funcionaba: Añadir en extensions.conf [default] include => from_openser
Entonces la llamada ya funciona en los dos sentidos porque en default si que aparece el usuario buscado. Sin embargo esta solución no me parece la adecuada, y lo que interesa es que detecte correctamente las dos troncales para que funcione sin problemas en los dos sentidos, y a los usuarios los busque en el contexto adecuado y no en default. El problema es que no sé como hacerlo, si alguien me puede ayudar se lo agradezco de antemano.
[snip]
El problema que tengo es que las llamadas o funcionan de pjsua1 a pjsua2 o de pjsua2 a pjsua1, y el sentido en el que funcionan depende de que openser arranco primero. Si es el openser2 van de pjsua2 a pjsua1 y si es el openser1 es de pjsua1 a pjsua2. Yo quiero que las llamadas funcionen en los dos sentidos sin problemas.
El tema creo que es debido a que tienes los register=> en Asterisk. Asterisk se registra en cada uno de los openser, por lo que si pjsua1 llama a pjsua2 pero arrancaste el openser2 después y no le conta la información de registro no funcionará.
Problema solucionado, tenía un fallo en el fichero openser.cfg de ambos openser al redireccionar el tráfico a asterisk, una vez corregido a funcionado sin problemas, con la configuración arriba indicada, en las dos direcciones.
sr-users-es@lists.kamailio.org