reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
GstRemoteParticipantDialogSet.hxx
Go to the documentation of this file.
1
#if !defined(GstRemoteParticipantDialogSet_hxx)
2
#define GstRemoteParticipantDialogSet_hxx
3
4
#include <map>
5
#include <list>
6
#include <
resip/dum/AppDialogSet.hxx
>
7
#include <
resip/dum/AppDialog.hxx
>
8
#include <
resip/dum/InviteSessionHandler.hxx
>
9
#include <
resip/dum/DialogSetHandler.hxx
>
10
#include <
resip/dum/SubscriptionHandler.hxx
>
11
12
// FlowManager Includes
13
#include "
rutil/MediaConstants.hxx
"
14
#include "
reTurn/StunTuple.hxx
"
15
16
#include "
GstMediaStackAdapter.hxx
"
17
#include "
ConversationProfile.hxx
"
18
#include "
Participant.hxx
"
19
#include "
RemoteParticipantDialogSet.hxx
"
20
21
namespace
resip
22
{
23
class
DialogUsageManager;
24
class
SipMessage;
25
}
26
27
namespace
recon
28
{
29
class
ConversationManager;
30
class
RemoteParticipant;
31
class
GstRemoteParticipant;
32
39
class
GstRemoteParticipantDialogSet
:
public
RemoteParticipantDialogSet
40
{
41
public
:
42
GstRemoteParticipantDialogSet
(
ConversationManager
&
conversationManager
,
43
GstMediaStackAdapter
&
gstreamerMediaStackAdapter
,
44
ConversationManager::ParticipantForkSelectMode
forkSelectMode
=
ConversationManager::ForkSelectAutomatic
,
45
std::shared_ptr<ConversationProfile>
conversationProfile
=
nullptr
);
46
47
virtual
~GstRemoteParticipantDialogSet
();
48
49
virtual
resip::AppDialog
*
createAppDialog
(
const
resip::SipMessage
& msg);
50
51
virtual
void
setActiveRemoteParticipantHandle
(
ParticipantHandle
handle);
52
53
virtual
void
setPeerExpectsSAVPF
(
bool
value) { mPeerExpectsSAVPF = value; }
54
virtual
bool
peerExpectsSAVPF
() {
return
mPeerExpectsSAVPF; }
55
56
// Media stack stuff
57
virtual
int
getMediaConnectionId
() {
return
mMediaConnectionId; }
58
virtual
int
getConnectionPortOnBridge
();
59
virtual
void
freeMediaResources
();
60
61
void
setActiveDestination
(
const
char
* address,
unsigned
short
rtpPort
,
unsigned
short
rtcpPort
);
62
void
startDtlsClient
(
const
char
* address,
unsigned
short
rtpPort
,
unsigned
short
rtcpPort
);
63
void
setRemoteSDPFingerprint
(
const
resip::Data
&
hashFunction
,
const
resip::Data
& fingerprint);
64
bool
createSRTPSession
(
resip::MediaConstants::SrtpCryptoSuite
cryptoSuite
,
const
char
*
remoteKey
,
size_t
remoteKeyLen
);
65
66
// Media Stream Processing
67
virtual
void
processMediaStreamReadyEvent
(std::shared_ptr<MediaStreamReadyEvent::StreamParams>
streamParams
);
68
69
resip::MediaConstants::SrtpCryptoSuite
getSrtpCryptoSuite
() {
return
mSrtpCryptoSuite; }
70
71
const
resip::Data
&
getLocalSrtpSessionKey
() {
return
mLocalSrtpSessionKey; }
72
73
protected
:
74
virtual
bool
isAsyncMediaSetup
();
75
76
virtual
void
fixUpSdp
(
resip::SdpContents
*
sdp
);
77
78
private
:
79
GstMediaStackAdapter
& mGstMediaStackAdapter;
80
unsigned
int
mLocalRTPPort;
81
bool
mAllocateLocalRTPPortFailed;
82
bool
mPeerExpectsSAVPF;
83
84
// Media Stream stuff
85
reTurn::StunTuple
mRtpTuple;
86
reTurn::StunTuple
mRtcpTuple;
87
88
// Secure Media
89
resip::Data
mLocalSrtpSessionKey;
90
resip::MediaConstants::SrtpCryptoSuite
mSrtpCryptoSuite;
91
92
// sipX media stuff
93
int
mMediaConnectionId;
94
int
mConnectionPortOnBridge;
95
96
virtual
void
onMediaStreamReady(
const
reTurn::StunTuple
&
remoteRtpTuple
,
const
reTurn::StunTuple
&
remoteRtcpTuple
);
97
virtual
void
onMediaStreamError(
unsigned
int
errorCode);
98
};
99
100
}
101
102
#endif
103
104
105
/* ====================================================================
106
107
Copyright (c) 2022, Software Freedom Institute https://softwarefreedom.institute
108
Copyright (c) 2022, Daniel Pocock https://danielpocock.com
109
Copyright (c) 2021-2026, SIP Spectrum, Inc.
110
Copyright (c) 2007-2008, Plantronics, Inc.
111
All rights reserved.
112
113
Redistribution and use in source and binary forms, with or without
114
modification, are permitted provided that the following conditions are
115
met:
116
117
1. Redistributions of source code must retain the above copyright
118
notice, this list of conditions and the following disclaimer.
119
120
2. Redistributions in binary form must reproduce the above copyright
121
notice, this list of conditions and the following disclaimer in the
122
documentation and/or other materials provided with the distribution.
123
124
3. Neither the name of Plantronics nor the names of its contributors
125
may be used to endorse or promote products derived from this
126
software without specific prior written permission.
127
128
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
129
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
130
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
131
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
132
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
133
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
134
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
135
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
136
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
137
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
138
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
139
140
==================================================================== */
AppDialogSet.hxx
AppDialog.hxx
ConversationProfile.hxx
DialogSetHandler.hxx
GstMediaStackAdapter.hxx
InviteSessionHandler.hxx
MediaConstants.hxx
Participant.hxx
RemoteParticipantDialogSet.hxx
StunTuple.hxx
SubscriptionHandler.hxx
reTurn::StunTuple
Definition
StunTuple.hxx:24
recon::ConversationManager
This class is one of two main classes of concern to an application using the UserAgent library.
Definition
ConversationManager.hxx:71
recon::ConversationManager::ParticipantForkSelectMode
ParticipantForkSelectMode
Definition
ConversationManager.hxx:89
recon::ConversationManager::ForkSelectAutomatic
@ ForkSelectAutomatic
Definition
ConversationManager.hxx:97
recon::GstMediaStackAdapter
This class is one of two main classes of concern to an application using the UserAgent library.
Definition
GstMediaStackAdapter.hxx:62
recon::GstRemoteParticipantDialogSet
This class is used by Invite DialogSets.
Definition
GstRemoteParticipantDialogSet.hxx:40
recon::GstRemoteParticipantDialogSet::createAppDialog
virtual resip::AppDialog * createAppDialog(const resip::SipMessage &msg)
Definition
GstRemoteParticipantDialogSet.cxx:162
recon::GstRemoteParticipantDialogSet::getLocalSrtpSessionKey
const resip::Data & getLocalSrtpSessionKey()
Definition
GstRemoteParticipantDialogSet.hxx:71
recon::GstRemoteParticipantDialogSet::setRemoteSDPFingerprint
void setRemoteSDPFingerprint(const resip::Data &hashFunction, const resip::Data &fingerprint)
Definition
GstRemoteParticipantDialogSet.cxx:148
recon::GstRemoteParticipantDialogSet::getMediaConnectionId
virtual int getMediaConnectionId()
Definition
GstRemoteParticipantDialogSet.hxx:57
recon::GstRemoteParticipantDialogSet::fixUpSdp
virtual void fixUpSdp(resip::SdpContents *sdp)
Definition
GstRemoteParticipantDialogSet.cxx:191
recon::GstRemoteParticipantDialogSet::peerExpectsSAVPF
virtual bool peerExpectsSAVPF()
Definition
GstRemoteParticipantDialogSet.hxx:54
recon::GstRemoteParticipantDialogSet::setActiveRemoteParticipantHandle
virtual void setActiveRemoteParticipantHandle(ParticipantHandle handle)
Definition
GstRemoteParticipantDialogSet.cxx:173
recon::GstRemoteParticipantDialogSet::isAsyncMediaSetup
virtual bool isAsyncMediaSetup()
Definition
GstRemoteParticipantDialogSet.cxx:184
recon::GstRemoteParticipantDialogSet::setPeerExpectsSAVPF
virtual void setPeerExpectsSAVPF(bool value)
Definition
GstRemoteParticipantDialogSet.hxx:53
recon::GstRemoteParticipantDialogSet::setActiveDestination
void setActiveDestination(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
Definition
GstRemoteParticipantDialogSet.cxx:136
recon::GstRemoteParticipantDialogSet::processMediaStreamReadyEvent
virtual void processMediaStreamReadyEvent(std::shared_ptr< MediaStreamReadyEvent::StreamParams > streamParams)
Definition
GstRemoteParticipantDialogSet.cxx:64
recon::GstRemoteParticipantDialogSet::createSRTPSession
bool createSRTPSession(resip::MediaConstants::SrtpCryptoSuite cryptoSuite, const char *remoteKey, size_t remoteKeyLen)
Definition
GstRemoteParticipantDialogSet.cxx:154
recon::GstRemoteParticipantDialogSet::freeMediaResources
virtual void freeMediaResources()
Definition
GstRemoteParticipantDialogSet.cxx:123
recon::GstRemoteParticipantDialogSet::~GstRemoteParticipantDialogSet
virtual ~GstRemoteParticipantDialogSet()
Definition
GstRemoteParticipantDialogSet.cxx:57
recon::GstRemoteParticipantDialogSet::startDtlsClient
void startDtlsClient(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
Definition
GstRemoteParticipantDialogSet.cxx:142
recon::GstRemoteParticipantDialogSet::getConnectionPortOnBridge
virtual int getConnectionPortOnBridge()
Definition
GstRemoteParticipantDialogSet.cxx:113
recon::GstRemoteParticipantDialogSet::getSrtpCryptoSuite
resip::MediaConstants::SrtpCryptoSuite getSrtpCryptoSuite()
Definition
GstRemoteParticipantDialogSet.hxx:69
recon::RemoteParticipantDialogSet
This class is used by Invite DialogSets.
Definition
RemoteParticipantDialogSet.hxx:37
resip::AppDialog
Definition
AppDialog.hxx:20
resip::Data
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition
Data.hxx:90
resip::MediaConstants::SrtpCryptoSuite
SrtpCryptoSuite
Definition
MediaConstants.hxx:11
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
GstRemoteParticipantDialogSet.hxx
Generated by
1.9.8