realtimenetprots/sipfw/SIP/Registration/inc/CSIPResponseUtility.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/Registration/inc/CSIPResponseUtility.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Name          : CSIPResponseUtility.h
+* Part of       : SIP Registrations
+* Version       : SIP/6.0 
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+#ifndef CSIPRESPONSEUTILITY_H
+#define CSIPRESPONSEUTILITY_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DELARATION
+class CSIPResponse;
+class CSIPContactHeader;
+class CSIPURI;
+class MRegistrationContext;
+class CSIPViaHeader;
+
+
+class CSIPResponseUtility : public CBase
+	{
+public:
+
+   /** 
+    * @ param aSIPResponse; a CSIPResponse.
+	* @ return ETrue if the response code is 3xx-6xx, EFalse otherwise.
+	*/ 
+	static TBool IsError(CSIPResponse& aSIPResponse);
+
+   /** 
+	* Get the contact header by comparing the uri of contact in response
+	* and the uri in binding. there maybe more than one contact 
+	* headers in response. only the one which uri equals the uri 
+	* of Contact in binding is returned.
+	*
+	* @param aContactInBinding; contact header in binding.
+	* @param aSIPResponse; a CSIPResponse.
+	* @return CSIPContactHeader object. it can be 0 if the contact
+	*          can not be found from the corresponding binding or
+	*          there is no contact header in response.
+	*/ 
+	static CSIPContactHeader* ContactHeader(
+		CSIPContactHeader& aContactInBinding,
+		CSIPResponse&      aSIPResponse);
+
+   /** 
+	* Get the callId from response. leave if there is no callId header
+	* in response.
+	*
+	* @ param aSIPResponse; a CSIPResponse.
+	*/ 
+	static HBufC8* CallIdL(CSIPResponse& aSIPResponse);
+
+   /** 
+	* Get the CSeqNumber from response. 
+	* leave if there is no CSIPCSeqHeader in response.
+	*
+	* @param aSIPResponse; a CSIPResponse.
+	*/
+	static TUint CSeqValueL(CSIPResponse& aSIPResponse);
+
+   /** 
+	* Get Expires value. function first checks the expires parameter
+	* from contact header of response, if there is no expires parameter,
+	* function checks the expires header from response, if there is expires
+	* header, it copies the expires header to expires parameter and remove 
+	* expires header. if there is no expires header neither, function copies
+	* the expires parameter from binding.
+	*
+	* @param aBindingContact.
+	* @param aSIPResponse.
+	* @return KErrNone, if the response is ok, 
+	*         otherwise corresponding error code.
+	*/
+	static TUint ExpireValueL(CSIPContactHeader& aBindingContact,
+		                      CSIPResponse&      aSIPResponse);
+
+	static TInt Check2XXResponse(MRegistrationContext& aRegistration,
+		                         CSIPResponse& aResponse);
+	};
+
+#endif // CSIPRESPONSEUTILITY_H
+
+// End of File