reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
Sdp.hxx
Go to the documentation of this file.
1#if !defined(Sdp_hxx)
2#define Sdp_hxx
3
4#include <iostream>
5#include <list>
6#include <map>
7
8#include "rutil/compat.hxx"
9#include "rutil/HashMap.hxx"
10#include "rutil/Data.hxx"
11
12#include "SdpCandidate.hxx"
13
14namespace sdpcontainer
15{
16
17class SdpMediaLine;
18
19// Container for SDP specification
20// This class holds the information related to an SDP.
21class Sdp
22{
23public:
24
25 typedef enum
26 {
28 NET_TYPE_IN // "IN" - Internet - RFC4566
30 static const char* SdpNetTypeString[];
31
32 typedef enum
33 {
35 ADDRESS_TYPE_IP4, // "IP4" - RFC4566
36 ADDRESS_TYPE_IP6 // "IP6" - RFC4566
38 static const char* SdpAddressTypeString[];
39
40 typedef enum
41 {
43 BANDWIDTH_TYPE_CT, // "CT" - Conference Total - RFC4566
44 BANDWIDTH_TYPE_AS, // "AS" - Application Specific - RFC4566
45 BANDWIDTH_TYPE_TIAS, // "TIAS" - Transport Independent Application Specific - RFC3890,
46 BANDWIDTH_TYPE_RS, // "RS" - RTCP bandwidth on active senders - RFC3556
47 BANDWIDTH_TYPE_RR // "RR" - RTCP bandwidth allocated to other participants - RFC3556
49 static const char* SdpBandwidthTypeString[];
50
52 {
53 public:
54 SdpBandwidth(SdpBandwidthType type, unsigned int bandwidth) : mType(type), mBandwidth(bandwidth) {}
55 SdpBandwidth(const SdpBandwidth& rhs) : mType(rhs.mType), mBandwidth(rhs.mBandwidth) {}
56
57 // Accessors
58 void setType(SdpBandwidthType type) { mType = type; }
59 SdpBandwidthType getType() const { return mType; }
60 static SdpBandwidthType getTypeFromString(const char * type);
61
62 void setBandwidth(unsigned int bandwidth) { mBandwidth = bandwidth; }
63 unsigned int getBandwidth() const { return mBandwidth; }
64
65 private:
66 SdpBandwidthType mType;
67 unsigned int mBandwidth;
68 };
69
70 class SdpTime
71 {
72 public:
74 {
75 public:
76 SdpTimeRepeat(unsigned int repeatInterval, unsigned int activeDuration) :
77 mRepeatInterval(repeatInterval), mActiveDuration(activeDuration) {}
79 mRepeatInterval(rhs.mRepeatInterval), mActiveDuration(rhs.mActiveDuration), mOffsetsFromStartTime(rhs.mOffsetsFromStartTime) {}
80
81 typedef std::list<unsigned int> OffsetsList;
82
83 void setRepeatInterval(unsigned int repeatInterval) { mRepeatInterval = repeatInterval; }
84 unsigned int getRepeatInterval() const { return mRepeatInterval; }
85
86 void setActiveDuration(unsigned int activeDuration) { mActiveDuration = activeDuration; }
87 unsigned int getActiveDuration() const { return mActiveDuration; }
88
89 void addOffsetFromStartTime(unsigned int offset) { mOffsetsFromStartTime.push_back(offset); }
90 void clearOffsetsFromStartTime() { mOffsetsFromStartTime.clear(); }
91 const OffsetsList& getOffsetsFromStartTime() const { return mOffsetsFromStartTime; }
92
93 private:
94 unsigned int mRepeatInterval;
95 unsigned int mActiveDuration;
96 OffsetsList mOffsetsFromStartTime;
97 };
98
100 SdpTime(const SdpTime& rhs) : mStartTime(rhs.mStartTime), mStopTime(rhs.mStopTime), mRepeats(rhs.mRepeats) {}
101
102 typedef std::list<SdpTimeRepeat> RepeatsList;
103
104 void setStartTime(uint64_t startTime) { mStartTime = startTime; }
105 uint64_t getStartTime() const { return mStartTime; }
106
107 void setStopTime(uint64_t stopTime) { mStopTime = stopTime; }
108 uint64_t getStopTime() const { return mStopTime; }
109
110 void addRepeat(const SdpTimeRepeat& sdpTimeRepeat) { mRepeats.push_back(sdpTimeRepeat); }
111 void clearRepeats() { mRepeats.clear(); }
112 const RepeatsList& getRepeats() const { return mRepeats; }
113
114 private:
115 uint64_t mStartTime;
116 uint64_t mStopTime;
117 RepeatsList mRepeats;
118 };
119
121 {
122 public:
123 SdpTimeZone(int adjustmentTime, int offset) : mAdjustmentTime(adjustmentTime), mOffset(offset) {}
124 SdpTimeZone(const SdpTimeZone& rhs) : mAdjustmentTime(rhs.mAdjustmentTime), mOffset(rhs.mOffset) {}
125
126 void setAdjustmentTime(int adjustmentTime) { mAdjustmentTime = adjustmentTime; }
127 int getAdjustmentTime() const { return mAdjustmentTime; }
128
129 void setOffset(int offset) { mOffset = offset; }
130 int getOffset() const { return mOffset; }
131
132 private:
133 int mAdjustmentTime;
134 int mOffset;
135 };
136
137 typedef enum
138 {
140 CONFERENCE_TYPE_BROADCAST, // "broadcast" - RFC4566
141 CONFERENCE_TYPE_MODERATED, // "moderated" - RFC4566
142 CONFERENCE_TYPE_TEST, // "test" - RFC4566
143 CONFERENCE_TYPE_H332 // "H332" - RFC4566
145 static const char* SdpConferenceTypeString[];
146
147 typedef enum
148 {
150 GROUP_SEMANTICS_LS, // "LS" - Lip Sync - RFC3388
151 GROUP_SEMANTICS_FID, // "FID" - Flow Identifier - RFC3388
152 GROUP_SEMANTICS_SRF, // "SRF" - Single Reservation Flow - RFC3524
153 GROUP_SEMANTICS_ANAT // "ANAT" - Alternative Network Address Types - RFC4091
155 static const char* SdpGroupSemanticsString[];
156
158 {
159 public:
161 SdpGroup(const SdpGroup& rhs) : mSemantics(rhs.mSemantics), mIdentificationTags(rhs.mIdentificationTags) {}
162
163 typedef std::list<resip::Data> TagsList;
164
166 SdpGroupSemantics getSemantics() const { return mSemantics; }
167 static SdpGroupSemantics getSemanticsFromString(const char * type);
168
169 void addIdentificationTag(const char * identificationTag) { mIdentificationTags.push_back(identificationTag); }
170 void clearIdentificationTags() { mIdentificationTags.clear(); }
171 const TagsList& getIdentificationTags() const { return mIdentificationTags; }
172
173 private:
174 SdpGroupSemantics mSemantics;
175 TagsList mIdentificationTags;
176 };
177
179 {
180 public:
181 SdpFoundation() : mCandidateType(SdpCandidate::CANDIDATE_TYPE_NONE) {}
183 mCandidateType(candidateType), mBaseAddress(baseAddress), mStunAddress(stunAddress) {}
185 mCandidateType(rhs.mCandidateType), mBaseAddress(rhs.mBaseAddress), mStunAddress(rhs.mStunAddress) {}
186
187 bool operator==(const SdpFoundation& rhs) { return mCandidateType == rhs.mCandidateType &&
188 mBaseAddress == rhs.mBaseAddress &&
189 mStunAddress == rhs.mStunAddress; }
190 private:
191 SdpCandidate::SdpCandidateType mCandidateType;
192 resip::Data mBaseAddress;
193 resip::Data mStunAddress;
194 };
195
196 Sdp();
197 Sdp(const Sdp& rSdp);
198 virtual ~Sdp();
199
200 Sdp& operator=(const Sdp& rhs);
201
202 void setSdpVersion(unsigned int sdpVersion) { mSdpVersion = sdpVersion; }
203
205 void setOriginatorUserName(const char* originatorUserName) { mOriginatorUserName = originatorUserName; }
210 void setOriginatorUnicastAddress(const char* originatorUnicastAddress) { mOriginatorUnicastAddress = originatorUnicastAddress; }
211
212 void setSessionName(const char * sessionName) { mSessionName = sessionName; }
213 void setSessionInformation(const char * sessionInformation) { mSessionInformation = sessionInformation; }
214 void setSessionUri(const char * sessionUri) { mSessionUri = sessionUri; }
215
216 void addEmailAddress(const char * emailAddress) { mEmailAddresses.push_back(emailAddress); }
217 void clearEmailAddresses() { mEmailAddresses.clear(); }
218
219 void addPhoneNumber(const char * phoneNumber) { mPhoneNumbers.push_back(phoneNumber); }
220 void clearPhoneNumbers() { mPhoneNumbers.clear(); }
221
223 void addBandwidth(const SdpBandwidth& sdpBandwidth) { mBandwidths.push_back(sdpBandwidth); }
224 void clearBandwidths() { mBandwidths.clear(); }
225
227 void addTime(const SdpTime& time) { mTimes.push_back(time); }
228 void clearTimes() { mTimes.clear(); }
229
231 void addTimeZone(const SdpTimeZone& timeZone) { mTimeZones.push_back(timeZone); }
232 void clearTimeZones() { mTimeZones.clear(); }
233
234 void setCategory(const char * category) { mCategory = category; }
235 void setKeywords(const char * keywords) { mKeywords = keywords; }
236 void setToolNameAndVersion(const char * toolNameAndVersion) { mToolNameAndVersion = toolNameAndVersion; }
238 void setCharSet(const char * charSet) { mCharSet = charSet; }
239 void setIcePassiveOnlyMode(bool icePassiveOnlyMode) { mIcePassiveOnlyMode = icePassiveOnlyMode; }
240
241 void addGroup(const SdpGroup& group) { mGroups.push_back(group); }
242 void clearGroups() { mGroups.clear(); }
243
244 void setSessionLanguage(const char * sessionLanguage) { mSessionLanguage = sessionLanguage; }
245 void setDescriptionLanguage(const char * descriptionLanguage) { mDescriptionLanguage = descriptionLanguage; }
246 void setMaximumPacketRate(double maximumPacketRate) { mMaximumPacketRate = maximumPacketRate; }
247
249 void clearMediaLines();
250
252
253 static SdpAddressType getAddressTypeFromString(const char * type);
254
255 unsigned int getSdpVersion() const { return mSdpVersion; }
256
257 const resip::Data& getOriginatorUserName() const { return mOriginatorUserName; }
258 uint64_t getOriginatorSessionId() const { return mOriginatorSessionId; }
259 uint64_t getOriginatorSessionVersion() const { return mOriginatorSessionVersion; }
260 SdpNetType getOriginatorNetType() const { return mOriginatorNetType; }
261 SdpAddressType getOriginatorAddressType() const { return mOriginatorAddressType; }
262 const resip::Data& getOriginatorUnicastAddress() const { return mOriginatorUnicastAddress; }
263
264 const resip::Data& getSessionName() const { return mSessionName; }
265 const resip::Data& getSessionInformation() const { return mSessionInformation; }
266 const resip::Data& getSessionUri() const { return mSessionUri; }
267
268 typedef std::list<resip::Data> EmailAddressList;
269 typedef std::list<resip::Data> PhoneNumberList;
270 typedef std::list<SdpBandwidth> BandwidthList;
271 typedef std::list<SdpTime> TimeList;
272 typedef std::list<SdpTimeZone> TimeZoneList;
273 typedef std::list<SdpGroup> GroupList;
274 typedef std::list<SdpMediaLine*> MediaLineList;
275
276 const EmailAddressList& getEmailAddresses() const { return mEmailAddresses; }
277 const PhoneNumberList& getPhoneNumbers() const { return mPhoneNumbers; }
278 const BandwidthList& getBandwidths() const { return mBandwidths; }
279 const TimeList& getTimes() const { return mTimes; }
280 const TimeZoneList& getTimeZones() const { return mTimeZones; }
281
282 const resip::Data& getCategory() const { return mCategory; }
283 const resip::Data& getKeywords() const { return mKeywords; }
284 const resip::Data& getToolNameAndVersion() const { return mToolNameAndVersion; }
285 SdpConferenceType getConferenceType() const { return mConferenceType; }
286 static SdpConferenceType getConferenceTypeFromString(const char * type);
287 const resip::Data& getCharSet() const { return mCharSet; }
288 bool isIcePassiveOnlyMode() const { return mIcePassiveOnlyMode; }
289
290 const GroupList& getGroups() const { return mGroups; }
291
292 const resip::Data& getSessionLanguage() const { return mSessionLanguage; }
293 const resip::Data& getDescriptionLanguage() const { return mDescriptionLanguage; }
294 double getMaximumPacketRate() const { return mMaximumPacketRate; }
295
296 const MediaLineList& getMediaLines() const;
298
300
301private:
302 // v=
303 unsigned int mSdpVersion;
304
305 // o=
306 resip::Data mOriginatorUserName;
307 uint64_t mOriginatorSessionId;
308 uint64_t mOriginatorSessionVersion;
309 SdpNetType mOriginatorNetType;
310 SdpAddressType mOriginatorAddressType;
311 resip::Data mOriginatorUnicastAddress;
312
313 // s=
314 resip::Data mSessionName;
315
316 // i=
317 resip::Data mSessionInformation;
318
319 // u=
320 resip::Data mSessionUri;
321
322 // e=
323 EmailAddressList mEmailAddresses;
324
325 // p=
326 PhoneNumberList mPhoneNumbers;
327
328 // c= is only stored in sdpMediaLine
329
330 // b=
331 BandwidthList mBandwidths;
332
333 // t=, r=
334 TimeList mTimes;
335
336 // z=
337 TimeZoneList mTimeZones;
338
339 // k= is only stored in sdpMediaLine
340
341 // a= session level only attributes
342 resip::Data mCategory; // a=cat:<category> - RFC4566
343 resip::Data mKeywords; // a=keywds:<keywords> - RFC4566
344 resip::Data mToolNameAndVersion; // a=tool:<name and version of tool> - RFC4566
345 SdpConferenceType mConferenceType; // a=type:<conference type> - RFC4566
346 resip::Data mCharSet; // a=charset:<character set> - RFC4566
347 bool mIcePassiveOnlyMode; // a=ice-passive - ietf-draft-mmusic-ice-12
348 GroupList mGroups; // a=group:<semantics> <id-tag> ... - RFC3388
349
350 // a= attributes that have meaning when not associated to a particular media line
351 resip::Data mSessionLanguage; // a=lang:<language tag> - RFC4566
352 resip::Data mDescriptionLanguage; // a=sdplang:<language tag> - RFC4566
353 double mMaximumPacketRate; // a=maxprate:<packetrate> in packets/s - RFC3890
354
355 // Media Lines
356 MediaLineList mMediaLines;
357
358 // Foundation Id
359 std::map<resip::Data, SdpFoundation> mFoundationIds;
360
362};
363
365
366} // namespace
367
368#endif
369
370
371/* ====================================================================
372
373 Copyright (c) 2026, SIP Spectrum, Inc. https://www.sipspectrum.com
374 Copyright (c) 2007-2008, Plantronics, Inc.
375 All rights reserved.
376
377 Redistribution and use in source and binary forms, with or without
378 modification, are permitted provided that the following conditions are
379 met:
380
381 1. Redistributions of source code must retain the above copyright
382 notice, this list of conditions and the following disclaimer.
383
384 2. Redistributions in binary form must reproduce the above copyright
385 notice, this list of conditions and the following disclaimer in the
386 documentation and/or other materials provided with the distribution.
387
388 3. Neither the name of Plantronics nor the names of its contributors
389 may be used to endorse or promote products derived from this
390 software without specific prior written permission.
391
392 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
393 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
394 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
395 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
396 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
397 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
398 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
399 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
400 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
401 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
402 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
403
404 ==================================================================== */
Wraps your platform's implementation of hash_map, hash_multimap, and hash_set.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
SdpBandwidth(const SdpBandwidth &rhs)
Definition Sdp.hxx:55
SdpBandwidth(SdpBandwidthType type, unsigned int bandwidth)
Definition Sdp.hxx:54
unsigned int getBandwidth() const
Definition Sdp.hxx:63
SdpBandwidthType getType() const
Definition Sdp.hxx:59
static SdpBandwidthType getTypeFromString(const char *type)
Definition Sdp.cxx:142
void setType(SdpBandwidthType type)
Definition Sdp.hxx:58
void setBandwidth(unsigned int bandwidth)
Definition Sdp.hxx:62
SdpFoundation(SdpCandidate::SdpCandidateType candidateType, const char *baseAddress, const char *stunAddress)
Definition Sdp.hxx:182
SdpFoundation(const SdpFoundation &rhs)
Definition Sdp.hxx:184
bool operator==(const SdpFoundation &rhs)
Definition Sdp.hxx:187
SdpGroup(const SdpGroup &rhs)
Definition Sdp.hxx:161
void addIdentificationTag(const char *identificationTag)
Definition Sdp.hxx:169
const TagsList & getIdentificationTags() const
Definition Sdp.hxx:171
SdpGroup(SdpGroupSemantics semantics)
Definition Sdp.hxx:160
void setSemantics(SdpGroupSemantics semantics)
Definition Sdp.hxx:165
SdpGroupSemantics getSemantics() const
Definition Sdp.hxx:166
std::list< resip::Data > TagsList
Definition Sdp.hxx:163
static SdpGroupSemantics getSemanticsFromString(const char *type)
Definition Sdp.cxx:200
SdpTimeZone(int adjustmentTime, int offset)
Definition Sdp.hxx:123
int getAdjustmentTime() const
Definition Sdp.hxx:127
void setOffset(int offset)
Definition Sdp.hxx:129
void setAdjustmentTime(int adjustmentTime)
Definition Sdp.hxx:126
SdpTimeZone(const SdpTimeZone &rhs)
Definition Sdp.hxx:124
SdpTimeRepeat(unsigned int repeatInterval, unsigned int activeDuration)
Definition Sdp.hxx:76
SdpTimeRepeat(const SdpTimeRepeat &rhs)
Definition Sdp.hxx:78
unsigned int getRepeatInterval() const
Definition Sdp.hxx:84
unsigned int getActiveDuration() const
Definition Sdp.hxx:87
const OffsetsList & getOffsetsFromStartTime() const
Definition Sdp.hxx:91
void addOffsetFromStartTime(unsigned int offset)
Definition Sdp.hxx:89
void setActiveDuration(unsigned int activeDuration)
Definition Sdp.hxx:86
void setRepeatInterval(unsigned int repeatInterval)
Definition Sdp.hxx:83
std::list< unsigned int > OffsetsList
Definition Sdp.hxx:81
uint64_t getStartTime() const
Definition Sdp.hxx:105
SdpTime(const SdpTime &rhs)
Definition Sdp.hxx:100
const RepeatsList & getRepeats() const
Definition Sdp.hxx:112
void setStartTime(uint64_t startTime)
Definition Sdp.hxx:104
void addRepeat(const SdpTimeRepeat &sdpTimeRepeat)
Definition Sdp.hxx:110
uint64_t getStopTime() const
Definition Sdp.hxx:108
void setStopTime(uint64_t stopTime)
Definition Sdp.hxx:107
SdpTime(uint64_t startTime, uint64_t stopTime)
Definition Sdp.hxx:99
std::list< SdpTimeRepeat > RepeatsList
Definition Sdp.hxx:102
void setSessionLanguage(const char *sessionLanguage)
Definition Sdp.hxx:244
const TimeList & getTimes() const
Definition Sdp.hxx:279
void addEmailAddress(const char *emailAddress)
Definition Sdp.hxx:216
const resip::Data & getSessionLanguage() const
Definition Sdp.hxx:292
static const char * SdpBandwidthTypeString[]
Definition Sdp.hxx:49
void addTimeZone(const SdpTimeZone &timeZone)
Definition Sdp.hxx:231
void setOriginatorUnicastAddress(const char *originatorUnicastAddress)
Definition Sdp.hxx:210
void toString(resip::Data &sdpString) const
static const char * SdpConferenceTypeString[]
Definition Sdp.hxx:145
void addTime(const SdpTime &time)
Definition Sdp.hxx:227
std::list< SdpBandwidth > BandwidthList
Definition Sdp.hxx:270
static const char * SdpAddressTypeString[]
Definition Sdp.hxx:38
void setConferenceType(SdpConferenceType conferenceType)
Definition Sdp.hxx:237
const resip::Data & getSessionUri() const
Definition Sdp.hxx:266
virtual ~Sdp()
Definition Sdp.cxx:70
void setMaximumPacketRate(double maximumPacketRate)
Definition Sdp.hxx:246
std::list< SdpGroup > GroupList
Definition Sdp.hxx:273
std::list< resip::Data > PhoneNumberList
Definition Sdp.hxx:269
resip::Data getLocalFoundationId(SdpCandidate::SdpCandidateType candidateType, const char *baseAddress, const char *stunAddress=0)
Definition Sdp.cxx:281
const GroupList & getGroups() const
Definition Sdp.hxx:290
const resip::Data & getSessionName() const
Definition Sdp.hxx:264
@ CONFERENCE_TYPE_BROADCAST
Definition Sdp.hxx:140
@ CONFERENCE_TYPE_MODERATED
Definition Sdp.hxx:141
SdpMediaLine * getMediaLineAtIndex(int indexNumber)
Definition Sdp.cxx:266
static SdpConferenceType getConferenceTypeFromString(const char *type)
Definition Sdp.cxx:173
void clearBandwidths()
Definition Sdp.hxx:224
void setSessionUri(const char *sessionUri)
Definition Sdp.hxx:214
void clearTimes()
Definition Sdp.hxx:228
void addBandwidth(const SdpBandwidth &sdpBandwidth)
Definition Sdp.hxx:223
SdpConferenceType getConferenceType() const
Definition Sdp.hxx:285
const resip::Data & getCategory() const
Definition Sdp.hxx:282
void setSessionName(const char *sessionName)
Definition Sdp.hxx:212
void addTimeZone(int adjustmentTime, int offset)
Definition Sdp.hxx:230
void setOriginatorSessionId(uint64_t originatorSessionId)
Definition Sdp.hxx:206
void setIcePassiveOnlyMode(bool icePassiveOnlyMode)
Definition Sdp.hxx:239
void clearPhoneNumbers()
Definition Sdp.hxx:220
void setToolNameAndVersion(const char *toolNameAndVersion)
Definition Sdp.hxx:236
bool isIcePassiveOnlyMode() const
Definition Sdp.hxx:288
const TimeZoneList & getTimeZones() const
Definition Sdp.hxx:280
void setOriginatorNetType(SdpNetType originatorNetType)
Definition Sdp.hxx:208
SdpNetType getOriginatorNetType() const
Definition Sdp.hxx:260
const resip::Data & getCharSet() const
Definition Sdp.hxx:287
void setCharSet(const char *charSet)
Definition Sdp.hxx:238
static SdpAddressType getAddressTypeFromString(const char *type)
Definition Sdp.cxx:123
std::list< SdpMediaLine * > MediaLineList
Definition Sdp.hxx:274
const PhoneNumberList & getPhoneNumbers() const
Definition Sdp.hxx:277
const resip::Data & getSessionInformation() const
Definition Sdp.hxx:265
void addMediaLine(SdpMediaLine *mediaLine)
Definition Sdp.cxx:243
void setOriginatorAddressType(SdpAddressType originatorAddressType)
Definition Sdp.hxx:209
void addGroup(const SdpGroup &group)
Definition Sdp.hxx:241
void addPhoneNumber(const char *phoneNumber)
Definition Sdp.hxx:219
const resip::Data & getKeywords() const
Definition Sdp.hxx:283
const resip::Data & getOriginatorUnicastAddress() const
Definition Sdp.hxx:262
void setOriginatorUserName(const char *originatorUserName)
Definition Sdp.hxx:205
const resip::Data & getOriginatorUserName() const
Definition Sdp.hxx:257
const MediaLineList & getMediaLines() const
Definition Sdp.cxx:260
void addBandwidth(SdpBandwidthType type, unsigned int bandwidth)
Definition Sdp.hxx:222
void clearMediaLines()
Definition Sdp.cxx:249
Sdp & operator=(const Sdp &rhs)
Definition Sdp.cxx:77
std::list< SdpTime > TimeList
Definition Sdp.hxx:271
std::list< resip::Data > EmailAddressList
Definition Sdp.hxx:268
void setSdpVersion(unsigned int sdpVersion)
Definition Sdp.hxx:202
void setKeywords(const char *keywords)
Definition Sdp.hxx:235
SdpAddressType getOriginatorAddressType() const
Definition Sdp.hxx:261
void setSessionInformation(const char *sessionInformation)
Definition Sdp.hxx:213
friend EncodeStream & operator<<(EncodeStream &strm, const Sdp &)
@ BANDWIDTH_TYPE_TIAS
Definition Sdp.hxx:45
@ BANDWIDTH_TYPE_NONE
Definition Sdp.hxx:42
void addTime(uint64_t startTime, uint64_t stopTime)
Definition Sdp.hxx:226
void clearGroups()
Definition Sdp.hxx:242
static const char * SdpGroupSemanticsString[]
Definition Sdp.hxx:155
void setOriginatorInfo(const char *userName, uint64_t sessionId, uint64_t sessionVersion, SdpNetType netType, SdpAddressType addressType, const char *unicastAddress)
Definition Sdp.cxx:227
const resip::Data & getToolNameAndVersion() const
Definition Sdp.hxx:284
void setDescriptionLanguage(const char *descriptionLanguage)
Definition Sdp.hxx:245
uint64_t getOriginatorSessionVersion() const
Definition Sdp.hxx:259
const BandwidthList & getBandwidths() const
Definition Sdp.hxx:278
void setCategory(const char *category)
Definition Sdp.hxx:234
void clearEmailAddresses()
Definition Sdp.hxx:217
const EmailAddressList & getEmailAddresses() const
Definition Sdp.hxx:276
static const char * SdpNetTypeString[]
Definition Sdp.hxx:30
unsigned int getSdpVersion() const
Definition Sdp.hxx:255
uint64_t getOriginatorSessionId() const
Definition Sdp.hxx:258
std::list< SdpTimeZone > TimeZoneList
Definition Sdp.hxx:272
void clearTimeZones()
Definition Sdp.hxx:232
double getMaximumPacketRate() const
Definition Sdp.hxx:294
const resip::Data & getDescriptionLanguage() const
Definition Sdp.hxx:293
void setOriginatorSessionVersion(uint64_t originatorSessionVersion)
Definition Sdp.hxx:207
This file is used to handle compatibility fixes/tweaks so reSIProcate can function on multiple platfo...
EncodeStream & operator<<(EncodeStream &strm, const Sdp &)
Definition Sdp.cxx:304
#define EncodeStream
unsigned __int64 uint64_t
Definition stdint.h:95
void list()
Definition userAdmin.cxx:66