Вход:  Пароль:  
FreeSource: Asterisk/Настройка/JitterBuffer ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Jitter Buffer

В последних CVS-версиях появилась поддержка нового jitter-буфера и PLC.


Основная особенность нового jitter-буфера — универсальность, он работает не только с IAX2 (как раньше), а с любым кодеком, в котором используются соответствующие функции. Сейчас идёт доработка реализации SIP.


Кроме того, ранее нельзя было использовать одновременно IAX2 trunking вместе с jitterbuffer, теперь появилась feature “trunktimestamps”, которая позволяет использовать jitterbuffer совместно с IAX2 trunking.

Использование нового jitterbuffer

Добавьте «jitterbuffer=yes» в раздел [general] iax.conf, или в настройки конкретного устройства.


Также вы можете задать «maxjitterbuffer=n», который задаёт максимальный размер буфера в миллисекундах.


Эта функция может использоваться на любой из сторон, или обеих вместе — она влияет только на код приёма пакетов.

PLC

PLC — packet loss correction (восстановление потеряных пакетов)


Новый jitterbuffer обнаруживает потерю пакетов, и использует PLC-код из spandsp для того, чтобы попытаться пересоздать потеряные пакеты на этапе декодирования.


Эта функция включена по-умолчанию для кодеков iLBC и speex, так как не требует дополнительных ресурсов.


Для включения её в кодеках adpcm, alaw, g726, gsm, lpc10 нужно установить genericplc => true в разделе [plc] конфигурационного файла codecs.conf.

trunktimestamps

Для его использования обе стороны должны использовать Asterisk v1.1dev и выше.


Установка trunktimestamps=yes в iax.conf заставить asterisk посылать 16-и битный timestamp для каждого передаваемого кадра (frame). Это позволит использовать jitterbuffer в IAX2 транке.


Эту опцию обязательно устанавливать на обеих сторонах.

Рекомендации

Если вы используете jitterbuffer, обязательно устанавливайте maxjitterbuffer в более-менее разумное значение (порядка 10 в локальной сети, порядка 50–100 в Internet).

Тестирование и мониторинг

iax2 test losspct <n> — симуляция потери n% принимаемых пакетов, при порядка 10% потери пакетов должно работать корректно (лёгкие искажения звука при включеном PLC)


iax2 show netstats — статистика по каждому IAX2-вызову


The columns are “RTT” which is the round-trip time for the last PING, and then a bunch of s tats for both the local side (what you're receiving), and the remote side (what the other end is telling us they are seeing). The remote stats may not be complete if the remote end isn't using the new jitterbuffer.


The stats shown are:
* Jit: The jitter we have measured (milliseconds)
* Del: The maximum delay imposed by the jitterbuffer (milliseconds)
* Lost: The number of packets we've detected as lost.
* %: The percentage of packets we've detected as lost recently.
* Drop: The number of packets we've purposely dropped (to lower latency).
* OOO: The number of packets we've received out-of-order
* Kpkts: The number of packets we've received / 1000.


Текст базируется на README.jitterbuffer из поставки Asterisk


Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]