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.