-
Notifications
You must be signed in to change notification settings - Fork 633
Description
I was testing upgrading my OS from CentOS 5.3 to CentOS 6.4. After that, the same opensips.cfg (that uses SIP UDP only) started to fail to cancel the fr_timer when "100 Trying" is received.
The scenario is:
uac --> INVITE --> opensips --> INVITE --> FreeSWITCH
where opensips and FreeSWITCH reside on the same CentOS 6.4 machine.
FS just replies with "100 Trying" and sleep. Then after fr_timer passes, opensips terminates the call with "408 Request Timeout", but it shoudn't.
I know "100 Trying" was processed by opensips because it doesn't retransmit the INVITE to FS.
It seems to me that in CentOS 6.4, the OS handles the packets to opensips more quickly than with CentOS 5.3 and opensips is not ready to handle it.
To confirm this, I added a small delay in the packets doing this:
tc qdisc add dev lo root netem delay 1ms
and after that, opensips correctly canceled the fr_timer after reception of "100 Trying".
I have originally found this issue on branch 1.6, but I tested the latest revision of all branches 1.7, 1.8, 1.9 up to head and all of them shows this issue.
The one that I used for the investigation is this:
svn info
Path: .
URL: http://svn.code.sf.net/p/opensips/svn/trunk
Repository Root: http://svn.code.sf.net/p/opensips/svn
Repository UUID: 689a6050-402a-0410-94f2-e92a70836424
Revision: 10114
Node Kind: directory
Schedule: normal
Last Changed Author: opensipsrelease
Last Changed Rev: 10112
Last Changed Date: 2013-07-12 01:40:29 +0900 (Fri, 12 Jul 2013)
Regards,
Takeshi