src/jlibrtp/ValidateRtcpPkt.java
changeset 13 e684f11070d5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jlibrtp/ValidateRtcpPkt.java	Sat Mar 14 22:15:41 2009 +0100
@@ -0,0 +1,140 @@
+/**
+ * Java RTP Library (jlibrtp)
+ * Copyright (C) 2006 Arne Kepp
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+package jlibrtp;
+
+import java.util.*;
+import java.net.*;
+
+public class ValidateRtcpPkt {
+	
+	public static void main(String[] args) {
+		DatagramSocket rtpSock = null;
+		DatagramSocket rtcpSock = null;
+		
+		try {
+			rtpSock = new DatagramSocket(1233);
+			rtcpSock = new DatagramSocket(1234);
+		} catch (Exception e) {
+			//do nothing
+		}
+		RTPSession rtpSession = new RTPSession(rtpSock, rtcpSock);
+		
+		System.out.println("************************** SSRC: " + rtpSession.ssrc + " **************************");
+		ParticipantDatabase partDb = new ParticipantDatabase(rtpSession);
+		//InetAddress test = InetAddress.getByName("127.0.0.1");
+		Participant part1 = new Participant("127.0.0.1",12, 34);
+		Participant part2 = new Participant("127.0.0.2",56, 78);
+		
+		part1.ssrc = 123;
+		part2.ssrc = 345;
+		
+		InetSocketAddress testadr = null;
+		
+		try {
+			testadr = InetSocketAddress.createUnresolved("localhost", 12371);
+		} catch (Exception e) {
+			// Do nothing
+		}
+		
+		part1.cname = "test3";
+		part2.cname = "test2";
+		part1.loc = "1231231231";
+		part2.loc = "Asker";
+		part1.phone = "+452 1231231";
+		part2.phone = "aasdasda.asdasdas";
+		part1.lastSeqNumber = 111;
+		part2.lastSeqNumber = 222;
+		part1.timeStampLSR = 111111;
+		part2.timeStampLSR = 222222;
+		partDb.addParticipant(0,part1);
+		partDb.addParticipant(0,part2);
+		
+		Participant[] partArray = new Participant[2];
+		partArray[0] = part1;
+		partArray[1] = part2;
+
+		RtcpPktRR rrpkt = new RtcpPktRR(partArray,123456789);
+		RtcpPktSR srpkt = new RtcpPktSR(rtpSession.ssrc,12,21,rrpkt);
+		//RtcpPktSR srpkt2 = new RtcpPktSR(rtpSession.ssrc,12,21,null);
+		//rrpkt = new RtcpPktRR(partArray,1234512311);
+		
+		//srpkt.debugPrint();
+		//rrpkt.debugPrint();
+		
+		CompRtcpPkt compkt = new CompRtcpPkt();
+		compkt.addPacket(srpkt);
+		compkt.addPacket(rrpkt);
+		compkt.addPacket(rrpkt);
+		
+		byte[] test2 = compkt.encode();
+		//System.out.print(StaticProcs.bitsOfBytes(test));
+		System.out.println("****************************** DONE ENCODING *******************************");
+		CompRtcpPkt decomppkt = new CompRtcpPkt(test2,test2.length,testadr,rtpSession);
+		System.out.println("****************************** DONE DECODING *******************************");
+		System.out.println("Problem code:" + decomppkt.problem);
+		
+		ListIterator iter = decomppkt.rtcpPkts.listIterator();
+		int i = 0;
+		
+		while(iter.hasNext()) {
+			System.out.println(" i:" + i + " ");
+			i++;
+			
+			Object aPkt = iter.next();
+			if(	aPkt.getClass() == RtcpPktRR.class) {
+				RtcpPktRR pkt = (RtcpPktRR) aPkt;
+				pkt.debugPrint();
+			} else if(aPkt.getClass() == RtcpPktSR.class) {
+				RtcpPktSR pkt = (RtcpPktSR) aPkt;
+				pkt.debugPrint();
+			}
+		} 
+
+		System.out.println("****************************** BYE *******************************");
+		long[] tempArray = {rtpSession.ssrc};
+		byte[] tempReason = "tas".getBytes();
+		RtcpPktBYE byepkt = new RtcpPktBYE(tempArray,tempReason);
+		//byepkt.debugPrint();
+		byepkt.encode();
+		byte[] rawpktbye = byepkt.rawPkt;
+		
+		RtcpPktBYE byepkt2 = new RtcpPktBYE(rawpktbye,0);
+		byepkt2.debugPrint();
+		
+		System.out.println("****************************** SDES *******************************");
+		RtcpPktSDES sdespkt = new RtcpPktSDES(true,rtpSession,null);
+		rtpSession.cname = "cname123@localhost";
+		//rtpSession.loc = "right here";
+		sdespkt.encode();
+		//rtpSession.cname = "cname124@localhost";
+		//rtpSession.loc = "right hera";
+		byte[] rawpktsdes = sdespkt.rawPkt;
+		InetSocketAddress tmpAdr = (InetSocketAddress) rtpSock.getLocalSocketAddress();
+		RtcpPktSDES decsdespkt = new RtcpPktSDES(rawpktsdes, 0, (InetSocketAddress) rtpSock.getLocalSocketAddress() , partDb);
+		decsdespkt.debugPrint();
+		//partDb.debugPrint();
+		
+		CompRtcpPkt compkt2 = new CompRtcpPkt();
+		compkt2.addPacket(srpkt);
+		compkt2.addPacket(sdespkt);
+		byte[] compkt2Raw = compkt.encode();
+		
+		CompRtcpPkt compkt3 = new CompRtcpPkt(compkt2Raw,compkt2Raw.length,tmpAdr,rtpSession);
+	}
+}