Difference between revisions of "G723/G729 Codec installation"
Line 6: | Line 6: | ||
'''For G729 license fee applies (10USD/channel). See: http://www.voip-info.org/wiki-Asterisk+G.729+Licensing''' | '''For G729 license fee applies (10USD/channel). See: http://www.voip-info.org/wiki-Asterisk+G.729+Licensing''' | ||
'''G723 is not available for Asterisk in any legal form | '''G723 is not available for Asterisk in any legal form unless you buy the TC400P transcoder card from Digium.''' | ||
<br> | <br> | ||
---- | ---- | ||
Line 14: | Line 14: | ||
==CPU Type== | ==CPU Type== | ||
First of all you need to know your CPU type. Do: | First of all, you need to know your CPU type. Do: | ||
cat /proc/cpuinfo | cat /proc/cpuinfo | ||
It will show CPU info and you will see a lot of info. Most crucial is: | It will show CPU info, and you will see a lot of info. Most crucial is: | ||
model name : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz | model name : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz | ||
Line 24: | Line 24: | ||
NOTE: this will vary on different servers, but from this line you can see what kind of CPU is on this particular machine. | NOTE: this will vary on different servers, but from this line you can see what kind of CPU is on this particular machine. | ||
As an example, here we see that we have '''Intel(R) Core(TM)2 Duo CPU'''. | |||
<br> | <br> | ||
Line 48: | Line 48: | ||
Now go to: http://kvin.lv/pub/Linux/Asterisk/ and from the section: Asterisk 1.4 (if you use Asterisk 1.4) select the most appropriate codec. | Now go to: http://kvin.lv/pub/Linux/Asterisk/ and from the section: Asterisk 1.4 (if you use Asterisk 1.4) select the most appropriate codec. | ||
For our example CPU we will choose: | For our example CPU, we will choose: | ||
codec_g723-ast14-gcc4-glibc-x86_64-pentium4.so | codec_g723-ast14-gcc4-glibc-x86_64-pentium4.so | ||
Line 106: | Line 106: | ||
===Asterisk crash=== | ===Asterisk crash=== | ||
If Asterisk crashes when it is restarted, it means that the wrong version of the codec is installed. Remove codecs from /usr/lib/asterisk/modules and repeat all procedures with different - more appropriate - versions of the codecs. You can 'downgrade' your codec version, starting from: ''codec_g723-ast14-gcc4-glibc-pentium4-sse3.so'' and keep on going down to ''codec_g723-ast14-gcc4-glibc-pentium4.so'' until it works. (This is just an example - for your server, codec versions may vary). | |||
<br> | <br> | ||
Line 112: | Line 112: | ||
===Bad audio quality=== | ===Bad audio quality=== | ||
If you | If you experience bad audio quality, try downgrading your codec, as explained in previous problem. | ||
Line 118: | Line 118: | ||
=== Does Asterisk supports G729 Annex B? === | === Does Asterisk supports G729 Annex B? === | ||
No, Asterisk does not support Annex B because Asterisk does not support silence suppression/voice activity detection(VAD): | No, Asterisk does not support Annex B because Asterisk does not support silence suppression/voice activity detection (VAD): | ||
* See also: | * See also: |
Revision as of 09:42, 27 April 2010
NOTE: Remember that these codecs can be used for testing or educational purposes only.
For G729 license fee applies (10USD/channel). See: http://www.voip-info.org/wiki-Asterisk+G.729+Licensing
G723 is not available for Asterisk in any legal form unless you buy the TC400P transcoder card from Digium.
CPU Type
First of all, you need to know your CPU type. Do:
cat /proc/cpuinfo
It will show CPU info, and you will see a lot of info. Most crucial is:
model name : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
NOTE: this will vary on different servers, but from this line you can see what kind of CPU is on this particular machine.
As an example, here we see that we have Intel(R) Core(TM)2 Duo CPU.
x86_64?
Then we need to know if our server is x86_64. For that we do:
uname -a
And we see that it is:
Linux xxxx #1 SMP Fri Nov 30 00:45:55 EST 2007 x86_64 x86_64 x86_64 GNU/Linux
Codec installation
From scripts
Install scripts for P4 and P4_64 are added into newest MOR PRO installation tar. You can use them for fast installation.
Manual
Now go to: http://kvin.lv/pub/Linux/Asterisk/ and from the section: Asterisk 1.4 (if you use Asterisk 1.4) select the most appropriate codec.
For our example CPU, we will choose:
codec_g723-ast14-gcc4-glibc-x86_64-pentium4.so codec_g729-ast14-gcc4-glibc-x86_64-pentium4.so
Now download these files to your server:
cd /usr/src/ wget http://asterisk.hosting.lv/bin/codec_g723-ast14-gcc4-glibc-x86_64-pentium4.so wget http://asterisk.hosting.lv/bin/codec_g729-ast14-gcc4-glibc-x86_64-pentium4.so
Rename them to:
mv /usr/src/codec_g723-ast14-gcc4-glibc-x86_64-pentium4.so /usr/src/codec_g723.so mv /usr/src/codec_g729-ast14-gcc4-glibc-x86_64-pentium4.so /usr/src/codec_g729.so
CHMOD both of them to 777:
chmod 777 codec_g72*.so
And copy to Asterisk modules:
cp codec_g72*.so /usr/lib/asterisk/modules
Testing
Restart Asterisk and execute in CLI:
show translation
It should show something like this:
CLI> show translation Translation times between formats (in milliseconds) for one second of data Source Format (Rows) Destination Format (Columns)
g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722 g723 - 2 2 2 2 2 1 2 8 - 9 2 - gsm 6 - 2 2 2 2 1 2 8 - 9 2 - ulaw 6 2 - 1 2 2 1 2 8 - 9 2 - alaw 6 2 1 - 2 2 1 2 8 - 9 2 - g726aal2 6 2 2 2 - 2 1 2 8 - 9 1 - adpcm 6 2 2 2 2 - 1 2 8 - 9 2 - slin 5 1 1 1 1 1 - 1 7 - 8 1 - lpc10 6 2 2 2 2 2 1 - 8 - 9 2 - g729 7 3 3 3 3 3 2 3 - - 10 3 - speex - - - - - - - - - - - - - ilbc 6 2 2 2 2 2 1 2 8 - - 2 - g726 6 2 2 2 1 2 1 2 8 - 9 - - g722 - - - - - - - - - - - - -
Troubleshooting
Asterisk crash
If Asterisk crashes when it is restarted, it means that the wrong version of the codec is installed. Remove codecs from /usr/lib/asterisk/modules and repeat all procedures with different - more appropriate - versions of the codecs. You can 'downgrade' your codec version, starting from: codec_g723-ast14-gcc4-glibc-pentium4-sse3.so and keep on going down to codec_g723-ast14-gcc4-glibc-pentium4.so until it works. (This is just an example - for your server, codec versions may vary).
Bad audio quality
If you experience bad audio quality, try downgrading your codec, as explained in previous problem.
Does Asterisk supports G729 Annex B?
No, Asterisk does not support Annex B because Asterisk does not support silence suppression/voice activity detection (VAD):