INET Framework for OMNeT++/OMNEST
inet::rtp::Rtp Class Reference

An Rtp is the center of the Rtp layer of an endsystem. More...

#include <Rtp.h>

Inheritance diagram for inet::rtp::Rtp:
inet::LifecycleUnsupported inet::ILifecycle

Protected Member Functions

virtual void initialize (int stage) override
 Initializes variables. More...
 
virtual int numInitStages () const override
 
virtual void handleMessage (cMessage *msg) override
 Handles incoming messages. More...
 
virtual void handleMessageFromApp (cMessage *msg)
 Handles messages received from the applicaiton. More...
 
virtual void handleMessageFromProfile (cMessage *msg)
 Handles messages received from the profile module. More...
 
virtual void handleMessageFromRTCP (cMessage *msg)
 Handles messages received from the rtcp module. More...
 
virtual void handleMessagefromUDP (cMessage *msg)
 Handles messages received from the UDP layer. More...
 
virtual void enterSession (RtpCiEnterSession *rifp)
 Creates the profile module and initializes it. More...
 
virtual void leaveSession (RtpCiLeaveSession *rifp)
 Destroys the profile module and orders the rtcp module to send an rtcp bye packet. More...
 
virtual void createSenderModule (RtpCiCreateSenderModule *rifp)
 
virtual void deleteSenderModule (RtpCiDeleteSenderModule *rifp)
 
virtual void senderModuleControl (RtpCiSenderControl *rifp)
 
virtual void profileInitialized (RtpInnerPacket *rinp)
 Called when the profile module is initialized. More...
 
virtual void senderModuleCreated (RtpInnerPacket *rinp)
 
virtual void senderModuleDeleted (RtpInnerPacket *rinp)
 
virtual void senderModuleInitialized (RtpInnerPacket *rinp)
 
virtual void senderModuleStatus (RtpInnerPacket *rinp)
 
virtual void dataOut (RtpInnerPacket *rinp)
 Sends a RTP data packet to the UDP layer and a copy of it to the rtcp module. More...
 
virtual void rtcpInitialized (RtpInnerPacket *rinp)
 Informs the application that the session is entered. More...
 
virtual void sessionLeft (RtpInnerPacket *rinp)
 Informs the application that this end system has left the RTP session. More...
 
virtual void createProfile (const char *profileName)
 Creates the profile module. More...
 
virtual void createSocket ()
 Requests a server socket from the UDP layer. More...
 
virtual void socketRet ()
 Called when the socket layer returns a socket. More...
 
virtual void connectRet ()
 Called when the socket layer has connected a socket. More...
 
virtual void readRet (cMessage *sifp)
 Called when data from the socket layer has been received. More...
 
virtual void initializeProfile ()
 Initializes the profile module. More...
 
virtual void initializeRTCP ()
 Initializes the rtcp module-. More...
 
virtual int resolveMTU ()
 Determines the maximum transmission unit that can be uses for RTP. More...
 

Protected Attributes

std::string _commonName
 The CNAME of this end system. More...
 
int _bandwidth
 The available bandwidth for this session. More...
 
Ipv4Address _destinationAddress
 The destination address. More...
 
int _port
 The RTP port. More...
 
int _mtu
 The maximum size of a packet. More...
 
int _rtcpPercentage
 The percentage of the bandwidth used for rtcp. More...
 
UdpSocket _udpSocket
 The UDP socket. More...
 
bool _leaveSession
 True when this end system is about to leave the session. More...
 
int appInGate
 
int profileInGate
 
int rtcpInGate
 
int udpInGate
 

Additional Inherited Members

- Public Member Functions inherited from inet::LifecycleUnsupported
virtual bool handleOperationStage (LifecycleOperation *operation, IDoneCallback *doneCallback) override
 Perform one stage of a lifecycle operation. More...
 
- Public Member Functions inherited from inet::ILifecycle
virtual ~ILifecycle ()
 

Detailed Description

An Rtp is the center of the Rtp layer of an endsystem.

It creates the profile module, sends and receives Rtp data packets and forwards messages. It also communicates with the application.

Member Function Documentation

◆ connectRet()

void inet::rtp::Rtp::connectRet ( )
protectedvirtual

Called when the socket layer has connected a socket.

325 {
326  initializeRTCP();
327 }

Referenced by createSocket().

◆ createProfile()

void inet::rtp::Rtp::createProfile ( const char *  profileName)
protectedvirtual

Creates the profile module.

364 {
365  cModuleType *moduleType = cModuleType::find(profileName);
366  if (moduleType == nullptr)
367  throw cRuntimeError("Profile type `%s' not found", profileName);
368 
369  RtpProfile *profile = check_and_cast<RtpProfile *>(moduleType->create("Profile", this));
370  profile->finalizeParameters();
371 
372  profile->setGateSize("payloadReceiverOut", 30);
373  profile->setGateSize("payloadReceiverIn", 30);
374 
375  this->gate("profileOut")->connectTo(profile->gate("rtpIn"));
376  profile->gate("rtpOut")->connectTo(this->gate("profileIn"));
377 
378  profile->callInitialize();
379  profile->scheduleStart(simTime());
380 }

Referenced by enterSession().

◆ createSenderModule()

void inet::rtp::Rtp::createSenderModule ( RtpCiCreateSenderModule rifp)
protectedvirtual
202 {
203  RtpInnerPacket *rinp = new RtpInnerPacket("createSenderModule()");
204  EV_INFO << rifp->getSsrc() << endl;
205  rinp->setCreateSenderModulePkt(rifp->getSsrc(), rifp->getPayloadType(), rifp->getFileName());
206  send(rinp, "profileOut");
207 
208  delete rifp;
209 }

Referenced by handleMessageFromApp().

◆ createSocket()

void inet::rtp::Rtp::createSocket ( )
protectedvirtual

Requests a server socket from the UDP layer.

383 {
385  MulticastGroupList mgl = getModuleFromPar<IInterfaceTable>(par("interfaceTableModule"), this)->collectMulticastGroups();
386  _udpSocket.joinLocalMulticastGroups(mgl); // TODO make it parameter-dependent
387  connectRet();
388 }

Referenced by profileInitialized().

◆ dataOut()

void inet::rtp::Rtp::dataOut ( RtpInnerPacket rinp)
protectedvirtual

Sends a RTP data packet to the UDP layer and a copy of it to the rtcp module.

289 {
290  Packet *packet = check_and_cast<Packet *>(rinp->getEncapsulatedPacket()->dup());
291 // RtpPacket *msg = check_and_cast<RtpPacket *>(rinp->getEncapsulatedPacket()->dup()); //FIXME kell itt az RtpPacket?
292 
294 
295  // Rtcp module must be informed about sent rtp data packet
296  send(rinp, "rtcpOut");
297 }

Referenced by handleMessageFromProfile().

◆ deleteSenderModule()

void inet::rtp::Rtp::deleteSenderModule ( RtpCiDeleteSenderModule rifp)
protectedvirtual
212 {
213  RtpInnerPacket *rinp = new RtpInnerPacket("deleteSenderModule()");
214  rinp->setDeleteSenderModulePkt(rifp->getSsrc());
215  send(rinp, "profileOut");
216 
217  delete rifp;
218 }

Referenced by handleMessageFromApp().

◆ enterSession()

void inet::rtp::Rtp::enterSession ( RtpCiEnterSession rifp)
protectedvirtual

Creates the profile module and initializes it.

171 {
172  const char *profileName = rifp->getProfileName();
173  _commonName = rifp->getCommonName();
174  _bandwidth = rifp->getBandwidth();
175  _destinationAddress = rifp->getDestinationAddress();
176 
177  _port = rifp->getPort();
178  if (_port & 1)
179  _port--;
180 
181  _mtu = resolveMTU();
182 
183  createProfile(profileName);
185  delete rifp;
186 }

Referenced by handleMessageFromApp().

◆ handleMessage()

void inet::rtp::Rtp::handleMessage ( cMessage *  msg)
overrideprotectedvirtual

Handles incoming messages.

56 {
57  if (msg->getArrivalGateId() == appInGate) {
59  }
60  else if (msg->getArrivalGateId() == profileInGate) {
62  }
63  else if (msg->getArrivalGateId() == rtcpInGate) {
65  }
66  else if (msg->getArrivalGateId() == udpInGate) {
68  }
69  else {
70  throw cRuntimeError("Message from unknown gate");
71  }
72 }

◆ handleMessageFromApp()

void inet::rtp::Rtp::handleMessageFromApp ( cMessage *  msg)
protectedvirtual

Handles messages received from the applicaiton.

78 {
79  RtpControlInfo *ci = check_and_cast<RtpControlInfo *>(msg->removeControlInfo());
80  delete msg;
81 
82  switch (ci->getType()) {
84  enterSession(check_and_cast<RtpCiEnterSession *>(ci));
85  break;
86 
88  createSenderModule(check_and_cast<RtpCiCreateSenderModule *>(ci));
89  break;
90 
92  deleteSenderModule(check_and_cast<RtpCiDeleteSenderModule *>(ci));
93  break;
94 
96  senderModuleControl(check_and_cast<RtpCiSenderControl *>(ci));
97  break;
98 
100  leaveSession(check_and_cast<RtpCiLeaveSession *>(ci));
101  break;
102 
103  default:
104  throw cRuntimeError("Unknown RtpControlInfo type from application");
105  }
106 }

Referenced by handleMessage().

◆ handleMessageFromProfile()

void inet::rtp::Rtp::handleMessageFromProfile ( cMessage *  msg)
protectedvirtual

Handles messages received from the profile module.

109 {
110  RtpInnerPacket *rinp = check_and_cast<RtpInnerPacket *>(msg);
111 
112  switch (rinp->getType()) {
114  profileInitialized(rinp);
115  break;
116 
118  senderModuleCreated(rinp);
119  break;
120 
122  senderModuleDeleted(rinp);
123  break;
124 
127  break;
128 
130  senderModuleStatus(rinp);
131  break;
132 
133  case RTP_INP_DATA_OUT:
134  dataOut(rinp);
135  break;
136 
137  default:
138  throw cRuntimeError("Unknown RtpInnerPacket type %d from profile", rinp->getType());
139  }
140  EV_DEBUG << "handleMessageFromProfile(cMessage *msg) Exit" << endl;
141 }

Referenced by handleMessage().

◆ handleMessageFromRTCP()

void inet::rtp::Rtp::handleMessageFromRTCP ( cMessage *  msg)
protectedvirtual

Handles messages received from the rtcp module.

144 {
145  RtpInnerPacket *rinp = check_and_cast<RtpInnerPacket *>(msg);
146 
147  switch (rinp->getType()) {
149  rtcpInitialized(rinp);
150  break;
151 
153  sessionLeft(rinp);
154  break;
155 
156  default:
157  throw cRuntimeError("Unknown RtpInnerPacket type %d from rtcp", rinp->getType());
158  }
159 }

Referenced by handleMessage().

◆ handleMessagefromUDP()

void inet::rtp::Rtp::handleMessagefromUDP ( cMessage *  msg)
protectedvirtual

Handles messages received from the UDP layer.

162 {
163  readRet(msg);
164 }

Referenced by handleMessage().

◆ initialize()

void inet::rtp::Rtp::initialize ( int  stage)
overrideprotectedvirtual

Initializes variables.

34 {
35  cSimpleModule::initialize(stage);
36 
37  if (stage == INITSTAGE_LOCAL) {
38  _commonName = "";
39  _leaveSession = false;
40  appInGate = findGate("appIn");
41  profileInGate = findGate("profileIn");
42  rtcpInGate = findGate("rtcpIn");
43  udpInGate = findGate("udpIn");
44  _udpSocket.setOutputGate(gate("udpOut"));
45  }
46  else if (stage == INITSTAGE_TRANSPORT_LAYER) {
47  cModule *node = findContainingNode(this);
48  NodeStatus *nodeStatus = node ? check_and_cast_nullable<NodeStatus *>(node->getSubmodule("status")) : nullptr;
49  bool isOperational = (!nodeStatus) || nodeStatus->getState() == NodeStatus::UP;
50  if (!isOperational)
51  throw cRuntimeError("This module doesn't support starting in node DOWN state");
52  }
53 }

◆ initializeProfile()

void inet::rtp::Rtp::initializeProfile ( )
protectedvirtual

Initializes the profile module.

391 {
392  RtpInnerPacket *rinp = new RtpInnerPacket("initializeProfile()");
393  rinp->setInitializeProfilePkt(_mtu);
394  send(rinp, "profileOut");
395 }

Referenced by enterSession().

◆ initializeRTCP()

void inet::rtp::Rtp::initializeRTCP ( )
protectedvirtual

Initializes the rtcp module-.

398 {
399  RtpInnerPacket *rinp = new RtpInnerPacket("initializeRTCP()");
400  int rtcpPort = _port + 1;
401  rinp->setInitializeRTCPPkt(_commonName.c_str(), _mtu, _bandwidth, _rtcpPercentage, _destinationAddress, rtcpPort);
402  send(rinp, "rtcpOut");
403 }

Referenced by connectRet().

◆ leaveSession()

void inet::rtp::Rtp::leaveSession ( RtpCiLeaveSession rifp)
protectedvirtual

Destroys the profile module and orders the rtcp module to send an rtcp bye packet.

189 {
190  if (!_leaveSession) {
191  _leaveSession = true;
192  cModule *profileModule = gate("profileOut")->getNextGate()->getOwnerModule();
193  profileModule->deleteModule();
194  RtpInnerPacket *rinp = new RtpInnerPacket("leaveSession()");
195  rinp->setLeaveSessionPkt();
196  send(rinp, "rtcpOut");
197  }
198  delete rifp;
199 }

Referenced by handleMessageFromApp().

◆ numInitStages()

virtual int inet::rtp::Rtp::numInitStages ( ) const
inlineoverrideprotectedvirtual
33 { return NUM_INIT_STAGES; }

◆ profileInitialized()

void inet::rtp::Rtp::profileInitialized ( RtpInnerPacket rinp)
protectedvirtual

Called when the profile module is initialized.

234 {
235  _rtcpPercentage = rinp->getRtcpPercentage();
236  if (_port == PORT_UNDEF) {
237  _port = rinp->getPort();
238  if (_port & 1)
239  _port--;
240  }
241 
242  delete rinp;
243 
244  createSocket();
245 }

Referenced by handleMessageFromProfile().

◆ readRet()

void inet::rtp::Rtp::readRet ( cMessage *  sifp)
protectedvirtual

Called when data from the socket layer has been received.

330 {
331  if (!_leaveSession) {
332  Packet *pk = check_and_cast<Packet *>(sifp);
333  const auto& rtpHeader = pk->peekAtFront<RtpHeader>();
334 
335  emit(packetReceivedSignal, pk);
336 
337  rtpHeader->dump();
338  RtpInnerPacket *rinp1 = new RtpInnerPacket("dataIn1()");
339  rinp1->setDataInPkt(pk->dup(), Ipv4Address(_destinationAddress), _port);
340  RtpInnerPacket *rinp2 = new RtpInnerPacket(*rinp1);
341  send(rinp2, "rtcpOut");
342  send(rinp1, "profileOut");
343  }
344 
345  delete sifp;
346 }

Referenced by handleMessagefromUDP().

◆ resolveMTU()

int inet::rtp::Rtp::resolveMTU ( )
protectedvirtual

Determines the maximum transmission unit that can be uses for RTP.

This implementation assumes that we use an ethernet with 1500 bytes mtu. The returned value is 1500 bytes minus header sizes for ip and udp.

349 {
350  // it returns MTU bytelength (ethernet) minus ip
351  // and udp headers
352  // TODO How to do get the valid length of IP and ETHERNET header?
353  IIpv4RoutingTable *rt = getModuleFromPar<IIpv4RoutingTable>(par("routingTableModule"), this);
354  const NetworkInterface *rtie = rt->getInterfaceForDestAddr(_destinationAddress);
355 
356  if (rtie == nullptr)
357  throw cRuntimeError("No interface for remote address %s found!", _destinationAddress.str().c_str());
358 
359  int pmtu = rtie->getMtu();
360  return pmtu - 20 - 8;
361 }

Referenced by enterSession().

◆ rtcpInitialized()

void inet::rtp::Rtp::rtcpInitialized ( RtpInnerPacket rinp)
protectedvirtual

Informs the application that the session is entered.

300 {
301  RtpCiSessionEntered *ci = new RtpCiSessionEntered();
302  ci->setSsrc(rinp->getSsrc());
303  cMessage *msg = new RtpControlMsg("sessionEntered()");
304  msg->setControlInfo(ci);
305  send(msg, "appOut");
306 
307  delete rinp;
308 }

Referenced by handleMessageFromRTCP().

◆ senderModuleControl()

void inet::rtp::Rtp::senderModuleControl ( RtpCiSenderControl rifp)
protectedvirtual
221 {
222  RtpInnerPacket *rinp = new RtpInnerPacket("senderModuleControl()");
223  RtpSenderControlMessage *scm = new RtpSenderControlMessage();
224  scm->setCommand(rifp->getCommand());
225  scm->setCommandParameter1(rifp->getCommandParameter1());
226  scm->setCommandParameter2(rifp->getCommandParameter2());
227  rinp->setSenderModuleControlPkt(rinp->getSsrc(), scm);
228  send(rinp, "profileOut");
229 
230  delete rifp;
231 }

Referenced by handleMessageFromApp().

◆ senderModuleCreated()

void inet::rtp::Rtp::senderModuleCreated ( RtpInnerPacket rinp)
protectedvirtual
248 {
249  RtpCiSenderModuleCreated *ci = new RtpCiSenderModuleCreated();
250  ci->setSsrc(rinp->getSsrc());
251  cMessage *msg = new RtpControlMsg("senderModuleCreated()");
252  msg->setControlInfo(ci);
253  send(msg, "appOut");
254 
255  delete rinp;
256 }

Referenced by handleMessageFromProfile().

◆ senderModuleDeleted()

void inet::rtp::Rtp::senderModuleDeleted ( RtpInnerPacket rinp)
protectedvirtual
259 {
260  RtpCiSenderModuleDeleted *ci = new RtpCiSenderModuleDeleted();
261  ci->setSsrc(rinp->getSsrc());
262  cMessage *msg = new RtpControlMsg("senderModuleDeleted()");
263  msg->setControlInfo(ci);
264  send(msg, "appOut");
265  // perhaps we should send a message to rtcp module
266  delete rinp;
267 }

Referenced by handleMessageFromProfile().

◆ senderModuleInitialized()

void inet::rtp::Rtp::senderModuleInitialized ( RtpInnerPacket rinp)
protectedvirtual
270 {
271  send(rinp, "rtcpOut");
272 }

Referenced by handleMessageFromProfile().

◆ senderModuleStatus()

void inet::rtp::Rtp::senderModuleStatus ( RtpInnerPacket rinp)
protectedvirtual
275 {
276  RtpSenderStatusMessage *ssm = check_and_cast<RtpSenderStatusMessage *>(rinp->decapsulate());
277  RtpCiSenderStatus *ci = new RtpCiSenderStatus();
278  ci->setSsrc(rinp->getSsrc());
279  ci->setStatus(ssm->getStatus());
280  ci->setTimeStamp(ssm->getTimeStamp());
281  cMessage *msg = new RtpControlMsg("senderModuleStatus()");
282  msg->setControlInfo(ci);
283  send(msg, "appOut");
284  delete ssm;
285  delete rinp;
286 }

Referenced by handleMessageFromProfile().

◆ sessionLeft()

void inet::rtp::Rtp::sessionLeft ( RtpInnerPacket rinp)
protectedvirtual

Informs the application that this end system has left the RTP session.

311 {
312  RtpCiSessionLeft *ci = new RtpCiSessionLeft();
313  cMessage *msg = new RtpControlMsg("sessionLeft()");
314  msg->setControlInfo(ci);
315  send(msg, "appOut");
316 
317  delete rinp;
318 }

Referenced by handleMessageFromRTCP().

◆ socketRet()

void inet::rtp::Rtp::socketRet ( )
protectedvirtual

Called when the socket layer returns a socket.

321 {
322 }

Member Data Documentation

◆ _bandwidth

int inet::rtp::Rtp::_bandwidth
protected

The available bandwidth for this session.

Referenced by enterSession(), and initializeRTCP().

◆ _commonName

std::string inet::rtp::Rtp::_commonName
protected

The CNAME of this end system.

Referenced by enterSession(), initialize(), and initializeRTCP().

◆ _destinationAddress

Ipv4Address inet::rtp::Rtp::_destinationAddress
protected

The destination address.

Referenced by dataOut(), enterSession(), initializeRTCP(), readRet(), and resolveMTU().

◆ _leaveSession

bool inet::rtp::Rtp::_leaveSession
protected

True when this end system is about to leave the session.

Referenced by initialize(), leaveSession(), and readRet().

◆ _mtu

int inet::rtp::Rtp::_mtu
protected

The maximum size of a packet.

Referenced by enterSession(), initializeProfile(), and initializeRTCP().

◆ _port

int inet::rtp::Rtp::_port
protected

◆ _rtcpPercentage

int inet::rtp::Rtp::_rtcpPercentage
protected

The percentage of the bandwidth used for rtcp.

Referenced by initializeRTCP(), and profileInitialized().

◆ _udpSocket

UdpSocket inet::rtp::Rtp::_udpSocket
protected

The UDP socket.

Referenced by createSocket(), dataOut(), and initialize().

◆ appInGate

int inet::rtp::Rtp::appInGate
protected

Referenced by handleMessage(), and initialize().

◆ profileInGate

int inet::rtp::Rtp::profileInGate
protected

Referenced by handleMessage(), and initialize().

◆ rtcpInGate

int inet::rtp::Rtp::rtcpInGate
protected

Referenced by handleMessage(), and initialize().

◆ udpInGate

int inet::rtp::Rtp::udpInGate
protected

Referenced by handleMessage(), and initialize().


