diff -r c9ff263c29ad -r e684f11070d5 src/jlibrtp/ValidateRtcpPkt.java --- /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); + } +}