PcapPlusPlus  24.09
SdpLayer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "IpAddress.h"
4 #include "TextBasedProtocol.h"
5 #include <vector>
6 
8 
13 namespace pcpp
14 {
15 
17 #define PCPP_SDP_PROTOCOL_VERSION_FIELD "v"
19 #define PCPP_SDP_ORIGINATOR_FIELD "o"
21 #define PCPP_SDP_SESSION_NAME_FIELD "s"
23 #define PCPP_SDP_INFO_FIELD "i"
25 #define PCPP_SDP_URI_FIELD "u"
27 #define PCPP_SDP_EMAIL_FIELD "e"
29 #define PCPP_SDP_PHONE_FIELD "p"
31 #define PCPP_SDP_CONNECTION_INFO_FIELD "c"
33 #define PCPP_SDP_BANDWIDTH_FIELD "b"
35 #define PCPP_SDP_TIME_FIELD "t"
37 #define PCPP_SDP_REPEAT_TIMES_FIELD "r"
39 #define PCPP_SDP_TIME_ZONE_FIELD "z"
41 #define PCPP_SDP_ENCRYPTION_KEY_FIELD "k"
43 #define PCPP_SDP_MEDIA_ATTRIBUTE_FIELD "a"
45 #define PCPP_SDP_MEDIA_NAME_FIELD "m"
46 
60  {
61  public:
68  SdpLayer(uint8_t* data, size_t dataLen, Layer* prevLayer, Packet* packet);
69 
74 
95  SdpLayer(const std::string& username, long sessionID, long sessionVersion, IPv4Address ipAddress,
96  const std::string& sessionName, long startTime, long stopTime);
97 
98  ~SdpLayer()
99  {}
100 
107  {}
108 
114  SdpLayer& operator=(const SdpLayer& other)
115  {
116  TextBasedProtocolMessage::operator=(other);
117  return *this;
118  }
119 
129 
140  uint16_t getMediaPort(const std::string& mediaType) const;
141 
162  bool addMediaDescription(const std::string& mediaType, uint16_t mediaPort, const std::string& mediaProtocol,
163  const std::string& mediaFormat, const std::vector<std::string>& mediaAttributes);
164 
165  // overridden methods
166 
168  {
169  return OsiModelSesionLayer;
170  }
171 
172  std::string toString() const;
173 
174  protected:
175  // implementation of abstract methods
176  char getHeaderFieldNameValueSeparator() const
177  {
178  return '=';
179  }
180  bool spacesAllowedBetweenHeaderFieldNameAndValue() const
181  {
182  return false;
183  }
184  };
185 } // namespace pcpp
Definition: IpAddress.h:32
Definition: Layer.h:70
Definition: Packet.h:27
Definition: SdpLayer.h:60
SdpLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
uint16_t getMediaPort(const std::string &mediaType) const
IPv4Address getOwnerIPv4Address() const
SdpLayer(const std::string &username, long sessionID, long sessionVersion, IPv4Address ipAddress, const std::string &sessionName, long startTime, long stopTime)
SdpLayer(const SdpLayer &other)
Definition: SdpLayer.h:106
std::string toString() const
SdpLayer & operator=(const SdpLayer &other)
Definition: SdpLayer.h:114
OsiModelLayer getOsiModelLayer() const
Definition: SdpLayer.h:167
bool addMediaDescription(const std::string &mediaType, uint16_t mediaPort, const std::string &mediaProtocol, const std::string &mediaFormat, const std::vector< std::string > &mediaAttributes)
Definition: TextBasedProtocol.h:123
The main namespace for the PcapPlusPlus lib.
OsiModelLayer
Definition: ProtocolType.h:354
@ OsiModelSesionLayer
Definition: ProtocolType.h:364