00001 /*************************************************************************** 00002 RTPParticipantInfo.h - description 00003 ------------------- 00004 begin : Wed Oct 24 2001 00005 copyright : (C) 2001 by Matthias Oppitz 00006 email : Matthias.Oppitz@gmx.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00022 #ifndef __RTPPARTICIPANTINFO_H__ 00023 #define __RTPPARTICIPANTINFO_H__ 00024 00025 #include "omnetpp.h" 00026 00027 #include "in_addr.h" 00028 #include "in_port.h" 00029 00030 #include "types.h" 00031 #include "RTPPacket.h" 00032 #include "RTCPPacket.h" 00033 #include "reports.h" 00034 #include "sdes.h" 00035 00046 class RTPParticipantInfo : public cObject { 00047 00048 public: 00049 00053 RTPParticipantInfo(u_int32 ssrc = 0); 00054 00058 RTPParticipantInfo(const RTPParticipantInfo& participantInfo); 00059 00063 virtual ~RTPParticipantInfo(); 00064 00068 RTPParticipantInfo& operator=(const RTPParticipantInfo& participantInfo); 00069 00073 virtual cObject *dup() const; 00074 00078 virtual const char *className() const; 00079 00088 virtual void processRTPPacket(RTPPacket *packet, simtime_t arrivalTime); 00089 00094 virtual void processSenderReport(SenderReport *report, simtime_t arrivalTime); 00095 00099 virtual void processReceptionReport(ReceptionReport *report, simtime_t arrivalTime); 00100 00104 virtual void processSDESChunk(SDESChunk *sdesChunk, simtime_t arrivalTime); 00105 00110 virtual SDESChunk *sdesChunk(); 00111 00115 virtual void addSDESItem(SDESItem *sdesItem); 00116 00123 virtual ReceptionReport *receptionReport(simtime_t now); 00124 00132 virtual SenderReport *senderReport(simtime_t now); 00133 00145 virtual void nextInterval(simtime_t now); 00146 00152 virtual bool toBeDeleted(simtime_t now); 00153 00159 virtual bool isSender(); 00160 00164 virtual u_int32 ssrc(); 00165 00169 virtual void setSSRC(u_int32 ssrc); 00170 00174 virtual IN_Addr address(); 00175 00179 virtual void setAddress(IN_Addr address); 00180 00185 virtual IN_Port rtpPort(); 00186 00191 virtual void setRTPPort(IN_Port rtpPort); 00192 00197 virtual IN_Port rtcpPort(); 00198 00203 virtual void setRTCPPort(IN_Port rtpPort); 00204 00210 static char *ssrcToName(u_int32 ssrc); 00211 00212 protected: 00213 00218 SDESChunk *_sdesChunk; 00219 00223 IN_Addr _address; 00224 00228 IN_Port _rtpPort; 00229 00233 IN_Port _rtcpPort; 00234 00240 int _silentIntervals; 00241 00246 virtual void addSDESItem(SDESItem::SDES_ITEM_TYPE type, const char *content); 00247 00248 00249 }; 00250 00251 #endif