src/jlibrtp/ValidateRtcpPkt.java
changeset 214 2bf440c54ca5
parent 213 9bdff6cbd120
child 215 5db64229be69
equal deleted inserted replaced
213:9bdff6cbd120 214:2bf440c54ca5
     1 /**
       
     2  * Java RTP Library (jlibrtp)
       
     3  * Copyright (C) 2006 Arne Kepp
       
     4  * 
       
     5  * This library is free software; you can redistribute it and/or
       
     6  * modify it under the terms of the GNU Lesser General Public
       
     7  * License as published by the Free Software Foundation; either
       
     8  * version 2.1 of the License, or (at your option) any later version.
       
     9  *
       
    10  * This library is distributed in the hope that it will be useful,
       
    11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    13  * Lesser General Public License for more details.
       
    14  * 
       
    15  * You should have received a copy of the GNU Lesser General Public
       
    16  * License along with this library; if not, write to the Free Software
       
    17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
       
    18  */
       
    19 package jlibrtp;
       
    20 
       
    21 import java.util.*;
       
    22 import java.net.*;
       
    23 
       
    24 public class ValidateRtcpPkt {
       
    25 	
       
    26 	public static void main(String[] args) {
       
    27 		DatagramSocket rtpSock = null;
       
    28 		DatagramSocket rtcpSock = null;
       
    29 		
       
    30 		try {
       
    31 			rtpSock = new DatagramSocket(1233);
       
    32 			rtcpSock = new DatagramSocket(1234);
       
    33 		} catch (Exception e) {
       
    34 			//do nothing
       
    35 		}
       
    36 		RTPSession rtpSession = new RTPSession(rtpSock, rtcpSock);
       
    37 		
       
    38 		System.out.println("************************** SSRC: " + rtpSession.ssrc + " **************************");
       
    39 		ParticipantDatabase partDb = new ParticipantDatabase(rtpSession);
       
    40 		//InetAddress test = InetAddress.getByName("127.0.0.1");
       
    41 		Participant part1 = new Participant("127.0.0.1",12, 34);
       
    42 		Participant part2 = new Participant("127.0.0.2",56, 78);
       
    43 		
       
    44 		part1.ssrc = 123;
       
    45 		part2.ssrc = 345;
       
    46 		
       
    47 		InetSocketAddress testadr = null;
       
    48 		
       
    49 		try {
       
    50 			testadr = InetSocketAddress.createUnresolved("localhost", 12371);
       
    51 		} catch (Exception e) {
       
    52 			// Do nothing
       
    53 		}
       
    54 		
       
    55 		part1.cname = "test3";
       
    56 		part2.cname = "test2";
       
    57 		part1.loc = "1231231231";
       
    58 		part2.loc = "Asker";
       
    59 		part1.phone = "+452 1231231";
       
    60 		part2.phone = "aasdasda.asdasdas";
       
    61 		part1.lastSeqNumber = 111;
       
    62 		part2.lastSeqNumber = 222;
       
    63 		part1.timeStampLSR = 111111;
       
    64 		part2.timeStampLSR = 222222;
       
    65 		partDb.addParticipant(0,part1);
       
    66 		partDb.addParticipant(0,part2);
       
    67 		
       
    68 		Participant[] partArray = new Participant[2];
       
    69 		partArray[0] = part1;
       
    70 		partArray[1] = part2;
       
    71 
       
    72 		RtcpPktRR rrpkt = new RtcpPktRR(partArray,123456789);
       
    73 		RtcpPktSR srpkt = new RtcpPktSR(rtpSession.ssrc,12,21,rrpkt);
       
    74 		//RtcpPktSR srpkt2 = new RtcpPktSR(rtpSession.ssrc,12,21,null);
       
    75 		//rrpkt = new RtcpPktRR(partArray,1234512311);
       
    76 		
       
    77 		//srpkt.debugPrint();
       
    78 		//rrpkt.debugPrint();
       
    79 		
       
    80 		CompRtcpPkt compkt = new CompRtcpPkt();
       
    81 		compkt.addPacket(srpkt);
       
    82 		compkt.addPacket(rrpkt);
       
    83 		compkt.addPacket(rrpkt);
       
    84 		
       
    85 		byte[] test2 = compkt.encode();
       
    86 		//System.out.print(StaticProcs.bitsOfBytes(test));
       
    87 		System.out.println("****************************** DONE ENCODING *******************************");
       
    88 		CompRtcpPkt decomppkt = new CompRtcpPkt(test2,test2.length,testadr,rtpSession);
       
    89 		System.out.println("****************************** DONE DECODING *******************************");
       
    90 		System.out.println("Problem code:" + decomppkt.problem);
       
    91 		
       
    92 		ListIterator iter = decomppkt.rtcpPkts.listIterator();
       
    93 		int i = 0;
       
    94 		
       
    95 		while(iter.hasNext()) {
       
    96 			System.out.println(" i:" + i + " ");
       
    97 			i++;
       
    98 			
       
    99 			Object aPkt = iter.next();
       
   100 			if(	aPkt.getClass() == RtcpPktRR.class) {
       
   101 				RtcpPktRR pkt = (RtcpPktRR) aPkt;
       
   102 				pkt.debugPrint();
       
   103 			} else if(aPkt.getClass() == RtcpPktSR.class) {
       
   104 				RtcpPktSR pkt = (RtcpPktSR) aPkt;
       
   105 				pkt.debugPrint();
       
   106 			}
       
   107 		} 
       
   108 
       
   109 		System.out.println("****************************** BYE *******************************");
       
   110 		long[] tempArray = {rtpSession.ssrc};
       
   111 		byte[] tempReason = "tas".getBytes();
       
   112 		RtcpPktBYE byepkt = new RtcpPktBYE(tempArray,tempReason);
       
   113 		//byepkt.debugPrint();
       
   114 		byepkt.encode();
       
   115 		byte[] rawpktbye = byepkt.rawPkt;
       
   116 		
       
   117 		RtcpPktBYE byepkt2 = new RtcpPktBYE(rawpktbye,0);
       
   118 		byepkt2.debugPrint();
       
   119 		
       
   120 		System.out.println("****************************** SDES *******************************");
       
   121 		RtcpPktSDES sdespkt = new RtcpPktSDES(true,rtpSession,null);
       
   122 		rtpSession.cname = "cname123@localhost";
       
   123 		//rtpSession.loc = "right here";
       
   124 		sdespkt.encode();
       
   125 		//rtpSession.cname = "cname124@localhost";
       
   126 		//rtpSession.loc = "right hera";
       
   127 		byte[] rawpktsdes = sdespkt.rawPkt;
       
   128 		InetSocketAddress tmpAdr = (InetSocketAddress) rtpSock.getLocalSocketAddress();
       
   129 		RtcpPktSDES decsdespkt = new RtcpPktSDES(rawpktsdes, 0, (InetSocketAddress) rtpSock.getLocalSocketAddress() , partDb);
       
   130 		decsdespkt.debugPrint();
       
   131 		//partDb.debugPrint();
       
   132 		
       
   133 		CompRtcpPkt compkt2 = new CompRtcpPkt();
       
   134 		compkt2.addPacket(srpkt);
       
   135 		compkt2.addPacket(sdespkt);
       
   136 		byte[] compkt2Raw = compkt.encode();
       
   137 		
       
   138 		CompRtcpPkt compkt3 = new CompRtcpPkt(compkt2Raw,compkt2Raw.length,tmpAdr,rtpSession);
       
   139 	}
       
   140 }