< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index |
Hi Scott,
Works well in my testing, thanks!
Jeremy
From: slgodin@xxxxxxxxx [slgodin@xxxxxxxxx] on behalf of Scott Godin [sgodin@xxxxxxxxxxxxxxx]
Sent: Thursday, May 31, 2012 8:52 AM To: Jeremy Geras Cc: resiprocate-devel@xxxxxxxxxxxxxxx Subject: Re: [reSIProcate] cseq issue with Dialog makeRequest Hi Jeremy,
This is a good find. Looks like you are running into the case where you receive the first NOTIFY before you receive the 200/SUB. When you receive the 200/SUB first then the Dialog is created using the 200 response and the CSeq is set appropriately in
the Dialog. When the dialog is created due to a NOTIFY request, the local CSeq starts at one. This is not correct. I'll commit a fix for this main:
Dialog::Dialog -> near end of isRequest code block:
mRemoteCSeq = request.header(h_CSeq).sequence();
// This may actually be a UAC dialogset - ie. the case where the first NOTIFY creates the
// SUBSCRIPTION dialog, instead of the 200/SUB. If so, then we need to make sure the local
// CSeq is correct - it's value may be greator than 1, if the original request (SUBSCRIBE)
// got digest challenged.
BaseCreator* creator = mDialogSet.getCreator();
if(creator)
{
mLocalCSeq = creator->getLastRequest()->header(h_CSeq).sequence();
}
else
{
mLocalCSeq = 1;
}
Regards,
Scott
On Wed, May 30, 2012 at 3:32 PM, Jeremy Geras
<jgeras@xxxxxxxxxxxxxxx> wrote:
|