[OpenSIPS-Devel] [ opensips-Bugs-2431628 ] [dialog] 'bye_on_timeout_flag' generates wrong CSeq in BYE

SourceForge.net noreply at sourceforge.net
Tue Dec 16 15:25:12 CET 2008


Bugs item #2431628, was opened at 2008-12-15 22:02
Message generated for change (Settings changed) made by bogdan_iancu
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086410&aid=2431628&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: Accepted
>Priority: 6
Private: No
Submitted By: Iñaki Baz (ibc_sf)
>Assigned to: Bogdan-Andrei Iancu (bogdan_iancu)
Summary: [dialog] 'bye_on_timeout_flag' generates wrong CSeq in BYE

Initial Comment:
alice calls bob, and during the call alice sends 2 re-INVITE's to bob.
After 10 seconds dialog module expires and OpenSIPS sends a BYE to alice and bob.
The CSeq sent is incorrect in one of the BYE and causes a reply "500 Request received out of order" from bob.

I've tested also the case in wich both alice and bob do varios re-INVITE (send any in-dialog request), and the CSeq is always wrong in the BYE sent to the *recipient* of the las in-dialog request.

I attach a SIP trace which shows the bug, and also describe here:



alice           opensips              bob


# Initial INVITE
INVITE (871) ---->
                       INVITE (871) ---->
                       <------- 200 (871)
<------- 200 (871)
ACK (871) ------->
                       ACK (871) ------->


# re-INVITE
INVITE (872) ---->
                       INVITE (872) ---->
                       <------- 200 (872)
<------- 200 (872)
ACK (872) ------->
                       ACK (872) ------->


# Dialog timer expires
# Internal BYE's generated by OpenSIPS
<------- BYE (873)
                       BYE (872) ------->
                       <------- 500 (872)
200 (873) ------->



This is obviously very wrong:

- The BYE sent to alice is 873 when it could be **ANY** value (since alice hasn't received an in-dialog request yet in this dialog). Anyhow, it works because 873 is a valid remote CSeq (any number would be valid in fact).

- The BYE sent to bob is wrong since it must be 873 instead of 872. This produces a "500 Request received out of order" from bob, so the BYE has no effect on bob.

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

Comment By: Iñaki Baz (ibc_sf)
Date: 2008-12-15 22:22

Message:
I'm now doing a test when both alice and bob send in-dialog requests during
the dialog.
When the dialog time expires, OpenSIPS sends the BYE with **inverted
order**!
This is: The BYE to alice contains the value appropiate for bob, and
viceversa.

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

Comment By: Iñaki Baz (ibc_sf)
Date: 2008-12-15 22:10

Message:
File Added: local_bye_ERROR

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

Comment By: Iñaki Baz (ibc_sf)
Date: 2008-12-15 22:10

Message:
Sorry, Sourceforge makes hard to paint a flow (it eliminates all the
spaces) so I attach the SIP flow and also the SIP trace in two files.
File Added: local_bye_ERROR_sip_flow

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

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



More information about the Devel mailing list