The documentation for this class was generated from the following files:
inet::rtp::Rtp::initializeProfile
virtual void initializeProfile()
Initializes the profile module.
Definition: Rtp.cc:390
inet::UdpSocket::setOutputGate
void setOutputGate(cGate *toUdp)
Sets the gate on which to send to UDP.
Definition: UdpSocket.h:117
inet::findContainingNode
cModule * findContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:31
inet::rtp::Rtp::enterSession
virtual void enterSession(RtpCiEnterSession *rifp)
Creates the profile module and initializes it.
Definition: Rtp.cc:170
inet::rtp::RTP_IFP_SENDER_CONTROL
@ RTP_IFP_SENDER_CONTROL
Definition: RtpInterfacePacket_m.h:98
inet::rtp::RTP_INP_SESSION_LEFT
@ RTP_INP_SESSION_LEFT
Definition: RtpInnerPacket_m.h:100
inet::UdpSocket::bind
void bind(int localPort)
Bind the socket to a local port number.
Definition: UdpSocket.cc:34
inet::UdpSocket::sendTo
void sendTo(Packet *msg, L3Address destAddr, int destPort)
Sends a data packet to the given address and port.
Definition: UdpSocket.cc:69
inet::PORT_UNDEF
const short PORT_UNDEF
TCP/UDP port numbers.
Definition: Ipv4Address.h:28
inet::rtp::Rtp::dataOut
virtual void dataOut(RtpInnerPacket *rinp)
Sends a RTP data packet to the UDP layer and a copy of it to the rtcp module.
Definition: Rtp.cc:288
inet::rtp::Rtp::handleMessageFromProfile
virtual void handleMessageFromProfile(cMessage *msg)
Handles messages received from the profile module.
Definition: Rtp.cc:108
inet::rtp::RTP_INP_SENDER_MODULE_DELETED
@ RTP_INP_SENDER_MODULE_DELETED
Definition: RtpInnerPacket_m.h:94
inet::rtp::RTP_INP_PROFILE_INITIALIZED
@ RTP_INP_PROFILE_INITIALIZED
Definition: RtpInnerPacket_m.h:88
inet::rtp::RTP_INP_SENDER_MODULE_CREATED
@ RTP_INP_SENDER_MODULE_CREATED
Definition: RtpInnerPacket_m.h:92
inet::rtp::Rtp::resolveMTU
virtual int resolveMTU()
Determines the maximum transmission unit that can be uses for RTP.
Definition: Rtp.cc:348
inet::find
std::vector< T >::iterator find(std::vector< T > &v, const Tk &a)
Definition: stlutils.h:44
inet::rtp::Rtp::readRet
virtual void readRet(cMessage *sifp)
Called when data from the socket layer has been received.
Definition: Rtp.cc:329
inet::rtp::Rtp::udpInGate
int udpInGate
Definition: Rtp.h:191
inet::rtp::RTP_INP_SENDER_MODULE_INITIALIZED
@ RTP_INP_SENDER_MODULE_INITIALIZED
Definition: RtpInnerPacket_m.h:96
inet::rtp::Rtp::senderModuleControl
virtual void senderModuleControl(RtpCiSenderControl *rifp)
Definition: Rtp.cc:220
inet::rtp::Rtp::senderModuleInitialized
virtual void senderModuleInitialized(RtpInnerPacket *rinp)
Definition: Rtp.cc:269
inet::rtp::RTP_INP_RTCP_INITIALIZED
@ RTP_INP_RTCP_INITIALIZED
Definition: RtpInnerPacket_m.h:90
inet::rtp::Rtp::appInGate
int appInGate
Definition: Rtp.h:191
inet::rtp::RTP_INP_DATA_OUT
@ RTP_INP_DATA_OUT
Definition: RtpInnerPacket_m.h:101
inet::packetReceivedSignal
simsignal_t packetReceivedSignal
Definition: Simsignals.cc:97
inet::rtp::Rtp::initializeRTCP
virtual void initializeRTCP()
Initializes the rtcp module-.
Definition: Rtp.cc:397
inet::rtp::Rtp::createProfile
virtual void createProfile(const char *profileName)
Creates the profile module.
Definition: Rtp.cc:363
inet::UdpSocket::joinLocalMulticastGroups
void joinLocalMulticastGroups(MulticastGroupList mgl)
Joins the socket to each multicast group that are registered with any of the interfaces.
Definition: UdpSocket.cc:265
inet::rtp::Rtp::_mtu
int _mtu
The maximum size of a packet.
Definition: Rtp.h:174
inet::INITSTAGE_TRANSPORT_LAYER
INET_API InitStage INITSTAGE_TRANSPORT_LAYER
Initialization of transport-layer protocols.
inet::MulticastGroupList
std::vector< MulticastGroup > MulticastGroupList
Definition: IInterfaceTable.h:26
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::Ipv4Address::str
std::string str(bool printUnspec=true) const
Returns the string representation of the address (e.g.
Definition: Ipv4Address.cc:98
inet::rtp::RTP_IFP_LEAVE_SESSION
@ RTP_IFP_LEAVE_SESSION
Definition: RtpInterfacePacket_m.h:100
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::rtp::RTP_IFP_ENTER_SESSION
@ RTP_IFP_ENTER_SESSION
Definition: RtpInterfacePacket_m.h:92
inet::rtp::Rtp::senderModuleCreated
virtual void senderModuleCreated(RtpInnerPacket *rinp)
Definition: Rtp.cc:247
inet::rtp::Rtp::leaveSession
virtual void leaveSession(RtpCiLeaveSession *rifp)
Destroys the profile module and orders the rtcp module to send an rtcp bye packet.
Definition: Rtp.cc:188
inet::rtp::Rtp::createSocket
virtual void createSocket()
Requests a server socket from the UDP layer.
Definition: Rtp.cc:382
inet::rtp::Rtp::senderModuleDeleted
virtual void senderModuleDeleted(RtpInnerPacket *rinp)
Definition: Rtp.cc:258
inet::rtp::Rtp::sessionLeft
virtual void sessionLeft(RtpInnerPacket *rinp)
Informs the application that this end system has left the RTP session.
Definition: Rtp.cc:310
inet::rtp::Rtp::_rtcpPercentage
int _rtcpPercentage
The percentage of the bandwidth used for rtcp.
Definition: Rtp.h:179
inet::rtp::Rtp::handleMessageFromRTCP
virtual void handleMessageFromRTCP(cMessage *msg)
Handles messages received from the rtcp module.
Definition: Rtp.cc:143
inet::rtp::Rtp::_leaveSession
bool _leaveSession
True when this end system is about to leave the session.
Definition: Rtp.h:189
inet::rtp::Rtp::rtcpInGate
int rtcpInGate
Definition: Rtp.h:191
inet::rtp::Rtp::_bandwidth
int _bandwidth
The available bandwidth for this session.
Definition: Rtp.h:159
inet::NodeStatus::UP
@ UP
Definition: NodeStatus.h:28
inet::rtp::Rtp::_udpSocket
UdpSocket _udpSocket
The UDP socket.
Definition: Rtp.h:184
inet::rtp::Rtp::handleMessagefromUDP
virtual void handleMessagefromUDP(cMessage *msg)
Handles messages received from the UDP layer.
Definition: Rtp.cc:161
inet::rtp::Rtp::_port
int _port
The RTP port.
Definition: Rtp.h:169
inet::rtp::Rtp::profileInitialized
virtual void profileInitialized(RtpInnerPacket *rinp)
Called when the profile module is initialized.
Definition: Rtp.cc:233
inet::rtp::Rtp::_commonName
std::string _commonName
The CNAME of this end system.
Definition: Rtp.h:154
inet::rtp::RTP_IFP_DELETE_SENDER_MODULE
@ RTP_IFP_DELETE_SENDER_MODULE
Definition: RtpInterfacePacket_m.h:96
inet::rtp::Rtp::connectRet
virtual void connectRet()
Called when the socket layer has connected a socket.
Definition: Rtp.cc:324
inet::rtp::Rtp::profileInGate
int profileInGate
Definition: Rtp.h:191
inet::rtp::RTP_IFP_CREATE_SENDER_MODULE
@ RTP_IFP_CREATE_SENDER_MODULE
Definition: RtpInterfacePacket_m.h:94
inet::rtp::Rtp::handleMessageFromApp
virtual void handleMessageFromApp(cMessage *msg)
Handles messages received from the applicaiton.
Definition: Rtp.cc:77
inet::rtp::RTP_INP_SENDER_MODULE_STATUS
@ RTP_INP_SENDER_MODULE_STATUS
Definition: RtpInnerPacket_m.h:98
inet::rtp::Rtp::rtcpInitialized
virtual void rtcpInitialized(RtpInnerPacket *rinp)
Informs the application that the session is entered.
Definition: Rtp.cc:299
inet::rtp::Rtp::senderModuleStatus
virtual void senderModuleStatus(RtpInnerPacket *rinp)
Definition: Rtp.cc:274
inet::rtp::Rtp::deleteSenderModule
virtual void deleteSenderModule(RtpCiDeleteSenderModule *rifp)
Definition: Rtp.cc:211
inet::rtp::Rtp::createSenderModule
virtual void createSenderModule(RtpCiCreateSenderModule *rifp)
Definition: Rtp.cc:201
inet::rtp::Rtp::_destinationAddress
Ipv4Address _destinationAddress
The destination address.
Definition: Rtp.h:164