reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
SipXRemoteParticipant.hxx
Go to the documentation of this file.
1#if !defined(SipXRemoteParticipant_hxx)
2#define SipXRemoteParticipant_hxx
3
4#include <map>
5
7#include "Participant.hxx"
11#include "SipXParticipant.hxx"
12
18
19#include <memory>
20
21namespace resip
22{
23class DialogUsageManager;
24class SipMessage;
25}
26
27namespace sdpcontainer
28{
29class Sdp;
30class SdpMediaLine;
31}
32
33// Disable warning 4250
34// VS2019 give a 4250 warning:
35// SipXRemoteParticipant.hxx(80,1): warning C4250: 'recon::SipXRemoteParticipant': inherits 'recon::RemoteParticipant::recon::RemoteParticipant::addToConversation' via dominance
36#if defined(WIN32) && !defined(__GNUC__)
37#pragma warning( disable : 4250 )
38#endif
39
40namespace recon
41{
42class SipXMediaStackAdapter;
43
52class SipXRemoteParticipant : public virtual RemoteParticipant, public virtual SipXParticipant
53{
54public:
60
62 SipXMediaStackAdapter& sipXMediaStackAdapter, // UAS or forked leg
65
66 virtual ~SipXRemoteParticipant();
67
68 virtual unsigned int getLocalRTPPort();
69 virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp = false) override;
70
71 virtual int getConnectionPortOnBridge() override;
72 virtual bool hasInput() override { return true; }
73 virtual bool hasOutput() override { return true; }
74 virtual int getMediaConnectionId();
75
76 virtual void adjustRTPStreams(bool sendingOffer=false) override;
77
78 virtual void requestKeyframe() override;
79
80protected:
81 virtual bool mediaStackPortAvailable() override;
82
83 // Note: Returns non-null the majority of the time, can return null on object destruction
85
86private:
88 virtual void buildSdpAnswer(const resip::SdpContents& offer, CallbackSdpReady sdpReady) override;
89};
90
91}
92
93#endif
94
95
96/* ====================================================================
97
98 Copyright (c) 2021-2022, SIP Spectrum, Inc. www.sipspectrum.com
99 Copyright (c) 2022, Software Freedom Institute https://softwarefreedom.institute
100 Copyright (c) 2021-2022, Daniel Pocock https://danielpocock.com
101 Copyright (c) 2007-2008, Plantronics, Inc.
102 All rights reserved.
103
104 Redistribution and use in source and binary forms, with or without
105 modification, are permitted provided that the following conditions are
106 met:
107
108 1. Redistributions of source code must retain the above copyright
109 notice, this list of conditions and the following disclaimer.
110
111 2. Redistributions in binary form must reproduce the above copyright
112 notice, this list of conditions and the following disclaimer in the
113 documentation and/or other materials provided with the distribution.
114
115 3. Neither the name of Plantronics nor the names of its contributors
116 may be used to endorse or promote products derived from this
117 software without specific prior written permission.
118
119 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
120 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
121 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
122 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
123 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
124 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
125 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
126 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
127 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
128 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
129 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
130
131 ==================================================================== */
This class is one of two main classes of concern to an application using the UserAgent library.
This class is used by Invite DialogSets.
This class represent a remote participant.
std::function< void(bool sdpOk, std::unique_ptr< resip::SdpContents > sdp)> CallbackSdpReady
RemoteParticipantDialogSet & getDialogSet()
This class is one of two main classes of concern to an application using the UserAgent library.
This is the base class for a SipXRemoteParticipant, SipXLocalParticipant and a SipXMediaResourceParti...
This class is used by Invite DialogSets.
This class represent a remote participant.
virtual void adjustRTPStreams(bool sendingOffer=false) override
virtual SipXRemoteParticipantDialogSet * getSipXDialogSet()
virtual void requestKeyframe() override
virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp=false) override
virtual int getConnectionPortOnBridge() override
virtual bool mediaStackPortAvailable() override
process m= (media announcement) blocks
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;
void list()
Definition userAdmin.cxx:66