⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 masterprofile.hxx

📁 这是国外的resip协议栈
💻 HXX
字号:
#ifndef RESIP_MasterProfile_hxx#define RESIP_MasterProfile_hxx#include <iosfwd>#include <set>#include <map>#include "resip/stack/Headers.hxx"#include "resip/stack/MethodTypes.hxx"#include "resip/stack/Token.hxx"#include "resip/dum/UserProfile.hxx"namespace resip{class Data;class MasterProfile : public UserProfile{   public:              /// Creates an Indentity/Profile with no BaseProfile - this is the root of all profiles      MasterProfile();              /// Default is "sip"      virtual void addSupportedScheme(const Data& scheme);                virtual bool isSchemeSupported(const Data& scheme) const;      virtual void clearSupportedSchemes(void);      /// Defaults are: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE      virtual void addSupportedMethod(const MethodTypes& method);         virtual bool isMethodSupported(MethodTypes method) const;      virtual Tokens getAllowedMethods() const;      virtual Data getAllowedMethodsData() const;      virtual void clearSupportedMethods(void);      /// Default is none. Do not use to enable PRACK(100rel) support.       virtual void addSupportedOptionTag(const Token& tag);              virtual Tokens getUnsupportedOptionsTags(const Tokens& requires); // Returns list of unsupported option tags      virtual Tokens getSupportedOptionTags() const;      virtual void clearSupportedOptionTags(void);      typedef enum      {         Never,         Supported,          Required      } ReliableProvisionalMode;      // UAC PRACK support.  UPDATE must be enabled(currently defaults to on, do      // not disable w/out disabling UAC PRACK support).      //      // Flows where an an answer is received in a 180rel and subsequent O/A      // exchanges using UPDATE occur in the early dialog      // have been tested.        //      // A subsequent O/A exchange using 180rel/PRACK is also supported. This is      // a really bad idea, as an answer must be generated; the offer cannot be      // rejected. UPDATE should always be used for O/A exchanges once the      // dialog is established.      // Invite/18x(offer)/PRACK(ans) should work but has not been tested.      //      // Explicit limitations are:      // Overlapping reliable provisional responses that contain a body are not      // handled.      // Offers in a 200(PRACK) are not supported, and anyone who generates them      // should be summarily executed.      virtual void setUacReliableProvisionalMode(ReliableProvisionalMode mode);      virtual ReliableProvisionalMode getUacReliableProvisionalMode() const;      //Not supported as UAS. Calling setUacReliableProvisionalMode will result      //in an assert.      virtual void setUasReliableProvisionalMode(ReliableProvisionalMode mode);      virtual ReliableProvisionalMode getUasReliableProvisionalMode() const;      /// Default is application/sdp for INVITE, OPTIONS, PRACK and UPDATE Methods      virtual void addSupportedMimeType(const MethodTypes& method, const Mime& mimeType);            virtual bool removeSupportedMimeType(const MethodTypes& method, const Mime& mimeType);            virtual bool isMimeTypeSupported(const MethodTypes& method, const Mime& mimeType);      virtual Mimes getSupportedMimeTypes(const MethodTypes& method);      virtual void clearSupportedMimeTypes(const MethodTypes& method);      virtual void clearSupportedMimeTypes(void);  // Clear for all Methods      /// Default is no encoding      virtual void addSupportedEncoding(const Token& encoding);           virtual bool isContentEncodingSupported(const Token& contentEncoding) const;      virtual Tokens getSupportedEncodings() const;      virtual void clearSupportedEncodings(void);      /// Default is all - if nothing is set, then all are allowed      virtual void addSupportedLanguage(const Token& lang);               virtual bool isLanguageSupported(const Tokens& lang) const;      virtual Tokens getSupportedLanguages() const;      virtual void clearSupportedLanguages(void);            /// Default is to not send an Allow-Events header.      virtual void addAllowedEvent(const Token& event);               virtual bool isEventAllowed(const Tokens& event) const;      virtual Tokens getAllowedEvents() const;      virtual void clearAllowedEvents(void);            ///enable/disable content validation      virtual bool& validateContentEnabled();      virtual const bool validateContentEnabled() const;      ///enable/disable content language validation      virtual bool& validateContentLanguageEnabled();      virtual const bool validateContentLanguageEnabled() const;      ///enable/disable Accept header validation      virtual bool& validateAcceptEnabled();      virtual const bool validateAcceptEnabled() const;      ///Set this to allow the Registration Server to accept registration requests that contain       ///a To Tag.      virtual bool& allowBadRegistrationEnabled();      virtual const bool allowBadRegistrationEnabled() const;        ///Set this to include the RequestURI in merge request detection.      ///*!*!*!*!*!*! RED FLASHING LIGHT *!*!*!*!*!*!       ///When false, DUM implements the policy that all RURIs that arrive are equivalent,      ///so if a request forks and arives here with different RURIs, we reject all but one      ///of them as merged requests. This makes sense for single-line endpoints.  Nodes      ///responsible for multiple simultaneous resources (like gateways, media-servers,      ///B2BUAs, etc) need to set this to true. Applications like multi-line business      ///phones will want to carefully consider the edge case of a request that forks      ///to more than one line - if you want only one line to ring, leave this false.      ///If you want them all to ring, set it to true.            virtual bool& checkReqUriInMergeDetectionEnabled();      virtual const bool checkReqUriInMergeDetectionEnabled() const;   private:      virtual UserProfile* clone() const;      std::set<Data> mSupportedSchemes;      std::set<MethodTypes> mSupportedMethodTypes;      Tokens mSupportedMethods;      Tokens mSupportedOptionTags;      std::map<MethodTypes, Mimes> mSupportedMimeTypes;      Tokens mSupportedEncodings;      Tokens mSupportedLanguages;      Tokens mAllowedEvents;      bool mValidateContentEnabled;      bool mValidateContentLanguageEnabled;      bool mValidateAcceptEnabled;      bool mAllowBadRegistrationEnabled;          bool mCheckReqUriInMergeDetectionEnabled;      ReliableProvisionalMode mUacReliableProvisionalMode;      ReliableProvisionalMode mUasReliableProvisionalMode;};   }#endif/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -