|
reSIProcate/DialogUsageManager
9694
|
00001 #if !defined(RESIP_PROFILE_HXX) 00002 #define RESIP_PROFILE_HXX 00003 00004 #include <iosfwd> 00005 #include <set> 00006 #include "resip/stack/Headers.hxx" 00007 #include "resip/stack/MethodTypes.hxx" 00008 #include "rutil/SharedPtr.hxx" 00009 #include "resip/stack/MessageDecorator.hxx" 00010 00011 namespace resip 00012 { 00013 00014 class Data; 00015 00016 class Profile 00017 { 00018 public: 00019 Profile(); // Default to no base profile 00020 Profile(SharedPtr<Profile> baseProfile); 00021 virtual ~Profile(); 00022 00028 virtual void reset(); 00029 00038 00040 virtual void setDefaultRegistrationTime(UInt32 secs); 00041 virtual UInt32 getDefaultRegistrationTime() const; 00042 virtual void unsetDefaultRegistrationTime(); 00043 00046 virtual void setDefaultMaxRegistrationTime(UInt32 secs); 00047 virtual UInt32 getDefaultMaxRegistrationTime() const; 00048 virtual void unsetDefaultMaxRegistrationTime(); 00049 00053 virtual void setDefaultRegistrationRetryTime(int secs); 00054 virtual int getDefaultRegistrationRetryTime() const; 00055 virtual void unsetDefaultRegistrationRetryTime(); 00056 00058 virtual void setDefaultSubscriptionTime(UInt32 secs); 00059 virtual UInt32 getDefaultSubscriptionTime() const; 00060 virtual void unsetDefaultSubscriptionTime(); 00061 00063 virtual void setDefaultPublicationTime(UInt32 secs); 00064 virtual UInt32 getDefaultPublicationTime() const; 00065 virtual void unsetDefaultPublicationTime(); 00066 00068 virtual void setDefaultStaleCallTime(int secs); 00069 virtual int getDefaultStaleCallTime() const; 00070 virtual void unsetDefaultStaleCallTime(); 00071 00073 virtual void setDefaultStaleReInviteTime(int secs); 00074 virtual int getDefaultStaleReInviteTime() const; 00075 virtual void unsetDefaultStaleReInviteTime(); 00076 00079 virtual void setDefaultSessionTime(UInt32 secs); 00080 virtual UInt32 getDefaultSessionTime() const; 00081 virtual void unsetDefaultSessionTime(); 00082 00093 typedef enum 00094 { 00095 PreferLocalRefreshes, 00096 PreferRemoteRefreshes, 00097 PreferCallerRefreshes, 00098 PreferCalleeRefreshes 00099 } SessionTimerMode; 00100 virtual void setDefaultSessionTimerMode(Profile::SessionTimerMode mode); 00101 virtual Profile::SessionTimerMode getDefaultSessionTimerMode() const; 00102 virtual void unsetDefaultSessionTimerMode(); 00103 00105 virtual void set1xxRetransmissionTime(int secs); 00106 virtual int get1xxRetransmissionTime() const; 00107 virtual void unset1xxRetransmissionTime(); 00108 00114 virtual void setOverrideHostAndPort(const Uri& hostPort); 00115 virtual bool hasOverrideHostAndPort() const; 00116 virtual const Uri& getOverrideHostAndPort() const; 00117 virtual void unsetOverrideHostAndPort(); 00118 00124 virtual void addAdvertisedCapability(const Headers::Type header); 00125 virtual bool isAdvertisedCapability(const Headers::Type header) const; 00126 virtual void clearAdvertisedCapabilities(); 00127 virtual void unsetAdvertisedCapabilities(); 00128 00130 virtual void setOutboundProxy( const Uri& uri ); 00131 virtual const NameAddr& getOutboundProxy() const; 00132 virtual bool hasOutboundProxy() const; 00133 virtual void unsetOutboundProxy(); 00134 00141 virtual void setForceOutboundProxyOnAllRequestsEnabled(bool enabled) ; 00142 virtual bool getForceOutboundProxyOnAllRequestsEnabled() const; 00143 virtual void unsetForceOutboundProxyOnAllRequestsEnabled(); 00144 00146 virtual void setExpressOutboundAsRouteSetEnabled(bool enabled) ; 00147 virtual bool getExpressOutboundAsRouteSetEnabled() const; 00148 virtual void unsetExpressOutboundAsRouteSetEnabled(); 00149 00151 virtual void setRportEnabled(bool enabled); 00152 virtual bool getRportEnabled() const; 00153 virtual void unsetRportEnabled(); 00154 00156 virtual void setUserAgent( const Data& userAgent ); 00157 virtual const Data& getUserAgent() const; 00158 virtual bool hasUserAgent() const; 00159 virtual void unsetUserAgent(); 00160 00162 virtual void setProxyRequires( const Tokens& proxyRequires ); 00163 virtual const Tokens& getProxyRequires() const; 00164 virtual bool hasProxyRequires() const; 00165 virtual void unsetProxyRequires(); 00166 00170 virtual void setKeepAliveTimeForDatagram(int keepAliveTime); 00171 virtual int getKeepAliveTimeForDatagram() const; 00172 virtual void unsetKeepAliveTimeForDatagram(); 00173 virtual void setKeepAliveTimeForStream(int keepAliveTime); 00174 virtual int getKeepAliveTimeForStream() const; 00175 virtual void unsetKeepAliveTimeForStream(); 00176 00184 virtual void setFixedTransportPort(int fixedTransportPort); 00185 virtual int getFixedTransportPort() const; 00186 virtual void unsetFixedTransportPort(); 00187 00191 virtual void setFixedTransportInterface(const Data& fixedTransportInterface); 00192 virtual const Data& getFixedTransportInterface() const; 00193 virtual void unsetFixedTransportInterface(); 00194 00197 virtual void setRinstanceEnabled(bool enabled); 00198 virtual bool getRinstanceEnabled() const; 00199 virtual void unsetRinstanceEnabled(); 00200 00201 //If set then dum will add this MessageDecorator to all outbound messages 00202 virtual void setOutboundDecorator(SharedPtr<MessageDecorator> outboundDecorator); 00203 virtual SharedPtr<MessageDecorator> getOutboundDecorator(); 00204 virtual void unsetOutboundDecorator(); 00205 00207 virtual void setMethodsParamEnabled(bool enabled) ; 00208 virtual bool getMethodsParamEnabled() const; 00209 virtual void unsetMethodsParamEnabled(); 00210 00223 virtual void setUserAgentCapabilities(const NameAddr& capabilities) ; 00224 virtual bool hasUserAgentCapabilities() const; 00225 virtual const NameAddr& getUserAgentCapabilities() const; 00226 virtual void unsetUserAgentCapabilities(); 00227 00230 virtual void setExtraHeadersInReferNotifySipFragEnabled(bool enabled) ; 00231 virtual bool getExtraHeadersInReferNotifySipFragEnabled() const; 00232 virtual void unsetExtraHeadersInReferNotifySipFragEnabled(); 00233 00234 private: 00235 bool mHasDefaultRegistrationExpires; 00236 UInt32 mDefaultRegistrationExpires; 00237 00238 bool mHasDefaultMaxRegistrationExpires; 00239 UInt32 mDefaultMaxRegistrationExpires; 00240 00241 bool mHasDefaultRegistrationRetryInterval; 00242 int mDefaultRegistrationRetryInterval; 00243 00244 bool mHasDefaultSubscriptionExpires; 00245 UInt32 mDefaultSubscriptionExpires; 00246 00247 bool mHasDefaultPublicationExpires; 00248 UInt32 mDefaultPublicationExpires; 00249 00250 bool mHasDefaultStaleCallTime; 00251 int mDefaultStaleCallTime; 00252 00253 bool mHasDefaultStaleReInviteTime; 00254 int mDefaultStaleReInviteTime; 00255 00256 bool mHasDefaultSessionExpires; 00257 UInt32 mDefaultSessionExpires; 00258 00259 bool mHasDefaultSessionTimerMode; 00260 SessionTimerMode mDefaultSessionTimerMode; 00261 00262 bool mHas1xxRetransmissionTime; 00263 int m1xxRetransmissionTime; 00264 00265 bool mHasOutboundProxy; 00266 NameAddr mOutboundProxy; 00267 00268 bool mHasForceOutboundProxyOnAllRequestsEnabled; 00269 bool mForceOutboundProxyOnAllRequestsEnabled; 00270 00271 bool mHasExpressOutboundAsRouteSetEnabled; 00272 bool mExpressOutboundAsRouteSetEnabled; 00273 00274 bool mHasAdvertisedCapabilities; 00275 std::set<Headers::Type> mAdvertisedCapabilities; 00276 00277 bool mHasRportEnabled; 00278 bool mRportEnabled; 00279 00280 bool mHasUserAgent; 00281 Data mUserAgent; 00282 00283 bool mHasOverrideHostPort; 00284 Uri mOverrideHostPort; 00285 00286 bool mHasKeepAliveTimeForDatagram; 00287 int mKeepAliveTimeForDatagram; 00288 00289 bool mHasKeepAliveTimeForStream; 00290 int mKeepAliveTimeForStream; 00291 00292 bool mHasFixedTransportPort; 00293 int mFixedTransportPort; 00294 00295 bool mHasFixedTransportInterface; 00296 Data mFixedTransportInterface; 00297 00298 bool mHasProxyRequires; 00299 Tokens mProxyRequires; 00300 00301 bool mHasRinstanceEnabled; 00302 bool mRinstanceEnabled; 00303 00304 bool mHasOutboundDecorator; 00305 SharedPtr<MessageDecorator> mOutboundDecorator; 00306 00307 bool mHasMethodsParamEnabled; 00308 bool mMethodsParamEnabled; 00309 00310 bool mHasUserAgentCapabilities; 00311 NameAddr mUserAgentCapabilities; 00312 00313 bool mHasExtraHeadersInReferNotifySipFragEnabled; 00314 bool mExtraHeadersInReferNotifySipFragEnabled; 00315 00316 SharedPtr<Profile> mBaseProfile; // All non-set settings will fall through to this Profile (if set) 00317 }; 00318 00319 } 00320 00321 #endif 00322 00323 /* ==================================================================== 00324 * The Vovida Software License, Version 1.0 00325 * 00326 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved. 00327 * 00328 * Redistribution and use in source and binary forms, with or without 00329 * modification, are permitted provided that the following conditions 00330 * are met: 00331 * 00332 * 1. Redistributions of source code must retain the above copyright 00333 * notice, this list of conditions and the following disclaimer. 00334 * 00335 * 2. Redistributions in binary form must reproduce the above copyright 00336 * notice, this list of conditions and the following disclaimer in 00337 * the documentation and/or other materials provided with the 00338 * distribution. 00339 * 00340 * 3. The names "VOCAL", "Vovida Open Communication Application Library", 00341 * and "Vovida Open Communication Application Library (VOCAL)" must 00342 * not be used to endorse or promote products derived from this 00343 * software without prior written permission. For written 00344 * permission, please contact vocal@vovida.org. 00345 * 00346 * 4. Products derived from this software may not be called "VOCAL", nor 00347 * may "VOCAL" appear in their name, without prior written 00348 * permission of Vovida Networks, Inc. 00349 * 00350 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 00351 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00352 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND 00353 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA 00354 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES 00355 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, 00356 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00357 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00358 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 00359 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00360 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 00361 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 00362 * DAMAGE. 00363 * 00364 * ==================================================================== 00365 * 00366 * This software consists of voluntary contributions made by Vovida 00367 * Networks, Inc. and many individuals on behalf of Vovida Networks, 00368 * Inc. For more information on Vovida Networks, Inc., please see 00369 * <http://www.vovida.org/>. 00370 * 00371 */
1.7.5.1