У меня есть два сервера Asterisk в такой цепочке:
SIP-клиент (G.729) <-SIP-> Asterisk 1 (преобразование G.729 в G.711) <- IAX2-> Asterisk 2 -> заканчивается аналоговой линией.
Если буферизация не была настроена ни на одной из звездочек, звук был ужасным при приеме по аналоговой линии (в другом направлении все было нормально - я предполагаю, что у SIP-клиента включена буферизация для приема).
Поскольку два сервера Asterisk находятся в локальной сети, я подумал, что буферизация поможет sense на 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 (ООО), что, как я полагаю, исправлено настроенным джиттербуфером.
Итак, мой вопрос:
CsipSimple
- поскольку другие SIP-клиенты звучат намного лучше без буферизации, чем этот) и почему jitterbuffer на более близкий сервер не может этого сделать? Информация, которую вы разместили, звучит неправильно. Первая звездочка (снаружи) сервера, принимающего пакеты, скорее всего, будет страдать от высокой задержки пакетов, нерабочих пакетов и т.д. Именно туда вы обычно добавляете буфер джиттера.
Если второй сервер показывает трафик с высокой задержкой или нерабочими пакетами, и эти два хоста находятся в одном сегменте локальной сети, что-то не так в вашей локальной сети. Пронюхайте вашу локальную сеть, чтобы увидеть, что там происходит (используйте wireshark). Если вы видите много ретрансляций, у вас могут быть плохие соединения/проводка/NIC/etc.
.