Bugs item #2819457, was opened at 2009-07-10 10:47
Message generated for change (Comment added) made by baron76
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=281945…
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: ver 1.5.x
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Alexandr Dubovikov (baron76)
Assigned to: Nobody/Anonymous (nobody)
Summary: dialog module. BYE with bad Cseq.
Initial Comment:
the dialog module in timeout BYE request send thru tm_module Cseq number from INVITE.
dlg_req_within.c:
function:
dlg_t * build_dlg_t(struct dlg_cell * cell, int dir){
line:
td->loc_seq.value = loc_seq;
if before final 200 OK, we will recieve PRACK/200 (new Cseq) , the dialog module will send
bad Cseq number (loc_seq + 1);
Scenario:
----INVITE ( Cseq: 1) ->
<--- 183 ( Cseq: 1) ----
---- PRACK ( Cseq: 3) ->
<---- 200 OK ( Cseq: 3) -
---------- timeout ---->
---- BYE ( Cseq: 2) ->
<------ 503 (Bad CSeq number) -------
Quickly Solution:
td->loc_seq.value = loc_seq + 100;
----------------------------------------------------------------------
Comment By: Alexandr Dubovikov (baron76)
Date:
2009-07-10 15:19
Message:
ok, in this case we couldn't remove Require, but can use this solution:
http://www.faqs.org/rfcs/rfc3261.html
8.2.2.3 Require
UAC->UAS: INVITE sip:watson@bell-telephone.com SIP/2.0
Require: 100rel
UAS->UAC: SIP/2.0 420 Bad Extension
Unsupported: 100rel
This behavior ensures that the client-server interaction will
proceed without delay when all options are understood by both
sides, and only slow down if options are not understood (as in the
example above). For a well-matched client-server pair, the
interaction proceeds quickly, saving a round-trip often required
by negotiation mechanisms. In addition, it also removes ambiguity
when the client requires features that the server does not
understand. Some features, such as call handling fields, are only
of interest to end systems.
anyway, all ways are posible. But as I told before, just make loc_seq
+=100;
it will be enougth.
Wbr,
Alexandr
----------------------------------------------------------------------
Comment By: Iñaki Baz Castillo (ibc_sf)
Date: 2009-07-10 14:37
Message:
Imagine that the UAC uses "Require: 100rel" instead of "Supported".
The
header cannot be removed or the call won't take place.
A proxy shouldn't play to be god :)
----------------------------------------------------------------------
Comment By: Alexandr Dubovikov (baron76)
Date: 2009-07-10 13:56
Message:
and PRACK/200 ok in the dialog. But I think, the best
solution, set
and PRACK/200 are not ok in the dialog. But I think, the best
solution,
set
----------------------------------------------------------------------
Comment By: Alexandr Dubovikov (baron76)
Date: 2009-07-10 13:55
Message:
Hi miconda,
much better remove_hf("Supported:") from INVITE request; :-)
and PRACK/200 ok in the dialog. But I think, the best solution, set
loc_seq +100.
P.S. don't forget about UPDATE method.
----------------------------------------------------------------------
Comment By: Daniel-Constantin Mierla (miconda)
Date: 2009-07-10 13:48
Message:
quick fix: reply pracks on server, with sl_send_reply() as they just get
into config?!?!
----------------------------------------------------------------------
Comment By: Iñaki Baz Castillo (ibc_sf)
Date: 2009-07-10 12:59
Message:
This is a good example of why a proxy shouldn't try to behave as a B2BUA
XD
----------------------------------------------------------------------
Comment By: Alexandr Dubovikov (baron76)
Date: 2009-07-10 10:50
Message:
oops:
Scenario:
----INVITE ( Cseq: 1) ->
<--- 183 ( Cseq: 1) ----
---- PRACK ( Cseq: 3) ->
<---- 200 OK ( Cseq: 3 PRACK) -
<---- 200 OK ( Cseq: 1 INVITE) -
---------- timeout dialog ---->
---- BYE ( Cseq: 2) ->
<------ 503 (Bad CSeq number) -------
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=281945…