📄 profile.cxx
字号:
#include "resip/dum/Profile.hxx"#include "resip/stack/SipMessage.hxx"#include "resip/stack/HeaderTypes.hxx"using namespace resip;#define RESIPROCATE_SUBSYSTEM Subsystem::DUMProfile::Profile() : mHasOutboundDecorator(false){ reset(); // set defaults}Profile::Profile(SharedPtr<Profile> baseProfile) : mHasOutboundDecorator(false), mBaseProfile(baseProfile){ assert(baseProfile.get()); reset(); // default all settings to fallthrough to mBaseProfile}Profile::~Profile(){}voidProfile::reset(){ unsetDefaultRegistrationTime(); unsetDefaultMaxRegistrationTime(); unsetDefaultRegistrationRetryTime(); unsetDefaultSubscriptionTime(); unsetDefaultPublicationTime(); unsetDefaultStaleCallTime(); unsetDefaultStaleReInviteTime(); unsetDefaultSessionTime(); unsetDefaultSessionTimerMode(); unset1xxRetransmissionTime(); unsetOverrideHostAndPort(); unsetAdvertisedCapabilities(); unsetOutboundProxy(); unsetRportEnabled(); unsetUserAgent(); unsetProxyRequires(); unsetKeepAliveTimeForDatagram(); unsetKeepAliveTimeForStream(); unsetFixedTransportPort(); unsetFixedTransportInterface(); unsetRinstanceEnabled(); unsetOutboundDecorator(); unsetMethodsParamEnabled(); unsetExpressOutboundAsRouteSetEnabled();}voidProfile::setDefaultRegistrationTime(UInt32 secs){ mDefaultRegistrationExpires = secs; mHasDefaultRegistrationExpires = true;}UInt32 Profile::getDefaultRegistrationTime() const{ // Fall through seting (if required) if(!mHasDefaultRegistrationExpires && mBaseProfile.get()) { return mBaseProfile->getDefaultRegistrationTime(); } return mDefaultRegistrationExpires;}voidProfile::unsetDefaultRegistrationTime(){ if(mBaseProfile.get()) { mHasDefaultRegistrationExpires = false; } else // No Base profile - so return to default setting { mHasDefaultRegistrationExpires = true; mDefaultRegistrationExpires = 3600; // 1 hour }}voidProfile::setDefaultMaxRegistrationTime(UInt32 secs){ mDefaultMaxRegistrationExpires = secs; mHasDefaultMaxRegistrationExpires = true;}UInt32 Profile::getDefaultMaxRegistrationTime() const{ // Fall through seting (if required) if(!mHasDefaultMaxRegistrationExpires && mBaseProfile.get()) { return mBaseProfile->getDefaultMaxRegistrationTime(); } return mDefaultMaxRegistrationExpires;}voidProfile::unsetDefaultMaxRegistrationTime(){ if(mBaseProfile.get()) { mHasDefaultMaxRegistrationExpires = false; } else // No Base profile - so return to default setting { mHasDefaultMaxRegistrationExpires = true; mDefaultMaxRegistrationExpires = 0; // No restriction }}voidProfile::setDefaultRegistrationRetryTime(int secs){ mDefaultRegistrationRetryInterval = secs; mHasDefaultRegistrationRetryInterval = true;}int Profile::getDefaultRegistrationRetryTime() const{ // Fall through seting (if required) if(!mHasDefaultRegistrationRetryInterval && mBaseProfile.get()) { return mBaseProfile->getDefaultRegistrationRetryTime(); } return mDefaultRegistrationRetryInterval;}voidProfile::unsetDefaultRegistrationRetryTime(){ if(mBaseProfile.get()) { mHasDefaultRegistrationRetryInterval = false; } else // No Base profile - so return to default setting { mHasDefaultRegistrationRetryInterval = true; mDefaultRegistrationRetryInterval = 0; // Retries disabled }}voidProfile::setDefaultSubscriptionTime(UInt32 secs){ mDefaultSubscriptionExpires = secs; mHasDefaultSubscriptionExpires = true;}UInt32 Profile::getDefaultSubscriptionTime() const{ // Fall through seting (if required) if(!mHasDefaultSubscriptionExpires && mBaseProfile.get()) { return mBaseProfile->getDefaultSubscriptionTime(); } return mDefaultSubscriptionExpires;}voidProfile::unsetDefaultSubscriptionTime(){ if(mBaseProfile.get()) { mHasDefaultSubscriptionExpires = false; } else // No Base profile - so return to default setting { mHasDefaultSubscriptionExpires = true; mDefaultSubscriptionExpires = 3600; // 1 hour }}voidProfile::setDefaultPublicationTime(UInt32 secs){ mDefaultPublicationExpires = secs; mHasDefaultPublicationExpires = true;}UInt32 Profile::getDefaultPublicationTime() const{ // Fall through seting (if required) if(!mHasDefaultPublicationExpires && mBaseProfile.get()) { return mBaseProfile->getDefaultPublicationTime(); } return mDefaultPublicationExpires;}voidProfile::unsetDefaultPublicationTime(){ if(mBaseProfile.get()) { mHasDefaultPublicationExpires = false; } else // No Base profile - so return to default setting { mHasDefaultPublicationExpires = true; mDefaultPublicationExpires = 3600; // 1 hour }}voidProfile::setDefaultStaleCallTime(int secs){ mDefaultStaleCallTime = secs; mHasDefaultStaleCallTime = true;}int Profile::getDefaultStaleCallTime() const{ // Fall through seting (if required) if(!mHasDefaultStaleCallTime && mBaseProfile.get()) { return mBaseProfile->getDefaultStaleCallTime(); } return mDefaultStaleCallTime;}voidProfile::unsetDefaultStaleCallTime(){ if(mBaseProfile.get()) { mHasDefaultStaleCallTime = false; } else // No Base profile - so return to default setting { mHasDefaultStaleCallTime = true; mDefaultStaleCallTime = 180; // 3 minutes }}voidProfile::setDefaultStaleReInviteTime(int secs){ mDefaultStaleReInviteTime = secs; mHasDefaultStaleReInviteTime = true;}int Profile::getDefaultStaleReInviteTime() const{ // Fall through seting (if required) if(!mHasDefaultStaleReInviteTime && mBaseProfile.get()) { return mBaseProfile->getDefaultStaleReInviteTime(); } return mDefaultStaleReInviteTime;}voidProfile::unsetDefaultStaleReInviteTime(){ if(mBaseProfile.get()) { mHasDefaultStaleReInviteTime = false; } else // No Base profile - so return to default setting { mHasDefaultStaleReInviteTime = true; mDefaultStaleReInviteTime = 40; // 40 Seconds (slightly longer than T1*64) }}voidProfile::setDefaultSessionTime(UInt32 secs){ mDefaultSessionExpires = secs; mHasDefaultSessionExpires = true;}UInt32 Profile::getDefaultSessionTime() const{ // Fall through seting (if required) if(!mHasDefaultSessionExpires && mBaseProfile.get()) { return mBaseProfile->getDefaultSessionTime(); } return mDefaultSessionExpires;}voidProfile::unsetDefaultSessionTime(){ if(mBaseProfile.get()) { mHasDefaultSessionExpires = false; } else // No Base profile - so return to default setting { mHasDefaultSessionExpires = true; mDefaultSessionExpires = 1800; // 30 minutes }}voidProfile::setDefaultSessionTimerMode(Profile::SessionTimerMode mode){ mDefaultSessionTimerMode = mode; mHasDefaultSessionTimerMode = true;}Profile::SessionTimerMode Profile::getDefaultSessionTimerMode() const{ // Fall through seting (if required) if(!mHasDefaultSessionTimerMode && mBaseProfile.get()) { return mBaseProfile->getDefaultSessionTimerMode(); } return mDefaultSessionTimerMode;}voidProfile::unsetDefaultSessionTimerMode(){ if(mBaseProfile.get()) { mHasDefaultSessionTimerMode = false; } else // No Base profile - so return to default setting { mHasDefaultSessionTimerMode = true; mDefaultSessionTimerMode = Profile::PreferUACRefreshes; }}voidProfile::set1xxRetransmissionTime(int secs){ m1xxRetransmissionTime = secs; mHas1xxRetransmissionTime = true;}int Profile::get1xxRetransmissionTime() const{ // Fall through seting (if required) if(!mHas1xxRetransmissionTime && mBaseProfile.get()) { return mBaseProfile->get1xxRetransmissionTime(); } return m1xxRetransmissionTime;}voidProfile::unset1xxRetransmissionTime(){ if(mBaseProfile.get()) { mHas1xxRetransmissionTime = false; } else // No Base profile - so return to default setting { mHas1xxRetransmissionTime = true; m1xxRetransmissionTime = 60; // RFC3261 13.3.1 specifies this timeout should be 1 minute }}void Profile::setOverrideHostAndPort(const Uri& hostPort){ mOverrideHostPort = hostPort; mHasOverrideHostPort = true; }bool Profile::hasOverrideHostAndPort() const{ // Fall through seting (if required) if(!mHasOverrideHostPort && mBaseProfile.get()) { return mBaseProfile->hasOverrideHostAndPort(); } return mHasOverrideHostPort;}const Uri& Profile::getOverrideHostAndPort() const{ // Fall through seting (if required) if(!mHasOverrideHostPort && mBaseProfile.get()) { return mBaseProfile->getOverrideHostAndPort(); } return mOverrideHostPort;}voidProfile::unsetOverrideHostAndPort(){ if(mBaseProfile.get()) { mHasOverrideHostPort = false; } else // No Base profile - so return to default setting { mHasOverrideHostPort = false; }}void Profile::addAdvertisedCapability(const Headers::Type header){ assert(header == Headers::Allow || header == Headers::AcceptEncoding || header == Headers::AcceptLanguage || header == Headers::Supported); mAdvertisedCapabilities.insert(header); mHasAdvertisedCapabilities = true;} bool Profile::isAdvertisedCapability(const Headers::Type header) const{ // Fall through seting (if required) if(!mHasAdvertisedCapabilities && mBaseProfile.get()) { return mBaseProfile->isAdvertisedCapability(header); } return mAdvertisedCapabilities.count(header) != 0;}void Profile::clearAdvertisedCapabilities(void){ mHasAdvertisedCapabilities = true; return mAdvertisedCapabilities.clear();}voidProfile::unsetAdvertisedCapabilities(){ if(mBaseProfile.get()) { mHasAdvertisedCapabilities = false; } else // No Base profile - so return to default setting { mHasAdvertisedCapabilities = true; addAdvertisedCapability(Headers::Allow); addAdvertisedCapability(Headers::Supported); }}void Profile::setOutboundProxy( const Uri& uri ){ Uri tmpUri(uri); tmpUri.param(p_lr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -