[asterisk-bugs] [Asterisk 0014994]: [patch] Invalid SDP connection information (c=) parsing leading to one way audio

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Sep 22 15:50:58 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=14994 
====================================================================== 
Reported By:                frawd
Assigned To:                mnicholson
====================================================================== 
Project:                    Asterisk
Issue ID:                   14994
Category:                   Channels/chan_sip/General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           SVN 
JIRA:                        
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-04-29 10:33 CDT
Last Modified:              2009-09-22 15:50 CDT
====================================================================== 
Summary:                    [patch] Invalid SDP connection information (c=)
parsing leading to one way audio
Description: 
I have a one-way audio problem when a media-gateway was (re)inviting with
audio and video on two different IPs, with an SDP formatted like so:

m=audio
c=IN IP4 <ip1>
[...]
m=video
c=IN IP4 <ip2>
[...]

Looking at the code it appears that asterisk has the following algorithm
for parsing "c=" lines:

1. Look for the first "c=" line and initialize audio and video address
structure
	=> in my case, <ip1> is then initialized for audio and video
2. For each "m=" line found:
	2.1. Look for the next "c=" line STARTING AFTER THE LAST ONE (step 1.)
		=> in my case, <ip2> will be found
	2.2. Initialize audio or video structure depending on what was in "m="
		=> in my case, <ip2> is initialized for the audio part

As a result I have <ip2> for audio and <ip1> for video instead of the
contrary!!!

Could someone please confirm my analysis? I could be totally wrong..
====================================================================== 

---------------------------------------------------------------------- 
 (0111223) mnicholson (administrator) - 2009-09-22 15:50
 https://issues.asterisk.org/view.php?id=14994#c111223 
---------------------------------------------------------------------- 
This patch looks good. I do have a few comments. First, the patch needs to
be updated to apply cleanly to the current 1.4 branch. The parsing code is
an improvement, but your code needs to be updated to parse session level
parameters such as 'a=' in addition to the current parsing of media level
parameters. Other than that, it looks good.

One additional note: before updating your patch for the current 1.4
branch, review the latest coding guidelines for changes in the way scanf
formatting should be done. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-09-22 15:50 mnicholson     Note Added: 0111223                          
======================================================================




More information about the asterisk-bugs mailing list