Summary:ASTERISK-02465: An unavailable CODEC is sometimes accepted
Reporter:oliver (oliver)Labels:
Date Opened:2004-09-25 15:32:04Date Closed:2011-06-07 14:10:34
Versions:Frequency of

I noticed that in some situations, Asterisk tries to handle incoming IAX2-calls with a CODEC it doesn't have support for, in which case there will be no audio.

I have tested this in a setup where the call goes through 3 Asterisk-boxes:

SIP-client -> Ast 1 -> Ast 2 -> Ast 3 -> AGI-script

All 3 Asterisk-boxes have "allow=all" in their SIP and IAX-configs and use IAX2 to talk to eachother.  Native bridging is disabled (notransfer=yes) and IAX2-trunking is in use everywhere (trunk=yes).  The SIP-client uses G.729 and the AGI-script on Asterisk 3 simply answers and plays a (.wav-)prompt.  G.729 is installed and working on all Asterisks, except number 3.

When I place a call from the SIP-client to the AGI-script on Asterisk 3, it leaves Asterisk 1 as G.729, but Asterisk 2 will also try to use G.729 to communicate to Asterisk 3.  Asterisk 3 will accept that, even though it doesn't have the CODEC installed to handle the call.  If I disallow G.729 on Asterisk 3 ("disallow=g729"), it'll negogiate a different CODEC (SLINR) with Asterisk 2 and audio will be OK.

Shouldn't Asterisk reject CODECs it doesn't have support for, when answering and handling a call itself (as opposed CODEC pass-through)?




All Asterisks are current CVS (CVS-HEAD-09/20/04-01:29:03).  The SIP-client is a Leadtek BVA 8051.  I'm using the G.729-implementation using the Intel IPP-library, which was recently posted to the dev-list.  If any more info is required, let me know.
Comments:By: Mark Spencer (markster) 2004-09-25 15:48:03

No, it's not a bug, because you shouldn't reject a codec just because you can't transcode it.  That's why it's up to the user.  

Please also be aware that the that G.729 codec is ABSOLUTELY in violation of Asterisk's GPL license and also places you in violation of a variety of patents, controlled by the G.729 consortium unless you have licensed them directly.

If you want to use G.729 you MUST purchase the licensed G.729 from Digium to be legal.