Review Board 1.7.16


Handle 183 without SDP - don't always convert to ringing

Review Request #3580 - Created June 2, 2014 and updated

Olle E Johansson
1.8
ASTERISK-15852
Reviewers
asterisk-dev
Asterisk
Lync sends the first 183 with SDP using prack. Following 183s have no SDP. The current code treats follow-ups as RINGING, which is a bug.

Red blobs are a bonus in the review, but will not be offered in commit.
Just a few thousand calls. That's all.
Total:
1
Open:
1
Resolved:
0
Dropped:
0
Status:
From:
Review request changed
Updated (June 3, 2014, 9:34 a.m.)
Added bug ASTERISK-15852 (original issue for the 183 -> 180 conversion)
Posted (June 3, 2014, 9:50 a.m.)

   

  
/branches/1.8/channels/chan_sip.c (Diff revision 1)
 
 
 
This "workaround" has probably caused more problems than it solved.

Unfortunately, I don't think this patch will always work.

If the SDP we receive in the first 183 contains a "sendonly" attribute, the remote address on the RTP instance will be 0. This will cause this code to treat a subsequent 183 as Ringing, even though we've received an SDP that negotiates an audio media stream.

As much as I hate 'levers' to control behavior, this may be a situation where it would be appropriate to have a configuration setting to either treat a 183 without an SDP as Ringing or not.

It could default to the existing behavior in 1.8-12; we could change the default to honoring the 183 in 13+.
Posted (June 3, 2014, 9:53 a.m.)
This is one of those cases that really could use a test in the Asterisk Test Suite.
(1) It's dealing with odd behavior in a very old part of chan_sip
(2) The existing behavior works around bad behavior in an old PBX; the new patch properly handles a corner case of a modern system (multiple 183's aren't super common)
(3) The risk of someone coming along and making an inappropriate code change that breaks either the workaround for the Alcatel PBX or Lync is reasonably high

The purpose of a test here is less to verify the correctness of the patch - I believe you tested it with several thousand calls! - but rather to help "future proof" Asterisk against subsequent changes.

I'd be happy to help work some SIPp scenarios into the Asterisk Test Suite - do you think you could construct a SIPp scenario that sends the multiple 183's in the same fashion that Lync does?

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.