Как работает буферизация в цепочке серверов Asterisk?
У меня есть два сервера Asterisk в цепочке, как это:
SIP-клиент (G.729) <-SIP-> Asterisk 1 (преобразование G.729 в G.711) <-IAX2-> Asterisk 2 -> завершен до аналоговой линии.
Когда ни одна из звездочек не была настроена буферизация, звук был ужасным при получении по аналоговой линии (в другом направлении это было совершенно нормально - я предполагаю, что у клиента SIP включена буферизация для приема).
Поскольку два сервера Asterisk находятся в локальной сети, я думал, что буферизация будет наиболее целесообразной на Asterisk 1, стоящем перед удаленным клиентом SIP.
Однако включение буферизации на Asterisk 1 не повлияло на качество звука. Включение буферизации на Asterisk 2 как- то помогло.
Просмотр статистики по Asterisk 2 подтверждает это:
CLI> iax2 show netstats
-------- LOCAL --------------------- -------- REMOTE --------------------
Channel RTT Jit Del Lost % Drop OOO Kpkts Jit Del Lost % Drop OOO Kpkts FirstMsg LastMsg
IAX2/ast1-5936 1 60 140 79 0 43 16712 64 0 40 0 0 0 0 0 Rx:NEW Rx:ACK
Как вы можете видеть, около 25% полученного пакета являются Out-of-order (OOO), что, я полагаю, исправлено настроенным джиттербуфером.
Итак, мой вопрос:
- Как может неправильный порядок пакетов выжить при преобразовании кодеков на Asterisk 1 и перейти на Asterisk 2? а также
- Как jitterbuffer может исправить ошибки, которые привели к скачкам (я уверен, что виновником является клиент SIP -
CsipSimple
- поскольку другие SIP-клиенты звучат намного лучше без буферизации, чем этот), и почему jitterbuffer на ближайшем сервере не может этого сделать?
1 ответ
Информация, которую вы разместили, не звучит правильно. Первый сервер, принимающий пакеты, отмеченный звездочкой (снаружи), вероятно, будет страдать из-за высокой задержки пакетов, неупорядоченных пакетов и т. Д. Именно здесь вы обычно добавляете буфер дрожания.
Если второй сервер показывает трафик, страдающий от высокой задержки или неупорядоченных пакетов, и эти два хоста находятся в одном сегменте локальной сети, что-то не так в вашей локальной сети. Наблюдайте за своей локальной сетью, чтобы увидеть, что там происходит (используйте wireshark). Если вы видите много повторных передач, у вас могут быть плохие соединения / проводка /NIC/ и т.д.