Bugs item #3067207, was opened at 2010-09-15 17:17
Message generated for change (Comment added) made by amr42
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086410&aid=3067207&group_id=232389

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: trunk
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Kennard White (kennardwhite)
Assigned to: Nobody/Anonymous (nobody)
Summary: presence out of order NOTIFY

Initial Comment:
Using opensips presence module (HEAD), our clients sometimes get out of order 
delivery of NOTIFY messages and/or dropped NOTIFY messages. The root cause is 
that opensips creates multiple, concurrent NOTIFY transactions for the same 
dialog. This failure could be avoided by queuing subsequent NOTIFY messages 
until response for prior message is received.

The full details: say opensips creates two concurrent NOTIFY transactions: A 
and B. The first transmission of A is lost in the network, then B is delivered 
to the client, and then a retransmission of A is delivered to the client. This 
is out of order: client gets B before A. Depend upon the client, it will either 
accept A and process it like normal, drop it A, or send a 500 response to A.

 For full-state events like presence with "good" clients this is a benign 
failure. But for conference events (RFC4575) which is partial state, this is 
fatal.

Related info
The resip stack queues outgoing transaction messages to avoid this problem
See discussion: 
http://www.mail-archive.com/[email protected]/msg05638.html


----------------------------------------------------------------------

Comment By: Aron Rosenberg (amr42)
Date: 2010-09-15 17:24

Message:
Another very common way this can occur is if two PUBLISH messages come in
very close in time. The presence module will start sending out the NOTIFY's
for PUSBLISH 1, and then create a new set of NOTIFY's when PUBLISH 2
arrives.

PUBLISH 1 and 2 could be from the same endpoint, or from different
endpoints on the same URI.

One use case that tends to trigger this is when a UAC auto changes its
"presence" status upon receiving an incoming call. If an INVITE forks to
two endpoints both endpoints will issue PUBLISH extremmly close in time
causing the presence server to have NOTIFY transactions with multiple CSeq
numbers on the wire at the same time.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086410&aid=3067207&group_id=232389

_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel

Reply via email to