Click here to Skip to main content
15,886,799 members
Articles / Programming Languages / Visual C++ 10.0

SIP Stack (1 of 3)

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
20 Aug 2012CPOL3 min read 30K   1.7K   4  
SIP Stack Implementation on the basis of RFC SIP 3261 Specification
#pragma once

#ifndef CSIPMessageParser_h
	#define CSIPMessageParser_h
	
	#include "HHCoreInclude\CMessageData.h"

	#include "ASIPParser.h"
	#include "CSIPURIParser.h"
	#include "CSIPAcceptParser.h"			
	#include "CSIPAcceptEncodingParser.h"		
	#include "CSIPAcceptLanguageParser.h"		
	#include "CSIPAlertInfoParser.h"			
	#include "CSIPAllowParser.h"				
	#include "CSIPAuthenticationInfoParser.h"	
	#include "CSIPAuthorizationParser.h"	
	#include "CSIPCallIDParser.h"			
	#include "CSIPCallInfoParser.h"			
	#include "CSIPContactParser.h"		
	#include "CSIPContentDispositionParser.h"		
	#include "CSIPContentEncodingParser.h"		
	#include "CSIPContentLanguageParser.h"		
	#include "CSIPContentLengthParser.h"			
	#include "CSIPContentTypeParser.h"			
	#include "CSIPCSeqParser.h"				
	#include "CSIPDateParser.h"				
	#include "CSIPErrorInfoParser.h"			
	#include "CSIPExpiresParser.h"			
	#include "CSIPFromParser.h"				
	#include "CSIPInReplyToParser.h"			
	#include "CSIPMaxForwardsParser.h"			
	#include "CSIPMimeVersionParser.h"			
	#include "CSIPMinExpiresParser.h"			
	#include "CSIPOrganizationParser.h"			
	#include "CSIPPriorityParser.h"			
	#include "CSIPProxyAuthenticateParser.h"   
	#include "CSIPProxyAuthorizationParser.h"	
	#include "CSIPProxyRequireParser.h"			
	#include "CSIPRecordRouteParser.h"			
	#include "CSIPReplyToParser.h"			
	#include "CSIPRequireParser.h"			
	#include "CSIPRetryAfterParser.h"			
	#include "CSIPRouteParser.h"				
	#include "CSIPServerParser.h"			
	#include "CSIPSubjectParser.h"			
	#include "CSIPSupportedParser.h"			
	#include "CSIPTimestampParser.h"			
	#include "CSIPToParser.h"				
	#include "CSIPUnSupportedParser.h"			
	#include "CSIPUserAgentParser.h"			
	#include "CSIPViaParser.h"				
	#include "CSIPWarningParser.h"			
	#include "CSIPWWWAuthenticateParser.h"	


	namespace SIPParserFW
	{
		class SIP_PARSER_DLL_DECLARATION_SPECIFIER CSIPMessageParser : public ASIPParser 
		{
			friend class CPoolObject<CSIPMessageParser> ;

		protected:
			CSIPMessageParser() ;
			CSIPMessageParser( const CSIPMessageParser &SIPMessageParser ) ;
			
			virtual ~CSIPMessageParser() ;

			CSIPMessageParser& operator=( const CSIPMessageParser &SIPMessageParser ) ;

		public:
			void Release() ;
			ASIPParser* Copy() ;

			FW_RETURN_TYPE Parse( const std::string &strStringToParse ) ;
			std::string ToString() const ;

		private:
			FW_RETURN_TYPE ParseRequestLine( const std::string &strStringToParse ) ;
			FW_RETURN_TYPE ParseResponseStatusLine( const std::string &strStringToParse ) ;
			FW_RETURN_TYPE ParseMessageHeaders( const std::string &strStringToParse, 
														std::string::size_type &iMessageBodyPosition ) ;
		public:
			FW_RETURN_TYPE QuerySIPMethodData( CMessageData **pSIPMethodData ) ;
			FW_RETURN_TYPE QuerySIPRequestURIParser( CSIPURIParser **pSIPRequestURIParser ) ;
			FW_RETURN_TYPE QuerySIPVersionData( CMessageData **pSIPVersionData ) ;
			FW_RETURN_TYPE QuerySIPStatusCodeData( CMessageData **pSIPStatusCodeData ) ;
			FW_RETURN_TYPE QuerySIPReasonPhraseData( CMessageData **pSIPReasonPhraseData ) ;
			FW_RETURN_TYPE QuerySIPAcceptParser( CSIPAcceptParser **pSIPAcceptParser ) ;
			FW_RETURN_TYPE QuerySIPAcceptEncodingParser( CSIPAcceptEncodingParser **pSIPAcceptEncodingParser ) ;
			FW_RETURN_TYPE QuerySIPAcceptLanguageParser( CSIPAcceptLanguageParser **pSIPAcceptLanguageParser ) ;
			FW_RETURN_TYPE QuerySIPAlertInfoParser( CSIPAlertInfoParser **pSIPAlertInfoParser ) ;
			FW_RETURN_TYPE QuerySIPAllowParser( CSIPAllowParser **pSIPAllowParser ) ;
			FW_RETURN_TYPE QuerySIPAuthenticationInfoParser( CSIPAuthenticationInfoParser **pSIPAuthenticationInfoParser ) ;
			FW_RETURN_TYPE QuerySIPAuthorizationParser( CSIPAuthorizationParser **pSIPAuthorizationParser ) ;
			FW_RETURN_TYPE QuerySIPCallIDParser( CSIPCallIDParser **pSIPCallIDParser ) ;
			FW_RETURN_TYPE QuerySIPCallInfoParser( CSIPCallInfoParser **pSIPCallInfoParser ) ;
			FW_RETURN_TYPE QuerySIPContactParser( CSIPContactParser **pSIPContactParser ) ;
			FW_RETURN_TYPE QuerySIPContentDispositionParser( CSIPContentDispositionParser **pSIPContentDispositionParser ) ;
			FW_RETURN_TYPE QuerySIPContentEncodingParser( CSIPContentEncodingParser **pSIPContentEncodingParser ) ;
			FW_RETURN_TYPE QuerySIPContentLanguageParser( CSIPContentLanguageParser **pSIPContentLanguageParser ) ;
			FW_RETURN_TYPE QuerySIPContentLengthParser( CSIPContentLengthParser **pSIPContentLengthParser ) ;
			FW_RETURN_TYPE QuerySIPContentTypeParser( CSIPContentTypeParser **pSIPContentTypeParser ) ;
			FW_RETURN_TYPE QuerySIPCSeqParser( CSIPCSeqParser **pSIPCSeqParser ) ;
			FW_RETURN_TYPE QuerySIPDateParser( CSIPDateParser **pSIPDateParser ) ;
			FW_RETURN_TYPE QuerySIPErrorInfoParser( CSIPErrorInfoParser **pSIPErrorInfoParser ) ;
			FW_RETURN_TYPE QuerySIPExpiresParser( CSIPExpiresParser **pSIPExpiresParser ) ;
			FW_RETURN_TYPE QuerySIPFromParser( CSIPFromParser **pSIPFromParser ) ;
			FW_RETURN_TYPE QuerySIPInReplyToParser( CSIPInReplyToParser **pSIPInReplyToParser ) ;
			FW_RETURN_TYPE QuerySIPMaxForwardsParser( CSIPMaxForwardsParser **pSIPMaxForwardsParser ) ;
			FW_RETURN_TYPE QuerySIPMimeVersionParser( CSIPMimeVersionParser **pSIPMimeVersionParser ) ;
			FW_RETURN_TYPE QuerySIPMinExpiresParser( CSIPMinExpiresParser **pSIPMinExpiresParser ) ;
			FW_RETURN_TYPE QuerySIPOrganizationParser( CSIPOrganizationParser **pSIPOrganizationParser ) ;
			FW_RETURN_TYPE QuerySIPPriorityParser( CSIPPriorityParser **pSIPPriorityParser ) ;
			FW_RETURN_TYPE QuerySIPProxyAuthenticateParser( CSIPProxyAuthenticateParser **pSIPProxyAuthenticateParser ) ;
			FW_RETURN_TYPE QuerySIPProxyAuthorizationParser( CSIPProxyAuthorizationParser **pSIPProxyAuthorizationParser ) ;
			FW_RETURN_TYPE QuerySIPProxyRequireParser( CSIPProxyRequireParser **pSIPProxyRequireParser ) ;
			FW_RETURN_TYPE QuerySIPRecordRouteParser( CSIPRecordRouteParser **pSIPRecordRouteParser ) ;
			FW_RETURN_TYPE QuerySIPReplyToParser( CSIPReplyToParser **pSIPReplyToParser ) ;
			FW_RETURN_TYPE QuerySIPRequireParser( CSIPRequireParser **pSIPRequireParser ) ;
			FW_RETURN_TYPE QuerySIPRetryAfterParser( CSIPRetryAfterParser **pSIPRetryAfterParser ) ;
			FW_RETURN_TYPE QuerySIPRouteParser( CSIPRouteParser **pSIPRouteParser ) ;
			FW_RETURN_TYPE QuerySIPServerParser( CSIPServerParser **pSIPServerParser ) ;
			FW_RETURN_TYPE QuerySIPSubjectParser( CSIPSubjectParser **pSIPSubjectParser ) ;
			FW_RETURN_TYPE QuerySIPSupportedParser( CSIPSupportedParser **pSIPSupportedParser ) ;
			FW_RETURN_TYPE QuerySIPTimestampParser( CSIPTimestampParser **pSIPTimestampParser ) ;
			FW_RETURN_TYPE QuerySIPToParser( CSIPToParser **pSIPToParser ) ;
			FW_RETURN_TYPE QuerySIPUnSupportedParser( CSIPUnSupportedParser **pSIPUnSupportedParser ) ;
			FW_RETURN_TYPE QuerySIPUserAgentParser( CSIPUserAgentParser **pSIPUserAgentParser ) ;
			FW_RETURN_TYPE QuerySIPViaParser( CSIPViaParser **pSIPViaParser ) ;
			FW_RETURN_TYPE QuerySIPWarningParser( CSIPWarningParser **pSIPWarningParser ) ;
			FW_RETURN_TYPE QuerySIPWWWAuthenticateParser( CSIPWWWAuthenticateParser **pSIPWWWAuthenticateParser ) ;
			FW_RETURN_TYPE QuerySIPMessageBodyData( CMessageData **pSIPMessageBodyData ) ;

			void SetSIPMethod( const std::string &strSIPMethod ) ;
			std::string GetSIPMethod() const ;

			void SetSIPVersion( const std::string &strSIPVersion ) ;
			std::string GetSIPVersion() const ;

			void SetSIPStatusCode( const std::string &strSIPStatusCode ) ;
			std::string GetSIPStatusCode() const ;

			void SetSIPReasonPhrase( const std::string &strSIPReasonPhrase ) ;
			std::string GetSIPReasonPhrase() const ;

			void SetSIPMessageBody( const std::string &strSIPMessageBody ) ;
			std::string GetSIPMessageBody() const ;
			
			CSIPURIParser* GetSIPRequestURIParser() ;
			CSIPAcceptParser* GetSIPAcceptParser() ;
			CSIPAcceptEncodingParser* GetSIPAcceptEncodingParser() ;
			CSIPAcceptLanguageParser* GetSIPAcceptLanguageParser() ;
			CSIPAlertInfoParser* GetSIPAlertInfoParser() ;
			CSIPAllowParser* GetSIPAllowParser() ;
			CSIPAuthenticationInfoParser* GetSIPAuthenticationInfoParser() ;
			CSIPAuthorizationParser* GetSIPAuthorizationParser() ;
			CSIPCallIDParser* GetSIPCallIDParser() ;
			CSIPCallInfoParser* GetSIPCallInfoParser() ;
			CSIPContactParser* GetSIPContactParser() ;
			CSIPContentDispositionParser* GetSIPContentDispositionParser() ;
			CSIPContentEncodingParser* GetSIPContentEncodingParser() ;
			CSIPContentLanguageParser* GetSIPContentLanguageParser() ;
			CSIPContentLengthParser* GetSIPContentLengthParser() ;
			CSIPContentTypeParser* GetSIPContentTypeParser() ;
			CSIPCSeqParser* GetSIPCSeqParser() ;
			CSIPDateParser* GetSIPDateParser() ;
			CSIPErrorInfoParser* GetSIPErrorInfoParser() ;
			CSIPExpiresParser* GetSIPExpiresParser() ;
			CSIPFromParser* GetSIPFromParser() ;
			CSIPInReplyToParser* GetSIPInReplyToParser() ;
			CSIPMaxForwardsParser* GetSIPMaxForwardsParser() ;
			CSIPMimeVersionParser* GetSIPMimeVersionParser() ;
			CSIPMinExpiresParser* GetSIPMinExpiresParser() ;
			CSIPOrganizationParser* GetSIPOrganizationParser() ;
			CSIPPriorityParser* GetSIPPriorityParser() ;
			CSIPProxyAuthenticateParser* GetSIPProxyAuthenticateParser() ;
			CSIPProxyAuthorizationParser* GetSIPProxyAuthorizationParser() ;
			CSIPProxyRequireParser* GetSIPProxyRequireParser() ;
			CSIPRecordRouteParser* GetSIPRecordRouteParser() ;
			CSIPReplyToParser* GetSIPReplyToParser() ;
			CSIPRequireParser* GetSIPRequireParser() ;
			CSIPRetryAfterParser* GetSIPRetryAfterParser() ;
			CSIPRouteParser* GetSIPRouteParser() ;
			CSIPServerParser* GetSIPServerParser() ;
			CSIPSubjectParser* GetSIPSubjectParser() ;
			CSIPSupportedParser* GetSIPSupportedParser() ;
			CSIPTimestampParser* GetSIPTimestampParser() ;
			CSIPToParser* GetSIPToParser() ;
			CSIPUnSupportedParser* GetSIPUnSupportedParser() ;
			CSIPUserAgentParser* GetSIPUserAgentParser() ;
			CSIPViaParser* GetSIPViaParser() ;
			CSIPWarningParser* GetSIPWarningParser() ;
			CSIPWWWAuthenticateParser* GetSIPWWWAuthenticateParser() ;

		public: //Auxillary Functions
			std::string GetBranchID() ;
			bool IsSIPResponse() ;
			bool IsSIPFinalResponse() ;
			bool IsSIPNon2XXFinalResponse() ;
			bool IsSIP2XXFinalResponse() ;
			bool IsSIPProvisionalResponse() ;
		
		public:
			static CSIPMessageParser* GetAvailable() ;

		protected:
			void ReleaseParameters() ;

		private:
			void ReleaseCSIPMessageParserData() ;
			void CopyCSIPMessageParserData( const CSIPMessageParser &SIPMessageParser ) ;

		private:
			CMessageData							*m_pSIPMethodData ;					// For SIP Request 
			CSIPURIParser							*m_pSIPRequestURIParser ;			// For SIP Request
			CMessageData							*m_pSIPVersionData ;				// For SIP Request & Response
			CMessageData							*m_pSIPStatusCodeData ;				// For SIP Response
			CMessageData							*m_pSIPReasonPhraseData ;			// For SIP Response

			CSIPAcceptParser						*m_pSIPAcceptParser ;
			CSIPAcceptEncodingParser				*m_pSIPAcceptEncodingParser ;
			CSIPAcceptLanguageParser				*m_pSIPAcceptLanguageParser ;
			CSIPAlertInfoParser						*m_pSIPAlertInfoParser ;
			CSIPAllowParser							*m_pSIPAllowParser ;
			CSIPAuthenticationInfoParser	*m_pSIPAuthenticationInfoParser ;
			CSIPAuthorizationParser					*m_pSIPAuthorizationParser ;
			CSIPCallIDParser						*m_pSIPCallIDParser ;
			CSIPCallInfoParser						*m_pSIPCallInfoParser ;
			CSIPContactParser				*m_pSIPContactParser ;
			CSIPContentDispositionParser			*m_pSIPContentDispositionParser ;
			CSIPContentEncodingParser				*m_pSIPContentEncodingParser ;
			CSIPContentLanguageParser				*m_pSIPContentLanguageParser ;
			CSIPContentLengthParser					*m_pSIPContentLengthParser ;
			CSIPContentTypeParser					*m_pSIPContentTypeParser ;
			CSIPCSeqParser							*m_pSIPCSeqParser ;
			CSIPDateParser							*m_pSIPDateParser ;
			CSIPErrorInfoParser						*m_pSIPErrorInfoParser ;
			CSIPExpiresParser						*m_pSIPExpiresParser ;
			CSIPFromParser							*m_pSIPFromParser ;
			CSIPInReplyToParser						*m_pSIPInReplyToParser ;
			CSIPMaxForwardsParser					*m_pSIPMaxForwardsParser ;
			CSIPMimeVersionParser					*m_pSIPMimeVersionParser ;
			CSIPMinExpiresParser					*m_pSIPMinExpiresParser ;
			CSIPOrganizationParser					*m_pSIPOrganizationParser ;
			CSIPPriorityParser						*m_pSIPPriorityParser ;
			CSIPProxyAuthenticateParser				*m_pSIPProxyAuthenticateParser ;
			CSIPProxyAuthorizationParser			*m_pSIPProxyAuthorizationParser ;
			CSIPProxyRequireParser					*m_pSIPProxyRequireParser ;
			CSIPRecordRouteParser					*m_pSIPRecordRouteParser ;
			CSIPReplyToParser						*m_pSIPReplyToParser ;
			CSIPRequireParser						*m_pSIPRequireParser ;
			CSIPRetryAfterParser					*m_pSIPRetryAfterParser ;
			CSIPRouteParser							*m_pSIPRouteParser ;
			CSIPServerParser						*m_pSIPServerParser ;
			CSIPSubjectParser						*m_pSIPSubjectParser ;
			CSIPSupportedParser						*m_pSIPSupportedParser ;
			CSIPTimestampParser						*m_pSIPTimestampParser ;
			CSIPToParser							*m_pSIPToParser ;
			CSIPUnSupportedParser					*m_pSIPUnSupportedParser ;
			CSIPUserAgentParser						*m_pSIPUserAgentParser ;
			CSIPViaParser							*m_pSIPViaParser ;
			CSIPWarningParser						*m_pSIPWarningParser ;
			CSIPWWWAuthenticateParser				*m_pSIPWWWAuthenticateParser ;

			//CSIPParamListParser *m_pSIPFromParameters ;

			CMessageData							*m_pSIPMessageBodyData ;
		} ;

		inline CSIPURIParser* CSIPMessageParser::GetSIPRequestURIParser() 
		{
			return m_pSIPRequestURIParser ;
		}

		inline CSIPAcceptParser* CSIPMessageParser::GetSIPAcceptParser() 
		{
			return m_pSIPAcceptParser ;
		}

		inline CSIPAcceptEncodingParser* CSIPMessageParser::GetSIPAcceptEncodingParser() 
		{
			return m_pSIPAcceptEncodingParser ;
		}

		inline CSIPAcceptLanguageParser* CSIPMessageParser::GetSIPAcceptLanguageParser() 
		{
			return m_pSIPAcceptLanguageParser ;
		}

		inline CSIPAlertInfoParser* CSIPMessageParser::GetSIPAlertInfoParser() 
		{
			return m_pSIPAlertInfoParser ;
		}

		inline CSIPAllowParser* CSIPMessageParser::GetSIPAllowParser() 
		{
			return m_pSIPAllowParser ;
		}

		inline CSIPAuthenticationInfoParser* CSIPMessageParser::GetSIPAuthenticationInfoParser() 
		{
			return m_pSIPAuthenticationInfoParser ;
		}

		inline CSIPAuthorizationParser* CSIPMessageParser::GetSIPAuthorizationParser() 
		{
			return m_pSIPAuthorizationParser ;
		}

		inline CSIPCallIDParser* CSIPMessageParser::GetSIPCallIDParser() 
		{
			return m_pSIPCallIDParser ;
		}

		inline CSIPCallInfoParser* CSIPMessageParser::GetSIPCallInfoParser() 
		{
			return m_pSIPCallInfoParser ;
		}

		inline CSIPContactParser* CSIPMessageParser::GetSIPContactParser() 
		{
			return m_pSIPContactParser ;
		}

		inline CSIPContentDispositionParser* CSIPMessageParser::GetSIPContentDispositionParser() 
		{
			return m_pSIPContentDispositionParser ;
		}

		inline CSIPContentEncodingParser* CSIPMessageParser::GetSIPContentEncodingParser() 
		{
			return m_pSIPContentEncodingParser ;
		}

		inline CSIPContentLanguageParser* CSIPMessageParser::GetSIPContentLanguageParser() 
		{
			return m_pSIPContentLanguageParser ;
		}

		inline CSIPContentLengthParser* CSIPMessageParser::GetSIPContentLengthParser() 
		{
			return m_pSIPContentLengthParser ;
		}

		inline CSIPContentTypeParser* CSIPMessageParser::GetSIPContentTypeParser() 
		{
			return m_pSIPContentTypeParser ;
		}

		inline CSIPCSeqParser* CSIPMessageParser::GetSIPCSeqParser() 
		{
			return m_pSIPCSeqParser ;
		}

		inline CSIPDateParser* CSIPMessageParser::GetSIPDateParser() 
		{
			return m_pSIPDateParser ;
		}

		inline CSIPErrorInfoParser* CSIPMessageParser::GetSIPErrorInfoParser() 
		{
			return m_pSIPErrorInfoParser ;
		}

		inline CSIPExpiresParser* CSIPMessageParser::GetSIPExpiresParser() 
		{
			return m_pSIPExpiresParser ;
		}

		inline CSIPFromParser* CSIPMessageParser::GetSIPFromParser() 
		{
			return m_pSIPFromParser ;
		}

		inline CSIPInReplyToParser* CSIPMessageParser::GetSIPInReplyToParser() 
		{
			return m_pSIPInReplyToParser ;
		}

		inline CSIPMaxForwardsParser* CSIPMessageParser::GetSIPMaxForwardsParser() 
		{
			return m_pSIPMaxForwardsParser ;
		}

		inline CSIPMimeVersionParser* CSIPMessageParser::GetSIPMimeVersionParser() 
		{
			return m_pSIPMimeVersionParser ;
		}

		inline CSIPMinExpiresParser* CSIPMessageParser::GetSIPMinExpiresParser() 
		{
			return m_pSIPMinExpiresParser ;
		}

		inline CSIPOrganizationParser* CSIPMessageParser::GetSIPOrganizationParser() 
		{
			return m_pSIPOrganizationParser ;
		}

		inline CSIPPriorityParser* CSIPMessageParser::GetSIPPriorityParser() 
		{
			return m_pSIPPriorityParser ;
		}

		inline CSIPProxyAuthenticateParser* CSIPMessageParser::GetSIPProxyAuthenticateParser() 
		{
			return m_pSIPProxyAuthenticateParser ;
		}

		inline CSIPProxyAuthorizationParser* CSIPMessageParser::GetSIPProxyAuthorizationParser() 
		{
			return m_pSIPProxyAuthorizationParser ;
		}

		inline CSIPProxyRequireParser* CSIPMessageParser::GetSIPProxyRequireParser() 
		{
			return m_pSIPProxyRequireParser ;
		}

		inline CSIPRecordRouteParser* CSIPMessageParser::GetSIPRecordRouteParser() 
		{
			return m_pSIPRecordRouteParser ;
		}

		inline CSIPReplyToParser* CSIPMessageParser::GetSIPReplyToParser() 
		{
			return m_pSIPReplyToParser ;
		}

		inline CSIPRequireParser* CSIPMessageParser::GetSIPRequireParser() 
		{
			return m_pSIPRequireParser ;
		}

		inline CSIPRetryAfterParser* CSIPMessageParser::GetSIPRetryAfterParser() 
		{
			return m_pSIPRetryAfterParser ;
		}

		inline CSIPRouteParser* CSIPMessageParser::GetSIPRouteParser() 
		{
			return m_pSIPRouteParser ;
		}

		inline CSIPServerParser* CSIPMessageParser::GetSIPServerParser() 
		{
			return m_pSIPServerParser ;
		}

		inline CSIPSubjectParser* CSIPMessageParser::GetSIPSubjectParser() 
		{
			return m_pSIPSubjectParser ;
		}

		inline CSIPSupportedParser* CSIPMessageParser::GetSIPSupportedParser() 
		{
			return m_pSIPSupportedParser ;
		}

		inline CSIPTimestampParser* CSIPMessageParser::GetSIPTimestampParser() 
		{
			return m_pSIPTimestampParser ;
		}

		inline CSIPToParser* CSIPMessageParser::GetSIPToParser() 
		{
			return m_pSIPToParser ;
		}

		inline CSIPUnSupportedParser* CSIPMessageParser::GetSIPUnSupportedParser() 
		{
			return m_pSIPUnSupportedParser ;
		}

		inline CSIPUserAgentParser* CSIPMessageParser::GetSIPUserAgentParser() 
		{
			return m_pSIPUserAgentParser ;
		}

		inline CSIPViaParser* CSIPMessageParser::GetSIPViaParser() 
		{
			return m_pSIPViaParser ;
		}

		inline CSIPWarningParser* CSIPMessageParser::GetSIPWarningParser() 
		{
			return m_pSIPWarningParser ;
		}

		inline CSIPWWWAuthenticateParser* CSIPMessageParser::GetSIPWWWAuthenticateParser() 
		{
			return m_pSIPWWWAuthenticateParser ;
		}
		
	} // End namespace

#endif

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
India India
Hatim Haidry

VC++, Technical Architect

India

haidryhatim@gmail.com

Comments and Discussions