Hello,

first, such race can happen always and it is ok from sip rfc point of view. The carrier UA should have received the BYE from the other side and close the dialog, then ignore the rest. So it is a broken UA implementation imo.

Let's say you just drop the 481, then the BYE will time out (408)? Is the carrier UA still complaining? You can make a failure route for BYE and if it is 481, then use t_reply("408", "Timeout") if that makes the UA happier.

Cheers,
Daniel
 
On 7/28/12 8:42 PM, Brandon Armstead wrote:
Hello,

   I am running into an issue where there is a race condition happening.  I am looking for opinions / ideas on how to handle the following below scenario.

Scenario.

UAC places an outbound call -> upstream carrier.

The call is disconnected on both ends at the exact same time,

UAC -> sends BYE upstream

Upstream Carrier -> sends BYE downstream

Upstream 200 OK's the BYE

UAC sends 481 back to Upstream Carrier for their generated BYE.

The upstream carrier is complaining about receiving the relayed 481 responses -- so my first thought was simply to drop() these from relaying upstream.

I am curious how other people are handling this?

Would you suggest simply dropping the relay from being sent back upstream on the 481?

Would you simply always 200 OK a downstream BYE from trusted carriers regardless of UAC response, and create separate transaction to send BYE downstream?

Thank you as always.  Look forward to your thoughts / suggestions / ideas.

Sincerely,
Brandon Armstead


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 - http://asipto.com/u/katu
Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 - http://asipto.com/u/kpw