Android: отправка .wav на SIP-телефон через RTP (G.711 PCMU), очень шумный, потрескивающий звук на основе SipDroid / MjSIP

Я хочу передать (только для отправки) файл .wav с моего андроида на программный телефон (x-lite), чтобы вызываемый человек на x-lite мог слышать звук файла .wav.

Сценарий таков: Android и x-lite оба находятся в одной и той же WLAN и оба подключены к FreeSwitch. Я могу позвонить X-Lite с телефона Android. Если вызов принят на x-lite, андроид отправляет файл .wav, и я вижу в wireshark, что пакеты RTP (G.711 PCMU) отправляются с телефона на x-lite. Я слышу звук, но не тот, который ожидал. Вместо этого треск, шум и некоторые гудки.

Так есть ли проблема в SDP, который я отправляю в x-lite?

v=0
o=sip:[email protected] 0 0 IN IP4 192.168.2.100
s=MySession
c=IN IP4 192.168.2.110
t=0 0
m=audio 8000 RTP/AVP 0 8 101
a=rtpmap:101 telephone-event/8000

Или проблема в том, как я отправляю .wav?

DatagramSocket socket = null;
RtpStreamSender sender = null;
int port =8000;
int payload_type = 0;
int frameSize = 64;
int frameRate =32; 
socket = new DatagramSocket(port);
FileInputStream audioInput = new FileInputStream(f); //f is the .wav
sender = new RtpStreamSender(audioInput, true, payload_type, frameRate, frameSize, remoteAddress, remotePort);
sender.setSyncAdj(2);
sender.start();

Если я буду следовать UDP-потоку в Wireshark, начало будет выглядеть так:

........ M ... RIFF .... WAVEfmt ........ D ........... data0 ........... .................... М ............................. .............................................> M ... .................................................. .....................] М ........................... ............................................... | M. .................... ....................... ..... .. ..................... M ........... ................. ........ ..................................... М .... .................................................. ..... ............... M ............................. .................. ....... + ... 5 ... 8 ........... M ... 6 ... + .'...-... (..... # ...-... + ... ................... ........ ........... M .............................. ........................................ ... 6M ...... ... ... ............................................ ................ UM ...........-1 ... ... 0 ..., ...) ... ». ..0 ...? ... =. #. '. $. .! .................... ........................... ^ м .. $ ....................... ..... & .......... .... M ... ........................ .......................... ........., ........... М ... = ... Я ... W ... J ... / ........ ............. # ... <... T ... Z ... B ................. М .. ... # ... 5 ... 5 ...................... "... ..... ....... 5.WL..N ........... M ... C ... 8.m. '. R ...> ... O ... р ... ~ ... э ... я ... 3 ................................ М .................... ............................... ................... .... M ... ... 5 ... R ... L ... 3 ... / ... B ... Z ... b ......X...B...!.........{............MM.........$...2...(........................................................lM...............................-.!.R.J.].s.Z.t.U.c.b..qv .... у ........... M ... ч ... V ... Y ... с ... LFE * .......... ................... (... Е ... Х ........... М ... J ... 5.h .7.5. ^ ... ~ ... J ................. (. =. ч ......... F ..... Q ... (......... M ..... EX .. {... L.2 ...............: ..... ..Q ....... v ........... ............. M .............. ... 0 ... S ... K ... 7. +. B & ..................... ... О ...] ........... M ... гв ...... ж ... 8.Q ...? ... A ...> ......... ..........) ... /.

Так что я думаю, это не пусто. После начала сигнала, некоторый сигнал отправляется с x-lite на андроид, а затем снова несколько пакетов с андроида на x-lite ... и так далее

Кто-нибудь может дать мне подсказку, почему я не слышу звук?

(Другие решения также приветствуются) Редактировать:

это реализация RTPStramSender из MjSip:http://pastebin.com/xU4EdEex

Изменить 2: я изменил SDP, как в RFC:

     m=audio 54874 RTP/AVP 96 97 0 8
     a=rtpmap:96 PCMU-WB/16000
     a=rtpmap:97 PCMA-WB/16000
     a=rtpmap:0 PCMU/8000
     a=rtpmap:8 PCMA/8000

Но ничего не случилось. Я изменил размер кадра и частоту кадров, но треск только становится быстрее или медленнее

Редактировать 3: реализация RtpPacket:http://pastebin.com/tDLr5CYF

Ответы на вопрос(1)

Ваш ответ на вопрос