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
6
#include "
ConversationManager.hxx
"
7
#include "
Participant.hxx
"
8
#include "
RemoteParticipant.hxx
"
9
#include "
RemoteIMSessionParticipantDialogSet.hxx
"
10
#include "
Participant.hxx
"
11
12
#include <
resip/dum/AppDialogSet.hxx
>
13
#include <
resip/dum/AppDialog.hxx
>
14
#include <
resip/dum/InviteSessionHandler.hxx
>
15
#include <
resip/dum/DialogSetHandler.hxx
>
16
#include <
resip/dum/SubscriptionHandler.hxx
>
17
18
#include <memory>
19
20
namespace
resip
21
{
22
class
DialogUsageManager;
23
class
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
33
namespace
recon
34
{
35
class
ConversationManager;
36
45
class
RemoteIMSessionParticipant
:
public
virtual
RemoteParticipant
,
public
virtual
Participant
46
{
47
public
:
48
RemoteIMSessionParticipant
(
ParticipantHandle
partHandle
,
// UAC
49
ConversationManager
&
conversationManager
,
50
resip::DialogUsageManager
&
dum
,
51
RemoteParticipantDialogSet
&
remoteParticipantDialogSet
);
52
53
RemoteIMSessionParticipant
(
ConversationManager
&
conversationManager
,
// UAS or forked leg
54
resip::DialogUsageManager
&
dum
,
55
RemoteParticipantDialogSet
&
remoteParticipantDialogSet
);
56
57
virtual
~RemoteIMSessionParticipant
();
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
{}
62
virtual
void
notifyIncomingParticipant
(
const
resip::SipMessage
& msg,
bool
autoAnswer
,
ConversationProfile
&
conversationProfile
)
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
75
protected
:
76
77
virtual
RemoteIMSessionParticipantDialogSet
&
getIMSessionDialogSet
() {
return
dynamic_cast<
RemoteIMSessionParticipantDialogSet
&
>
(
getDialogSet
()); }
78
virtual
bool
mediaStackPortAvailable
()
override
{
return
true
; }
// doesn't use media stack, just return availabiltiy as true
79
80
private
:
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
==================================================================== */
AppDialogSet.hxx
AppDialog.hxx
ConversationManager.hxx
DialogSetHandler.hxx
InviteSessionHandler.hxx
Participant.hxx
RemoteIMSessionParticipantDialogSet.hxx
RemoteParticipant.hxx
SubscriptionHandler.hxx
recon::ConversationManager
This class is one of two main classes of concern to an application using the UserAgent library.
Definition
ConversationManager.hxx:71
recon::ConversationProfile
This class extends the resip UserProfile to include Conversation Manager specific settings.
Definition
ConversationProfile.hxx:24
recon::Participant
This is the base class for a RemoteParticipant, LocalParticipant and a MediaResourceParticipant.
Definition
Participant.hxx:21
recon::RemoteIMSessionParticipantDialogSet
This class is used by Invite DialogSets used for IM Sessions only (m=message SDP).
Definition
RemoteIMSessionParticipantDialogSet.hxx:37
recon::RemoteIMSessionParticipant
This class represents an IM Session remote participant.
Definition
RemoteIMSessionParticipant.hxx:46
recon::RemoteIMSessionParticipant::mediaStackPortAvailable
virtual bool mediaStackPortAvailable() override
Definition
RemoteIMSessionParticipant.hxx:78
recon::RemoteIMSessionParticipant::~RemoteIMSessionParticipant
virtual ~RemoteIMSessionParticipant()
Definition
RemoteIMSessionParticipant.cxx:55
recon::RemoteIMSessionParticipant::notifyIncomingParticipant
virtual void notifyIncomingParticipant(const resip::SipMessage &msg, bool autoAnswer, ConversationProfile &conversationProfile) override
Definition
RemoteIMSessionParticipant.cxx:68
recon::RemoteIMSessionParticipant::hasInput
virtual bool hasInput() override
Definition
RemoteIMSessionParticipant.hxx:70
recon::RemoteIMSessionParticipant::adjustRTPStreams
virtual void adjustRTPStreams(bool sendingOffer=false) override
Definition
RemoteIMSessionParticipant.hxx:67
recon::RemoteIMSessionParticipant::hasOutput
virtual bool hasOutput() override
Definition
RemoteIMSessionParticipant.hxx:71
recon::RemoteIMSessionParticipant::requestKeyframe
virtual void requestKeyframe() override
Definition
RemoteIMSessionParticipant.cxx:174
recon::RemoteIMSessionParticipant::checkHoldCondition
virtual void checkHoldCondition() override
Definition
RemoteIMSessionParticipant.hxx:60
recon::RemoteIMSessionParticipant::hold
virtual void hold() override
Definition
RemoteIMSessionParticipant.hxx:63
recon::RemoteIMSessionParticipant::unhold
virtual void unhold() override
Definition
RemoteIMSessionParticipant.hxx:64
recon::RemoteIMSessionParticipant::setLocalHold
virtual void setLocalHold(bool hold) override
Definition
RemoteIMSessionParticipant.hxx:61
recon::RemoteIMSessionParticipant::getIMSessionDialogSet
virtual RemoteIMSessionParticipantDialogSet & getIMSessionDialogSet()
Definition
RemoteIMSessionParticipant.hxx:77
recon::RemoteIMSessionParticipant::buildSdpOffer
virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp=false) override
Definition
RemoteIMSessionParticipant.cxx:74
recon::RemoteIMSessionParticipant::getConnectionPortOnBridge
virtual int getConnectionPortOnBridge() override
Definition
RemoteIMSessionParticipant.hxx:69
recon::RemoteParticipantDialogSet
This class is used by Invite DialogSets.
Definition
RemoteParticipantDialogSet.hxx:37
recon::RemoteParticipant
This class represent a remote participant.
Definition
RemoteParticipant.hxx:40
recon::RemoteParticipant::CallbackSdpReady
std::function< void(bool sdpOk, std::unique_ptr< resip::SdpContents > sdp)> CallbackSdpReady
Definition
RemoteParticipant.hxx:58
recon::RemoteParticipant::getDialogSet
RemoteParticipantDialogSet & getDialogSet()
Definition
RemoteParticipant.hxx:154
resip::DialogUsageManager
Definition
DialogUsageManager.hxx:79
resip::SdpContents
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
Definition
SdpContents.hxx:59
resip::SipMessage
Represents a SIP message.
Definition
SipMessage.hxx:175
recon
Definition
BridgeMixer.hxx:10
recon::ParticipantHandle
unsigned int ParticipantHandle
Definition
HandleTypes.hxx:8
resip
dcm! – add UnusedChecking(_enum) below;
Definition
AbstractFifo.hxx:16
list
void list()
Definition
userAdmin.cxx:66
resip
recon
RemoteIMSessionParticipant.hxx
Generated by
1.9.8