Re: [asterisk-users] CODECS: Best practice question: Avoid transcode when calling out?

2010-02-16 Thread Philipp von Klitzing
Hi Karl,

that's funny you are asking this, am also currently looking at how to 
solve the g722 codec negotiation riddle, in my particular case to play 
nicely together with a KonfTel 300 IP conference phone.

> In other words, incoming calls are easy since codecs are negotiated
> from least-known (the remote party) to most-known (my endpoint) and my
> codecs can simply be preferred accordingly to match the remote. 

Look at setting the channel variable_SIP_CODEC - however it might or 
might not work depending on your version of Asterisk, see for example:

  https://issues.asterisk.org/view.php?id=13243

Here's a dialplan snippet that might give you another hint or two.

exten => 123,1,NoOp(-- Inbound read: ${CHANNEL(audioreadformat)} --)
exten => 123,n,NoOp(-- Inbound native: ${CHANNEL(audionativeformat)} --)
exten => 123,n,Set(WIDEBAND=0)
exten => 123,n,Set(WIDEBAND=${REGEX("g722" 
${SIPPEER(${SIPCHANINFO(peername)}:codecs)})})
exten => 123,n,ExecIf($[${WIDEBAND} = 1]|Set|_SIP_CODEC=g722)
exten => 123,n,Dial(SIP/abc123)

Please note the SPACE between ${REGEX("g722" and ${SIPPEER

> Outbound calls seem harder.  Our endpoints always negotiate g.722 between
> themselves and Asterisk and then Asterisk must transcode to the preferred
> codec of the REMOTE party.  Not ideal.

Together with the g722 transcoding patch for Asterisk 1.4.17 it does not 
work out, unfortunately. Currently I cannot make a statement on a more 
recent 1.4 release.

g722 patch: http://users.netplex.net/~andrew/asterisk/#g722

Older patch that I use for 1.4.17: 
http://users.netplex.net/~andrew/asterisk/g722-20080110.patch.gz

However I can successfully employ setting _SIP_CODEC if in the example 
above instead of "Dial()" I do a "MusicOnHold()" - both with or without a 
preceeding ANSWER; without means early audio playing of the native g722 
encoded MOH file. My snom starts out with alaw, and then we switch to 
g722.

> Is there an elegant way to do this?

Consider the codec negotiation patch? I'd be interested to hear about 
your results!

  http://www.b2bua.org/wiki/AsteriskCodecNegotiationPatch
  https://issues.asterisk.org/view.php?id=4825

Philipp


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

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


[asterisk-users] CODECS: Best practice question: Avoid transcode when calling out?

2010-02-16 Thread Karl Fife
What is the current best practice to avoid transcoding on an outgoing call 
to a
party whose codec preference is not known in advance?

In other words, incoming calls are easy since codecs are negotiated from
least-known (the remote party) to most-known (my endpoint) and my codecs can
simply be preferred accordingly to match the remote.

Outbound calls seem harder.  Our endpoints always negotiate g.722 between 
themselves and Asterisk and then Asterisk must transcode to the preferred 
codec of the REMOTE party.  Not ideal.

It's easy if I'm calling to the PSTN--since I know in advance the 
preferences
of my ITSP, but I'm stumped about how to avoid transcoding when calling a
party whose codec preferences are not known in advance.

Is there an elegant way to do this?

-Karl


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

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