[asterisk-dev] Potential change to outgoing codec offers (new topic)

Brian Candler B.Candler at pobox.com
Thu Oct 19 01:31:28 MST 2006


On Wed, Oct 18, 2006 at 12:25:06PM -0500, Kevin P. Fleming wrote:
> It's pretty late in the game to make a change like this for Asterisk 1.4,
> but I suspect given the number of people that experience this problem
> every day it's likely the community would be happy if we did it.
> 
> Thoughts?

Personally I don't mind either way - I don't use asterisk in production
(yet), just as a convenient VoIP test platform.

But if bug #8152 applies to 1.4 as well as trunk, which I expect it does,
then I guess you have either got to push forward with a new codec
negotiation strategy, or roll back to the 1.2 behaviour for now and do this
in trunk/1.6.

For this new strategy I think you'll want wide test coverage across a range
of phones and ATAs. Doing it in a beta will give you this, but may
disappoint a lot of people if it turns out to be problematic.

A more cautious approach for 1.4 might be:
- put back the 1.2 behaviour (i.e. two leg setup followed by re-INVITE)
- also implement the enhanced behaviour as discussed
- make the 1.2 behaviour the default, but have an option to turn on the
  enhanced behaviour for those who want to try it.

I think that gives you the best of both worlds, and the enhanced behaviour
can be made default in 1.6 if it works well.

As well as this option, I think there should be a way to set for each peer
the error code(s) which it may generate on codec mismatch, e.g.

  codecreject=606,403   ; when sending an INVITE to this peer offering only
                        ; a subset of codecs, these error codes can be
                        ; interpreted as codec mismatch and should cause a
                        ; second INVITE with RTP forced via Asterisk

Then if you come across a phone which generates (say) 488, you can easily
accommodate it.

I guess you could make this the on/off switch too; e.g. codecreject=no means
use the 1.2 behaviour when placing a call to this endpoint.

Or maybe there's an opportunity to change the 'canreinvite' option into
something more meaningful: e.g. nativebridge=no|reinvite|immediate ?

Regards,

Brian.


More information about the asterisk-dev mailing list