< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] cseq issue with Dialog makeRequest


Hi,

This is concerning the following, where we are the UAC sending the SUBSCRIBEs:

SUBSCRIBE (CSeq: 1)
407/SUBSCRIBE (CSeq: 1)
SUBSCRIBE (CSeq: 2)
NOTIFY
200/SUBSCRIBE (CSeq: 2)
200/NOTIFY
(one hour goes by, and our subscription refresh timer fires)
SUBSCRIBE (CSeq: 2)  <---  issue

It looks to me like:

 - DialogSet invokes the ClientAuthManager to get the SUBSCRIBE w/CSeq: 2 to happen; the mLastRequest in BaseCreator gets updated to CSeq: 2 at this point
 - Dialog never gets updated with CSeq: 2; so when the subscription refresh goes out (formed using Dialog::makeRequest), it has CSeq: 2 (should be 3)

Am I missing something, or does this look like a legit issue?

(In our case it manifests itself in our not including Route headers on a re-SUBSCRIBE because we happen to get a 200/SUBSCRIBE response that doesn't include Record-Route headers -- and, because of the CSeq issue, we reset the route set based on that 200/SUBSCRIBE [the code thinks it was the "first 200 OK response", but it was obviously not]).

Thanks,
Jeremy