diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/Registration/inc/CSIPResponseUtility.h --- /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 + +// 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