역 바이트 순서를 사용하여 맞춤 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
나는 데이터를 충분히 보호하지 않을 것이라는 것을 알고있다. 나는 이것을 시험으로 사용한다. 작동하는 경우 reverse() 메서드를 데이터를 암호화하는 유용한 방법으로 변경합니다. – Fakebear
수정을 취소하면. 두 클라이언트가 잘 작동합니다. 그러나 나의 수정으로, 단지 소음이있다. 이 두 가지 방법으로 로그를 인쇄합니다. 한 번만 호출되는 send 메소드를 찾았습니다. 프로세스에서 일부 데이터 검사가 있어야합니다. 그래서 성공하지 못한다. – Fakebear