Summary: | ASTERISK-23018: PJSip 'allow=all' results in failed SDP negotiation | ||
Reporter: | xrobau (xrobau) | Labels: | |
Date Opened: | 2013-12-17 15:16:04.000-0600 | Date Closed: | 2014-01-17 15:33:04.000-0600 |
Priority: | Major | Regression? | |
Status: | Closed/Complete | Components: | Channels/chan_pjsip |
Versions: | 12.0.0-beta2 | Frequency of Occurrence | Constant |
Related Issues: | |||
Environment: | Attachments: | ||
Description: | Adding 'allow=all' to a pjsip endpoint results in a codec error:
No joint capabilities between our configuration((g723|gsm|ulaw|alaw|g726|adpcm|slin|lpc10|g729|speex|speex16|il) and incoming SDP((nothing)) Note that after speex16 the start of 'ilbc' appears to be there. | ||
Comments: | By: Joshua C. Colp (jcolp) 2013-12-17 15:35:17.001-0600 Just a comment on what the problem is here: res_pjsip_sdp_rtp adds codecs to the SDP based on the preference order defined. When using "allow=all" no preference order is present, which means no codecs get added to the local SDP. This causes SDP negotiation to fail. By: Matt Jordan (mjordan) 2013-12-17 17:09:08.182-0600 Ugh. Yet another reason to hate on {{allow=all}}. In the end, we're going to have to just "pick" a preferred codec, which is less than ideal. As odd as this may sound, I'd prefer to keep Asterisk rather simple with that - if someone says offer all, we should just walk the list and send them out the order that they come up in. Having hard-baked logic that says "g722 first, then ulaw/alaw, then g729 if it's there, etc." would just be all sorts of wrong. |