reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
RemoteIMSessionParticipant.hxx
Go to the documentation of this file.
1#if !defined(RemoteIMSessionParticipant_hxx)
2#define RemoteIMSessionParticipant_hxx
3
4#include <map>
5
7#include "Participant.hxx"
10#include "Participant.hxx"
11
17
18#include <memory>
19
20namespace resip
21{
22class DialogUsageManager;
23class SipMessage;
24}
25
26// Disable warning 4250
27// VS2019 give a 4250 warning:
28// RemoteIMSessionParticipant.hxx(70, 1): warning C4250 : 'recon::RemoteIMSessionParticipant' : inherits 'recon::RemoteParticipant::recon::RemoteParticipant::addToConversation' via dominance
29#if defined(WIN32) && !defined(__GNUC__)
30#pragma warning( disable : 4250 )
31#endif
32
33namespace recon
34{
35class ConversationManager;
36
45class RemoteIMSessionParticipant : public virtual RemoteParticipant, public virtual Participant
46{
47public:
52
56
58
59 // We want to no-op for local holds, since they don't make sense for message sessions
60 virtual void checkHoldCondition() override {}
61 virtual void setLocalHold(bool hold) override {}
63 virtual void hold() override {}
64 virtual void unhold() override {}
65
66 virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp = false) override;
67 virtual void adjustRTPStreams(bool sendingOffer = false) override {} // nothing to do, we don't manage RTP streams
68
69 virtual int getConnectionPortOnBridge() override { return -1; } // doesn't interact with mixing bridge
70 virtual bool hasInput() override { return false; }
71 virtual bool hasOutput() override { return false; }
72
73 virtual void requestKeyframe() override;
74
75protected:
76
78 virtual bool mediaStackPortAvailable() override { return true; } // doesn't use media stack, just return availabiltiy as true
79
80private:
81 virtual void buildSdpAnswer(const resip::SdpContents& offer, CallbackSdpReady sdpReady) override;
82};
83
84}
85
86#endif
87
88
89/* ====================================================================
90
91 Copyright (c) 2022, SIP Spectrum, Inc. http://www.sipspectrum.com
92 All rights reserved.
93
94 Redistribution and use in source and binary forms, with or without
95 modification, are permitted provided that the following conditions are
96 met:
97
98 1. Redistributions of source code must retain the above copyright
99 notice, this list of conditions and the following disclaimer.
100
101 2. Redistributions in binary form must reproduce the above copyright
102 notice, this list of conditions and the following disclaimer in the
103 documentation and/or other materials provided with the distribution.
104
105 3. Neither the name of Plantronics nor the names of its contributors
106 may be used to endorse or promote products derived from this
107 software without specific prior written permission.
108
109 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
110 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
111 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
112 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
113 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
114 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
115 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
116 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
117 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
118 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
119 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
120
121 ==================================================================== */
This class is one of two main classes of concern to an application using the UserAgent library.
This class extends the resip UserProfile to include Conversation Manager specific settings.
This is the base class for a RemoteParticipant, LocalParticipant and a MediaResourceParticipant.
This class is used by Invite DialogSets used for IM Sessions only (m=message SDP).
This class represents an IM Session remote participant.
virtual void notifyIncomingParticipant(const resip::SipMessage &msg, bool autoAnswer, ConversationProfile &conversationProfile) override
virtual void adjustRTPStreams(bool sendingOffer=false) override
virtual void setLocalHold(bool hold) override
virtual RemoteIMSessionParticipantDialogSet & getIMSessionDialogSet()
virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp=false) override
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()
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
Represents a SIP message.
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;
void list()
Definition userAdmin.cxx:66