我想通過使用反向字節順序來自定義sipdroid客戶端。我認爲這使得其他VoIP客戶端無法解碼這些數據。sipdroid數據加密失敗
所以我讀了SipDroid的代碼。我發現RTP數據都會這樣說: 1. AudioRecord.read(originalPCM) 2編碼(originalPCM,encodedData) 3. rtp_socket.send(rtp_packet)//該encodeData是rtp_packet的數據部分
而另側是: 1. rtp_receive(rtp_packet) 2.解碼(encodeData,PCMData)//的encodeData是rtp_packet的數據部分 3. AudioTrack.write(PCMData)
所以我修改SipdroidSocket類。在send方法中,我在開始處添加以下代碼。
byte[] b = pack.getData();
reverse(b);
pack.setData(b);
並在接收方法的末尾添加以下代碼。
byte[] b = pack.getData();
reverse(b);
pack.setData(b);
我想這樣,兩個客戶端可以照常工作。但它失敗了。我不知道原因。請幫我找出原因。謝謝。
聽起來好像您希望數據在發送時被加密,但是顛倒字節順序不會提供這種保護。 您顯示的代碼不應該有任何問題。你有沒有試過在沒有修改的情況下運行這個?在那種情況下,它有效嗎? – Flipbed 2013-05-14 09:00:21
我知道倒車的方式不會給數據足夠的保護。我只是用這個作爲一個嘗試。如果有效,我會將reverse()方法更改爲加密數據的一種有用方法。 – Fakebear 2013-05-14 09:02:53
如果我刪除修改。這兩個客戶端工作正常。但隨着我的修改,只有噪音。我在這兩種方法中打印日誌。我發現send方法只調用一次,在這個過程中必須有一些數據檢查。所以發送不成功。 – Fakebear 2013-05-14 09:05:40