Я установил сеанс SIP между двумя клиентами. Я наблюдал трассировку RTP между ними на wirehark. Столбец «длина» имеет значение 172 для пакетов RTP, которые проходят от Клиента 1 к Клиенту 2, и имеет значение 252 для пакетов, которые проходят от Клиента 2 к Клиенту 1. Клиент 1 и Клиент 2 принадлежат разным компаниям. Клиент 1 работает на 64-битной Ubuntu 12.10, а Клиент 2 работает на Ubuntu 10.04. Хотелось бы узнать, от чего зависит длина RTP-пакета.
Я не могу дать вам никаких конкретных деталей, потому что, как я сказал в своей заметке, это зависит от большого количества факторов (включая кодек, наличие подавления тишины и частоту дискретизации), но если вы хотите, чтобы с какого-то места можно было начать, посмотри на RFC3551
.
Вот несколько подходящих строк из него:
A G729 RTP packet may consist of zero or more G.729 or G.729 Annex A
frames, followed by zero or one G.729 Annex B frames. The presence
of a comfort noise frame can be deduced from the length of the RTP
payload. The default packetization interval is 20 ms (two frames),
but in some situations it may be desirable to send 10 ms packets.
The RTP timestamp
clock rate is always 90,000, independent of the sampling rate.
MPEG-1 audio supports sampling rates of 32, 44.1, and 48 kHz (ISO/IEC
11172-3, section 1.1; "Scope"). MPEG-2 supports sampling rates of
16, 22.05 and 24 kHz. The number of samples per frame is fixed, but
the frame size will vary with the sampling rate and bit rate.
Взгляд на этот документ может дать некоторые ответы: