sipXtapi home page


SdpMediaLine.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2007-2013 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 _SdpMediaLine_h_
15 #define _SdpMediaLine_h_
16 
17 // SYSTEM INCLUDES
18 //#include <...>
19 
20 // APPLICATION INCLUDES
21 #include <utl/UtlInt.h>
22 #include <utl/UtlString.h>
23 #include <utl/UtlCopyableSortedList.h>
24 #include <utl/UtlCopyableContainable.h>
25 #include <utl/UtlCopyableSList.h>
26 
27 #include <sdp/Sdp.h>
28 #include <sdp/SdpCodec.h>
29 #include <sdp/SdpCodecList.h>
30 #include <sdp/SdpCandidate.h>
31 #include <sdp/SdpCandidatePair.h>
32 
33 
34 // DEFINES
35 // MACROS
36 // EXTERNAL FUNCTIONS
37 // EXTERNAL VARIABLES
38 // CONSTANTS
39 // STRUCTS
40 // TYPEDEFS
41 // FORWARD DECLARATIONS
42 
43 //: Container for SDP specification
44 // This class holds the information related to an SDP.
45 // Included in this information is: TODO
46 //
47 
48 class SdpMediaLine : public UtlCopyableContainable
49 {
50 /* //////////////////////////// PUBLIC //////////////////////////////////// */
51 public:
52 
53  typedef enum
54  {
55  // WARNING: this enum must stay in synch. with SdpMediaTypeString
57  MEDIA_TYPE_AUDIO, // "audio" - RFC4566
58  MEDIA_TYPE_VIDEO, // "video" - RFC4566
59  MEDIA_TYPE_TEXT, // "text" - RFC4566
60  MEDIA_TYPE_APPLICATION, // "application" - RFC4566
61  MEDIA_TYPE_MESSAGE // "message" - RFC4566
62  } SdpMediaType;
63  static const char* SdpMediaTypeString[];
64 
65  typedef enum
66  {
67  // WARNING: this enum must stay in synch. with SdpTransportProtocolTypeString
69  PROTOCOL_TYPE_UDP, // "udp" - RFC4566
70  PROTOCOL_TYPE_RTP_AVP, // "RTP/AVP" - RFC4566
71  PROTOCOL_TYPE_RTP_SAVP, // "RTP/SAVP" - RFC4566
72  PROTOCOL_TYPE_RTP_SAVPF, // "RTP/SAVPF" - RFC3711
73  PROTOCOL_TYPE_TCP, // "TCP" - RFC4145
74  PROTOCOL_TYPE_TCP_RTP_AVP, // "TCP/RTP/AVP" - RFC4571
75  PROTOCOL_TYPE_TCP_TLS, // "TCP/TLS" - RFC4572
76  PROTOCOL_TYPE_UDP_TLS, // "UDP/TLS" - draft-fischl-mmusic-sdp-dtls-04
77  PROTOCOL_TYPE_DCCP_TLS, // "DCCP/TLS" - draft-fischl-mmusic-sdp-dtls-04
78  PROTOCOL_TYPE_DCCP_TLS_RTP_SAVP, // "DCCP/TLS/RTP/SAVP" - draft-fischl-mmusic-sdp-dtls-04
79  PROTOCOL_TYPE_UDP_TLS_RTP_SAVP, // "UDP/TLS/RTP/SAVP" - draft-fischl-mmusic-sdp-dtls-04
80  PROTOCOL_TYPE_TCP_TLS_RTP_SAVP // "TCP/TLS/RTP/SAVP" - draft-fischl-mmusic-sdp-dtls-04
82  static const char* SdpTransportProtocolTypeString[];
83 
84  class SdpConnection : public UtlCopyableContainable
85  {
86  public:
89  const char * address = 0,
90  unsigned int port = 0,
91  unsigned int multicastIpV4Ttl=0) :
92  mNetType(netType), mAddressType(addressType), mAddress(address), mPort(port), mMulticastIpV4Ttl(multicastIpV4Ttl) {}
95 
96  // Containable requirements
97  UtlContainableType getContainableType() const { static char type[] = "SdpConnection"; return type;}
98  unsigned hash() const { return directHash(); }
99  int compareTo(UtlContainable const *) const { return 0; } // not implemented
100  UtlCopyableContainable* clone() const { return new SdpConnection(*this); }
101 
102  // Accessors
103  void setNetType(Sdp::SdpNetType netType) { mNetType = netType; }
104  Sdp::SdpNetType getNetType() const { return mNetType; }
105  const char* getNetTypeToken() const { return(Sdp::SdpNetTypeString[mNetType]); }
106 
107  void setAddressType(Sdp::SdpAddressType addressType) { mAddressType = addressType; }
110 
111  void setAddress(const char * address) { mAddress = address; }
112  const UtlString& getAddress() const { return mAddress; }
113 
114  void setPort(unsigned int port) { mPort = port; }
115  unsigned int getPort() const { return mPort; }
116 
117  void setMulticastIpV4Ttl(unsigned int multicastIpV4Ttl) { mMulticastIpV4Ttl = multicastIpV4Ttl; }
118  unsigned int getMulticastIpV4Ttl() const { return mMulticastIpV4Ttl; }
119 
120  private:
123  UtlString mAddress;
124  unsigned int mPort;
125  unsigned int mMulticastIpV4Ttl;
126  };
127 
128  typedef enum
129  {
131  ENCRYPTION_METHOD_CLEAR, // "clear" - RFC4566
132  ENCRYPTION_METHOD_BASE64, // "base64" - RFC4566
133  ENCRYPTION_METHOD_URI, // "uri" - RFC4566
134  ENCRYPTION_METHOD_PROMPT // "prompt" - RFC4566
136  static const char* SdpEncryptionMethodString[];
137 
138  typedef enum
139  {
141  DIRECTION_TYPE_SENDRECV, // "sendrecv" - RFC4566
142  DIRECTION_TYPE_SENDONLY, // "sendonly" - RFC4566
143  DIRECTION_TYPE_RECVONLY, // "recvonly" - RFC4566
144  DIRECTION_TYPE_INACTIVE // "inactive" - RFC4566
146  static const char* SdpDirectionTypeString[];
147 
148  typedef enum
149  {
151  ORIENTATION_TYPE_PORTRAIT, // "portrait" - RFC 4566
152  ORIENTATION_TYPE_LANDSCAPE,// "landscape" - RFC 4566
153  ORIENTATION_TYPE_SEASCAPE // "seascape" - RFC 4566
155  static const char* SdpOrientationTypeString[];
156 
157  typedef enum
158  {
160  TCP_SETUP_ATTRIBUTE_ACTIVE, // "active" - RFC4145
161  TCP_SETUP_ATTRIBUTE_PASSIVE, // "passive" - RFC4145
162  TCP_SETUP_ATTRIBUTE_ACTPASS, // "actpass" - RFC4145
163  TCP_SETUP_ATTRIBUTE_HOLDCONN // "holdconn" - RFC4145
165  static const char* SdpTcpSetupAttributeString[];
166 
167  typedef enum
168  {
170  TCP_CONNECTION_ATTRIBUTE_NEW, // "new" - RFC4145
171  TCP_CONNECTION_ATTRIBUTE_EXISTING // "existing" - RFC4145
173  static const char* SdpTcpConnectionAttributeString[];
174 
175  typedef enum
176  {
178  CRYPTO_SUITE_TYPE_AES_CM_128_HMAC_SHA1_80, // "AES_CM_128_HMAC_SHA1_80" - RFC4568
179  CRYPTO_SUITE_TYPE_AES_CM_128_HMAC_SHA1_32, // "AES_CM_128_HMAC_SHA1_32" - RFC4568
180  CRYPTO_SUITE_TYPE_F8_128_HMAC_SHA1_80 // "F8_128_HMAC_SHA1_80" - RFC4568
182  static const char* SdpCryptoSuiteTypeString[];
183 
184  typedef enum
185  {
187  CRYPTO_KEY_METHOD_INLINE // "inline" - RFC4568
189  static const char* SdpCryptoKeyMethodString[];
190 
191  typedef enum
192  {
194  CRYPTO_SRTP_FEC_ORDER_FEC_SRTP, // "FEC_SRTP" - RFC 4568
195  CRYPTO_SRTP_FEC_ORDER_SRTP_FEC // "SRTP_FEC" - RFC 2568
197  static const char* SdpCryptoSrtpFecOrderTypeString[];
198 
199  class SdpCrypto : public UtlCopyableContainable
200  {
201  public:
202  class SdpCryptoKeyParam : public UtlCopyableContainable
203  {
204  public:
205  SdpCryptoKeyParam(SdpCryptoKeyMethod keyMethod=SdpMediaLine::CRYPTO_KEY_METHOD_NONE, const char * keyValue=0, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0) :
206  mKeyMethod(keyMethod), mKeyValue(keyValue), mSrtpLifetime(srtpLifetime), mSrtpMkiValue(srtpMkiValue), mSrtpMkiLength(srtpMkiLength) {}
208  mKeyMethod(rhs.mKeyMethod), mKeyValue(rhs.mKeyValue), mSrtpLifetime(rhs.mSrtpLifetime), mSrtpMkiValue(rhs.mSrtpMkiValue), mSrtpMkiLength(rhs.mSrtpMkiLength) {}
209 
210  // Containable requirements
211  UtlContainableType getContainableType() const { static char type[] = "SdpCryptoKeyParam"; return type;}
212  unsigned hash() const { return directHash(); }
213  int compareTo(UtlContainable const *) const { return 0; } // not implemented
214  UtlCopyableContainable* clone() const { return new SdpCryptoKeyParam(*this); }
215 
216  void setKeyMethod(SdpCryptoKeyMethod keyMethod) { mKeyMethod = keyMethod; }
217  SdpCryptoKeyMethod getKeyMethod() const { return mKeyMethod; }
218 
219  void setKeyValue(const char * keyValue) { mKeyValue = keyValue; }
220  const UtlString& getKeyValue() const { return mKeyValue; }
221 
222  void setSrtpLifetime(unsigned int srtpLifetime) { mSrtpLifetime = srtpLifetime; }
223  unsigned int getSrtpLifetime() const { return mSrtpLifetime; }
224 
225  void setSrtpMkiValue(unsigned int srtpMkiValue) { mSrtpMkiValue = srtpMkiValue; }
226  unsigned int getSrtpMkiValue() const { return mSrtpMkiValue; }
227 
228  void setSrtpMkiLength(unsigned int srtpMkiLength) { mSrtpMkiLength = srtpMkiLength; }
229  unsigned int getSrtpMkiLength() const { return mSrtpMkiLength; }
230 
231  private:
232  SdpCryptoKeyMethod mKeyMethod;
233  UtlString mKeyValue; // srtp key-salt or generic key-info
234  unsigned int mSrtpLifetime;
235  unsigned int mSrtpMkiValue;
236  unsigned int mSrtpMkiLength;
237  };
238 
239  SdpCrypto() : mTag(0), mSuite(SdpMediaLine::CRYPTO_SUITE_TYPE_NONE), mSrtpKdr(0), mEncryptedSrtp(1), mEncryptedSrtcp(1),
240  mAuthenticatedSrtp(1), mSrtpFecOrder(SdpMediaLine::CRYPTO_SRTP_FEC_ORDER_FEC_SRTP), mSrtpWsh(0) {}
241  SdpCrypto(const SdpCrypto& rSdpCandidatePair);
243 
244  // Containable requirements
245  UtlContainableType getContainableType() const { static char type[] = "SdpCrypto"; return type;}
246  unsigned hash() const { return directHash(); }
247  int compareTo(UtlContainable const *) const { return 0; } // not implemented
248  SdpCrypto& operator=(const SdpCrypto& rhs);
249  UtlCopyableContainable* clone() const { return new SdpCrypto(*this); }
250 
251  // Accessors
252  void setTag(unsigned int tag) { mTag = tag; }
253  unsigned int getTag() const { return mTag; }
254 
255  void setSuite(SdpCryptoSuiteType suite) { mSuite = suite; }
256  SdpCryptoSuiteType getSuite() const { return mSuite; }
257 
258  void addCryptoKeyParam(SdpCryptoKeyMethod keyMethod, const char * keyValue, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0)
259  { addCryptoKeyParam(new SdpCryptoKeyParam(keyMethod, keyValue, srtpLifetime, srtpMkiValue, srtpMkiLength)); }
260  void addCryptoKeyParam(SdpCryptoKeyParam* keyParam) { mCryptoKeyParams.insert(keyParam); }
261  void clearCryptoKeyParams() { mCryptoKeyParams.destroyAll(); }
262  const UtlCopyableSList& getCryptoKeyParams() const { return mCryptoKeyParams; }
263 
264  void setSrtpKdr(unsigned int srtpKdr) { mSrtpKdr = srtpKdr; }
265  unsigned int getSrtpKdr() const { return mSrtpKdr; }
266 
267  void setEncryptedSrtp(bool encryptedSrtp) { mEncryptedSrtp = encryptedSrtp; }
268  bool getEncryptedSrtp() const { return mEncryptedSrtp; }
269 
270  void setEncryptedSrtcp(bool encryptedSrtcp) { mEncryptedSrtcp = encryptedSrtcp; }
271  bool getEncryptedSrtcp() const { return mEncryptedSrtcp; }
272 
273  void setAuthenticatedSrtp(bool authenticatedSrtp) { mAuthenticatedSrtp = authenticatedSrtp; }
274  bool getAuthenticatedSrtp() const { return mAuthenticatedSrtp; }
275 
276  void setSrtpFecOrder(SdpCryptoSrtpFecOrderType srtpFecOrder) { mSrtpFecOrder = srtpFecOrder; }
277  SdpCryptoSrtpFecOrderType getSrtpFecOrder() const { return mSrtpFecOrder; }
278  static SdpCryptoSrtpFecOrderType getSrtpFecOrderFromString(const char * order);
279 
280  void setSrtpFecKey(SdpCryptoKeyMethod keyMethod, const char * keyValue, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0)
281  { mSrtpFecKey.setKeyMethod(keyMethod); mSrtpFecKey.setKeyValue(keyValue); mSrtpFecKey.setSrtpLifetime(srtpLifetime);
282  mSrtpFecKey.setSrtpMkiValue(srtpMkiValue); mSrtpFecKey.setSrtpMkiLength(srtpMkiLength); }
283  const SdpCryptoKeyParam& getSrtpFecKey() const { return mSrtpFecKey; }
284 
285  void setSrtpWsh(unsigned int srtpWsh) { mSrtpWsh = srtpWsh; }
286  unsigned int getSrtpWsh() const { return mSrtpWsh; }
287 
288  void addGenericSessionParam(const char * sessionParam) { mGenericSessionParams.insert(new UtlString(sessionParam)); }
289  void clearGenericSessionParams() { mGenericSessionParams.destroyAll(); }
290  const UtlCopyableSList& getGenericSessionParams() const { return mGenericSessionParams; }
291 
292  private:
293  unsigned int mTag;
294  SdpCryptoSuiteType mSuite;
295  UtlCopyableSList mCryptoKeyParams;
296  unsigned int mSrtpKdr;
300  SdpCryptoSrtpFecOrderType mSrtpFecOrder;
302  unsigned int mSrtpWsh;
303  UtlCopyableSList mGenericSessionParams;
304  };
305 
306  typedef enum
307  {
309  FINGERPRINT_HASH_FUNC_SHA_1, // "sha-1" - RFC4572
310  FINGERPRINT_HASH_FUNC_SHA_224, // "sha-224" - RFC4572
311  FINGERPRINT_HASH_FUNC_SHA_256, // "sha-256" - RFC4572
312  FINGERPRINT_HASH_FUNC_SHA_384, // "sha-384" - RFC4572
313  FINGERPRINT_HASH_FUNC_SHA_512, // "sha-512" - RFC4572
314  FINGERPRINT_HASH_FUNC_MD5, // "md5" - RFC4572
315  FINGERPRINT_HASH_FUNC_MD2 // "md2" - RFC4572
317  static const char* SdpFingerPrintHashFuncTypeString[];
318 
319  typedef enum
320  {
322  KEYMANAGEMENT_PROTOCOL_MIKEY // 'mikey' - RFC4567
325 
326  typedef enum
327  {
329  PRECONDITION_TYPE_QOS // "qos" - RFC3312
331  static const char* SdpPreConditionTypeString[];
332 
333  typedef enum
334  {
335  PRECONDITION_STRENGTH_MANDATORY, // "mandatory" - RFC3312
336  PRECONDITION_STRENGTH_OPTIONAL, // "optional" - RFC3312
337  PRECONDITION_STRENGTH_NONE, // "none" - RFC3312
338  PRECONDITION_STRENGTH_FAILURE, // "failure" - RFC3312
339  PRECONDITION_STRENGTH_UNKNWOWN // "unknown" - RFC3312
341  static const char* SdpPreConditionStrengthTypeString[];
342 
343  typedef enum
344  {
346  PRECONDITION_STATUS_E2E, // "e2e" - RFC3312
347  PRECONDITION_STATUS_LOCAL, // "local" - RFC3312
348  PRECONDITION_STATUS_REMOTE, // "remote" - RFC3312
350  static const char* SdpPreConditionStatusTypeString[];
351 
352  typedef enum
353  {
354  PRECONDITION_DIRECTION_NONE, // "none" - RFC3312
355  PRECONDITION_DIRECTION_SEND, // "send" - RFC3312
356  PRECONDITION_DIRECTION_RECV, // "recv" - RFC3312
357  PRECONDITION_DIRECTION_SENDRECV, // "sendrecv" - RFC3312
360 
361  class SdpPreCondition : public UtlCopyableContainable
362  {
363  public:
364  SdpPreCondition(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction) :
365  mType(type), mStatus(status), mDirection(direction) {}
367  mType(rhs.mType), mStatus(rhs.mStatus), mDirection(rhs.mDirection) {}
368 
369  // Containable requirements
370  UtlContainableType getContainableType() const { static char type[] = "SdpPreCondition"; return type;}
371  unsigned hash() const { return directHash(); }
372  int compareTo(UtlContainable const *) const { return 0; } // not implemented
373  UtlCopyableContainable* clone() const { return new SdpPreCondition(*this); }
374 
375  // Accessors
376  void setType(SdpPreConditionType type) { mType = type; }
377  SdpPreConditionType getType() const { return mType; }
378 
379  void setStatus(SdpPreConditionStatusType status) { mStatus = status; }
380  SdpPreConditionStatusType getStatus() const { return mStatus; }
381 
382  void setDirection(SdpPreConditionDirectionType direction) { mDirection = direction; }
383  SdpPreConditionDirectionType getDirection() const { return mDirection; }
384 
385  private:
386  SdpPreConditionType mType;
387  SdpPreConditionStatusType mStatus;
388  SdpPreConditionDirectionType mDirection;
389  };
390 
392  {
393  public:
394  SdpPreConditionDesiredStatus(SdpPreConditionType type, SdpPreConditionStrengthType strength, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction) :
395  SdpPreCondition(type, status, direction), mStrength(strength) {}
397  SdpPreCondition(rhs), mStrength(rhs.mStrength) {}
398 
399  // Containable requirements
400  UtlContainableType getContainableType() const { static char type[] = "SdpPreConditionDesiredStatus"; return type;}
401  UtlCopyableContainable* clone() const { return new SdpPreConditionDesiredStatus(*this); }
402 
403  // Accessors
404  void setStrength(SdpPreConditionStrengthType strength) { mStrength = strength; }
405  SdpPreConditionStrengthType getStrength() const { return mStrength; }
406 
407  private:
408  SdpPreConditionStrengthType mStrength;
409  };
410 
411  class SdpRemoteCandidate : public UtlCopyableContainable
412  {
413  public:
414  SdpRemoteCandidate(unsigned int componentId, const char * connectionAddress, unsigned int port) :
415  mComponentId(componentId), mConnectionAddress(connectionAddress), mPort(port) {}
417  mComponentId(rhs.mComponentId), mConnectionAddress(rhs.mConnectionAddress), mPort(rhs.mPort) {}
418 
419  // Containable requirements
420  UtlContainableType getContainableType() const { static char type[] = "SdpRemoteCandidate"; return type;}
421  unsigned hash() const { return directHash(); }
422  int compareTo(UtlContainable const *) const { return 0; } // not implemented
423  UtlCopyableContainable* clone() const { return new SdpRemoteCandidate(*this); }
424 
425  // Accessors
426  void setComponentId(unsigned int componentId) { mComponentId = componentId; }
427  unsigned int getComponentId() const { return mComponentId; }
428 
429  void setConnectionAddress(const char * connectionAddress) { mConnectionAddress = connectionAddress; }
430  const UtlString& getConnectionAddress() const { return mConnectionAddress; }
431 
432  void setPort(unsigned int port) { mPort = port; }
433  unsigned int getPort() const { return mPort; }
434 
435  private:
436  unsigned int mComponentId;
438  unsigned int mPort;
439  };
440 
441  class SdpTransportProtocolCapabilities : public UtlCopyableContainable
442  {
443  public:
444  SdpTransportProtocolCapabilities(unsigned int id, SdpTransportProtocolType type) :
445  mId(id), mType(type) {}
447  mId(rhs.mId), mType(rhs.mType) {}
448 
449  // Containable requirements
450  UtlContainableType getContainableType() const { static char type[] = "SdpTransportProtocolCapabilities"; return type;}
451  unsigned hash() const { return directHash(); }
452  int compareTo(UtlContainable const *) const { return 0; } // not implemented
453  UtlCopyableContainable* clone() const { return new SdpTransportProtocolCapabilities(*this); }
454 
455  // Accessors
456  void setId(unsigned int id) { mId = id; }
457  const unsigned int getId() const { return mId; }
458 
459  void setType(SdpTransportProtocolType type) { mType = type; }
460  SdpTransportProtocolType getType() const { return mType; }
461 
462  private:
463  unsigned int mId;
464  SdpTransportProtocolType mType;
465  };
466 
467  class SdpPotentialConfiguration : public UtlCopyableContainable
468  {
469  public:
470  class ConfigIdItem : public UtlCopyableContainable
471  {
472  public:
473  ConfigIdItem(unsigned id, bool optional=false) : mId(id), mOptional(optional) {}
474  ConfigIdItem(const ConfigIdItem& rhs) : mId(rhs.mId), mOptional(rhs.mOptional) {}
475 
476  // Containable requirements
477  UtlContainableType getContainableType() const { static char type[] = "ConfigIdItem"; return type;}
478  unsigned hash() const { return directHash(); }
479  int compareTo(UtlContainable const *) const { return 0; } // not implemented
480  UtlCopyableContainable* clone() const { return new ConfigIdItem(*this); }
481 
482  // Accessors
483  void setId(unsigned int id) { mId = id; }
484  const unsigned int getId() const { return mId; }
485 
486  void setOptional(bool optional) { mOptional = optional; }
487  const bool getOptional() const { return mOptional; }
488 
489  private:
490  unsigned int mId;
491  bool mOptional;
492  };
493 
494  SdpPotentialConfiguration(unsigned int id, bool deleteMediaAttributes, bool deleteSessionAttributes, unsigned int transportId) :
495  mId(id), mDeleteMediaAttributes(deleteMediaAttributes), mDeleteSessionAttributes(deleteSessionAttributes), mTransportId(transportId) {}
497  mId(rhs.mId), mDeleteMediaAttributes(rhs.mDeleteMediaAttributes), mDeleteSessionAttributes(rhs.mDeleteSessionAttributes),
498  mTransportId(rhs.mTransportId), mAttributeIdList(rhs.mAttributeIdList) {}
499 
500  // Containable requirements
501  UtlContainableType getContainableType() const { static char type[] = "SdpPotentialConfiguration"; return type;}
502  unsigned hash() const { return directHash(); }
503  int compareTo(UtlContainable const *) const { return 0; } // not implemented
504  UtlCopyableContainable* clone() const { return new SdpPotentialConfiguration(*this); }
505 
506  // Accessors
507  void setId(unsigned int id) { mId = id; }
508  const unsigned int getId() const { return mId; }
509 
510  void setDeleteMediaAttributes(bool deleteMediaAttributes) { mDeleteMediaAttributes = deleteMediaAttributes; }
511  const bool getDeleteMediaAttributes() const { return mDeleteMediaAttributes; }
512 
513  void setDeleteSessionAttributes(bool deleteSessionAttributes) { mDeleteSessionAttributes = deleteSessionAttributes; }
514  const bool getDeleteSessionAttributes() const { return mDeleteSessionAttributes; }
515 
516  void setTransportId(unsigned int transportId) { mTransportId = transportId; }
517  const unsigned int getTransportId() const { return mTransportId; }
518 
519  void addAttributeId(unsigned int id, bool optional) { addAttributeId(new ConfigIdItem(id, optional)); }
520  void addAttributeId(ConfigIdItem* configIdItem) { mAttributeIdList.insert(configIdItem); }
521  void clearAttributeIds() { mAttributeIdList.destroyAll(); }
522  const UtlCopyableSList& getAttributeIds() const { return mAttributeIdList; }
523 
524  private:
525  unsigned int mId;
528  unsigned int mTransportId;
529  UtlCopyableSList mAttributeIdList;
530  };
531 
532 /* ============================ CREATORS ================================== */
533 
534  SdpMediaLine();
535  //:Default constructor
536 
537  SdpMediaLine(const SdpMediaLine& rSdpMediaLine);
538  //:Copy constructor
539 
540  virtual
541  ~SdpMediaLine();
542  //:Destructor
543 
544  UtlCopyableContainable* clone() const { return new SdpMediaLine(*this); }
545 
546 /* ============================ MANIPULATORS ============================== */
547 
548  SdpMediaLine& operator=(const SdpMediaLine& rhs);
549  //:Assignment operator
550 
551  void setMediaType(SdpMediaType mediaType) { mMediaType = mediaType; }
552  void setTransportProtocolType(SdpTransportProtocolType transportProtocolType) { mTransportProtocolType = transportProtocolType; }
553 
554  void addCodec(SdpCodec* codec) { mCodecs.addCodec(*codec); delete codec;}
556  void setCodecs(const SdpCodecList& codecs) { mCodecs.clearCodecs(); mCodecs = codecs; }
557 
558  void setTitle(const char * title) { mTitle = title; }
559 
560  void addConnection(Sdp::SdpNetType netType, Sdp::SdpAddressType addressType, const char * address, unsigned int port, unsigned int multicastIpV4Ttl=0)
561  { addConnection(new SdpConnection(netType, addressType, address, port, multicastIpV4Ttl)); }
562  void addConnection(SdpConnection *connection) { mConnections.insert(connection); }
563  void clearConnections() { mConnections.destroyAll(); }
564 
565  void addRtcpConnection(Sdp::SdpNetType netType, Sdp::SdpAddressType addressType, const char * address, unsigned int port, unsigned int multicastIpV4Ttl=0)
566  { addRtcpConnection(new SdpConnection(netType, addressType, address, port, multicastIpV4Ttl)); }
567  void addRtcpConnection(SdpConnection *connection) { mRtcpConnections.insert(connection); }
568  void clearRtcpConnections() { mRtcpConnections.destroyAll(); }
569 
570  void addBandwidth(Sdp::SdpBandwidthType type, unsigned int bandwidth) { addBandwidth(new Sdp::SdpBandwidth(type, bandwidth)); }
571  void addBandwidth(Sdp::SdpBandwidth* sdpBandwidth) { mBandwidths.insert(sdpBandwidth); }
572  void clearBandwidths() { mBandwidths.destroyAll(); }
573 
574  void setEncryptionKey(SdpEncryptionMethod method, const char * key) { mEncryptionMethod = method; mEncryptionKey = key; }
575  void setDirection(SdpDirectionType direction) { mDirection = direction; }
576  void setPacketTime(unsigned int packetTime) { mPacketTime = packetTime; }
577  void setMaxPacketTime(unsigned int maxPacketTime) { mMaxPacketTime = maxPacketTime; }
578  void setOrientation(SdpOrientationType orientation) { mOrientation = orientation; }
579  void setDescriptionLanguage(const char * descriptionLanguage) { mDescriptionLanguage = descriptionLanguage; }
580  void setLanguage(const char * language) { mLanguage = language; }
581  void setFrameRate(unsigned int frameRate) { mFrameRate = frameRate; }
582  void setQuality(unsigned int quality) { mQuality = quality; }
583 
584  void setTcpSetupAttribute(SdpTcpSetupAttribute tcpSetupAttribute) { mTcpSetupAttribute = tcpSetupAttribute; }
585  void setTcpConnectionAttribute(SdpTcpConnectionAttribute tcpConnectionAttribute) { mTcpConnectionAttribute = tcpConnectionAttribute; }
586 
587 // void addCryptoSettings(unsigned int tag, SdpCryptoSuiteType suite, SdpCryptoKeyMethod keyMethod, const char * keyValue) { addCryptoSettings(new SdpCrypto(tag, suite, keyMethod, keyValue)); }
588  void addCryptoSettings(SdpCrypto* crypto) { mCryptos.insert(crypto); }
589  void clearCryptoSettings() { mCryptos.destroyAll(); }
590 
591  void setFingerPrint(SdpFingerPrintHashFuncType fingerPrintHashFunction, const char * fingerPrint) { mFingerPrintHashFunction = fingerPrintHashFunction; mFingerPrint = fingerPrint; }
592  void setKeyManagementProtocol(SdpKeyManagementProtocolType protocol, const char* data) { mKeyManagementProtocol = protocol; mKeyManagementData = data; }
593 
594  void addPreConditionCurrentStatus(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
595  { addPreConditionCurrentStatus(new SdpPreCondition(type, status, direction)); }
596  void addPreConditionCurrentStatus(SdpPreCondition* preCondition) { mPreConditionCurrentStatus.insert(preCondition); }
598 
599  void addPreConditionConfirmStatus(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
600  { addPreConditionConfirmStatus(new SdpPreCondition(type, status, direction)); }
601  void addPreConditionConfirmStatus(SdpPreCondition* preCondition) { mPreConditionConfirmStatus.insert(preCondition); }
603 
604  void addPreConditionDesiredStatus(SdpPreConditionType type, SdpPreConditionStrengthType strength, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
605  { addPreConditionDesiredStatus(new SdpPreConditionDesiredStatus(type, strength, status, direction)); }
606  void addPreConditionDesiredStatus(SdpPreConditionDesiredStatus* preConditionDesiredStatus) { mPreConditionDesiredStatus.insert(preConditionDesiredStatus); }
608 
609  void setMaximumPacketRate(double maximumPacketRate) { mMaximumPacketRate = maximumPacketRate; }
610  void setLabel(const char * label) { mLabel = label; }
611  void setIdentificationTag(const char * identificationTag) { mIdentificationTag = identificationTag; }
612 
613  void setIceUserFrag(const char * iceUserFrag) { mIceUserFrag = iceUserFrag; }
614  void setIcePassword(const char * icePassword) { mIcePassword = icePassword; }
615 
616  void addRemoteCandidate(unsigned int componentId, const char * connectionAddress, unsigned int port) { addRemoteCandidate(new SdpRemoteCandidate(componentId, connectionAddress, port)); }
617  void addRemoteCandidate(SdpRemoteCandidate* remoteCandidate) { mRemoteCandidates.insert(remoteCandidate); }
618  void clearRemoteCandidates() { mRemoteCandidates.destroyAll(); }
619 
620  // Note: Candidates should be added after m/c line and rtcp information is set, so that the in-use candidate
621  // can be properly tagged and CandidatePresents flag can be properly set
622  void addCandidate(const char * foundation, unsigned int id, SdpCandidate::SdpCandidateTransportType transport, uint64_t priority, const char * connectionAddress,
623  unsigned int port, SdpCandidate::SdpCandidateType candidateType, const char * relatedAddress = 0, unsigned int relatedPort = 0)
624  { addCandidate(new SdpCandidate(foundation, id, transport, priority, connectionAddress, port, candidateType, relatedAddress, relatedPort)); }
625  void addCandidate(SdpCandidate* candidate);
626  void clearCandidates() { mCandidates.destroyAll(); mRtpCandidatePresent = false; mRtcpCandidatePresent = false; }
627 
628  void addCandidatePair(const SdpCandidate& localCandidate, const SdpCandidate& remoteCandidate, SdpCandidatePair::SdpCandidatePairOffererType offerer)
629  { addCandidatePair( new SdpCandidatePair(localCandidate, remoteCandidate, offerer)); }
630  void addCandidatePair(SdpCandidatePair* sdpCandidatePair) { mCandidatePairs.insert(sdpCandidatePair); }
631  void clearCandidatePairs() { mCandidatePairs.destroyAll(); }
632 
633  void addPotentialMediaView(SdpMediaLine* potentialMediaView) { mPotentialMediaViews.insert(potentialMediaView); }
635 
636  void setPotentialMediaViewString(const char *potentialMediaViewString) { mPotentialMediaViewString = potentialMediaViewString; }
637 
638 
639 /* ============================ ACCESSORS ================================= */
640 
641  // Get the SdpMediaType enum for the Mime type of this SdpMediaLine
642  SdpMediaType getMediaType() const { return mMediaType; }
643 
644  // Get SdpMediaType enum for Mime type string
645  static SdpMediaLine::SdpMediaType getMediaTypeFromString(const UtlString& type);
646 
647  // Get Mime type for SdpMediaType
648  static const char* getStringForMediaType(SdpMediaType type);
649 
650  // Get the enum for the media line transport protocol
651  SdpTransportProtocolType getTransportProtocolType() const { return mTransportProtocolType; }
652 
653  // Convert the tranport protocol string token from the m line to enum
654  static SdpTransportProtocolType getTransportProtocolTypeFromString(const UtlString& type);
655 
656  // Get the m line transport protocol string token for the given enum
657  static const char* getStringForTransportProtocolType(SdpTransportProtocolType type);
658 
659  const SdpCodecList* getCodecs() const { return &mCodecs; }
660  const UtlString& getTitle() const { return mTitle; }
661  const UtlCopyableSList& getConnections() const { return mConnections; }
662  const UtlCopyableSList& getRtcpConnections() const { return mRtcpConnections; }
663  const UtlCopyableSList& getBandwidths() const { return mBandwidths; }
664  SdpEncryptionMethod getEncryptionMethod() const { return mEncryptionMethod; }
665  const UtlString& getEncryptionKey() const { return mEncryptionKey; }
666  SdpDirectionType getDirection() const { return mDirection; }
667  unsigned int getPacketTime() const { return mPacketTime; }
668  unsigned int getMaxPacketTime() const { return mMaxPacketTime; }
669  SdpOrientationType getOrientation() const { return mOrientation; }
670  static SdpOrientationType getOrientationTypeFromString(const char * type);
671  const UtlString& getDescriptionLanguage() const { return mDescriptionLanguage; }
672  const UtlString& getLanguage() const { return mLanguage; }
673  unsigned int getFrameRate() const { return mFrameRate; }
674  unsigned int getQuality() const { return mQuality; }
675  SdpTcpSetupAttribute getTcpSetupAttribute() const { return mTcpSetupAttribute; }
676  static SdpTcpSetupAttribute getTcpSetupAttributeFromString(const char * attrib);
677  SdpTcpConnectionAttribute getTcpConnectionAttribute() const { return mTcpConnectionAttribute; }
678  static SdpTcpConnectionAttribute getTcpConnectionAttributeFromString(const char * attrib);
679  const UtlCopyableSList& getCryptos() const { return mCryptos; }
680  static SdpCryptoSuiteType getCryptoSuiteTypeFromString(const char * type);
681  static SdpCryptoKeyMethod getCryptoKeyMethodFromString(const char * type);
682  SdpFingerPrintHashFuncType getFingerPrintHashFunction() const { return mFingerPrintHashFunction; }
683  static SdpFingerPrintHashFuncType getFingerPrintHashFuncTypeFromString(const char * type);
684  const UtlString& getFingerPrint() const { return mFingerPrint; }
685  SdpKeyManagementProtocolType getKeyManagementProtocol() const { return mKeyManagementProtocol; }
686  static SdpKeyManagementProtocolType getKeyManagementProtocolTypeFromString(const char * type);
687  const UtlString& getKeyManagementData() const { return mKeyManagementData; }
688  const UtlCopyableSList& getPreConditionCurrentStatus() const { return mPreConditionCurrentStatus; }
689  const UtlCopyableSList& getPreConditionConfirmStatus() const { return mPreConditionConfirmStatus; }
690  const UtlCopyableSList& getPreConditionDesiredStatus() const { return mPreConditionDesiredStatus; }
691  static SdpPreConditionType getPreConditionTypeFromString(const char * type);
692  static SdpPreConditionStatusType getPreConditionStatusTypeFromString(const char * type);
693  static SdpPreConditionDirectionType getPreConditionDirectionTypeFromString(const char * type);
694  static SdpPreConditionStrengthType getPreConditionStrengthTypeFromString(const char * type);
695  double getMaximumPacketRate() const { return mMaximumPacketRate; }
696  const UtlString& getLabel() const { return mLabel; }
697  const UtlString& getIdentificationTag() const { return mIdentificationTag; }
698  const UtlString& getIceUserFrag() const { return mIceUserFrag; }
699  const UtlString& getIcePassword() const { return mIcePassword; }
700  const UtlCopyableSList& getRemoteCandidates() const { return mRemoteCandidates; }
701  const UtlCopyableSortedList& getCandidates() const { return mCandidates; }
702 
703  const UtlCopyableSortedList& getCandidatePairs() const { return mCandidatePairs; }
704  UtlCopyableSortedList& getCandidatePairs() { return mCandidatePairs; } // non-const version for manipulation
705 
706  const UtlCopyableSList& getPotentialMediaViews() const { return mPotentialMediaViews; }
707  const UtlString& getPotentialMediaViewString() const { return mPotentialMediaViewString; }
708 
709  void setControlTrackId(const UtlString& trackId) {mControlTrackId = trackId; }
710  const char* getControlTrackId() { return(mControlTrackId); }
711 
712  // UtlContainable stuff
713  virtual UtlContainableType getContainableType() const { static char type[] = "SdpMediaLine"; return type;}
714  virtual unsigned hash() const { return directHash(); }
715  virtual int compareTo(UtlContainable const *) const { return 0; } // not implemented
716 
717  void toString(UtlString& sdpMediaLineString) const;
718 
719 /* ============================ INQUIRY =================================== */
720  const bool isRtcpEnabled() const { return mRtcpConnections.entries() > 0; }
721  const bool isRtpCandidatePresent() const { return mRtpCandidatePresent; }
722  const bool isRtcpCandidatePresent() const { return mRtcpCandidatePresent; }
723  const bool isIceSupported() const { return mRtpCandidatePresent && (!isRtcpEnabled() || mRtcpCandidatePresent); }
724 
725 /* //////////////////////////// PROTECTED ///////////////////////////////// */
726 protected:
727 
728 /* //////////////////////////// PRIVATE /////////////////////////////////// */
729 private:
730  // m= Note: port is stored in each connection
731  SdpMediaType mMediaType;
732  SdpTransportProtocolType mTransportProtocolType;
734 
735  // i=
736  UtlString mTitle;
737 
738  // c=
739  UtlCopyableSList mConnections; // includes port from m- line
740  UtlCopyableSList mRtcpConnections; // a=rtcp <port> [<nettype> <addrtype> <connection addr>] - RFC3605
741 
742  // b=
743  UtlCopyableSList mBandwidths;
744 
745  // k=
746  SdpEncryptionMethod mEncryptionMethod;
747  UtlString mEncryptionKey;
748 
749  // a= media level attributes (including defaults copied from session level attributes)
750  SdpDirectionType mDirection; // a=sendrecv, a=sendonly, a=recvonly, a=inactive - RFC4566
751  unsigned int mPacketTime; // a=ptime:<packet time> in ms - RFC4566
752  unsigned int mMaxPacketTime; // a=maxptime:<maximum packet time> in ms - RFC4566
753  SdpOrientationType mOrientation; // a=orient:<orientation> - RFC4566
754  UtlString mDescriptionLanguage; // a=sdplang:<language tag> - RFC4566
755  UtlString mLanguage; // a=lang:<language tag> - RFC4566
756  unsigned int mFrameRate; // a=framerate:<frame rate> in video frames/sec - RFC4566
757  unsigned int mQuality; // a=quality:<quality> 0-10 for vidoe (0 is worst, 10 is best) - RFC4566
758  UtlString mControlTrackId; // a=control:trackId=<trackId>
759 
760  SdpTcpSetupAttribute mTcpSetupAttribute;// a=setup:<setup attribute> - RFC4145
761  SdpTcpConnectionAttribute mTcpConnectionAttribute; // a=connection:<conn attribute> - RFC4145
762 
763  UtlCopyableSList mCryptos; // a=crypto:<tag> <crypto-suite> <key method>:<keyvalud> [<session-params>] - RFC4568
764 
765  SdpFingerPrintHashFuncType mFingerPrintHashFunction; // a=fingerprint:<hash func> <fingerprint> - RFC4572
766  UtlString mFingerPrint;
767 
768  SdpKeyManagementProtocolType mKeyManagementProtocol; // a=key-mgmt:<protocol id> <key mgmt data> - RFC4567
770 
771  UtlCopyableSList mPreConditionCurrentStatus; // a=curr:<pre cond type> <status type> <direction tag> - RFC3312
772  UtlCopyableSList mPreConditionConfirmStatus; // a=conf:<pre cond type> <status type> <direction tag> - RFC3312 - are multiple allowed?
773  UtlCopyableSList mPreConditionDesiredStatus; // a=des:<pre cond type> <strength tag> <status type> <direction tag> - RFC3312
774 
775  double mMaximumPacketRate; // a=maxprate:<packetrate> in packets/s - RFC3890
776  UtlString mLabel; // a=label:<label> - RFC4574
777  UtlString mIdentificationTag; // a=mid:<id tag> - RFC3388
778 
779  // Ice settings
780  UtlString mIceUserFrag; // a=ice-ufrag:<ufrag> (min 4 characters) - draft-ietf-mmusic-ice-12
781  UtlString mIcePassword; // a=ice-pwd:<password> (min 22 characters) - draft-ietf-mmusic-ice-12
782  UtlCopyableSList mRemoteCandidates; // a=remote-candidates:<component id> <connection address> <port> ... - draft-ietf-mmusic-ice-12
783  UtlCopyableSortedList mCandidates; // a=candidate:<foundation> <component id> <transport> <qvalue> <connection address>
784  // <port> [<candidate type>] [<relay addr>] [<relay port>]
785  // [<ext attrib name> <ext attrib value>] - draft-ietf-mmusic-ice-12
788  UtlCopyableSortedList mCandidatePairs;
789 
790  // SDP Capabilities Negotiation
791  UtlCopyableSList mPotentialMediaViews; // List of Potential Media Configurations
792  UtlString mPotentialMediaViewString; // string that would be used in a=acfg attribute of an answer using this potential view
793 };
794 
795 /* ============================ INLINE METHODS ============================ */
796 
797 #endif // _SdpMediaLine_h_
static SdpMediaLine::SdpMediaType getMediaTypeFromString(const UtlString &type)
Definition: SdpMediaLine.cpp:604
UtlCopyableSortedList mCandidates
Definition: SdpMediaLine.h:783
Definition: SdpMediaLine.h:411
Definition: SdpMediaLine.h:313
bool getAuthenticatedSrtp() const
Definition: SdpMediaLine.h:274
unsigned int getMaxPacketTime() const
Definition: SdpMediaLine.h:668
ConfigIdItem(const ConfigIdItem &rhs)
Definition: SdpMediaLine.h:474
Definition: SdpMediaLine.h:142
static SdpPreConditionStatusType getPreConditionStatusTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:883
Definition: SdpMediaLine.h:169
SdpEncryptionMethod mEncryptionMethod
Definition: SdpMediaLine.h:746
static const char * SdpEncryptionMethodString[]
Definition: SdpMediaLine.h:136
void setPotentialMediaViewString(const char *potentialMediaViewString)
Definition: SdpMediaLine.h:636
void setDirection(SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:382
SdpKeyManagementProtocolType getKeyManagementProtocol() const
Definition: SdpMediaLine.h:685
Definition: SdpMediaLine.h:322
UtlString mIceUserFrag
Definition: SdpMediaLine.h:780
SdpPreConditionStatusType
Definition: SdpMediaLine.h:343
SdpMediaType mMediaType
Definition: SdpMediaLine.h:731
SdpRemoteCandidate(unsigned int componentId, const char *connectionAddress, unsigned int port)
Definition: SdpMediaLine.h:414
void addRtcpConnection(Sdp::SdpNetType netType, Sdp::SdpAddressType addressType, const char *address, unsigned int port, unsigned int multicastIpV4Ttl=0)
Definition: SdpMediaLine.h:565
const UtlCopyableSList & getPreConditionDesiredStatus() const
Definition: SdpMediaLine.h:690
void clearCandidates()
Definition: SdpMediaLine.h:626
void setCodecs(const SdpCodecList &codecs)
Definition: SdpMediaLine.h:556
unsigned hash() const
Definition: SdpMediaLine.h:212
unsigned int getMulticastIpV4Ttl() const
Definition: SdpMediaLine.h:118
bool mDeleteMediaAttributes
Definition: SdpMediaLine.h:526
UtlString mIdentificationTag
Definition: SdpMediaLine.h:777
void setFingerPrint(SdpFingerPrintHashFuncType fingerPrintHashFunction, const char *fingerPrint)
Definition: SdpMediaLine.h:591
~SdpCrypto()
Definition: SdpMediaLine.h:242
unsigned int mMulticastIpV4Ttl
Definition: SdpMediaLine.h:125
unsigned int getPacketTime() const
Definition: SdpMediaLine.h:667
unsigned int mPort
Definition: SdpMediaLine.h:438
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:373
SdpOrientationType getOrientation() const
Definition: SdpMediaLine.h:669
static const char * SdpPreConditionDirectionTypeString[]
Definition: SdpMediaLine.h:359
void setTcpConnectionAttribute(SdpTcpConnectionAttribute tcpConnectionAttribute)
Definition: SdpMediaLine.h:585
unsigned int mPort
Definition: SdpMediaLine.h:124
void setPort(unsigned int port)
Definition: SdpMediaLine.h:114
void setKeyManagementProtocol(SdpKeyManagementProtocolType protocol, const char *data)
Definition: SdpMediaLine.h:592
void clearRemoteCandidates()
Definition: SdpMediaLine.h:618
void addPreConditionCurrentStatus(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:594
double mMaximumPacketRate
Definition: SdpMediaLine.h:775
void setTransportProtocolType(SdpTransportProtocolType transportProtocolType)
Definition: SdpMediaLine.h:552
Definition: SdpMediaLine.h:151
UtlCopyableSList mRemoteCandidates
Definition: SdpMediaLine.h:782
const SdpCodecList * getCodecs() const
Definition: SdpMediaLine.h:659
void addPotentialMediaView(SdpMediaLine *potentialMediaView)
Definition: SdpMediaLine.h:633
SdpTransportProtocolType getType() const
Definition: SdpMediaLine.h:460
SdpDirectionType getDirection() const
Definition: SdpMediaLine.h:666
void setStrength(SdpPreConditionStrengthType strength)
Definition: SdpMediaLine.h:404
void clearCryptoSettings()
Definition: SdpMediaLine.h:589
Definition: SdpMediaLine.h:354
UtlString mEncryptionKey
Definition: SdpMediaLine.h:747
void addConnection(SdpConnection *connection)
Definition: SdpMediaLine.h:562
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:245
SdpCrypto()
Definition: SdpMediaLine.h:239
unsigned hash() const
Definition: SdpMediaLine.h:421
Definition: SdpMediaLine.h:315
static const char * getStringForMediaType(SdpMediaType type)
Definition: SdpMediaLine.cpp:621
Definition: SdpMediaLine.h:314
void setSrtpWsh(unsigned int srtpWsh)
Definition: SdpMediaLine.h:285
static const char * SdpTransportProtocolTypeString[]
Definition: SdpMediaLine.h:82
virtual unsigned hash() const
Definition: SdpMediaLine.h:714
Definition: SdpMediaLine.h:84
List of codecs, used for storing supported codecs and for codec negotiation.
Definition: SdpCodecList.h:32
void clearRtcpConnections()
Definition: SdpMediaLine.h:568
static SdpOrientationType getOrientationTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:689
unsigned int getSrtpWsh() const
Definition: SdpMediaLine.h:286
unsigned int mTransportId
Definition: SdpMediaLine.h:528
Definition: SdpMediaLine.h:467
const UtlString & getPotentialMediaViewString() const
Definition: SdpMediaLine.h:707
Definition: SdpMediaLine.h:312
Definition: SdpMediaLine.h:195
SdpOrientationType
Definition: SdpMediaLine.h:148
const UtlString & getKeyValue() const
Definition: SdpMediaLine.h:220
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:422
const UtlString & getIcePassword() const
Definition: SdpMediaLine.h:699
Definition: SdpMediaLine.h:77
double getMaximumPacketRate() const
Definition: SdpMediaLine.h:695
void setIdentificationTag(const char *identificationTag)
Definition: SdpMediaLine.h:611
SdpRemoteCandidate(const SdpRemoteCandidate &rhs)
Definition: SdpMediaLine.h:416
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:453
void setControlTrackId(const UtlString &trackId)
Definition: SdpMediaLine.h:709
const UtlString & getLanguage() const
Definition: SdpMediaLine.h:672
SdpCryptoKeyMethod
Definition: SdpMediaLine.h:184
void setLabel(const char *label)
Definition: SdpMediaLine.h:610
void addPreConditionConfirmStatus(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:599
void clearCodecs(void)
Clear the list.
Definition: SdpCodecList.cpp:425
bool mRtcpCandidatePresent
Definition: SdpMediaLine.h:787
Definition: SdpMediaLine.h:159
const UtlCopyableSortedList & getCandidates() const
Definition: SdpMediaLine.h:701
Definition: SdpMediaLine.h:163
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:504
UtlString mControlTrackId
Definition: SdpMediaLine.h:758
static const char * SdpPreConditionStrengthTypeString[]
Definition: SdpMediaLine.h:341
Container for SDP/RTP codec specification.
Definition: SdpCodec.h:123
static const char * SdpPreConditionStatusTypeString[]
Definition: SdpMediaLine.h:350
unsigned int mPacketTime
Definition: SdpMediaLine.h:751
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:477
bool mEncryptedSrtcp
Definition: SdpMediaLine.h:298
Definition: SdpMediaLine.h:72
SdpCryptoSrtpFecOrderType mSrtpFecOrder
Definition: SdpMediaLine.h:300
unsigned int mSrtpMkiLength
Definition: SdpMediaLine.h:236
unsigned int getSrtpMkiLength() const
Definition: SdpMediaLine.h:229
void setSrtpFecOrder(SdpCryptoSrtpFecOrderType srtpFecOrder)
Definition: SdpMediaLine.h:276
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:213
void setTransportId(unsigned int transportId)
Definition: SdpMediaLine.h:516
Definition: SdpMediaLine.h:339
const bool getDeleteMediaAttributes() const
Definition: SdpMediaLine.h:511
UtlCopyableSortedList mCandidatePairs
Definition: SdpMediaLine.h:788
Definition: SdpMediaLine.h:73
void toString(UtlString &sdpMediaLineString) const
Definition: SdpMediaLine.cpp:325
Definition: SdpMediaLine.h:328
const UtlCopyableSList & getConnections() const
Definition: SdpMediaLine.h:661
unsigned int getFrameRate() const
Definition: SdpMediaLine.h:673
bool getEncryptedSrtcp() const
Definition: SdpMediaLine.h:271
void setConnectionAddress(const char *connectionAddress)
Definition: SdpMediaLine.h:429
SdpCandidateTransportType
Definition: SdpCandidate.h:42
void addBandwidth(Sdp::SdpBandwidth *sdpBandwidth)
Definition: SdpMediaLine.h:571
const UtlString & getAddress() const
Definition: SdpMediaLine.h:112
unsigned int getComponentId() const
Definition: SdpMediaLine.h:427
SdpKeyManagementProtocolType mKeyManagementProtocol
Definition: SdpMediaLine.h:768
void addAttributeId(unsigned int id, bool optional)
Definition: SdpMediaLine.h:519
unsigned int mComponentId
Definition: SdpMediaLine.h:436
void clearCryptoKeyParams()
Definition: SdpMediaLine.h:261
void setSrtpMkiLength(unsigned int srtpMkiLength)
Definition: SdpMediaLine.h:228
SdpCryptoKeyParam mSrtpFecKey
Definition: SdpMediaLine.h:301
static SdpCryptoSuiteType getCryptoSuiteTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:758
const UtlCopyableSList & getPreConditionConfirmStatus() const
Definition: SdpMediaLine.h:689
static const char * SdpTcpConnectionAttributeString[]
Definition: SdpMediaLine.h:173
virtual ~SdpMediaLine()
Definition: SdpMediaLine.cpp:229
SdpOrientationType mOrientation
Definition: SdpMediaLine.h:753
const bool isIceSupported() const
Definition: SdpMediaLine.h:723
void setMulticastIpV4Ttl(unsigned int multicastIpV4Ttl)
Definition: SdpMediaLine.h:117
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:214
Definition: SdpMediaLine.h:187
UtlCopyableSList mRtcpConnections
Definition: SdpMediaLine.h:740
Definition: SdpMediaLine.h:48
SdpPreCondition(const SdpPreCondition &rhs)
Definition: SdpMediaLine.h:366
Definition: SdpMediaLine.h:170
Definition: SdpMediaLine.h:133
unsigned int mSrtpLifetime
Definition: SdpMediaLine.h:234
static const char * SdpFingerPrintHashFuncTypeString[]
Definition: SdpMediaLine.h:317
Definition: SdpMediaLine.h:391
SdpFingerPrintHashFuncType mFingerPrintHashFunction
Definition: SdpMediaLine.h:765
UtlString mKeyValue
Definition: SdpMediaLine.h:233
unsigned int mSrtpKdr
Definition: SdpMediaLine.h:296
unsigned int getTag() const
Definition: SdpMediaLine.h:253
void setMaximumPacketRate(double maximumPacketRate)
Definition: SdpMediaLine.h:609
UtlString mIcePassword
Definition: SdpMediaLine.h:781
void setEncryptedSrtp(bool encryptedSrtp)
Definition: SdpMediaLine.h:267
Definition: SdpMediaLine.h:361
void clearPreConditionCurrentStatus()
Definition: SdpMediaLine.h:597
SdpCodecList mCodecs
Definition: SdpMediaLine.h:733
const unsigned int getId() const
Definition: SdpMediaLine.h:508
void clearBandwidths()
Definition: SdpMediaLine.h:572
void clearPreConditionConfirmStatus()
Definition: SdpMediaLine.h:602
void setDirection(SdpDirectionType direction)
Definition: SdpMediaLine.h:575
Definition: SdpMediaLine.h:346
const char * getAddressTypeToken() const
Definition: SdpMediaLine.h:109
void setId(unsigned int id)
Definition: SdpMediaLine.h:483
void setFrameRate(unsigned int frameRate)
Definition: SdpMediaLine.h:581
Definition: SdpMediaLine.h:56
void addCodec(SdpCodec *codec)
Definition: SdpMediaLine.h:554
const UtlCopyableSList & getPreConditionCurrentStatus() const
Definition: SdpMediaLine.h:688
Definition: SdpMediaLine.h:152
static const char * SdpNetTypeString[]
Definition: Sdp.h:58
bool mOptional
Definition: SdpMediaLine.h:491
SdpTransportProtocolType mTransportProtocolType
Definition: SdpMediaLine.h:732
void addPreConditionDesiredStatus(SdpPreConditionDesiredStatus *preConditionDesiredStatus)
Definition: SdpMediaLine.h:606
static const char * SdpCryptoSuiteTypeString[]
Definition: SdpMediaLine.h:182
Sdp::SdpNetType getNetType() const
Definition: SdpMediaLine.h:104
void setKeyMethod(SdpCryptoKeyMethod keyMethod)
Definition: SdpMediaLine.h:216
void setDeleteSessionAttributes(bool deleteSessionAttributes)
Definition: SdpMediaLine.h:513
void addRemoteCandidate(unsigned int componentId, const char *connectionAddress, unsigned int port)
Definition: SdpMediaLine.h:616
SdpTransportProtocolType
Definition: SdpMediaLine.h:65
void clearCandidatePairs()
Definition: SdpMediaLine.h:631
Definition: SdpMediaLine.h:162
SdpCryptoSuiteType mSuite
Definition: SdpMediaLine.h:294
const unsigned int getTransportId() const
Definition: SdpMediaLine.h:517
SdpDirectionType
Definition: SdpMediaLine.h:138
UtlCopyableSList mPreConditionDesiredStatus
Definition: SdpMediaLine.h:773
void setSrtpFecKey(SdpCryptoKeyMethod keyMethod, const char *keyValue, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0)
Definition: SdpMediaLine.h:280
static SdpPreConditionDirectionType getPreConditionDirectionTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:906
const UtlCopyableSList & getPotentialMediaViews() const
Definition: SdpMediaLine.h:706
Definition: SdpMediaLine.h:348
void setType(SdpPreConditionType type)
Definition: SdpMediaLine.h:376
UtlString mPotentialMediaViewString
Definition: SdpMediaLine.h:792
SdpEncryptionMethod getEncryptionMethod() const
Definition: SdpMediaLine.h:664
const UtlString & getTitle() const
Definition: SdpMediaLine.h:660
unsigned hash() const
Definition: SdpMediaLine.h:451
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:452
bool mDeleteSessionAttributes
Definition: SdpMediaLine.h:527
static SdpPreConditionType getPreConditionTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:868
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:97
const UtlString & getIdentificationTag() const
Definition: SdpMediaLine.h:697
Definition: SdpMediaLine.h:202
virtual UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:713
unsigned int getSrtpKdr() const
Definition: SdpMediaLine.h:265
SdpDirectionType mDirection
Definition: SdpMediaLine.h:750
SdpTcpSetupAttribute
Definition: SdpMediaLine.h:157
SdpConnection(Sdp::SdpNetType netType=Sdp::NET_TYPE_NONE, Sdp::SdpAddressType addressType=Sdp::ADDRESS_TYPE_NONE, const char *address=0, unsigned int port=0, unsigned int multicastIpV4Ttl=0)
Definition: SdpMediaLine.h:87
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:501
static SdpCryptoKeyMethod getCryptoKeyMethodFromString(const char *type)
Definition: SdpMediaLine.cpp:781
void setTag(unsigned int tag)
Definition: SdpMediaLine.h:252
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:420
static SdpTcpConnectionAttribute getTcpConnectionAttributeFromString(const char *attrib)
Definition: SdpMediaLine.cpp:739
void setSrtpLifetime(unsigned int srtpLifetime)
Definition: SdpMediaLine.h:222
void setEncryptedSrtcp(bool encryptedSrtcp)
Definition: SdpMediaLine.h:270
Definition: SdpMediaLine.h:59
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:479
SdpTcpConnectionAttribute
Definition: SdpMediaLine.h:167
Definition: Sdp.h:55
void setOrientation(SdpOrientationType orientation)
Definition: SdpMediaLine.h:578
SdpPreConditionDirectionType getDirection() const
Definition: SdpMediaLine.h:383
UtlCopyableSList mCryptos
Definition: SdpMediaLine.h:763
const char * getControlTrackId()
Definition: SdpMediaLine.h:710
Definition: SdpMediaLine.h:153
Definition: SdpMediaLine.h:140
Definition: SdpMediaLine.h:132
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:423
void setEncryptionKey(SdpEncryptionMethod method, const char *key)
Definition: SdpMediaLine.h:574
Definition: SdpMediaLine.h:70
void setComponentId(unsigned int componentId)
Definition: SdpMediaLine.h:426
virtual int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:715
Definition: SdpCandidate.h:37
Definition: SdpMediaLine.h:69
bool mRtpCandidatePresent
Definition: SdpMediaLine.h:786
void setDeleteMediaAttributes(bool deleteMediaAttributes)
Definition: SdpMediaLine.h:510
SdpCandidatePairOffererType
Definition: SdpCandidatePair.h:56
void addPreConditionConfirmStatus(SdpPreCondition *preCondition)
Definition: SdpMediaLine.h:601
Definition: SdpMediaLine.h:141
void setDescriptionLanguage(const char *descriptionLanguage)
Definition: SdpMediaLine.h:579
SdpCandidateType
Definition: SdpCandidate.h:56
Definition: SdpMediaLine.h:338
SdpTransportProtocolCapabilities(unsigned int id, SdpTransportProtocolType type)
Definition: SdpMediaLine.h:444
UtlCopyableSList mCryptoKeyParams
Definition: SdpMediaLine.h:295
unsigned int getQuality() const
Definition: SdpMediaLine.h:674
SdpCryptoKeyMethod getKeyMethod() const
Definition: SdpMediaLine.h:217
SdpCryptoKeyParam(SdpCryptoKeyMethod keyMethod=SdpMediaLine::CRYPTO_KEY_METHOD_NONE, const char *keyValue=0, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0)
Definition: SdpMediaLine.h:205
SdpPreConditionStatusType getStatus() const
Definition: SdpMediaLine.h:380
SdpCryptoSuiteType getSuite() const
Definition: SdpMediaLine.h:256
UtlString mAddress
Definition: SdpMediaLine.h:123
SdpPotentialConfiguration(const SdpPotentialConfiguration &rhs)
Definition: SdpMediaLine.h:496
void clearGenericSessionParams()
Definition: SdpMediaLine.h:289
const UtlCopyableSList & getCryptos() const
Definition: SdpMediaLine.h:679
void setType(SdpTransportProtocolType type)
Definition: SdpMediaLine.h:459
const UtlCopyableSList & getAttributeIds() const
Definition: SdpMediaLine.h:522
static SdpTcpSetupAttribute getTcpSetupAttributeFromString(const char *attrib)
Definition: SdpMediaLine.cpp:712
SdpKeyManagementProtocolType
Definition: SdpMediaLine.h:319
void setMaxPacketTime(unsigned int maxPacketTime)
Definition: SdpMediaLine.h:577
const UtlCopyableSList & getCryptoKeyParams() const
Definition: SdpMediaLine.h:262
unsigned hash() const
Definition: SdpMediaLine.h:371
Definition: SdpMediaLine.h:130
UtlCopyableSList mBandwidths
Definition: SdpMediaLine.h:743
void setTcpSetupAttribute(SdpTcpSetupAttribute tcpSetupAttribute)
Definition: SdpMediaLine.h:584
static const char * SdpTcpSetupAttributeString[]
Definition: SdpMediaLine.h:165
Definition: SdpCandidatePair.h:41
SdpPreConditionDirectionType mDirection
Definition: SdpMediaLine.h:388
SdpTcpConnectionAttribute mTcpConnectionAttribute
Definition: SdpMediaLine.h:761
void setMediaType(SdpMediaType mediaType)
Definition: SdpMediaLine.h:551
SdpPreConditionStatusType mStatus
Definition: SdpMediaLine.h:387
static const char * SdpAddressTypeString[]
Definition: Sdp.h:67
SdpPreConditionStrengthType getStrength() const
Definition: SdpMediaLine.h:405
Definition: SdpMediaLine.h:68
Definition: SdpMediaLine.h:134
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:370
const bool getDeleteSessionAttributes() const
Definition: SdpMediaLine.h:514
UtlString mDescriptionLanguage
Definition: SdpMediaLine.h:754
const SdpCryptoKeyParam & getSrtpFecKey() const
Definition: SdpMediaLine.h:283
ConfigIdItem(unsigned id, bool optional=false)
Definition: SdpMediaLine.h:473
static const char * SdpMediaTypeString[]
Definition: SdpMediaLine.h:63
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:100
const UtlString & getFingerPrint() const
Definition: SdpMediaLine.h:684
void clearAttributeIds()
Definition: SdpMediaLine.h:521
const UtlCopyableSList & getRtcpConnections() const
Definition: SdpMediaLine.h:662
static const char * SdpDirectionTypeString[]
Definition: SdpMediaLine.h:146
void addCandidate(const char *foundation, unsigned int id, SdpCandidate::SdpCandidateTransportType transport, uint64_t priority, const char *connectionAddress, unsigned int port, SdpCandidate::SdpCandidateType candidateType, const char *relatedAddress=0, unsigned int relatedPort=0)
Definition: SdpMediaLine.h:622
SdpPreCondition(SdpPreConditionType type, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:364
SdpTcpSetupAttribute mTcpSetupAttribute
Definition: SdpMediaLine.h:760
SdpConnection(const SdpConnection &rhs)
Definition: SdpMediaLine.h:93
SdpFingerPrintHashFuncType getFingerPrintHashFunction() const
Definition: SdpMediaLine.h:682
void setSuite(SdpCryptoSuiteType suite)
Definition: SdpMediaLine.h:255
Definition: SdpMediaLine.h:74
Definition: SdpMediaLine.h:347
SdpTcpSetupAttribute getTcpSetupAttribute() const
Definition: SdpMediaLine.h:675
unsigned int mId
Definition: SdpMediaLine.h:490
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:480
const UtlString & getDescriptionLanguage() const
Definition: SdpMediaLine.h:671
const unsigned int getId() const
Definition: SdpMediaLine.h:484
static SdpTransportProtocolType getTransportProtocolTypeFromString(const UtlString &type)
Definition: SdpMediaLine.cpp:627
unsigned int getPort() const
Definition: SdpMediaLine.h:115
const UtlCopyableSList & getBandwidths() const
Definition: SdpMediaLine.h:663
UtlString mKeyManagementData
Definition: SdpMediaLine.h:769
UtlString mTitle
Definition: SdpMediaLine.h:736
void addRemoteCandidate(SdpRemoteCandidate *remoteCandidate)
Definition: SdpMediaLine.h:617
void clearPotentialMediaViews()
Definition: SdpMediaLine.h:634
const UtlString & getConnectionAddress() const
Definition: SdpMediaLine.h:430
Definition: SdpMediaLine.h:336
void setIcePassword(const char *icePassword)
Definition: SdpMediaLine.h:614
SdpAddressType
Definition: Sdp.h:60
SdpCryptoKeyMethod mKeyMethod
Definition: SdpMediaLine.h:232
unsigned int getPort() const
Definition: SdpMediaLine.h:433
unsigned hash() const
Definition: SdpMediaLine.h:502
unsigned int mFrameRate
Definition: SdpMediaLine.h:756
Definition: SdpMediaLine.h:329
Sdp::SdpAddressType getAddressType() const
Definition: SdpMediaLine.h:108
const char * getNetTypeToken() const
Definition: SdpMediaLine.h:105
const UtlString & getLabel() const
Definition: SdpMediaLine.h:696
UtlString mLabel
Definition: SdpMediaLine.h:776
Definition: SdpMediaLine.h:143
unsigned int getSrtpMkiValue() const
Definition: SdpMediaLine.h:226
UtlString mConnectionAddress
Definition: SdpMediaLine.h:437
SdpPreConditionType
Definition: SdpMediaLine.h:326
Definition: Sdp.h:80
void setStatus(SdpPreConditionStatusType status)
Definition: SdpMediaLine.h:379
const UtlCopyableSList & getGenericSessionParams() const
Definition: SdpMediaLine.h:290
UtlCopyableSList mConnections
Definition: SdpMediaLine.h:739
Definition: SdpMediaLine.h:310
UtlCopyableSList mPreConditionCurrentStatus
Definition: SdpMediaLine.h:771
unsigned hash() const
Definition: SdpMediaLine.h:478
bool mAuthenticatedSrtp
Definition: SdpMediaLine.h:299
SdpMediaType
Definition: SdpMediaLine.h:53
void clearConnections()
Definition: SdpMediaLine.h:563
void addRtcpConnection(SdpConnection *connection)
Definition: SdpMediaLine.h:567
SdpMediaLine & operator=(const SdpMediaLine &rhs)
Definition: SdpMediaLine.cpp:239
void setIceUserFrag(const char *iceUserFrag)
Definition: SdpMediaLine.h:613
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:544
SdpPotentialConfiguration(unsigned int id, bool deleteMediaAttributes, bool deleteSessionAttributes, unsigned int transportId)
Definition: SdpMediaLine.h:494
Definition: SdpMediaLine.h:337
void setOptional(bool optional)
Definition: SdpMediaLine.h:486
void addCryptoKeyParam(SdpCryptoKeyMethod keyMethod, const char *keyValue, unsigned int srtpLifetime=0, unsigned int srtpMkiValue=0, unsigned int srtpMkiLength=0)
Definition: SdpMediaLine.h:258
Definition: SdpMediaLine.h:199
const bool isRtpCandidatePresent() const
Definition: SdpMediaLine.h:721
void setSrtpKdr(unsigned int srtpKdr)
Definition: SdpMediaLine.h:264
Definition: SdpMediaLine.h:71
Definition: SdpMediaLine.h:150
Definition: SdpMediaLine.h:345
const unsigned int getId() const
Definition: SdpMediaLine.h:457
SdpCryptoKeyParam(const SdpCryptoKeyParam &rhs)
Definition: SdpMediaLine.h:207
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:372
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:401
void setAuthenticatedSrtp(bool authenticatedSrtp)
Definition: SdpMediaLine.h:273
SdpPreConditionDesiredStatus(SdpPreConditionType type, SdpPreConditionStrengthType strength, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:394
SdpCryptoSrtpFecOrderType
Definition: SdpMediaLine.h:191
SdpTransportProtocolType mType
Definition: SdpMediaLine.h:464
UtlCopyableSList mPotentialMediaViews
Definition: SdpMediaLine.h:791
const bool getOptional() const
Definition: SdpMediaLine.h:487
void setSrtpMkiValue(unsigned int srtpMkiValue)
Definition: SdpMediaLine.h:225
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:99
UtlCopyableContainable * clone() const
Definition: SdpMediaLine.h:249
Definition: SdpMediaLine.h:160
SdpCryptoSrtpFecOrderType getSrtpFecOrder() const
Definition: SdpMediaLine.h:277
SdpPreConditionStrengthType mStrength
Definition: SdpMediaLine.h:408
unsigned int mId
Definition: SdpMediaLine.h:525
Definition: SdpMediaLine.h:76
SdpPreConditionType getType() const
Definition: SdpMediaLine.h:377
Sdp::SdpNetType mNetType
Definition: SdpMediaLine.h:121
UtlString mFingerPrint
Definition: SdpMediaLine.h:766
SdpBandwidthType
Definition: Sdp.h:69
SdpTransportProtocolType getTransportProtocolType() const
Definition: SdpMediaLine.h:651
Definition: SdpMediaLine.h:335
unsigned int mMaxPacketTime
Definition: SdpMediaLine.h:752
const UtlCopyableSortedList & getCandidatePairs() const
Definition: SdpMediaLine.h:703
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:503
void clearCodecs()
Definition: SdpMediaLine.h:555
void setPort(unsigned int port)
Definition: SdpMediaLine.h:432
Definition: SdpMediaLine.h:75
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:450
void addCodec(const SdpCodec &newCodec)
Add a new codec type to the list of known codecs.
Definition: SdpCodecList.cpp:87
void addCryptoSettings(SdpCrypto *crypto)
Definition: SdpMediaLine.h:588
void setId(unsigned int id)
Definition: SdpMediaLine.h:456
Definition: SdpMediaLine.h:186
const UtlString & getKeyManagementData() const
Definition: SdpMediaLine.h:687
void addPreConditionCurrentStatus(SdpPreCondition *preCondition)
Definition: SdpMediaLine.h:596
UtlCopyableSList mAttributeIdList
Definition: SdpMediaLine.h:529
void addPreConditionDesiredStatus(SdpPreConditionType type, SdpPreConditionStrengthType strength, SdpPreConditionStatusType status, SdpPreConditionDirectionType direction)
Definition: SdpMediaLine.h:604
void setAddressType(Sdp::SdpAddressType addressType)
Definition: SdpMediaLine.h:107
void setTitle(const char *title)
Definition: SdpMediaLine.h:558
void clearPreConditionDesiredStatus()
Definition: SdpMediaLine.h:607
void setQuality(unsigned int quality)
Definition: SdpMediaLine.h:582
UtlString mLanguage
Definition: SdpMediaLine.h:755
const bool isRtcpCandidatePresent() const
Definition: SdpMediaLine.h:722
static const char * SdpKeyManagementProtocolTypeString[]
Definition: SdpMediaLine.h:324
void addBandwidth(Sdp::SdpBandwidthType type, unsigned int bandwidth)
Definition: SdpMediaLine.h:570
static const char * SdpCryptoKeyMethodString[]
Definition: SdpMediaLine.h:189
SdpNetType
Definition: Sdp.h:52
static const char * getStringForTransportProtocolType(SdpTransportProtocolType type)
Definition: SdpMediaLine.cpp:683
int compareTo(UtlContainable const *) const
Definition: SdpMediaLine.h:247
Definition: SdpMediaLine.h:177
unsigned int getSrtpLifetime() const
Definition: SdpMediaLine.h:223
bool mEncryptedSrtp
Definition: SdpMediaLine.h:297
unsigned int mId
Definition: SdpMediaLine.h:463
SdpMediaType getMediaType() const
Definition: SdpMediaLine.h:642
Definition: Sdp.h:63
Definition: SdpMediaLine.h:144
SdpTcpConnectionAttribute getTcpConnectionAttribute() const
Definition: SdpMediaLine.h:677
SdpEncryptionMethod
Definition: SdpMediaLine.h:128
Definition: SdpMediaLine.h:309
Definition: SdpMediaLine.h:161
void setId(unsigned int id)
Definition: SdpMediaLine.h:507
unsigned int mSrtpWsh
Definition: SdpMediaLine.h:302
UtlCopyableSortedList & getCandidatePairs()
Definition: SdpMediaLine.h:704
Definition: SdpMediaLine.h:131
UtlCopyableSList mGenericSessionParams
Definition: SdpMediaLine.h:303
const UtlCopyableSList & getRemoteCandidates() const
Definition: SdpMediaLine.h:700
SdpPreConditionDesiredStatus(const SdpPreConditionDesiredStatus &rhs)
Definition: SdpMediaLine.h:396
static SdpFingerPrintHashFuncType getFingerPrintHashFuncTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:814
void setAddress(const char *address)
Definition: SdpMediaLine.h:111
SdpCryptoSuiteType
Definition: SdpMediaLine.h:175
bool getEncryptedSrtp() const
Definition: SdpMediaLine.h:268
Definition: SdpMediaLine.h:355
const UtlString & getIceUserFrag() const
Definition: SdpMediaLine.h:698
void addGenericSessionParam(const char *sessionParam)
Definition: SdpMediaLine.h:288
SdpPreConditionStrengthType
Definition: SdpMediaLine.h:333
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:211
void setPacketTime(unsigned int packetTime)
Definition: SdpMediaLine.h:576
static SdpKeyManagementProtocolType getKeyManagementProtocolTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:853
Definition: SdpMediaLine.h:60
UtlContainableType getContainableType() const
Definition: SdpMediaLine.h:400
void setLanguage(const char *language)
Definition: SdpMediaLine.h:580
unsigned hash() const
Definition: SdpMediaLine.h:98
Definition: SdpMediaLine.h:194
UtlCopyableSList mPreConditionConfirmStatus
Definition: SdpMediaLine.h:772
void addAttributeId(ConfigIdItem *configIdItem)
Definition: SdpMediaLine.h:520
Definition: SdpMediaLine.h:356
void setKeyValue(const char *keyValue)
Definition: SdpMediaLine.h:219
void addCryptoKeyParam(SdpCryptoKeyParam *keyParam)
Definition: SdpMediaLine.h:260
SdpTransportProtocolCapabilities(const SdpTransportProtocolCapabilities &rhs)
Definition: SdpMediaLine.h:446
SdpPreConditionDirectionType
Definition: SdpMediaLine.h:352
void addCandidatePair(SdpCandidatePair *sdpCandidatePair)
Definition: SdpMediaLine.h:630
unsigned hash() const
Definition: SdpMediaLine.h:246
unsigned int mSrtpMkiValue
Definition: SdpMediaLine.h:235
void addCandidatePair(const SdpCandidate &localCandidate, const SdpCandidate &remoteCandidate, SdpCandidatePair::SdpCandidatePairOffererType offerer)
Definition: SdpMediaLine.h:628
static const char * SdpPreConditionTypeString[]
Definition: SdpMediaLine.h:331
Definition: SdpMediaLine.h:308
Definition: SdpMediaLine.h:61
unsigned int mQuality
Definition: SdpMediaLine.h:757
Definition: SdpMediaLine.h:357
static SdpPreConditionStrengthType getPreConditionStrengthTypeFromString(const char *type)
Definition: SdpMediaLine.cpp:929
void addConnection(Sdp::SdpNetType netType, Sdp::SdpAddressType addressType, const char *address, unsigned int port, unsigned int multicastIpV4Ttl=0)
Definition: SdpMediaLine.h:560
static const char * SdpOrientationTypeString[]
Definition: SdpMediaLine.h:155
Definition: SdpMediaLine.h:321
SdpPreConditionType mType
Definition: SdpMediaLine.h:386
SdpMediaLine()
Definition: SdpMediaLine.cpp:202
void setNetType(Sdp::SdpNetType netType)
Definition: SdpMediaLine.h:103
static const char * SdpCryptoSrtpFecOrderTypeString[]
Definition: SdpMediaLine.h:197
SdpFingerPrintHashFuncType
Definition: SdpMediaLine.h:306
Definition: SdpMediaLine.h:58
unsigned int mTag
Definition: SdpMediaLine.h:293
Sdp::SdpAddressType mAddressType
Definition: SdpMediaLine.h:122
const UtlString & getEncryptionKey() const
Definition: SdpMediaLine.h:665
const bool isRtcpEnabled() const
Definition: SdpMediaLine.h:720
Definition: SdpMediaLine.h:193
Definition: SdpMediaLine.h:311
Definition: SdpMediaLine.h:57