> On Aug. 5, 2014, 1:03 p.m., Joshua Colp wrote:
> > Can you elaborate on what actually happens here between 11<->12 and 12<->12 
> > that makes it so we need to remove the newly added ones?
> 
> rmudgett wrote:
>     The format compatibility bits need to remain frozen to new codecs because 
> chan_iax2 leaks internal implementation values and doesn't know how to 
> negotiate any codec options.  Opus has options can be negotiated.  I don't 
> know about VP8 but as its a newer codec it likely has negotiable options.
>     
>     The IAX_IE_CODEC_PREFS body is a sequence of 8 bit values.  In v1.8 and 
> earlier the preference values are the index+1 into the 
> frame.c:AST_FORMAT_LIST[].  In v10-v11 the preference values are the order 
> that formats are put into the format_list ao2 list conatiner in 
> format.c:format_list_init().  The format_list is then converted to the 
> format_list_array object and indexed like AST_FORMAT_LIST[].  For backwards 
> compatibility, the first 28 match the order in v1.8's AST_FORMAT_LIST[] and 
> have format compatibility bits assigned.  There is a comment saying the order 
> of the first 28 must not change.  The comment does not state why.  However, 
> that order cannot change because those formats are in the historical 
> AST_FORMAT_LIST[], those formats have compatibility bits, and the index 
> values are sent over the wire by IAX2.  After the fixed formats there is a 
> comment saying the order may change.  The comment does not state why.  
> However, the order may change because none of the following fo
 rmats have a format combatibility bit defined.  In v12 the Opus and VP8 
formats were added to the format_list eight formats after the end of the fixed 
formats and also assigned format compatibility bits.
>     
>     Interoperation between v12 and earlier Asterisk version should not be a 
> problem because earlier versions doesn't know about Opus and VP8 and thus 
> won't pick those codecs.
>     
>     Between v12 instances, Opus and VP8 could be picked.  However, because of 
> their order in the format_list there will be a gap of eight between G719 and 
> Opus that will be difficult to maintain without dire comments that won't be 
> followed.  Also as stated, IAX2 doesn't know how to negotiate any codec 
> options.

It's fine to not negotiate attributes, it just yields a subpar experience in 
many cases. By removing these from 12 we're essentially removing something that 
people could have used. I'm not okay with that.


- Joshua


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3889/#review12982
-----------------------------------------------------------


On Aug. 4, 2014, 10:47 p.m., rmudgett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3889/
> -----------------------------------------------------------
> 
> (Updated Aug. 4, 2014, 10:47 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> The format compatibility bits need to remain frozen to new codecs.  
> Otherwise, older channel drivers like chan_iax2 could attempt to negotiate 
> them when they have no support for negotiating any of the format's other 
> potential parameters.  In addition, the chan_iax2 format preference order 
> values sent over the wire have no defined fixed value to represent Opus and 
> VP8.
> 
> 
> Diffs
> -----
> 
>   /branches/12/main/format.c 420025 
> 
> Diff: https://reviewboard.asterisk.org/r/3889/diff/
> 
> 
> Testing
> -------
> 
> Compiles and code inspeciton.
> 
> See format.c:format_list_init() and format_pref.c:ast_codec_pref_convert().
> The format_list container is used to generate the format_list_array which is 
> then is used by chan_iax2 to determine the format index sent over the wire in 
> IAX_IE_CODEC_PREFS.
> 
> 
> Thanks,
> 
> rmudgett
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to