reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
KurentoRemoteParticipantDialogSet.hxx
Go to the documentation of this file.
1#if !defined(KurentoRemoteParticipantDialogSet_hxx)
2#define KurentoRemoteParticipantDialogSet_hxx
3
4#include <map>
5#include <list>
11
12// FlowManager Includes
14#include "reTurn/StunTuple.hxx"
15
18#include "Participant.hxx"
20
21namespace resip
22{
23class DialogUsageManager;
24class SipMessage;
25}
26
27namespace recon
28{
29class ConversationManager;
30class RemoteParticipant;
31class KurentoRemoteParticipant;
32
40{
41public:
45 std::shared_ptr<ConversationProfile> conversationProfile = nullptr);
46
48
50
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);
65
66 // Media Stream Processing
67 virtual void processMediaStreamReadyEvent(std::shared_ptr<MediaStreamReadyEvent::StreamParams> streamParams);
68
70
71 const resip::Data& getLocalSrtpSessionKey() { return mLocalSrtpSessionKey; }
72
73 void onKurentoEvent(const std::string& event_name, const json::Object& message);
74
75protected:
76 virtual bool isAsyncMediaSetup();
77
78 virtual void fixUpSdp(resip::SdpContents* sdp);
79
80private:
81 KurentoMediaStackAdapter& mKurentoMediaStackAdapter;
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;
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) 2021-2026, SIP Spectrum, Inc.
110 Copyright (c) 2021, Daniel Pocock https://danielpocock.com
111 Copyright (c) 2007-2008, Plantronics, Inc.
112 All rights reserved.
113
114 Redistribution and use in source and binary forms, with or without
115 modification, are permitted provided that the following conditions are
116 met:
117
118 1. Redistributions of source code must retain the above copyright
119 notice, this list of conditions and the following disclaimer.
120
121 2. Redistributions in binary form must reproduce the above copyright
122 notice, this list of conditions and the following disclaimer in the
123 documentation and/or other materials provided with the distribution.
124
125 3. Neither the name of Plantronics nor the names of its contributors
126 may be used to endorse or promote products derived from this
127 software without specific prior written permission.
128
129 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
130 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
131 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
132 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
133 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
134 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
135 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
136 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
137 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
138 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
139 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
140
141 ==================================================================== */
This class is one of two main classes of concern to an application using the UserAgent library.
This class is one of two main classes of concern to an application using the UserAgent library.
virtual void setActiveRemoteParticipantHandle(ParticipantHandle handle)
void setActiveDestination(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
virtual void processMediaStreamReadyEvent(std::shared_ptr< MediaStreamReadyEvent::StreamParams > streamParams)
void setRemoteSDPFingerprint(const resip::Data &hashFunction, const resip::Data &fingerprint)
bool createSRTPSession(resip::MediaConstants::SrtpCryptoSuite cryptoSuite, const char *remoteKey, size_t remoteKeyLen)
resip::MediaConstants::SrtpCryptoSuite getSrtpCryptoSuite()
virtual resip::AppDialog * createAppDialog(const resip::SipMessage &msg)
void startDtlsClient(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
void onKurentoEvent(const std::string &event_name, const json::Object &message)
This class is used by Invite DialogSets.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
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