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