[Freeswitch-users] SIP 500 overlapping requests

Phil Quesinberry philq at qsystemsengineering.com
Fri Jun 20 23:48:35 MSD 2014


Correction: I meant to say "if FreeSWITCH could be configured to either wait
up to x milliseconds for an ACKNOWLEDGEMENT to arrive."
___________________________________
From: Phil Quesinberry 
Sent: Friday, June 20, 2014 3:36 PM
To: 'freeswitch-users at lists.freeswitch.org'
Subject: RE: SIP 500 overlapping requests


As it turns out, my assumption was correct.  We were not receiving an
acknowledge before the second invite from the carrier.  One of their support
engineers determined that they had recently enabled acknowledgement logging
on their proxy/SBC, which apparently delayed transmission of the
acknowledgement by a millisecond or two, which was enough to cause the
invite from the server handling the media/call to arrive just slightly
before the acknowledgement, so FreeSWITCH would tear down the call.  The
problem was intermittent since the acknowledgement would sometimes arrive
first.  They disabled acknowledgement logging and the problem went away.

With this and UDP in mind, it would likely reduce the incidence of dropped
calls if FreeSWITCH could be configured to either wait up to x milliseconds
for an invite to arrive, or allow x number of overlapping requests before
throwing an error.  I saw a post where Tony mentioned that a patch had
already been crafted to allow overlapping requests in the past, so it seems
that most of the work has been done.

__________________________________
From: Phil Quesinberry 
Sent: Thursday, June 19, 2014 11:08 AM
To: 'freeswitch-users at lists.freeswitch.org'
Subject: SIP 500 overlappting requests


We're having intermittent problems receiving calls from a particular DID.
The basic scenario is as follows:
Carrier sends invite w/SDP
We respond w/OK and SDP when call is answered
Carrier sends another invite with incremented sequence number and updated
SDP (aren't they supposed to ACK/respond before doing this?)
We send SIP 500 - overlapping requests
Carrier sends BYE - terminating the call

Sometimes (rarely) the call completes, most of the time FS sends a 500 and
doesn't get the call.  This just started happening recently and does not
occur with any other DIDs, including other DIDs from the same carrier.  I
updated to the latest stable GIT to see if that might solve the problem but
I'm pretty sure this is on the carrier's end.  They're trying to blame it on
us since we're sending the 500 and suggested that we allow overlapping
requests.

I'm assuming that their end needs to acknowledge our answer OK/SDP before
sending their own but if that's the problem then it raises another question
in my mind: since the SIP transport is generally UDP, what if we don't
receive their ACK before receiving their subsequent invite/SDP?  This could
certainly happen and would cause the call to be rejected if the above is
true.

I updated to the latest stable GIT last night to rule that out as a possible
cause of the problem.  Is there a way to get FS to allow a limited number of
overlapping requests as a possible workaround?

If someone thinks this looks like it could be an FS bug, I'll file a Jira.

Here is a trace which shows this happening:
http://pastebin.freeswitch.org/22769

Thanks,

Phil Quesinberry
Q Systems Engineering, Inc.
Embedded Hardware/Software Development
 (410) 969-8002
http://www.qsystemsengineering.com <http://www.qsystemsengineering.com/> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20140620/d5762f08/attachment.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list