Buenas a todos, os planteo una duda ...
Ante un INVITE que llega a un OpenSer, para un usuario que tiene n contacs (se
ha registrado desde varios sitios), el comportamiento de TM y REGISTRANT es
hacer branching y paralel forking, hasta ahi todo ok.
Ahora resulta que uno o varios de los n contacs tiene Path y esto
hace "saltar" las branches a otro proxy.
Todos los contact reciben su INVITE, al que contestan con sus respectivos 100
Trying, 180 Ringing, etc ...
Si un contact contesta (genera un 200 Ok), el OpenSer "autogenera" (desde el
proxy que ha recibido el 200 OK) un 487 para el resto de los branches,
incluidos los que van con PATH, hasta aqui todo ok
Problema: algunos de los contacs estaban detrás de NAT, lo que hico que el
INVITE generase peticiones de sesion a un MediaProxy, pero cuando los
branches que no contestaron reciben su 487, cortan, pero es que el OpenSer
tambien me llama a end_media_session, jodiendome el invento, porque el
usuario se queda con una llamada con el canal de señalización abierto, pero
sin RTP.
Pregunta: ¿Como se puede hacer que el end_media_session se ejecute SOLO ante
el final reply del branch que contestó y no ante los 487 que van para los
branches que no contestaron?, está claro que será con setbflag, pero la duda
es como puedo saber, ante una llamada a lookup que este INVITE va a generar
branching.
--
Saludos.
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.