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>
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 GstRemoteParticipant;
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
73protected:
74 virtual bool isAsyncMediaSetup();
75
76 virtual void fixUpSdp(resip::SdpContents* sdp);
77
78private:
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;
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 ==================================================================== */
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.
This class is used by Invite DialogSets.
virtual resip::AppDialog * createAppDialog(const resip::SipMessage &msg)
void setRemoteSDPFingerprint(const resip::Data &hashFunction, const resip::Data &fingerprint)
virtual void fixUpSdp(resip::SdpContents *sdp)
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)
bool createSRTPSession(resip::MediaConstants::SrtpCryptoSuite cryptoSuite, const char *remoteKey, size_t remoteKeyLen)
void startDtlsClient(const char *address, unsigned short rtpPort, unsigned short rtcpPort)
resip::MediaConstants::SrtpCryptoSuite getSrtpCryptoSuite()
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