Вторую неделю общался с поддержкой Grandstream, выясняя что за проблема с качеством голоса возникает в моём конкретном случае. Самая первая версия оказалась правильной, но потребовалось подтвердить, что во всему причиной RTP передаваемый с шлюза. Для этого мне предложили изменить размер голосового пакета на шлюзе, что оказалось невозможным. Таким образом возникла возможность воспользоваться SIPP и недавно выложенным скриптом sniff2sipp

Для начала у меня имелся дамп сетевого трафика (SIP и RTP) с плохим качеством звука и с нормальным. Требовалось взять SIP сигнализацию из первого трейса, а RTP из второго и сделать сценарий комбинирующий их. Таким образом было бы доказано, что GXV-3000 некачественно воспроизводит голос, если величина голосового пакета меньше, чем предполагаемая телефоном (значение ptime в SDP).

Использование sniff2sipp не вызвало никаких проблем, всё как написано в инструкции, только требуется установить несколько Perl библиотек функций из CPAN. Так же требуется установленный wireshark или tcpdump. В итоге получилось два xml сценария для тестирования и два pcap файла с голосовыми пакетами. В первом xml сценарии заменяется имя файла с голосом и приступаем к экспериментам с sipp. В результате недолгих ковыряний у меня получилась следующая команда (немного отличающаяся от оригинала):

По пунктам объясняю значения параметров:


  • — файл с полученным сценарием

  • — адрес и порт куда отправлять пакеты сигнализации

  • — длительность звонка, до отправки BYE

  • — содержимое поля From, если этот параметр не указать будет использовано значение service

  • — совершить только один вызов

  • — интерфейс для отправки сигнализации

  • — интерфейс для отправки RTP

  • — порт для отправки RTP

Обратите внимание, чтобы на телефоне был отключен STUN и вообще любое определение NAT, это может вызвать интересные эффекты: медиа поток будет направлен не туда.

Похожие сообщения:

автор igorg \\ теги: , , ,