|
reSIProcate
SIP stack, Dialog Usage Manager and related libraries
|
#include <Profile.hxx>
Public Types | |
| enum | SessionTimerMode { PreferLocalRefreshes , PreferRemoteRefreshes , PreferCallerRefreshes , PreferCalleeRefreshes } |
| Only used if timer option tag is set in MasterProfile. More... | |
Public Member Functions | |
| Profile () | |
| Profile (std::shared_ptr< Profile > baseProfile) | |
| Profile (const Profile &)=default | |
| Profile (Profile &&)=default | |
| virtual | ~Profile ()=default |
| Profile & | operator= (const Profile &)=default |
| Profile & | operator= (Profile &&)=default |
| virtual void | reset () |
| Reset this profile to it's initial state - (same as calling unsetXXX for each setting) If no fall through (base) profile was provided as creation time. | |
| virtual void | setDefaultRegistrationTime (uint32_t secs) noexcept |
| Note: setXXXX methods will set this setting internally in this object. | |
| virtual uint32_t | getDefaultRegistrationTime () const noexcept |
| virtual void | unsetDefaultRegistrationTime () noexcept |
| virtual void | setDefaultMaxRegistrationTime (uint32_t secs) noexcept |
| If a registration gets rejected with a 423, then we ensure the MinExpires value is less than this before re-registering Set to 0 to disable this check and accept any time suggested by the server. | |
| virtual uint32_t | getDefaultMaxRegistrationTime () const noexcept |
| virtual void | unsetDefaultMaxRegistrationTime () noexcept |
| virtual void | setDefaultRegistrationRetryTime (int secs) noexcept |
| The time to retry registrations on error responses (if Retry-After header is not present in error) Set to 0 to never retry on errors. | |
| virtual int | getDefaultRegistrationRetryTime () const noexcept |
| virtual void | unsetDefaultRegistrationRetryTime () noexcept |
| virtual void | setDefaultSubscriptionTime (uint32_t secs) noexcept |
| This default is used if no value is passed in when creating a subscription. | |
| virtual uint32_t | getDefaultSubscriptionTime () const noexcept |
| virtual void | unsetDefaultSubscriptionTime () noexcept |
| virtual void | setDefaultPublicationTime (uint32_t secs) noexcept |
| This default is used if no value is passed in when creating a publication. | |
| virtual uint32_t | getDefaultPublicationTime () const noexcept |
| virtual void | unsetDefaultPublicationTime () noexcept |
| virtual void | setDefaultStaleCallTime (int secs) noexcept |
| Call is stale if UAC gets no final response within the stale call timeout (default 3 minutes) | |
| virtual int | getDefaultStaleCallTime () const noexcept |
| virtual void | unsetDefaultStaleCallTime () noexcept |
| virtual void | setDefaultStaleReInviteTime (int secs) noexcept |
| ReInvite is stale if UAC gets no final response within the stale reinvite timeout (default 40 seconds) | |
| virtual int | getDefaultStaleReInviteTime () const noexcept |
| virtual void | unsetDefaultStaleReInviteTime () noexcept |
| virtual void | setDefaultSessionTime (uint32_t secs) noexcept |
| Only used if timer option tag is set in MasterProfile. | |
| virtual uint32_t | getDefaultSessionTime () const noexcept |
| virtual void | unsetDefaultSessionTime () noexcept |
| virtual void | setDefaultSessionTimerMode (Profile::SessionTimerMode mode) noexcept |
| virtual Profile::SessionTimerMode | getDefaultSessionTimerMode () const noexcept |
| virtual void | unsetDefaultSessionTimerMode () noexcept |
| virtual void | set1xxRetransmissionTime (int secs) noexcept |
| The amount of time that can pass before dum will resubmit an unreliable provisional response. | |
| virtual int | get1xxRetransmissionTime () const noexcept |
| virtual void | unset1xxRetransmissionTime () noexcept |
| virtual void | set1xxRelResubmitTime (int secs) noexcept |
| The amount of time that can pass before dum will resubmit a reliable provisional response. | |
| virtual int | get1xxRelResubmitTime () const noexcept |
| virtual void | unset1xxRelResubmitTime () noexcept |
| virtual void | setOverrideHostAndPort (const Uri &hostPort) |
| overrides the value used to populate the contact ?dcm? – also change via entries? Also, dum currently uses(as a uas) the request uri of the dialog constructing request for the local contact within that dialog. | |
| virtual bool | hasOverrideHostAndPort () const noexcept |
| virtual const Uri & | getOverrideHostAndPort () const |
| virtual void | unsetOverrideHostAndPort () noexcept |
| virtual void | addAdvertisedCapability (Headers::Type header) |
| enable/disable sending of Allow/Supported/Accept-Language/Accept-Encoding headers on initial outbound requests (ie. | |
| virtual bool | isAdvertisedCapability (Headers::Type header) const |
| virtual void | clearAdvertisedCapabilities () noexcept |
| virtual void | unsetAdvertisedCapabilities () |
| virtual void | setOutboundProxy (const Uri &uri) |
| Use to route all outbound requests through a particular proxy. | |
| virtual const NameAddr & | getOutboundProxy () const |
| virtual bool | hasOutboundProxy () const noexcept |
| virtual void | unsetOutboundProxy () noexcept |
| virtual void | setForceOutboundProxyOnAllRequestsEnabled (bool enabled) noexcept |
| If enabled, forces use of outbound proxy on all requests, including mid-dialog requests. | |
| virtual bool | getForceOutboundProxyOnAllRequestsEnabled () const noexcept |
| virtual void | unsetForceOutboundProxyOnAllRequestsEnabled () noexcept |
| virtual void | setExpressOutboundAsRouteSetEnabled (bool enabled) noexcept |
| If enabled, add a route header for the outbound proxy. | |
| virtual bool | getExpressOutboundAsRouteSetEnabled () const noexcept |
| virtual void | unsetExpressOutboundAsRouteSetEnabled () noexcept |
| virtual void | setRportEnabled (bool enabled) noexcept |
| enable/disable rport for requests. rport is enabled by default | |
| virtual bool | getRportEnabled () const noexcept |
| virtual void | unsetRportEnabled () noexcept |
| virtual void | setUserAgent (const Data &userAgent) |
| if set then UserAgent header is added to outbound messages | |
| virtual const Data & | getUserAgent () const |
| virtual bool | hasUserAgent () const noexcept |
| virtual void | unsetUserAgent () noexcept |
| virtual void | setProxyRequires (const Tokens &proxyRequires) |
| if set then ProxyRequires header is added to outbound messages | |
| virtual const Tokens & | getProxyRequires () const |
| virtual bool | hasProxyRequires () const noexcept |
| virtual void | unsetProxyRequires () noexcept |
| virtual void | setKeepAliveTimeForDatagram (int keepAliveTime) noexcept |
| time between CR/LF keepalive messages in seconds. | |
| virtual int | getKeepAliveTimeForDatagram () const noexcept |
| virtual void | unsetKeepAliveTimeForDatagram () noexcept |
| virtual void | setKeepAliveTimeForStream (int keepAliveTime) noexcept |
| virtual int | getKeepAliveTimeForStream () const noexcept |
| virtual void | unsetKeepAliveTimeForStream () noexcept |
| virtual void | setFixedTransportPort (int fixedTransportPort) noexcept |
| If set dum will provide a port in the via for requests sent down to the stack. | |
| virtual int | getFixedTransportPort () const noexcept |
| virtual void | unsetFixedTransportPort () noexcept |
| virtual void | setFixedTransportInterface (const Data &fixedTransportInterface) |
| If set dum will provide a interface in the via for requests sent down to the stack. | |
| virtual const Data & | getFixedTransportInterface () const |
| virtual void | unsetFixedTransportInterface () |
| virtual void | setRinstanceEnabled (bool enabled) noexcept |
| If enabled then rinstance parameter is added to contacts. | |
| virtual bool | getRinstanceEnabled () const noexcept |
| virtual void | unsetRinstanceEnabled () noexcept |
| virtual void | setOutboundDecorator (std::shared_ptr< MessageDecorator > outboundDecorator) noexcept |
| virtual std::shared_ptr< MessageDecorator > | getOutboundDecorator () noexcept |
| virtual void | unsetOutboundDecorator () noexcept |
| virtual void | setMethodsParamEnabled (bool enabled) noexcept |
| If enabled then methods parameter is added to contacts. | |
| virtual bool | getMethodsParamEnabled () const noexcept |
| virtual void | unsetMethodsParamEnabled () noexcept |
| virtual void | setUserAgentCapabilities (const NameAddr &capabilities) |
| If set, the parameters on the provided NameAddr are used in the contact header Example: include <resip/stack/ExtensionParameter.hxx> static const resip::ExtensionParameter p_automaton("automaton"); static const resip::ExtensionParameter p_byeless("+sip.byeless"); static const resip::ExtensionParameter p_rendering("+sip.rendering"); ... NameAddr capabilities; capabilities.param(p_automaton); capabilities.param(p_byeless); capabilities.param(p_rendering) = "\"no\""; profile->setUserAgentCapabilities(capabilities);. | |
| virtual bool | hasUserAgentCapabilities () const noexcept |
| virtual const NameAddr & | getUserAgentCapabilities () const |
| virtual void | unsetUserAgentCapabilities () noexcept |
| virtual void | setExtraHeadersInReferNotifySipFragEnabled (bool enabled) noexcept |
| If enabled then dialog identifying headers are added to SipFrag bodies that are generated in an InviteSession. | |
| virtual bool | getExtraHeadersInReferNotifySipFragEnabled () const noexcept |
| virtual void | unsetExtraHeadersInReferNotifySipFragEnabled () noexcept |
| virtual void | setHandleInviteSession491AsGeneralFailureEnabled (bool enabled) |
| virtual bool | getHandleInviteSession491AsGeneralFailureEnabled () const |
| virtual void | unsetHandleInviteSession491AsGeneralFailureEnabled () |
Definition at line 17 of file Profile.hxx.
Only used if timer option tag is set in MasterProfile.
Set to PreferLocalRefreshes if you prefer that the local UA performs the refreshes.
Set to PreferRemoteRefreshes if you prefer that the remote UA performs the refreshes. Set to PreferCallerRefreshes if you prefer that the Caller performs the refreshes. Set to PreferCalleeRefreshes if you prefer that the Callee (called party) performs the refreshes. Note: determining the refresher is a negotiation, so despite this setting the remote end may end up enforcing their preference. Also if the remote end doesn't support SessionTimers then the refresher will always be local. This implementation follows the RECOMMENDED practices from section 7.1 of the draft and does not specify a refresher parameter in UAC requests.
| Enumerator | |
|---|---|
| PreferLocalRefreshes | |
| PreferRemoteRefreshes | |
| PreferCallerRefreshes | |
| PreferCalleeRefreshes | |
Definition at line 99 of file Profile.hxx.
| Profile::Profile | ( | ) |
Definition at line 11 of file Profile.cxx.
|
explicit |
Definition at line 17 of file Profile.cxx.
|
default |
|
default |
|
virtualdefault |
|
virtual |
enable/disable sending of Allow/Supported/Accept-Language/Accept-Encoding headers on initial outbound requests (ie.
Initial INVITE, REGISTER, etc.) and Invite 200 responses Note: Default is to advertise Headers::Allow and Headers::Supported, use clearAdvertisedCapabilities to remove these Currently implemented header values are: Headers::Allow, Headers::AllowEvents Headers::AcceptEncoding, Headers::AcceptLanguage, Headers::Supported
Definition at line 448 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 472 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 388 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 356 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 100 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 196 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 132 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 68 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 292 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 324 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 228 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 260 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 164 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 571 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 970 of file Profile.cxx.
|
virtual |
Definition at line 803 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 771 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 539 of file Profile.cxx.
|
virtual |
Definition at line 1002 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 707 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 739 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 902 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 873 of file Profile.cxx.
|
virtual |
Definition at line 503 of file Profile.cxx.
|
virtual |
Definition at line 431 of file Profile.cxx.
|
virtual |
Definition at line 671 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 836 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 603 of file Profile.cxx.
|
virtual |
Definition at line 635 of file Profile.cxx.
|
virtual |
Definition at line 934 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 515 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 420 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 683 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 647 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 946 of file Profile.cxx.
|
virtual |
Definition at line 461 of file Profile.cxx.
|
virtual |
Reset this profile to it's initial state - (same as calling unsetXXX for each setting) If no fall through (base) profile was provided as creation time.
Definition at line 27 of file Profile.cxx.
|
virtualnoexcept |
The amount of time that can pass before dum will resubmit a reliable provisional response.
Definition at line 381 of file Profile.cxx.
|
virtualnoexcept |
The amount of time that can pass before dum will resubmit an unreliable provisional response.
Definition at line 349 of file Profile.cxx.
|
virtualnoexcept |
If a registration gets rejected with a 423, then we ensure the MinExpires value is less than this before re-registering Set to 0 to disable this check and accept any time suggested by the server.
Definition at line 93 of file Profile.cxx.
|
virtualnoexcept |
This default is used if no value is passed in when creating a publication.
Definition at line 189 of file Profile.cxx.
|
virtualnoexcept |
The time to retry registrations on error responses (if Retry-After header is not present in error) Set to 0 to never retry on errors.
Note: onRequestRetry is called before this setting is checked. Return -1 from onRequestRetry in order to use this setting.
Definition at line 125 of file Profile.cxx.
|
virtualnoexcept |
Note: setXXXX methods will set this setting internally in this object.
If you do not call a particular setXXX method on this object then a corresponding getXXXX call will attempt to retrieve that value from the BaseProfile (provided in the constructor). This allows you to setup a hierarchy of profiles and settings. unsetXXX methods are used to re-enable fallthrough after calling a setXXXX method. If you call an unsetXXXX method on an object with a NULL BaseProfile the setting will return to it's creation time default. Note: Defaults are described below. This default is used if no value is passed in when creating a registration
Definition at line 61 of file Profile.cxx.
|
virtualnoexcept |
Only used if timer option tag is set in MasterProfile.
Note: Value must be higher than 90 (as specified in RFC 4028)
Definition at line 285 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 317 of file Profile.cxx.
|
virtualnoexcept |
Call is stale if UAC gets no final response within the stale call timeout (default 3 minutes)
Definition at line 221 of file Profile.cxx.
|
virtualnoexcept |
ReInvite is stale if UAC gets no final response within the stale reinvite timeout (default 40 seconds)
Definition at line 253 of file Profile.cxx.
|
virtualnoexcept |
This default is used if no value is passed in when creating a subscription.
Definition at line 157 of file Profile.cxx.
|
virtualnoexcept |
If enabled, add a route header for the outbound proxy.
Definition at line 564 of file Profile.cxx.
|
virtualnoexcept |
If enabled then dialog identifying headers are added to SipFrag bodies that are generated in an InviteSession.
Definition at line 963 of file Profile.cxx.
|
virtual |
If set dum will provide a interface in the via for requests sent down to the stack.
This will tell the transport selector to only look at those transports using this interface. Default is Data::Empty (Disabled).
Definition at line 796 of file Profile.cxx.
|
virtualnoexcept |
If set dum will provide a port in the via for requests sent down to the stack.
This will tell the transport selector to only look at those transports using this port. Default is 0 (Disabled). WARNING: Setting this can cause undesirable behaviour in the case when you want DNS entries to decided your transport and you are supporting TLS. For example: if you add UDP:5060, TCP:5060 and TLS:5061 and setFixedTransportPort to 5060 - then the TLS transport cannot be used.
Definition at line 764 of file Profile.cxx.
|
virtualnoexcept |
If enabled, forces use of outbound proxy on all requests, including mid-dialog requests.
WARNING: Using this setting breaks 3261 mid-dialog routing and disables any ability to react to target refreshes. However there are certain scenarios/endpoints for which this setting may make sense - for example: to communicate with an endpoint that never populates it's Contact header correctly.
Definition at line 532 of file Profile.cxx.
|
virtual |
Definition at line 995 of file Profile.cxx.
|
virtualnoexcept |
time between CR/LF keepalive messages in seconds.
Set to 0 to disable. Default is 30 seconds for datagram and 180 seconds for stream. Note: You must set a KeepAliveManager on DUM for this to work.
Definition at line 700 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 732 of file Profile.cxx.
|
virtualnoexcept |
If enabled then methods parameter is added to contacts.
Definition at line 895 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 866 of file Profile.cxx.
|
virtual |
Use to route all outbound requests through a particular proxy.
Definition at line 494 of file Profile.cxx.
|
virtual |
overrides the value used to populate the contact ?dcm? – also change via entries? Also, dum currently uses(as a uas) the request uri of the dialog constructing request for the local contact within that dialog.
A transport parameter here could also be used to force tcp vs udp vs tls?
Definition at line 413 of file Profile.cxx.
|
virtual |
if set then ProxyRequires header is added to outbound messages
Definition at line 664 of file Profile.cxx.
|
virtualnoexcept |
If enabled then rinstance parameter is added to contacts.
The rinstance parameter is added by default.
Definition at line 829 of file Profile.cxx.
|
virtualnoexcept |
enable/disable rport for requests. rport is enabled by default
Definition at line 596 of file Profile.cxx.
|
virtual |
if set then UserAgent header is added to outbound messages
Definition at line 628 of file Profile.cxx.
|
virtual |
If set, the parameters on the provided NameAddr are used in the contact header Example: include <resip/stack/ExtensionParameter.hxx> static const resip::ExtensionParameter p_automaton("automaton"); static const resip::ExtensionParameter p_byeless("+sip.byeless"); static const resip::ExtensionParameter p_rendering("+sip.rendering"); ... NameAddr capabilities; capabilities.param(p_automaton); capabilities.param(p_byeless); capabilities.param(p_rendering) = "\"no\""; profile->setUserAgentCapabilities(capabilities);.
Definition at line 927 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 399 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 367 of file Profile.cxx.
|
virtual |
Definition at line 479 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 111 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 207 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 143 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 79 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 303 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 335 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 239 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 271 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 175 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 582 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 981 of file Profile.cxx.
|
virtual |
Definition at line 814 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 782 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 550 of file Profile.cxx.
|
virtual |
Definition at line 1013 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 718 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 750 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 913 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 884 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 526 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 442 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 694 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 847 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 614 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 658 of file Profile.cxx.
|
virtualnoexcept |
Definition at line 957 of file Profile.cxx.