sipXtapi home page


Sdp.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2007-2012 SIPez LLC. All rights reserved.
3 //
4 // Copyright (C) 2007 Plantronics
5 // Licensed to SIPfoundry under a Contributor Agreement.
6 //
7 // Copyright (C) 2007 SIPfoundry Inc.
8 // Licensed by SIPfoundry under the LGPL license.
9 //
10 // $$
12 // Author: Scott Godin (sgodin AT SipSpectrum DOT com)
13 
14 #ifndef _Sdp_h_
15 #define _Sdp_h_
16 
17 // SYSTEM INCLUDES
18 //#include <...>
19 //#include <iostream>
20 
21 // APPLICATION INCLUDES
22 #include <utl/UtlInt.h>
23 #include <utl/UtlString.h>
24 #include <utl/UtlVoidPtr.h>
25 #include <utl/UtlCopyableSList.h>
26 #include <utl/UtlSListIterator.h>
27 #include <utl/UtlHashMap.h>
28 
29 #include "SdpCandidate.h"
30 
31 // DEFINES
32 // MACROS
33 // EXTERNAL FUNCTIONS
34 // EXTERNAL VARIABLES
35 // CONSTANTS
36 // STRUCTS
37 // TYPEDEFS
38 // FORWARD DECLARATIONS
39 
40 //: Container for SDP specification
41 // This class holds the information related to an SDP.
42 // Included in this information is: TODO
43 //
44 
45 class SdpMediaLine;
46 
47 class Sdp
48 {
49 /* //////////////////////////// PUBLIC //////////////////////////////////// */
50 public:
51 
52  typedef enum
53  {
54  // WARNING: this enum must stay in synch. with SdpNetTypeString
56  NET_TYPE_IN // "IN" - Internet - RFC4566
57  } SdpNetType;
58  static const char* SdpNetTypeString[];
59 
60  typedef enum
61  {
62  // WARNING: this enum MUST stay in synch with SdpAddressTypeString
64  ADDRESS_TYPE_IP4, // "IP4" - RFC4566
65  ADDRESS_TYPE_IP6 // "IP6" - RFC4566
67  static const char* SdpAddressTypeString[];
68 
69  typedef enum
70  {
72  BANDWIDTH_TYPE_CT, // "CT" - Conference Total - RFC4566
73  BANDWIDTH_TYPE_AS, // "AS" - Application Specific - RFC4566
74  BANDWIDTH_TYPE_TIAS, // "TIAS" - Transport Independent Application Specific - RFC3890,
75  BANDWIDTH_TYPE_RS, // "RS" - RTCP bandwidth on active senders - RFC3556
76  BANDWIDTH_TYPE_RR // "RR" - RTCP bandwidth allocated to other participants - RFC3556
78  static const char* SdpBandwidthTypeString[];
79 
80  class SdpBandwidth : public UtlCopyableContainable
81  {
82  public:
83  SdpBandwidth(SdpBandwidthType type, unsigned int bandwidth) : mType(type), mBandwidth(bandwidth) {}
85 
86  // Containable requirements
87  UtlContainableType getContainableType() const { static char type[] = "SdpBandwidth"; return type;}
88  unsigned hash() const { return directHash(); }
89  int compareTo(UtlContainable const *) const { return 0; } // not implemented
90  UtlCopyableContainable* clone() const { return new SdpBandwidth(*this); }
91 
92  // Accessors
93  void setType(SdpBandwidthType type) { mType = type; }
94  SdpBandwidthType getType() const { return mType; }
95  static SdpBandwidthType getTypeFromString(const char * type);
96 
97  void setBandwidth(unsigned int bandwidth) { mBandwidth = bandwidth; }
98  unsigned int getBandwidth() const { return mBandwidth; }
99 
100  private:
101  SdpBandwidthType mType;
102  unsigned int mBandwidth;
103  };
104 
105  class SdpTime : public UtlCopyableContainable
106  {
107  public:
108  class SdpTimeRepeat : public UtlCopyableContainable
109  {
110  public:
111  SdpTimeRepeat(unsigned int repeatInterval, unsigned int activeDuration) :
112  mRepeatInterval(repeatInterval), mActiveDuration(activeDuration) {}
114  mRepeatInterval(rhs.mRepeatInterval), mActiveDuration(rhs.mActiveDuration), mOffsetsFromStartTime(rhs.mOffsetsFromStartTime) {}
115 
116  // Containable requirements
117  UtlContainableType getContainableType() const { static char type[] = "SdpTimeRepeat"; return type;}
118  unsigned hash() const { return directHash(); }
119  int compareTo(UtlContainable const *) const { return 0; } // not implemented
120  UtlCopyableContainable* clone() const { return new SdpTimeRepeat(*this); }
121 
122  // Accessors
123  void setRepeatInterval(unsigned int repeatInterval) { mRepeatInterval = repeatInterval; }
124  unsigned int getRepeatInterval() const { return mRepeatInterval; }
125 
126  void setActiveDuration(unsigned int activeDuration) { mActiveDuration = activeDuration; }
127  unsigned int getActiveDuration() const { return mActiveDuration; }
128 
129  void addOffsetFromStartTime(unsigned int offset) { mOffsetsFromStartTime.insert(new UtlInt(offset)); }
130  void clearOffsetsFromStartTime() { mOffsetsFromStartTime.destroyAll(); }
131  const UtlCopyableSList& getOffsetsFromStartTime() const { return mOffsetsFromStartTime; }
132 
133  private:
134  unsigned int mRepeatInterval;
135  unsigned int mActiveDuration;
136  UtlCopyableSList mOffsetsFromStartTime;
137  };
138 
139  SdpTime(uint64_t startTime, uint64_t stopTime) : mStartTime(startTime), mStopTime(stopTime) {}
140  SdpTime(const SdpTime& rhs) : mStartTime(rhs.mStartTime), mStopTime(rhs.mStopTime), mRepeats(rhs.mRepeats) {}
141 
142  // Containable requirements
143  UtlContainableType getContainableType() const { static char type[] = "SdpTime"; return type;}
144  unsigned hash() const { return directHash(); }
145  int compareTo(UtlContainable const *) const { return 0; } // not implemented
146  UtlCopyableContainable* clone() const { return new SdpTime(*this); }
147 
148  // Accessors
149  void setStartTime(uint64_t startTime) { mStartTime = startTime; }
150  uint64_t getStartTime() const { return mStartTime; }
151 
152  void setStopTime(uint64_t stopTime) { mStopTime = stopTime; }
153  uint64_t getStopTime() const { return mStopTime; }
154 
155  void addRepeat(SdpTimeRepeat* sdpTimeRepeat) { mRepeats.insert(sdpTimeRepeat); }
156  void clearRepeats() { mRepeats.destroyAll(); }
157  const UtlCopyableSList& getRepeats() const { return mRepeats; }
158 
159  private:
160  uint64_t mStartTime;
161  uint64_t mStopTime;
162  UtlCopyableSList mRepeats;
163  };
164 
165  class SdpTimeZone : public UtlCopyableContainable
166  {
167  public:
168  SdpTimeZone(int adjustmentTime, int offset) : mAdjustmentTime(adjustmentTime), mOffset(offset) {}
169  SdpTimeZone(const SdpTimeZone& rhs) : mAdjustmentTime(rhs.mAdjustmentTime), mOffset(rhs.mOffset) {}
170 
171  // Containable requirements
172  UtlContainableType getContainableType() const { static char type[] = "SdpTimeZone"; return type;}
173  unsigned hash() const { return directHash(); }
174  int compareTo(UtlContainable const *) const { return 0; } // not implemented
175  UtlCopyableContainable* clone() const { return new SdpTimeZone(*this); }
176 
177  // Accessors
178  void setAdjustmentTime(int adjustmentTime) { mAdjustmentTime = adjustmentTime; }
179  uint64_t getAdjustmentTime() const { return mAdjustmentTime; }
180 
181  void setOffset(int offset) { mOffset = offset; }
182  uint64_t getOffset() const { return mOffset; }
183 
184  private:
186  int mOffset;
187  };
188 
189  typedef enum
190  {
192  CONFERENCE_TYPE_BROADCAST, // "broadcast" - RFC4566
193  CONFERENCE_TYPE_MODERATED, // "moderated" - RFC4566
194  CONFERENCE_TYPE_TEST, // "test" - RFC4566
195  CONFERENCE_TYPE_H332 // "H332" - RFC4566
197  static const char* SdpConferenceTypeString[];
198 
199  typedef enum
200  {
202  GROUP_SEMANTICS_LS, // "LS" - Lip Sync - RFC3388
203  GROUP_SEMANTICS_FID, // "FID" - Flow Identifier - RFC3388
204  GROUP_SEMANTICS_SRF, // "SRF" - Single Reservation Flow - RFC3524
205  GROUP_SEMANTICS_ANAT // "ANAT" - Alternative Network Address Types - RFC4091
207  static const char* SdpGroupSemanticsString[];
208 
209  class SdpGroup : public UtlCopyableContainable
210  {
211  public:
212  SdpGroup(SdpGroupSemantics semantics) : mSemantics(semantics) {}
213  SdpGroup(const SdpGroup& rhs) : mSemantics(rhs.mSemantics), mIdentificationTags(rhs.mIdentificationTags) {}
214 
215  // Containable requirements
216  UtlContainableType getContainableType() const { static char type[] = "SdpGroup"; return type;}
217  unsigned hash() const { return directHash(); }
218  int compareTo(UtlContainable const *) const { return 0; } // not implemented
219  UtlCopyableContainable* clone() const { return new SdpGroup(*this); }
220 
221  // Accessors
222  void setSemantics(SdpGroupSemantics semantics) { mSemantics = semantics; }
223  SdpGroupSemantics getSemantics() const { return mSemantics; }
224  static SdpGroupSemantics getSemanticsFromString(const char * type);
225 
226  void addIdentificationTag(const char * identificationTag) { mIdentificationTags.insert(new UtlString(identificationTag)); }
227  void clearIdentificationTags() { mIdentificationTags.destroyAll(); }
228  const UtlCopyableSList& getIdentificationTags() const { return mIdentificationTags; }
229 
230  private:
231  SdpGroupSemantics mSemantics;
232  UtlCopyableSList mIdentificationTags;
233  };
234 
235  class SdpFoundation : public UtlCopyableContainable
236  {
237  public:
238  SdpFoundation(SdpCandidate::SdpCandidateType candidateType, const char * baseAddress, const char * stunAddress) :
239  mCandidateType(candidateType), mBaseAddress(baseAddress), mStunAddress(stunAddress) {}
241  mCandidateType(rhs.mCandidateType), mBaseAddress(rhs.mBaseAddress), mStunAddress(rhs.mStunAddress) {}
242 
243  // Containable requirements
244  UtlContainableType getContainableType() const { static char type[] = "SdpFoundationId"; return type;}
245  unsigned hash() const { return mBaseAddress.hash() ^ mStunAddress.hash() ^ mCandidateType; }
246  int compareTo(UtlContainable const *) const;
247  UtlCopyableContainable* clone() const { return new SdpFoundation(*this); }
248 
249  private:
251  UtlString mBaseAddress;
252  UtlString mStunAddress;
253  };
254 
255 /* ============================ CREATORS ================================== */
256 
257  Sdp();
258  //:Default constructor
259 
260  Sdp(const Sdp& rSdp);
261  //:Copy constructor
262 
263  virtual ~Sdp();
264  //:Destructor
265 
266 /* ============================ MANIPULATORS ============================== */
267 
268  Sdp& operator=(const Sdp& rhs);
269  //:Assignment operator
270 
271  void setSdpVersion(unsigned int sdpVersion) { mSdpVersion = sdpVersion; }
272 
273  void setOriginatorInfo(const char* userName, uint64_t sessionId, uint64_t sessionVersion, SdpNetType netType, SdpAddressType addressType, const char* unicastAddress);
274  void setOriginatorUserName(const char* originatorUserName) { mOriginatorUserName = originatorUserName; }
275  void setOriginatorSessionId(uint64_t originatorSessionId) { mOriginatorSessionId = originatorSessionId; }
276  void setOriginatorSessionVersion(uint64_t originatorSessionVersion) { mOriginatorSessionVersion = originatorSessionVersion; }
277  void setOriginatorNetType(SdpNetType originatorNetType) { mOriginatorNetType = originatorNetType; }
278  void setOriginatorAddressType(SdpAddressType originatorAddressType) { mOriginatorAddressType = originatorAddressType; }
279  void setOriginatorUnicastAddress(const char* originatorUnicastAddress) { mOriginatorUnicastAddress = originatorUnicastAddress; }
280 
281  void setSessionName(const char * sessionName) { mSessionName = sessionName; }
282  void setSessionInformation(const char * sessionInformation) { mSessionInformation = sessionInformation; }
283  void setSessionUri(const char * sessionUri) { mSessionUri = sessionUri; }
284 
285  void addEmailAddress(const char * emailAddress) { mEmailAddresses.insert(new UtlString(emailAddress)); }
286  void clearEmailAddresses() { mEmailAddresses.destroyAll(); }
287 
288  void addPhoneNumber(const char * phoneNumber) { mPhoneNumbers.insert(new UtlString(phoneNumber)); }
289  void clearPhoneNumbers() { mPhoneNumbers.destroyAll(); }
290 
291  void addBandwidth(SdpBandwidthType type, unsigned int bandwidth) { addBandwidth(new SdpBandwidth(type, bandwidth)); }
292  void addBandwidth(SdpBandwidth* sdpBandwidth) { mBandwidths.insert(sdpBandwidth); }
293  void clearBandwidths() { mBandwidths.destroyAll(); }
294 
295  void addTime(uint64_t startTime, uint64_t stopTime) { addTime(new SdpTime(startTime, stopTime)); }
296  void addTime(SdpTime* time) { mTimes.insert(time); }
297  void clearTimes() { mTimes.destroyAll(); }
298 
299  void addTimeZone(int adjustmentTime, int offset) { addTimeZone(new SdpTimeZone(adjustmentTime, offset)); }
300  void addTimeZone(SdpTimeZone* timeZone) { mTimeZones.insert(timeZone); }
301  void clearTimeZones() { mTimeZones.destroyAll(); }
302 
303  void setCategory(const char * category) { mCategory = category; }
304  void setKeywords(const char * keywords) { mKeywords = keywords; }
305  void setToolNameAndVersion(const char * toolNameAndVersion) { mToolNameAndVersion = toolNameAndVersion; }
306  void setConferenceType(SdpConferenceType conferenceType) { mConferenceType = conferenceType; }
307  void setCharSet(const char * charSet) { mCharSet = charSet; }
308  void setIcePassiveOnlyMode(bool icePassiveOnlyMode) { mIcePassiveOnlyMode = icePassiveOnlyMode; }
309 
310  void addGroup(SdpGroup* group) { mGroups.insert(group); }
311  void clearGroups() { mGroups.destroyAll(); }
312 
313  void setSessionLanguage(const char * sessionLanguage) { mSessionLanguage = sessionLanguage; }
314  void setDescriptionLanguage(const char * descriptionLanguage) { mDescriptionLanguage = descriptionLanguage; }
315  void setMaximumPacketRate(double maximumPacketRate) { mMaximumPacketRate = maximumPacketRate; }
316 
317  void addMediaLine(SdpMediaLine* mediaLine);
318  void clearMediaLines();
319 
320 /* ============================ ACCESSORS ================================= */
321 
322  void toString(UtlString& sdpString) const;
323 
324 /* ============================ INQUIRY =================================== */
325 
326  static SdpAddressType getAddressTypeFromString(const char * type);
327 
328  unsigned int getSdpVersion() const { return mSdpVersion; }
329 
330  const UtlString& getOriginatorUserName() const { return mOriginatorUserName; }
331  uint64_t getOriginatorSessionId() const { return mOriginatorSessionId; }
333  SdpNetType getOriginatorNetType() const { return mOriginatorNetType; }
334  SdpAddressType getOriginatorAddressType() const { return mOriginatorAddressType; }
335  const UtlString& getOriginatorUnicastAddress() const { return mOriginatorUnicastAddress; }
336 
337  const UtlString& getSessionName() const { return mSessionName; }
338  const UtlString& getSessionInformation() const { return mSessionInformation; }
339  const UtlString& getSessionUri() const { return mSessionUri; }
340 
341  const UtlCopyableSList& getEmailAddresses() const { return mEmailAddresses; }
342  const UtlCopyableSList& getPhoneNumbers() const { return mPhoneNumbers; }
343  const UtlCopyableSList& getBandwidths() const { return mBandwidths; }
344  const UtlCopyableSList& getTimes() const { return mTimes; }
345  const UtlCopyableSList& getTimeZones() const { return mTimeZones; }
346 
347  const UtlString& getCategory() const { return mCategory; }
348  const UtlString& getKeywords() const { return mKeywords; }
349  const UtlString& getToolNameAndVersion() const { return mToolNameAndVersion; }
350  SdpConferenceType getConferenceType() const { return mConferenceType; }
351  static SdpConferenceType getConferenceTypeFromString(const char * type);
352  const UtlString& getCharSet() const { return mCharSet; }
353  bool isIcePassiveOnlyMode() const { return mIcePassiveOnlyMode; }
354 
355  const UtlCopyableSList& getGroups() const { return mGroups; }
356 
357  const UtlString& getSessionLanguage() const { return mSessionLanguage; }
358  const UtlString& getDescriptionLanguage() const { return mDescriptionLanguage; }
359  double getMaximumPacketRate() const { return mMaximumPacketRate; }
360 
361  const UtlCopyableSList& getMediaLines() const;
362 
363  UtlString getLocalFoundationId(SdpCandidate::SdpCandidateType candidateType, const char * baseAddress, const char * stunAddress=0);
364 
365 
366 /* //////////////////////////// PROTECTED ///////////////////////////////// */
367 protected:
368 
369 /* //////////////////////////// PRIVATE /////////////////////////////////// */
370 private:
371  // v=
372  unsigned int mSdpVersion;
373 
374  // o=
378  SdpNetType mOriginatorNetType;
379  SdpAddressType mOriginatorAddressType;
381 
382  // s=
383  UtlString mSessionName;
384 
385  // i=
387 
388  // u=
389  UtlString mSessionUri;
390 
391  // e=
392  UtlCopyableSList mEmailAddresses;
393 
394  // p=
395  UtlCopyableSList mPhoneNumbers;
396 
397  // c= is only stored in sdpMediaLine
398 
399  // b=
400  UtlCopyableSList mBandwidths;
401 
402  // t=, r=
403  UtlCopyableSList mTimes;
404 
405  // z=
406  UtlCopyableSList mTimeZones;
407 
408  // k= is only stored in sdpMediaLine
409 
410  // a= session level only attributes
411  UtlString mCategory; // a=cat:<category> - RFC4566
412  UtlString mKeywords; // a=keywds:<keywords> - RFC4566
413  UtlString mToolNameAndVersion; // a=tool:<name and version of tool> - RFC4566
414  SdpConferenceType mConferenceType; // a=type:<conference type> - RFC4566
415  UtlString mCharSet; // a=charset:<character set> - RFC4566
416  bool mIcePassiveOnlyMode; // a=ice-passive - ietf-draft-mmusic-ice-12
417  UtlCopyableSList mGroups; // a=group:<semantics> <id-tag> ... - RFC3388
418 
419  // a= attributes that have meaning when not associated to a particular media line
420  UtlString mSessionLanguage; // a=lang:<language tag> - RFC4566
421  UtlString mDescriptionLanguage; // a=sdplang:<language tag> - RFC4566
422  double mMaximumPacketRate; // a=maxprate:<packetrate> in packets/s - RFC3890
423 
424  // Media Lines
425  UtlCopyableSList mMediaLines;
426 
427  // Foundation Id
428  UtlHashMap mFoundationIds;
429 };
430 
431 /* ============================ INLINE METHODS ============================ */
432 
433 #endif // _Sdp_h_
void setCategory(const char *category)
Definition: Sdp.h:303
const UtlCopyableSList & getOffsetsFromStartTime() const
Definition: Sdp.h:131
Definition: Sdp.h:204
void addBandwidth(SdpBandwidthType type, unsigned int bandwidth)
Definition: Sdp.h:291
SdpGroup(const SdpGroup &rhs)
Definition: Sdp.h:213
UtlString mKeywords
Definition: Sdp.h:412
const UtlString & getKeywords() const
Definition: Sdp.h:348
virtual ~Sdp()
Definition: Sdp.cpp:94
void addIdentificationTag(const char *identificationTag)
Definition: Sdp.h:226
const UtlCopyableSList & getEmailAddresses() const
Definition: Sdp.h:341
UtlContainableType getContainableType() const
Definition: Sdp.h:143
void setKeywords(const char *keywords)
Definition: Sdp.h:304
SdpGroup(SdpGroupSemantics semantics)
Definition: Sdp.h:212
UtlString mSessionInformation
Definition: Sdp.h:386
SdpTimeRepeat(unsigned int repeatInterval, unsigned int activeDuration)
Definition: Sdp.h:111
const UtlString & getCategory() const
Definition: Sdp.h:347
SdpGroupSemantics mSemantics
Definition: Sdp.h:231
void setCharSet(const char *charSet)
Definition: Sdp.h:307
void setOriginatorSessionId(uint64_t originatorSessionId)
Definition: Sdp.h:275
void setMaximumPacketRate(double maximumPacketRate)
Definition: Sdp.h:315
void setSessionLanguage(const char *sessionLanguage)
Definition: Sdp.h:313
UtlString mCharSet
Definition: Sdp.h:415
uint64_t mStopTime
Definition: Sdp.h:161
uint64_t getStartTime() const
Definition: Sdp.h:150
Definition: Sdp.h:193
SdpTime(uint64_t startTime, uint64_t stopTime)
Definition: Sdp.h:139
Sdp & operator=(const Sdp &rhs)
Definition: Sdp.cpp:100
UtlHashMap mFoundationIds
Definition: Sdp.h:428
const UtlCopyableSList & getTimeZones() const
Definition: Sdp.h:345
int compareTo(UtlContainable const *) const
Definition: Sdp.h:119
UtlString mStunAddress
Definition: Sdp.h:252
uint64_t mOriginatorSessionVersion
Definition: Sdp.h:377
void addPhoneNumber(const char *phoneNumber)
Definition: Sdp.h:288
unsigned int mBandwidth
Definition: Sdp.h:102
UtlString mOriginatorUserName
Definition: Sdp.h:375
void clearRepeats()
Definition: Sdp.h:156
void clearTimes()
Definition: Sdp.h:297
void addRepeat(SdpTimeRepeat *sdpTimeRepeat)
Definition: Sdp.h:155
SdpCandidate::SdpCandidateType mCandidateType
Definition: Sdp.h:250
unsigned int getBandwidth() const
Definition: Sdp.h:98
Definition: Sdp.h:65
Definition: Sdp.h:75
const UtlString & getSessionName() const
Definition: Sdp.h:337
void addMediaLine(SdpMediaLine *mediaLine)
Definition: Sdp.cpp:292
SdpConferenceType
Definition: Sdp.h:189
SdpBandwidthType getType() const
Definition: Sdp.h:94
SdpTimeZone(int adjustmentTime, int offset)
Definition: Sdp.h:168
UtlString mBaseAddress
Definition: Sdp.h:251
Definition: Sdp.h:165
unsigned hash() const
Definition: Sdp.h:245
Definition: Sdp.h:194
void setSdpVersion(unsigned int sdpVersion)
Definition: Sdp.h:271
static const char * SdpConferenceTypeString[]
Definition: Sdp.h:197
UtlCopyableSList mEmailAddresses
Definition: Sdp.h:392
void setConferenceType(SdpConferenceType conferenceType)
Definition: Sdp.h:306
const UtlCopyableSList & getIdentificationTags() const
Definition: Sdp.h:228
SdpNetType mOriginatorNetType
Definition: Sdp.h:378
SdpFoundation(SdpCandidate::SdpCandidateType candidateType, const char *baseAddress, const char *stunAddress)
Definition: Sdp.h:238
void setOriginatorAddressType(SdpAddressType originatorAddressType)
Definition: Sdp.h:278
void addTime(SdpTime *time)
Definition: Sdp.h:296
void clearIdentificationTags()
Definition: Sdp.h:227
SdpGroupSemantics getSemantics() const
Definition: Sdp.h:223
uint64_t getOriginatorSessionId() const
Definition: Sdp.h:331
Definition: SdpMediaLine.h:48
void addOffsetFromStartTime(unsigned int offset)
Definition: Sdp.h:129
int mOffset
Definition: Sdp.h:186
UtlCopyableSList mOffsetsFromStartTime
Definition: Sdp.h:136
const UtlCopyableSList & getRepeats() const
Definition: Sdp.h:157
void clearOffsetsFromStartTime()
Definition: Sdp.h:130
UtlCopyableContainable * clone() const
Definition: Sdp.h:90
void setType(SdpBandwidthType type)
Definition: Sdp.h:93
UtlContainableType getContainableType() const
Definition: Sdp.h:87
const UtlString & getOriginatorUserName() const
Definition: Sdp.h:330
bool isIcePassiveOnlyMode() const
Definition: Sdp.h:353
UtlCopyableContainable * clone() const
Definition: Sdp.h:219
void setBandwidth(unsigned int bandwidth)
Definition: Sdp.h:97
static const char * SdpNetTypeString[]
Definition: Sdp.h:58
UtlContainableType getContainableType() const
Definition: Sdp.h:117
const UtlString & getSessionUri() const
Definition: Sdp.h:339
static const char * SdpGroupSemanticsString[]
Definition: Sdp.h:207
UtlCopyableSList mPhoneNumbers
Definition: Sdp.h:395
SdpTimeRepeat(const SdpTimeRepeat &rhs)
Definition: Sdp.h:113
SdpTimeZone(const SdpTimeZone &rhs)
Definition: Sdp.h:169
void addTime(uint64_t startTime, uint64_t stopTime)
Definition: Sdp.h:295
UtlCopyableContainable * clone() const
Definition: Sdp.h:247
void setOriginatorUnicastAddress(const char *originatorUnicastAddress)
Definition: Sdp.h:279
const UtlString & getDescriptionLanguage() const
Definition: Sdp.h:358
bool mIcePassiveOnlyMode
Definition: Sdp.h:416
UtlString getLocalFoundationId(SdpCandidate::SdpCandidateType candidateType, const char *baseAddress, const char *stunAddress=0)
Definition: Sdp.cpp:481
const UtlCopyableSList & getMediaLines() const
Definition: Sdp.cpp:476
double mMaximumPacketRate
Definition: Sdp.h:422
Definition: Sdp.h:71
UtlCopyableSList mIdentificationTags
Definition: Sdp.h:232
double getMaximumPacketRate() const
Definition: Sdp.h:359
Definition: Sdp.h:73
UtlContainableType getContainableType() const
Definition: Sdp.h:172
void setOriginatorInfo(const char *userName, uint64_t sessionId, uint64_t sessionVersion, SdpNetType netType, SdpAddressType addressType, const char *unicastAddress)
Definition: Sdp.cpp:277
void setOriginatorNetType(SdpNetType originatorNetType)
Definition: Sdp.h:277
void setActiveDuration(unsigned int activeDuration)
Definition: Sdp.h:126
Definition: Sdp.h:55
void toString(UtlString &sdpString) const
Definition: Sdp.cpp:304
unsigned int mRepeatInterval
Definition: Sdp.h:134
void setSessionName(const char *sessionName)
Definition: Sdp.h:281
SdpAddressType mOriginatorAddressType
Definition: Sdp.h:379
int compareTo(UtlContainable const *) const
Definition: Sdp.h:89
static SdpAddressType getAddressTypeFromString(const char *type)
Definition: Sdp.cpp:146
SdpCandidateType
Definition: SdpCandidate.h:56
SdpConferenceType getConferenceType() const
Definition: Sdp.h:350
const UtlCopyableSList & getTimes() const
Definition: Sdp.h:344
Definition: Sdp.h:192
void setAdjustmentTime(int adjustmentTime)
Definition: Sdp.h:178
void setIcePassiveOnlyMode(bool icePassiveOnlyMode)
Definition: Sdp.h:308
const UtlCopyableSList & getBandwidths() const
Definition: Sdp.h:343
void setStopTime(uint64_t stopTime)
Definition: Sdp.h:152
void addEmailAddress(const char *emailAddress)
Definition: Sdp.h:285
UtlString mOriginatorUnicastAddress
Definition: Sdp.h:380
void setSessionInformation(const char *sessionInformation)
Definition: Sdp.h:282
unsigned int mActiveDuration
Definition: Sdp.h:135
Definition: Sdp.h:105
UtlContainableType getContainableType() const
Definition: Sdp.h:216
static const char * SdpAddressTypeString[]
Definition: Sdp.h:67
Definition: Sdp.h:203
void addTimeZone(SdpTimeZone *timeZone)
Definition: Sdp.h:300
UtlCopyableSList mBandwidths
Definition: Sdp.h:400
UtlCopyableContainable * clone() const
Definition: Sdp.h:146
uint64_t getOffset() const
Definition: Sdp.h:182
void addGroup(SdpGroup *group)
Definition: Sdp.h:310
UtlString mSessionLanguage
Definition: Sdp.h:420
UtlCopyableSList mGroups
Definition: Sdp.h:417
SdpBandwidth(SdpBandwidthType type, unsigned int bandwidth)
Definition: Sdp.h:83
int compareTo(UtlContainable const *) const
Definition: Sdp.h:145
void setSessionUri(const char *sessionUri)
Definition: Sdp.h:283
uint64_t mStartTime
Definition: Sdp.h:160
SdpAddressType
Definition: Sdp.h:60
void setStartTime(uint64_t startTime)
Definition: Sdp.h:149
unsigned int getSdpVersion() const
Definition: Sdp.h:328
UtlCopyableSList mRepeats
Definition: Sdp.h:162
SdpConferenceType mConferenceType
Definition: Sdp.h:414
SdpFoundation(const SdpFoundation &rhs)
Definition: Sdp.h:240
uint64_t getStopTime() const
Definition: Sdp.h:153
Definition: Sdp.h:56
void setRepeatInterval(unsigned int repeatInterval)
Definition: Sdp.h:123
void clearPhoneNumbers()
Definition: Sdp.h:289
void clearTimeZones()
Definition: Sdp.h:301
int compareTo(UtlContainable const *) const
Definition: Sdp.h:174
unsigned hash() const
Definition: Sdp.h:173
const UtlString & getOriginatorUnicastAddress() const
Definition: Sdp.h:335
Sdp()
Definition: Sdp.cpp:75
Definition: Sdp.h:80
UtlCopyableContainable * clone() const
Definition: Sdp.h:175
SdpTime(const SdpTime &rhs)
Definition: Sdp.h:140
Definition: Sdp.h:195
Definition: Sdp.h:76
const UtlCopyableSList & getPhoneNumbers() const
Definition: Sdp.h:342
UtlCopyableSList mMediaLines
Definition: Sdp.h:425
void clearEmailAddresses()
Definition: Sdp.h:286
SdpNetType getOriginatorNetType() const
Definition: Sdp.h:333
SdpAddressType getOriginatorAddressType() const
Definition: Sdp.h:334
static SdpBandwidthType getTypeFromString(const char *type)
Definition: Sdp.cpp:164
int compareTo(UtlContainable const *) const
Definition: Sdp.h:218
unsigned hash() const
Definition: Sdp.h:144
void setOriginatorSessionVersion(uint64_t originatorSessionVersion)
Definition: Sdp.h:276
const UtlString & getCharSet() const
Definition: Sdp.h:352
UtlContainableType getContainableType() const
Definition: Sdp.h:244
uint64_t getOriginatorSessionVersion() const
Definition: Sdp.h:332
static SdpConferenceType getConferenceTypeFromString(const char *type)
Definition: Sdp.cpp:194
void addTimeZone(int adjustmentTime, int offset)
Definition: Sdp.h:299
SdpBandwidthType
Definition: Sdp.h:69
Definition: Sdp.h:72
unsigned int getActiveDuration() const
Definition: Sdp.h:127
int mAdjustmentTime
Definition: Sdp.h:185
Definition: Sdp.h:202
UtlCopyableSList mTimes
Definition: Sdp.h:403
Definition: Sdp.h:191
void clearMediaLines()
Definition: Sdp.cpp:297
Definition: Sdp.h:209
const UtlString & getToolNameAndVersion() const
Definition: Sdp.h:349
void setDescriptionLanguage(const char *descriptionLanguage)
Definition: Sdp.h:314
void addBandwidth(SdpBandwidth *sdpBandwidth)
Definition: Sdp.h:292
UtlString mSessionUri
Definition: Sdp.h:389
uint64_t mOriginatorSessionId
Definition: Sdp.h:376
SdpNetType
Definition: Sdp.h:52
void clearBandwidths()
Definition: Sdp.h:293
Definition: Sdp.h:47
uint64_t getAdjustmentTime() const
Definition: Sdp.h:179
Definition: Sdp.h:64
Definition: Sdp.h:63
Definition: Sdp.h:235
UtlString mDescriptionLanguage
Definition: Sdp.h:421
unsigned hash() const
Definition: Sdp.h:217
Definition: Sdp.h:74
unsigned int getRepeatInterval() const
Definition: Sdp.h:124
UtlString mSessionName
Definition: Sdp.h:383
unsigned hash() const
Definition: Sdp.h:118
const UtlCopyableSList & getGroups() const
Definition: Sdp.h:355
const UtlString & getSessionLanguage() const
Definition: Sdp.h:357
UtlCopyableSList mTimeZones
Definition: Sdp.h:406
SdpGroupSemantics
Definition: Sdp.h:199
SdpBandwidthType mType
Definition: Sdp.h:101
unsigned hash() const
Definition: Sdp.h:88
void setOriginatorUserName(const char *originatorUserName)
Definition: Sdp.h:274
UtlCopyableContainable * clone() const
Definition: Sdp.h:120
void setToolNameAndVersion(const char *toolNameAndVersion)
Definition: Sdp.h:305
void setOffset(int offset)
Definition: Sdp.h:181
UtlString mCategory
Definition: Sdp.h:411
static const char * SdpBandwidthTypeString[]
Definition: Sdp.h:78
unsigned int mSdpVersion
Definition: Sdp.h:372
Definition: Sdp.h:108
Definition: Sdp.h:201
void setSemantics(SdpGroupSemantics semantics)
Definition: Sdp.h:222
const UtlString & getSessionInformation() const
Definition: Sdp.h:338
Definition: Sdp.h:205
SdpBandwidth(const SdpBandwidth &rhs)
Definition: Sdp.h:84
void clearGroups()
Definition: Sdp.h:311
UtlString mToolNameAndVersion
Definition: Sdp.h:413