reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
SipXRemoteParticipantDialogSet.hxx
Go to the documentation of this file.
1
#if !defined(SipXRemoteParticipantDialogSet_hxx)
2
#define SipXRemoteParticipantDialogSet_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
#include "
SipXMediaStackAdapter.hxx
"
13
#include "
ConversationProfile.hxx
"
14
#include "
Participant.hxx
"
15
#include "
RemoteParticipantDialogSet.hxx
"
16
17
namespace
resip
18
{
19
class
DialogUsageManager;
20
class
SipMessage;
21
}
22
23
namespace
recon
24
{
25
class
ConversationManager;
26
class
RemoteParticipant;
27
class
SipXRemoteParticipant;
28
class
FlowManagerSipXSocket;
29
38
class
SipXRemoteParticipantDialogSet
:
public
RemoteParticipantDialogSet
,
private
flowmanager::MediaStreamHandler
39
{
40
public
:
41
SipXRemoteParticipantDialogSet
(
ConversationManager
&
conversationManager
,
42
SipXMediaStackAdapter
&
sipXMediaStackAdapter
,
43
ConversationManager::ParticipantForkSelectMode
forkSelectMode
=
ConversationManager::ForkSelectAutomatic
,
44
std::shared_ptr<ConversationProfile>
conversationProfile
=
nullptr
);
45
46
virtual
~SipXRemoteParticipantDialogSet
();
47
48
virtual
resip::AppDialog
*
createAppDialog
(
const
resip::SipMessage
& msg);
49
virtual
unsigned
int
getLocalRTPPort
();
50
51
virtual
void
setActiveRemoteParticipantHandle
(
ParticipantHandle
handle);
52
53
virtual
void
setPeerExpectsSAVPF
(
bool
value) { mPeerExpectsSAVPF = value; }
54
virtual
bool
peerExpectsSAVPF
() {
return
mPeerExpectsSAVPF; }
55
56
// sipX Media 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
unsigned
int
allocateRTPPort();
80
81
SipXMediaStackAdapter
& mSipXMediaStackAdapter;
82
unsigned
int
mLocalRTPPort;
83
bool
mAllocateLocalRTPPortFailed;
84
std::shared_ptr<flowmanager::FlowContext> mFlowContext;
85
bool
mPeerExpectsSAVPF;
86
87
// Media Stream stuff
88
flowmanager::MediaStream::NatTraversalMode
mNatTraversalMode;
89
flowmanager::MediaStream
* mMediaStream;
90
reTurn::StunTuple
mRtpTuple;
91
reTurn::StunTuple
mRtcpTuple;
92
FlowManagerSipXSocket
* mRtpSocket;
93
FlowManagerSipXSocket
* mRtcpSocket;
94
95
// Secure Media
96
resip::Data
mLocalSrtpSessionKey;
97
resip::MediaConstants::SrtpCryptoSuite
mSrtpCryptoSuite;
98
99
// sipX media stuff
100
virtual
std::shared_ptr<SipXMediaInterface> getMediaInterface();
101
std::shared_ptr<SipXMediaInterface> mMediaInterface;
102
int
mMediaConnectionId;
103
int
mConnectionPortOnBridge;
104
105
virtual
void
onMediaStreamReady(
const
StunTuple
&
remoteRtpTuple
,
const
StunTuple
&
remoteRtcpTuple
);
106
virtual
void
onMediaStreamError(
unsigned
int
errorCode);
107
};
108
109
}
110
111
#endif
112
113
114
/* ====================================================================
115
116
Copyright (c) 2021-2026, SIP Spectrum, Inc. https://www.sipspectrum.com
117
Copyright (c) 2021, Daniel Pocock https://danielpocock.com
118
Copyright (c) 2007-2008, Plantronics, Inc.
119
All rights reserved.
120
121
Redistribution and use in source and binary forms, with or without
122
modification, are permitted provided that the following conditions are
123
met:
124
125
1. Redistributions of source code must retain the above copyright
126
notice, this list of conditions and the following disclaimer.
127
128
2. Redistributions in binary form must reproduce the above copyright
129
notice, this list of conditions and the following disclaimer in the
130
documentation and/or other materials provided with the distribution.
131
132
3. Neither the name of Plantronics nor the names of its contributors
133
may be used to endorse or promote products derived from this
134
software without specific prior written permission.
135
136
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
137
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
138
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
139
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
140
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
141
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
142
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
143
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
144
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
145
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
146
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
147
148
==================================================================== */
AppDialogSet.hxx
AppDialog.hxx
ConversationProfile.hxx
DialogSetHandler.hxx
InviteSessionHandler.hxx
Participant.hxx
RemoteParticipantDialogSet.hxx
SipXMediaStackAdapter.hxx
SubscriptionHandler.hxx
flowmanager::MediaStreamHandler
Definition
MediaStream.hxx:38
flowmanager::MediaStream
This class represents a media stream, that consists of a series of componenets or flows.
Definition
MediaStream.hxx:58
flowmanager::MediaStream::NatTraversalMode
NatTraversalMode
Definition
MediaStream.hxx:61
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::FlowManagerSipXSocket
Definition
FlowManagerSipXSocket.hxx:19
recon::RemoteParticipantDialogSet
This class is used by Invite DialogSets.
Definition
RemoteParticipantDialogSet.hxx:37
recon::SipXMediaStackAdapter
This class is one of two main classes of concern to an application using the UserAgent library.
Definition
SipXMediaStackAdapter.hxx:65
recon::SipXRemoteParticipantDialogSet
This class is used by Invite DialogSets.
Definition
SipXRemoteParticipantDialogSet.hxx:39
recon::SipXRemoteParticipantDialogSet::getSrtpCryptoSuite
resip::MediaConstants::SrtpCryptoSuite getSrtpCryptoSuite()
Definition
SipXRemoteParticipantDialogSet.hxx:69
recon::SipXRemoteParticipantDialogSet::getLocalRTPPort
virtual unsigned int getLocalRTPPort()
Definition
SipXRemoteParticipantDialogSet.cxx:94
recon::SipXRemoteParticipantDialogSet::peerExpectsSAVPF
virtual bool peerExpectsSAVPF()
Definition
SipXRemoteParticipantDialogSet.hxx:54
recon::SipXRemoteParticipantDialogSet::getMediaConnectionId
virtual int getMediaConnectionId()
Definition
SipXRemoteParticipantDialogSet.hxx:57
recon::SipXRemoteParticipantDialogSet::setRemoteSDPFingerprint
void setRemoteSDPFingerprint(const resip::Data &hashFunction, const resip::Data &fingerprint)
Definition
SipXRemoteParticipantDialogSet.cxx:403
recon::SipXRemoteParticipantDialogSet::setActiveDestination
void setActiveDestination(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
Definition
SipXRemoteParticipantDialogSet.cxx:356
recon::SipXRemoteParticipantDialogSet::createAppDialog
virtual resip::AppDialog * createAppDialog(const resip::SipMessage &msg)
Definition
SipXRemoteParticipantDialogSet.cxx:429
recon::SipXRemoteParticipantDialogSet::setPeerExpectsSAVPF
virtual void setPeerExpectsSAVPF(bool value)
Definition
SipXRemoteParticipantDialogSet.hxx:53
recon::SipXRemoteParticipantDialogSet::isAsyncMediaSetup
virtual bool isAsyncMediaSetup()
Definition
SipXRemoteParticipantDialogSet.cxx:451
recon::SipXRemoteParticipantDialogSet::getConnectionPortOnBridge
virtual int getConnectionPortOnBridge()
Definition
SipXRemoteParticipantDialogSet.cxx:310
recon::SipXRemoteParticipantDialogSet::getLocalSrtpSessionKey
const resip::Data & getLocalSrtpSessionKey()
Definition
SipXRemoteParticipantDialogSet.hxx:71
recon::SipXRemoteParticipantDialogSet::createSRTPSession
bool createSRTPSession(resip::MediaConstants::SrtpCryptoSuite cryptoSuite, const char *remoteKey, size_t remoteKeyLen)
Definition
SipXRemoteParticipantDialogSet.cxx:416
recon::SipXRemoteParticipantDialogSet::freeMediaResources
virtual void freeMediaResources()
Definition
SipXRemoteParticipantDialogSet.cxx:320
recon::SipXRemoteParticipantDialogSet::fixUpSdp
virtual void fixUpSdp(resip::SdpContents *sdp)
Definition
SipXRemoteParticipantDialogSet.cxx:457
recon::SipXRemoteParticipantDialogSet::setActiveRemoteParticipantHandle
virtual void setActiveRemoteParticipantHandle(ParticipantHandle handle)
Definition
SipXRemoteParticipantDialogSet.cxx:440
recon::SipXRemoteParticipantDialogSet::processMediaStreamReadyEvent
virtual void processMediaStreamReadyEvent(std::shared_ptr< MediaStreamReadyEvent::StreamParams > streamParams)
Definition
SipXRemoteParticipantDialogSet.cxx:261
recon::SipXRemoteParticipantDialogSet::startDtlsClient
void startDtlsClient(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
Definition
SipXRemoteParticipantDialogSet.cxx:388
recon::SipXRemoteParticipantDialogSet::~SipXRemoteParticipantDialogSet
virtual ~SipXRemoteParticipantDialogSet()
Definition
SipXRemoteParticipantDialogSet.cxx:69
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
SipXRemoteParticipantDialogSet.hxx
Generated by
1.9.8