reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
UserAgentMasterProfile.hxx
Go to the documentation of this file.
1#if !defined(UserAgentMasterProfile_hxx)
2#define UserAgentMasterProfile_hxx
3
10
11#include <memory>
12#include <vector>
13
14namespace recon
15{
16
25{
26public:
28
48
49 void setTransportSipMessageLoggingHandler(std::shared_ptr<resip::Transport::SipMessageLoggingHandler> handler) noexcept;
50
51 std::shared_ptr<resip::Transport::SipMessageLoggingHandler> getTransportSipMessageLoggingHandler() const noexcept;
52
53 void setRTCPEventLoggingHandler(std::shared_ptr<flowmanager::RTCPEventLoggingHandler> handler) noexcept;
54
55 std::shared_ptr<flowmanager::RTCPEventLoggingHandler> getRTCPEventLoggingHandler() const noexcept;
56
65
80 void addTransport( resip::TransportType protocol,
81 int port,
82 resip::IpVersion version=resip::V4,
83 resip::StunSetting stun=resip::StunDisabled,
84 const resip::Data& ipInterface = resip::Data::Empty,
85 const resip::Data& sipDomainname = resip::Data::Empty, // TLS only
86 const resip::Data& privateKeyPassPhrase = resip::Data::Empty,
87 resip::SecurityTypes::SSLType sslType = resip::SecurityTypes::DynamicTLS,
88 unsigned transportFlags = 0,
89 const resip::Data& certificateFilename = resip::Data::Empty,
90 const resip::Data& privateKeyFilename = resip::Data::Empty,
91 resip::SecurityTypes::TlsClientVerificationMode cvm = resip::SecurityTypes::None,
92 bool useEmailAsSIP = false,
93 unsigned int rcvBufLen = 0);
94
102 std::vector<TransportInfo>& getTransports();
103
112 void addEnumSuffix(const resip::Data& enumSuffix);
113
119 const std::vector<resip::Data>& getEnumSuffixes() const;
120
130
138 const resip::DnsStub::NameserverList& getAdditionalDnsServers() const;
139
148 virtual resip::Data& certPath();
150
159 virtual std::vector<resip::Data>& rootCertDirectories();
160 virtual const std::vector<resip::Data>& rootCertDirectories() const;
161
170 virtual std::vector<resip::Data>& rootCertBundles();
171 virtual const std::vector<resip::Data>& rootCertBundles() const;
172
180
181
191
200 virtual unsigned short& rtpPortRangeMin();
201 virtual const unsigned short rtpPortRangeMin() const;
202
211 virtual unsigned short& rtpPortRangeMax();
212 virtual const unsigned short rtpPortRangeMax() const;
213
224
225private:
226 resip::Data mCertPath;
227 std::vector<resip::Data> mRootCertDirectories;
228 std::vector<resip::Data> mRootCertBundles;
229 bool mStatisticsManagerEnabled;
230 bool mServerAuthManagerEnabled;
231 std::shared_ptr<resip::Transport::SipMessageLoggingHandler> mTransportSipMessageLoggingHandler;
232 std::shared_ptr<flowmanager::RTCPEventLoggingHandler> mRTCPEventLoggingHandler;
233 bool mDTMFDigitLoggingEnabled;
234 std::vector<TransportInfo> mTransports;
235 std::vector<resip::Data> mEnumSuffixes;
236 resip::DnsStub::NameserverList mAdditionalDnsServers;
237 unsigned short mRTPPortRangeMin;
238 unsigned short mRTPPortRangeMax;
239 int mSubscriptionRetryInterval;
240};
241
242}
243
244#endif
245
246
247/* ====================================================================
248
249 Copyright (c) 2021-2026, SIP Spectrum, Inc. www.sipspectrum.com
250 Copyright (c) 2007-2008, Plantronics, Inc.
251 All rights reserved.
252
253 Redistribution and use in source and binary forms, with or without
254 modification, are permitted provided that the following conditions are
255 met:
256
257 1. Redistributions of source code must retain the above copyright
258 notice, this list of conditions and the following disclaimer.
259
260 2. Redistributions in binary form must reproduce the above copyright
261 notice, this list of conditions and the following disclaimer in the
262 documentation and/or other materials provided with the distribution.
263
264 3. Neither the name of Plantronics nor the names of its contributors
265 may be used to endorse or promote products derived from this
266 software without specific prior written permission.
267
268 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
269 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
270 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
271 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
272 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
273 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
274 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
275 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
276 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
277 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
278 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
279
280 ==================================================================== */
resip::SecurityTypes::TlsClientVerificationMode mCvm
This class extends the resip MasterProfile to include UserAgent specific settings.
std::vector< TransportInfo > & getTransports()
Gets a vector of the transports previously added.
std::shared_ptr< flowmanager::RTCPEventLoggingHandler > getRTCPEventLoggingHandler() const noexcept
std::shared_ptr< resip::Transport::SipMessageLoggingHandler > getTransportSipMessageLoggingHandler() const noexcept
virtual unsigned short & rtpPortRangeMin()
Get/Set the starting port number in the range of valid port numbers to be used for RTP traffic.
virtual std::vector< resip::Data > & rootCertBundles()
Get/Set the names of files containing bundles of X.509 trusted root certificates.
void addEnumSuffix(const resip::Data &enumSuffix)
Adds a domain suffix used in ENUM DNS queries.
virtual int & subscriptionRetryInterval()
Get/Set the interval at which subscriptions are retried if they fail (if one is not suggested in the ...
void setTransportSipMessageLoggingHandler(std::shared_ptr< resip::Transport::SipMessageLoggingHandler > handler) noexcept
const std::vector< resip::Data > & getEnumSuffixes() const
Gets a vector of the ENUM domain suffixes previously added.
virtual unsigned short & rtpPortRangeMax()
Get/Set the ending port number in the range of valid port numbers to be used for RTP traffic.
virtual std::vector< resip::Data > & rootCertDirectories()
Get/Set the locations where the SIP stack will look for X.509 trusted root certificates.
virtual bool & serverAuthManagerEnabled()
Get/Set wether Server Auth Manager is enabled or not.
virtual bool & statisticsManagerEnabled()
Get/Set wether SIP message statistics are send to logging subsystem.
void addAdditionalDnsServer(const resip::Data &dnsServerIPAddress)
Adds an additional DNS server to ones that are attempted to be discovered by the SIP stack.
virtual resip::Data & certPath()
Get/Set the location where the SIP stack will look for X509 certificates.
void setRTCPEventLoggingHandler(std::shared_ptr< flowmanager::RTCPEventLoggingHandler > handler) noexcept
void addTransport(resip::TransportType protocol, int port, resip::IpVersion version=resip::V4, resip::StunSetting stun=resip::StunDisabled, const resip::Data &ipInterface=resip::Data::Empty, const resip::Data &sipDomainname=resip::Data::Empty, const resip::Data &privateKeyPassPhrase=resip::Data::Empty, resip::SecurityTypes::SSLType sslType=resip::SecurityTypes::DynamicTLS, unsigned transportFlags=0, const resip::Data &certificateFilename=resip::Data::Empty, const resip::Data &privateKeyFilename=resip::Data::Empty, resip::SecurityTypes::TlsClientVerificationMode cvm=resip::SecurityTypes::None, bool useEmailAsSIP=false, unsigned int rcvBufLen=0)
Adds a network transport to use for send/receiving SIP messages.
const resip::DnsStub::NameserverList & getAdditionalDnsServers() const
Gets a vector of the DNS Servers previously added.
virtual bool & dtmfDigitLoggingEnabled()
Get/Set wether recon is allowed to log DTMF digits pressed.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
This class is used during media sessions that use Dtls-Srtp for a media transport.
Definition ErrorCode.hxx:4
SSLType
Note: Before adding to the SSLType enum, please see the comments about mTlsCtx in resip/stack/ssl/Sec...
dcm! – add UnusedChecking(_enum) below;
TransportType
An enumeration of transport protocols.
IpVersion
An enumeration of IP versions.
void list()
Definition userAdmin.cxx:66