По роду своей деятельности в последнее время приходится обслуживать сервер IP телефонии на базе Asterisk, а также расширять свои знания в этом направлении и решать возникающие проблемы. Сейчас познакомимся с описанием кодеков, которые используются для VoIP звонков.
Asterisk использует следующие кодеки:
- G.711 ulaw/PCMU (тот, что используется в US)
- G.711 alaw/PCMA (тот, что используется в Европе)
- G.723.1 – в режиме pass-thru для людей, которым нужна лицензия , свободная версия для остальных.
- G.726 – 32kbps в версии Asterisk 1.0.3, 16/24/32/40kbps в CVS HEAD версиях.
- G.729 – может потребоваться лицензия кроме случаев, когда аудиопоток передается в режиме pass-thru, свободная версия доступна для использования в странах, где этот патент не действует или в образовательных целях.
- GSM
- iLBC
- LPC10 (не рекомендуется к использованию!)
- Speex – битрейт конфигурация: 4-48kbps, VBR, ABR, и т.д.
Для того, чтобы посмотреть какие кодеки используются в текущих вызовах, можно воспользоваться командами:
sip show channels
iax2 show channels
Для использования в командах ограничения использования кодеков allow и disallow, ниже приведена таблица соответствия используемых абривиатур и названий кодеков:
G.711 ulaw = ulaw
G.711 alaw = alaw
G.723.1 = g723.1
G.726 = g726
G.729 = g729
GSM = gsm
iLBC = ilbc
LPC10 = lpc10
Speex = speex
ADPCM = adpcm
Типичный пример использования ограничения на кодеки:
disallow=all
allow=alaw
allow=ulaw
Расширения имен файлов
Расширения, используемые Asterisk, для различных форматов звуковых файлов
- wav:
- pcm:
- gsm:
Разбивка на пакеты данных
Разные клиенты поддерживают различные интервалы разбивки аудиоданных на порции цифровых данных, передаваемых в дальнейшем по сети. Сервер Asterisk поддерживает только разбивку через каждые 20ms в протоколах, использующих RTP для передачи аудиоданных, типа SIP или MGCP, из этого следует, что Вам необходимо настроить Ваше клиентское оборудование в соответствии с этим требованием.
Ни чего не мешает настроить пакетизацию хоть по 30мс
allow=alaw:30