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 ......................... ...................... ....... + ... 5 ... 8 ........... M ... 6 ... + «....-... (..... # ...-... + ... ......................... .. ........... M .................................... .................................. ... 6M ......... ... .................................................. .......... UM ...........-1 ... ... 0 ..., ...) ...... 0 ...? ... =. # «.. $. .! .................... ........................... ^ м .. $ ....................... ..... &.......... .... М ........................... ........ ..........................., ........... M ... = ... Я .. .W ... J ... / ..................... # ... <... T ... Z ... B ................. M ..... # ... 5 ... 5 ...... ................»... ..... ....... 5.W.L ... 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. +. Б ..................... &... O ...] ........... M ... r.B ....... ж ... 8.Q ...? ... A ...>...................) ... /.

Так что я думаю, это не пусто. После начала сигнала некоторый сигнал отправляется с x-lite на android, а затем снова несколько пакетов с android на 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)

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