2

x-lite の被呼者が .wav ファイルの音を聞くことができるように、Android からソフトフォン (x-lite) に .wav ファイルを送信 (送信のみ) したいと考えています。

シナリオは次のとおりです。Android と x-lite は両方とも同じ WLAN にあり、両方とも FreeSwitch に接続されています。Androidフォンからx-liteを呼び出すことができます。通話が x-lite で受け入れられると、android が .wav ファイルを送信し、wireshark で RTP パケット (G.711 PCMU) が電話から x-lite に送信されていることを確認できます。音は聞こえますが、期待した音ではありません。代わりに、パチパチと音がして、ビープ音がします。

x-lite に送信した SDP に問題はありますか?

v=0
o=sip:1002@192.168.2.110 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();

Wireshark で UDP ストリームをたどると、最初は次のようになります。

..........UM...........-...1...0...,...)...'...0... ?...=.#.'.$. ...!................................tM.................................. ..$....................................................&.... ....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...>....).../.

だから私はそれが空ではないと思います。信号の開始後、何らかの信号が x-lite から Android に送信され、次に再び Android から x-lite にいくつかのパケットが送信されます... など

音が聞こえない理由を誰か教えてくれませんか?

(他のソリューションも大歓迎です) 編集:

これは MjSip の RTPStramSender の実装です: http://pastebin.com/xU4EdEex

編集 2: RFC のように SDP を次のように変更しました。

     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

4

1 に答える 1

2

私の疑いはパケット化です。

この RFC は、それがどのように行われることがサポートされているかを示しています: RFC 5391

これは少しは役に立ちましたが、完全ではありませんでした。誰かが助けてうまくいくなら、私の答えではなく彼の答えを受け入れてください。

于 2013-08-26T05:47:18.997 に答える