Android: Wyślij .wav do SIP-Phone przez RTP (G.711 PCMU) bardzo głośny, trzaskający dźwięk oparty na SipDroid / MjSIP

Chcę przesłać (tylko wysłać) plik .wav z mojego Androida na softphone (x-lite), tak aby wywoływana osoba na x-lite mogła usłyszeć dźwięk pliku .wav.

Scenariusz jest następujący: Android i x-lite są w tej samej sieci WLAN i oba są podłączone do FreeSwitch. Mogę zadzwonić do x-lite z telefonu z Androidem. Jeśli połączenie zostanie zaakceptowane na x-lite, android wysyła plik .wav i widzę w wireshark, że pakiety RTP (G.711 PCMU) są wysyłane z telefonu do x-lite. Słyszę trochę dźwięku, ale nie tego, jakiego bym się spodziewał. Zamiast tego słychać trzaski, hałaśliwe dźwięki.

Czy jest problem z SDP wysyłanym do 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

A może problem ze sposobem wysyłania .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();

Jeśli podążam za strumieniem UDP w Wiresharku, początek wygląda tak:

........ M ... RIFF .... WAVEfmt ........ D ........... dane0 ........... .................... M ............................. .............................................> M ... .................................................. .....................] M ........................... ............................................... | M. .................... ....................... ..... .. ..................... M ........... ................. ........ ..................................... M .... .................................................. ..... ............... M ............................. .................. ....... + ... 5 ... 8 ........... M ... 6 ... + .'...-... (..... # ...-... + ... ................... ........ ........... M .............................. ........................................ ... 6M ...... ... ... ............................................ ................ UM ...........-... 1 ... 0 ..., ...) ... ”. ..0 ...? ... =. #. '. $. .! .................... M ........................... .. $ ....................... ..... & .......... .... M ... ........................ .......................... ........., ........... M ... = ... I ... W ... J ... / ........ ............. # ... <... T ... Z ... B ................. M .. ... # ... 5 ... 5 ...................... "... ..... ....... 5.WL..N ........... M ... C ... 8.m." R ...> ... O ... p ... ~ ... e ... I ... 3 ................................ M .................... ............................... ................... .... M ... ... 5 ... R ... L ... 3 ... / ... B ... Z ... b ......X...B...!.........{............MM.........$...2...(........................................................lM...............................-.!.R.J.].s.Z.t.U.c.b..qv .... y ........... M ... h ... V ... Y ... c ... lfE * .......... ................... (... E ... X ........... M ... J ... 5.H .7.5. ^ ... ~ ... j ................. (. =. H ......... F ..... Q ... (......... M ..... EX .. {... L.2 ...............: ..... ..Q ....... v ........... ............. M .............. ... 0 ... S ... K ... 7. +. B ..................... & ... O ...] ........... M ... rB ...... w ... 8.Q ...? ... A ...> ......... ..........) ... /.

Więc chyba nie jest pusty. Po rozpoczęciu sygnału, jakiś sygnał jest wysyłany z x-lite do Androida, a następnie ponownie niektóre pakiety z Androida do x-lite ... i tak dalej

Czy ktoś może mi podpowiedzieć, dlaczego nie słyszę dźwięku?

(Inne rozwiązania są również mile widziane) Edytuj:

jest to implementacja RTPStramSender z MjSip:http://pastebin.com/xU4EdEex

Edytuj 2: Zmieniłem SDP jak w RFC na:

     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

Ale nic się nie stało. Zmieniłem rozmiar klatek i szybkość klatek, ale trzask robi się coraz szybszy lub wolniejszy

Edytuj 3: implementacja RtpPacket:http://pastebin.com/tDLr5CYF

questionAnswers(1)

yourAnswerToTheQuestion