[OpenSIPS-Devel] [ opensips-Bugs-2431628 ] [dialog] 'bye_on_timeout_flag' generates wrong CSeq in BYE
SourceForge.net
noreply at sourceforge.net
Tue Dec 30 23:20:03 CET 2008
Bugs item #2431628, was opened at 2008-12-15 22:02
Message generated for change (Comment added) 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: Closed
>Resolution: Fixed
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: Bogdan-Andrei Iancu (bogdan_iancu)
Date: 2008-12-31 00:20
Message:
Hi Iñaki,
You are right. When constructing the BYEs, the CSEQs where swaped. The fix
is available on trunk and 1.4.
Thanks & Regards,
Bogdan
----------------------------------------------------------------------
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