G.729 and G.723.1 codecs for Asterisk open source PBX
ПРЕДУПРЕЖДЕНИЕ: G.729 и G723 это платные модули
Sources
Для компиляции кодеков рекомендуется установить библиотеки Intel IPP. Поддерживаются версии Asterisk 1.4 до13(и далее) .- asterisk-g72x-1.3.tar.bz2 - supports Asterisk 1.4 to 13, Composer XE 2013 SP1u3, Bcg729 1.0
- README
- hg clone http://bitbucket.org/arkadi/asterisk-g72x
- hg clone http://asterisk.hosting.lv/hg asterisk-g72x
Binaries
|
Notes
- После скачивания проверьте MD5SUM.
- Используйте x86_64 сборку для 64-bit систем. Сборки без x86_64 в имени используются для 32-bit. Используйте pentium4/core2/opteron сборки если ваш процессор 64-bit но вы используйте систему 32-bit.
- Используйте Pentium 4 для Pentium D. Используйте Pentium 3 для VIA C3 и Pentium 4 для VIA C7.
- XEON is a server brand CPU of Pentium3/Pentium4/Core families. Celeron is Pentium3/Pentium4/Core with smaller cache. Basically, there are 5 software cores: MMX, SSE, SSE2, SSE3, SSE4. Pick closest match from Intel CPU line and try it.
- GCC4, ICC - all binaries are compatible with Asterisk built by any other compiler, use what is faster or better for you.
- sse3 builds are for Prescott iteration of Pentium 4 chips with SSE3 support, check for PNI flag in /proc/cpuinfo.
- ICC cores are not always the fastest, check with '(core) show translation recalc 10' on Asterisk console, ensure the box is idle or else timings will be inaccurate.
Troubleshooting
- Шум или металлические звук с кодеком codec_g723
Настройте /etc/asterisk/codecs.conf [g723] sendrate=63 or 53. - Искаженный звук/голос
Выключите VAD и CNG на телефоне. - show translation - нету кодека 723/729
Установите asterisk verbosity level более 3 -vvv и посмотрите на ошибки после выполнения 'loading module codec_g729...' - loader.c... /usr/lib/asterisk/modules/codec_g72...: cannot restore segment prot after reloc: Permission denied
Выполните:
$ chcon -t textrel_shlib_t /usr/lib/asterisk/modules/codec_g72[39]*.so
Это происходит когда SELinux включен. - loader.c... /usr/lib/asterisk/modules/codec_g72...: cannot enable executable stack as shared object requires: Permission denied
Выполните:
$ execstack -c /usr/lib/asterisk/modules/codec_g72[39]*.so - Error loading module codec_g72...: cannot open shared object file: No such file or directory
Проверьте
$ ldd codec_g729.so
$ strace -o trace.log -efile -f asterisk
send ldd output and trace.log file to Asterisk G.729 Google group. - Error loading module codec_g72...: wrong ELF class: ELFCLASS32
Используйте x86_64 кодеки потому что ваша система на 64-bit. - $ ldd codec_g729.so: not a dynamic executable
Bcgjkmpeqnt 32-bit - Asterisk падает на старте
Если Pentium4 кодек не работает, попробуйте -no-sse сборку, или Pentium3. - Asterisk still crashing at startup
Compile asterisk with CFLAGS=-g
Run asterisk in gdb (with original and -debug version of the codec):
$ gdb /usr/sbin/asterisk
(gdb) r -cvvv
when it crashes do:
(gdb) set disassembly-flavor intel
(32-bit gdb 6.x) disassemble $eip $eip+20
(32-bit gdb 7.x) disassemble $eip, $eip+20
(64-bit gdb 6.x) disassemble $rip $rip+20
(64-bit gdb 7.x) disassemble $rip, $rip+20
(gdb) info registers
(gdb) info threads
(gdb) bt
(gdb) l
(gdb) q
Send an output to Asterisk G.729 Google group together with the result of 'cat /proc/cpuinfo'. - Why these Illegal instruction errors?
For in-depth technical information read http://gcc.gnu.org/PR32893 and http://bugs.gentoo.org/show_bug.cgi?id=151394.
Asterisk 1.8
- MD5SUM
- codec_g723-ast18-gcc4-glibc-athlon-sse.so
- codec_g723-ast18-gcc4-glibc-atom.so
- codec_g723-ast18-gcc4-glibc-barcelona.so
- codec_g723-ast18-gcc4-glibc-core2-sse4.so
- codec_g723-ast18-gcc4-glibc-core2.so
- codec_g723-ast18-gcc4-glibc-debug.so
- codec_g723-ast18-gcc4-glibc-geode.so
- codec_g723-ast18-gcc4-glibc-opteron-sse3.so
- codec_g723-ast18-gcc4-glibc-opteron.so
- codec_g723-ast18-gcc4-glibc-pentium-m.so
- codec_g723-ast18-gcc4-glibc-pentium.so
- codec_g723-ast18-gcc4-glibc-pentium2.so
- codec_g723-ast18-gcc4-glibc-pentium3-no-sse.so
- codec_g723-ast18-gcc4-glibc-pentium3.so
- codec_g723-ast18-gcc4-glibc-pentium4-no-sse.so
- codec_g723-ast18-gcc4-glibc-pentium4-sse3.so
- codec_g723-ast18-gcc4-glibc-pentium4.so
- codec_g723-ast18-gcc4-glibc-x86_64-barcelona.so
- codec_g723-ast18-gcc4-glibc-x86_64-core2-sse4.so
- codec_g723-ast18-gcc4-glibc-x86_64-core2.so
- codec_g723-ast18-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g723-ast18-gcc4-glibc-x86_64-opteron.so
- codec_g723-ast18-gcc4-glibc-x86_64-pentium4.so
- codec_g723-ast18-icc-glibc-core2-sse4.so
- codec_g723-ast18-icc-glibc-core2.so
- codec_g723-ast18-icc-glibc-debug.so
- codec_g723-ast18-icc-glibc-pentium.so
- codec_g723-ast18-icc-glibc-pentium2.so
- codec_g723-ast18-icc-glibc-pentium3.so
- codec_g723-ast18-icc-glibc-pentium4-sse3.so
- codec_g723-ast18-icc-glibc-pentium4.so
- codec_g723-ast18-icc-glibc-x86_64-core2-sse4.so
- codec_g723-ast18-icc-glibc-x86_64-core2.so
- codec_g723-ast18-icc-glibc-x86_64-pentium4.so
- codec_g729-ast18-gcc4-glibc-athlon-sse.so
- codec_g729-ast18-gcc4-glibc-atom.so
- codec_g729-ast18-gcc4-glibc-barcelona.so
- codec_g729-ast18-gcc4-glibc-core2-sse4.so
- codec_g729-ast18-gcc4-glibc-core2.so
- codec_g729-ast18-gcc4-glibc-debug.so
- codec_g729-ast18-gcc4-glibc-geode.so
- codec_g729-ast18-gcc4-glibc-opteron-sse3.so
- codec_g729-ast18-gcc4-glibc-opteron.so
- codec_g729-ast18-gcc4-glibc-pentium-m.so
- codec_g729-ast18-gcc4-glibc-pentium.so
- codec_g729-ast18-gcc4-glibc-pentium2.so
- codec_g729-ast18-gcc4-glibc-pentium3-no-sse.so
- codec_g729-ast18-gcc4-glibc-pentium3.so
- codec_g729-ast18-gcc4-glibc-pentium4-no-sse.so
- codec_g729-ast18-gcc4-glibc-pentium4-sse3.so
- codec_g729-ast18-gcc4-glibc-pentium4.so
- codec_g729-ast18-gcc4-glibc-x86_64-barcelona.so
- codec_g729-ast18-gcc4-glibc-x86_64-core2-sse4.so
- codec_g729-ast18-gcc4-glibc-x86_64-core2.so
- codec_g729-ast18-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g729-ast18-gcc4-glibc-x86_64-opteron.so
- codec_g729-ast18-gcc4-glibc-x86_64-pentium4.so
- codec_g729-ast18-icc-glibc-core2-sse4.so
- codec_g729-ast18-icc-glibc-core2.so
- codec_g729-ast18-icc-glibc-debug.so
- codec_g729-ast18-icc-glibc-pentium.so
- codec_g729-ast18-icc-glibc-pentium2.so
- codec_g729-ast18-icc-glibc-pentium3.so
- codec_g729-ast18-icc-glibc-pentium4-sse3.so
- codec_g729-ast18-icc-glibc-pentium4.so
- codec_g729-ast18-icc-glibc-x86_64-core2-sse4.so
- codec_g729-ast18-icc-glibc-x86_64-core2.so
- codec_g729-ast18-icc-glibc-x86_64-pentium4.so
Asterisk 11
- MD5SUM
- codec_g723-ast110-gcc4-glibc-athlon-sse.so
- codec_g723-ast110-gcc4-glibc-atom.so
- codec_g723-ast110-gcc4-glibc-barcelona.so
- codec_g723-ast110-gcc4-glibc-core2.so
- codec_g723-ast110-gcc4-glibc-core2-sse4.so
- codec_g723-ast110-gcc4-glibc-debug.so
- codec_g723-ast110-gcc4-glibc-geode.so
- codec_g723-ast110-gcc4-glibc-opteron.so
- codec_g723-ast110-gcc4-glibc-opteron-sse3.so
- codec_g723-ast110-gcc4-glibc-pentium2.so
- codec_g723-ast110-gcc4-glibc-pentium3-no-sse.so
- codec_g723-ast110-gcc4-glibc-pentium3.so
- codec_g723-ast110-gcc4-glibc-pentium4-no-sse.so
- codec_g723-ast110-gcc4-glibc-pentium4.so
- codec_g723-ast110-gcc4-glibc-pentium4-sse3.so
- codec_g723-ast110-gcc4-glibc-pentium-m.so
- codec_g723-ast110-gcc4-glibc-pentium.so
- codec_g723-ast110-gcc4-glibc-x86_64-barcelona.so
- codec_g723-ast110-gcc4-glibc-x86_64-core2.so
- codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so
- codec_g723-ast110-gcc4-glibc-x86_64-opteron.so
- codec_g723-ast110-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g723-ast110-gcc4-glibc-x86_64-pentium4.so
- codec_g729-ast110-gcc4-glibc-athlon-sse.so
- codec_g729-ast110-gcc4-glibc-atom.so
- codec_g729-ast110-gcc4-glibc-barcelona.so
- codec_g729-ast110-gcc4-glibc-core2.so
- codec_g729-ast110-gcc4-glibc-core2-sse4.so
- codec_g729-ast110-gcc4-glibc-debug.so
- codec_g729-ast110-gcc4-glibc-geode.so
- codec_g729-ast110-gcc4-glibc-opteron.so
- codec_g729-ast110-gcc4-glibc-opteron-sse3.so
- codec_g729-ast110-gcc4-glibc-pentium2.so
- codec_g729-ast110-gcc4-glibc-pentium3-no-sse.so
- codec_g729-ast110-gcc4-glibc-pentium3.so
- codec_g729-ast110-gcc4-glibc-pentium4-no-sse.so
- codec_g729-ast110-gcc4-glibc-pentium4.so
- codec_g729-ast110-gcc4-glibc-pentium4-sse3.so
- codec_g729-ast110-gcc4-glibc-pentium-m.so
- codec_g729-ast110-gcc4-glibc-pentium.so
- codec_g729-ast110-gcc4-glibc-x86_64-barcelona.so
- codec_g729-ast110-gcc4-glibc-x86_64-core2.so
- codec_g729-ast110-gcc4-glibc-x86_64-core2-sse4.so
- codec_g729-ast110-gcc4-glibc-x86_64-opteron.so
- codec_g729-ast110-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g729-ast110-gcc4-glibc-x86_64-pentium4.so
Asterisk 12
- MD5SUM
- codec_g723-ast120-gcc4-glibc-athlon-sse.so
- codec_g723-ast120-gcc4-glibc-atom.so
- codec_g723-ast120-gcc4-glibc-barcelona.so
- codec_g723-ast120-gcc4-glibc-core2.so
- codec_g723-ast120-gcc4-glibc-core2-sse4.so
- codec_g723-ast120-gcc4-glibc-debug.so
- codec_g723-ast120-gcc4-glibc-geode.so
- codec_g723-ast120-gcc4-glibc-opteron.so
- codec_g723-ast120-gcc4-glibc-opteron-sse3.so
- codec_g723-ast120-gcc4-glibc-pentium2.so
- codec_g723-ast120-gcc4-glibc-pentium3-no-sse.so
- codec_g723-ast120-gcc4-glibc-pentium3.so
- codec_g723-ast120-gcc4-glibc-pentium4-no-sse.so
- codec_g723-ast120-gcc4-glibc-pentium4.so
- codec_g723-ast120-gcc4-glibc-pentium4-sse3.so
- codec_g723-ast120-gcc4-glibc-pentium-m.so
- codec_g723-ast120-gcc4-glibc-pentium.so
- codec_g723-ast120-gcc4-glibc-x86_64-barcelona.so
- codec_g723-ast120-gcc4-glibc-x86_64-core2.so
- codec_g723-ast120-gcc4-glibc-x86_64-core2-sse4.so
- codec_g723-ast120-gcc4-glibc-x86_64-opteron.so
- codec_g723-ast120-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g723-ast120-gcc4-glibc-x86_64-pentium4.so
- codec_g729-ast120-gcc4-glibc-athlon-sse.so
- codec_g729-ast120-gcc4-glibc-atom.so
- codec_g729-ast120-gcc4-glibc-barcelona.so
- codec_g729-ast120-gcc4-glibc-core2.so
- codec_g729-ast120-gcc4-glibc-core2-sse4.so
- codec_g729-ast120-gcc4-glibc-debug.so
- codec_g729-ast120-gcc4-glibc-geode.so
- codec_g729-ast120-gcc4-glibc-opteron.so
- codec_g729-ast120-gcc4-glibc-opteron-sse3.so
- codec_g729-ast120-gcc4-glibc-pentium2.so
- codec_g729-ast120-gcc4-glibc-pentium3-no-sse.so
- codec_g729-ast120-gcc4-glibc-pentium3.so
- codec_g729-ast120-gcc4-glibc-pentium4-no-sse.so
- codec_g729-ast120-gcc4-glibc-pentium4.so
- codec_g729-ast120-gcc4-glibc-pentium4-sse3.so
- codec_g729-ast120-gcc4-glibc-pentium-m.so
- codec_g729-ast120-gcc4-glibc-pentium.so
- codec_g729-ast120-gcc4-glibc-x86_64-barcelona.so
- codec_g729-ast120-gcc4-glibc-x86_64-core2.so
- codec_g729-ast120-gcc4-glibc-x86_64-core2-sse4.so
- codec_g729-ast120-gcc4-glibc-x86_64-opteron.so
- codec_g729-ast120-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g729-ast120-gcc4-glibc-x86_64-pentium4.so
Asterisk 13
- MD5SUM
- codec_g723-ast130-gcc4-glibc-athlon-sse.so
- codec_g723-ast130-gcc4-glibc-atom.so
- codec_g723-ast130-gcc4-glibc-barcelona.so
- codec_g723-ast130-gcc4-glibc-core2.so
- codec_g723-ast130-gcc4-glibc-core2-sse4.so
- codec_g723-ast130-gcc4-glibc-debug.so
- codec_g723-ast130-gcc4-glibc-geode.so
- codec_g723-ast130-gcc4-glibc-opteron.so
- codec_g723-ast130-gcc4-glibc-opteron-sse3.so
- codec_g723-ast130-gcc4-glibc-pentium2.so
- codec_g723-ast130-gcc4-glibc-pentium3-no-sse.so
- codec_g723-ast130-gcc4-glibc-pentium3.so
- codec_g723-ast130-gcc4-glibc-pentium4-no-sse.so
- codec_g723-ast130-gcc4-glibc-pentium4.so
- codec_g723-ast130-gcc4-glibc-pentium4-sse3.so
- codec_g723-ast130-gcc4-glibc-pentium-m.so
- codec_g723-ast130-gcc4-glibc-pentium.so
- codec_g723-ast130-gcc4-glibc-x86_64-barcelona.so
- codec_g723-ast130-gcc4-glibc-x86_64-core2.so
- codec_g723-ast130-gcc4-glibc-x86_64-core2-sse4.so
- codec_g723-ast130-gcc4-glibc-x86_64-opteron.so
- codec_g723-ast130-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g723-ast130-gcc4-glibc-x86_64-pentium4.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-barcelona.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-core2.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-core2-sse4.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-opteron.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-opteron-sse3.so
- codec_g723-ast130-gcc4-glibc2.2-x86_64-pentium4.so
- codec_g729-ast130-gcc4-glibc-athlon-sse.so
- codec_g729-ast130-gcc4-glibc-atom.so
- codec_g729-ast130-gcc4-glibc-barcelona.so
- codec_g729-ast130-gcc4-glibc-core2.so
- codec_g729-ast130-gcc4-glibc-core2-sse4.so
- codec_g729-ast130-gcc4-glibc-debug.so
- codec_g729-ast130-gcc4-glibc-geode.so
- codec_g729-ast130-gcc4-glibc-opteron.so
- codec_g729-ast130-gcc4-glibc-opteron-sse3.so
- codec_g729-ast130-gcc4-glibc-pentium2.so
- codec_g729-ast130-gcc4-glibc-pentium3-no-sse.so
- codec_g729-ast130-gcc4-glibc-pentium3.so
- codec_g729-ast130-gcc4-glibc-pentium4-no-sse.so
- codec_g729-ast130-gcc4-glibc-pentium4.so
- codec_g729-ast130-gcc4-glibc-pentium4-sse3.so
- codec_g729-ast130-gcc4-glibc-pentium-m.so
- codec_g729-ast130-gcc4-glibc-pentium.so
- codec_g729-ast130-gcc4-glibc-x86_64-barcelona.so
- codec_g729-ast130-gcc4-glibc-x86_64-core2.so
- codec_g729-ast130-gcc4-glibc-x86_64-core2-sse4.so
- codec_g729-ast130-gcc4-glibc-x86_64-opteron.so
- codec_g729-ast130-gcc4-glibc-x86_64-opteron-sse3.so
- codec_g729-ast130-gcc4-glibc-x86_64-pentium4.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-barcelona.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-core2.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-core2-sse4.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-opteron.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-opteron-sse3.so
- codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so