Summary:ASTERISK-03475: [patch] IAX codec passthrough configuration
Reporter:Michael Giagnocavo (aginamu)Labels:
Date Opened:2005-02-10 16:56:03.000-0600Date Closed:2005-03-03 16:48:53.000-0600
Versions:Frequency of
Environment:Attachments:( 0) codec_passthrough.conf.txt
( 1) codec_passthrough.diff.txt
( 2) codec_passthrough.h
Description:A large problem for service providers with different clients is avoiding transcoding. For instance, suppose you have a user named "telco" and have this dialplan:

exten => 19055551212,1,Dial(IAX2/gsmUser)
exten => 13055551212,1,Dial(IAX2/ilbcUser)

You'll wind up doing transcoding one way or another. With this patch, you simply add a config file: [iax_user] exten=codec. And just like that, you'll have more control over where things get transcoded.


Disclaimer on file. Since I'm very doubtful of this making CVS, I made my changes to chan_iax2.c very in the most unobtrusive way possible. I hate having to manage my own customizations, and easy changes means easy management. If anyone is interested in this going into CVS, I can work on it and make it nicer.
Comments:By: Michael Giagnocavo (aginamu) 2005-02-10 17:11:26.000-0600

The second codec_passthrough.conf is correct. You must prefix the username with iax_.

By: Mark Spencer (markster) 2005-02-27 21:11:51.000-0600

Assuming the outbound codec is permitted in the given user/peer definition, we will attempt to negotiate that codec.  What am I missing?

By: Michael Giagnocavo (aginamu) 2005-02-27 21:30:11.000-0600

Huh? When a call comes in, the codec is negotiated for that user. At this point, there's no logic at all that knows where the call might eventually go. Like in the notes, you've got 2 incoming numbers, one dials a GSM user, the other an ilbc user. When the call comes in, the codec is negotiated with zero knowledge of where the call will end up (ilbc or gsm). This patch adds a way for you to specifically specify a preferred codec for an incoming DID.

Another example would be your provider sends you calls. One DID is for FAX. For that DID, you want ULAW, for the rest GSM.

Otherwise, your stuck with whatever codec is negotiated when the call comes in, and if you dial out and negotiate another codec (say your end-client is G729 only), you're struck transcoding.

By: Kevin P. Fleming (kpfleming) 2005-03-03 16:48:11.000-0600

The implementation of ASTERISK-3313346 will allow PREFERRED_CODEC to be set before answering the call (or bridging it), so it will allow this behavior to be implemented.