25 #ifndef OPAL_OPAL_SDPEP_H
26 #define OPAL_OPAL_SDPEP_H
41 class OpalSDPConnection;
42 class OpalSDPHTTPConnection;
51 #define OPAL_OPT_AV_BUNDLE "AV-Bundle"
59 #define OPAL_OPT_USE_MEDIA_STREAMS "Use-Media-Stream"
70 #define OPAL_OPT_MULTI_SSRC "Multi-SSRC"
80 #define OPAL_OPT_INACTIVE_AUDIO_FLOW "Inactive-Audio-Flow"
90 static const PCaselessString & ContentType();
99 const PCaselessString & prefix,
100 Attributes attributes
112 virtual PStringList GetAvailableStringOptions()
const;
119 virtual SDPSessionDescription * CreateSDP(
128 const PTimeInterval & t
129 ) { m_holdTimeout = t; }
130 const PTimeInterval & GetHoldTimeout()
const {
return m_holdTimeout; }
134 PTimeInterval m_holdTimeout;
153 OpalSDPEndPoint & endpoint,
154 const PString & token,
155 unsigned options = 0,
161 ~OpalSDPConnection();
211 SDPSessionDescription & offer,
212 bool offerOpenMediaStreamsOnly =
false
217 bool offerOpenMediaStreamsOnly =
false
222 const SDPSessionDescription & offer,
223 SDPSessionDescription & answer
227 PString AnswerOfferSDP(
228 const PString & offer
232 bool HandleAnswerSDP(
233 const SDPSessionDescription & answer
237 bool HandleAnswerSDP(
238 const PString & answer
242 SDPSessionDescription * CreateSDP(
247 virtual PString GetMediaInterface() = 0;
254 virtual bool OnSendOfferSDP(
255 SDPSessionDescription & sdpOut,
256 bool offerOpenMediaStreamsOnly
258 virtual bool OnSendOfferSDPSession(
260 SDPSessionDescription & sdpOut,
261 bool offerOpenMediaStreamOnly
263 virtual bool OnSendOfferSDPSession(
265 SDPMediaDescription * localMedia,
266 bool offerOpenMediaStreamOnly,
270 virtual bool OnSendAnswerSDP(
271 const SDPSessionDescription & sdpOffer,
272 SDPSessionDescription & sdpAnswer,
273 bool transfer =
false
276 struct BundleMergeInfo;
277 virtual SDPMediaDescription * OnSendAnswerSDPSession(
278 SDPMediaDescription * incomingMedia,
281 SDPMediaDescription::Direction otherSidesDir,
282 BundleMergeInfo & bundleMergeInfo
285 virtual bool OnReceivedAnswerSDP(
286 const SDPSessionDescription & sdp,
287 bool & multipleFormats
290 virtual bool OnReceivedAnswerSDPSession(
291 const SDPMediaDescription * mediaDescription,
293 SDPMediaDescription::Direction otherSidesDir,
294 bool & multipleFormats,
295 BundleMergeInfo & bundleMergeInfo
298 virtual bool OnReceivedSDP(
299 const SDPSessionDescription & sdp
302 virtual void FinaliseRtx(
304 SDPMediaDescription * sdp
307 virtual bool SetRemoteMediaFormats(
310 virtual bool SetActiveMediaFormats(
315 const unsigned rtpSessionId,
317 const SDPMediaDescription & mediaDescription,
319 BundleMergeInfo & bundleMergeInfo
324 virtual bool AllowMusicOnHold()
const;
325 void RetryHoldRemote(
bool placeOnHold);
326 virtual bool OnHoldStateChanged(
bool placeOnHold);
327 virtual void OnMediaStreamOpenFailed(
bool rx);
334 atomic<bool> m_offerPending;
335 time_t m_sdpSessionId;
336 unsigned m_sdpVersion;
337 unsigned m_sdpVersionFromRemote;
347 HoldState m_holdToRemote;
348 bool m_holdFromRemote;
353 #endif // OPAL_OPAL_SDPEP_H
Definition: manager.h:150
virtual bool IsOnHold(bool fromRemote) const
OpalEndPoint & m_endpoint
Definition: connection.h:1961
Definition: connection.h:530
virtual bool HoldRemote(bool placeOnHold)
virtual bool IsNetworkConnection() const =0
Definition: transports.h:151
uint32_t RTP_SyncSourceId
Definition: rtp.h:46
virtual OpalMediaFormatList GetMediaFormats() const