Так. Очень интересно. Если codec_g729_*.so выгружен и show translation показывает прочерки в строке/колонке g729 тогда дело однозначно в исходных аудио файлах которые пользуются для проигрывания.
Как вы файлы переводили в RAW формат если не секрет? Что у вас за поток записан в этом файле? Должно быть 8000 Гц, PCM 16 бит (signed-linear), mono (1 channel) и ничего более без всяких заголовков. Кстати учтите что так как каждый сэмпл в этом формате занимает 16 бит (2 байта) то имеет значение порядок байтов - big endian или little endian. (см -x опцию в sox'е)
В общем лучше делать так: sox source.wav -t raw -s -w -r 8000 -c 1 source.raw
vitorion:
А будут ли эти файлы нормально проигрываться, если я позвоню кодеком alaw/ulaw?
Не будут если в системе не будет установлен кодек g729. Можно подложить в один каталог несколько звуковых файлов в разных форматах. Астериск всегда пытается найти файл в формате из которого можно наименьшими затратами перекодировать звук в формат канала. Тоесть если RTP использует G729 кодек и астериск находит файл в формате g729 тогда он будет использовать его и ему не потребуется перекодирования чтобы проиграть его в канал. Если .g729 файла нету но есть например файл в формате .wav (8000Hz, 16bit PCM, mono - что означает signed linear) тогда астериск будет перекодировать из этого формата в формат канала используя соответствующий codec_*.so. Если есть два файла с одним именем но с разным расширением (в разных форматах) - например hello.wav в формате 8kHz, PCM 16 bit, mono и hello.g729 в G729 формате тогда если звонок сделан используя например ULAW формат то астериск будет использовать hello.wav файл и перекодировать его в ULAW (SLIN->ULAW) вместо hello.g729 (G729->ULAW) так как последняя операция более затратная по CPU (см таблицу show translation). Если же звонок сделан используя G729 кодек тогда астериск будет пользовать hello.g729 (G729->G729) так как тут совсем не требуется перекодировки (без затрат совсем) вместо hello.wav (SLIN->G729).
Таким образом идеально держать одни и те же файлы в разных форматах - это разгрузит систему (если конечно звонки идут с использованием разных кодеков) и даст более качественный звук так как будут меньше задействованы внутренние перекодировки.
Кстати именно для этого механизма в астериске (в Playback например) не указывается расширение проигрываемого файла.
Учтите что астериск рапознает формат файла по его расширению и более никак:
*.g729 - 8000Hz mono поток без заголовков кодированный G.729 кодеком
*.wav - MS Windows WAV файл в 8000Hz PCM 16 bit mono формате
*.WAV, *.wav49 - MS Windows WAV файл в 8000Hz GSM 6.10 mono формате
*.vox - Dialogic VOX (ADPCM) File Format
*.sln, *.raw - 8000Hz mono поток без заголовков в PCM 16 bit формате
*.alaw, *.al - 8000Hz mono поток без заголовков в aLaw PCM формате (8bit)
*.pcm, *.ulaw, *.ul, *.mu - 8000Hz mono поток без заголовков в uLaw PCM формате (8bit)
*.ilbc - 8000Hz поток без заголовков в iLBC формате
*.gsm - 8000Hz поток без заголовков в GSM формате
*.g726-16 - поток в G.726 16kbps
*.g726-24 - поток в G.726 24kbps
*.g726-32 - поток в G.726 32kbps
*.g726-40 - поток в G.726 40kbps
*.g723, *.g723sf - G.723.1 Simple Timestamp File Format
*.au - Sun Microsystems AU format (signed linear)