CSIPSecAgreement Class Reference

class CSIPSecAgreement : public CBase

SipServer.exe

Inherits from

Public Member Functions
~CSIPSecAgreement ()
void HandleRequestL ( TSIPTransportParams &, CSIPRequest &, const CUri8 &, const TDesC8 &, MSIPSecUser &, TRegistrationId )
TBool IsSecAgreeResponse ( TUint )
HBufC8 * MechanismNameL ()
CSIPSecAgreement * NewLC (const TInetAddr &, const TDesC8 &, const MSIPSecUser &, MSIPSecMechanismStore &)
TBool NextHop (const TInetAddr &)
TBool NextHop (const TDesC8 &)
TBool RemoveUser (const MSIPSecUser &)
void ResponseReceivedL ( CSIPResponse &, const MSIPSecUser &, TBool )
Private Member Functions
CSIPSecAgreement (const TInetAddr &, MSIPSecMechanismStore &)
void AddUserIfNotStoredL (const MSIPSecUser &)
void ChooseMechanismL ( CSIPResponse &)
void ConstructL (const TDesC8 &, const MSIPSecUser &)
void CopySecurityServerFromResponseL ( CSIPResponse &)
void CopySecurityVerifyToRequestL ( CSIPRequest &)
void CreateSecurityVerifyL ()
CSIPSecAgreement::TState CurrentState ()
TBool IsExceptionRequest (const CSIPRequest &)
void ProcessSecurityClientL ( CSIPRequest &)
void __DbgTestInvariant ()
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Member Enumerations
enum TState { EWaitResponse , EMechanismSelected , EVerified }
Public Attributes
TSglQueLink iLink
const TInt iOffset
Private Attributes
CSIPSecClientMechanisms * iClientMechanisms
MSIPSecSecurityMechanism * iMechanism
MSIPSecMechanismStore & iMechanismStore
HBufC8 * iNextHop
TInetAddr iNextHopAddr
RPointerArray < CSIPSecurityServerHeader > iSecurityServer
RPointerArray < CSIPSecurityVerifyHeader > iSecurityVerify
CSIPURI * iUri
RPointerArray < MSIPSecUser > iUsers

Constructor & Destructor Documentation

CSIPSecAgreement(const TInetAddr &, MSIPSecMechanismStore &)

CSIPSecAgreement ( const TInetAddr & aNextHopAddr,
MSIPSecMechanismStore & aMechanismStore
) [private]

Parameters

const TInetAddr & aNextHopAddr
MSIPSecMechanismStore & aMechanismStore

~CSIPSecAgreement()

~CSIPSecAgreement ( )

Member Functions Documentation

AddUserIfNotStoredL(const MSIPSecUser &)

void AddUserIfNotStoredL ( const MSIPSecUser & aUser ) [private]

If aUser is not yet present in iUsers, it is added.

Parameters

const MSIPSecUser & aUser SIPSec user

ChooseMechanismL(CSIPResponse &)

void ChooseMechanismL ( CSIPResponse & aResponse ) [private]

Parameters

CSIPResponse & aResponse

ConstructL(const TDesC8 &, const MSIPSecUser &)

void ConstructL ( const TDesC8 & aNextHop,
const MSIPSecUser & aUser
) [private]

Parameters

const TDesC8 & aNextHop
const MSIPSecUser & aUser

CopySecurityServerFromResponseL(CSIPResponse &)

void CopySecurityServerFromResponseL ( CSIPResponse & aResponse ) [private]

Parameters

CSIPResponse & aResponse

CopySecurityVerifyToRequestL(CSIPRequest &)

void CopySecurityVerifyToRequestL ( CSIPRequest & aRequest ) const [private]

Parameters

CSIPRequest & aRequest

CreateSecurityVerifyL()

void CreateSecurityVerifyL ( ) [private]

CurrentState()

CSIPSecAgreement::TState CurrentState ( ) const [private]

HandleRequestL(TSIPTransportParams &, CSIPRequest &, const CUri8 &, const TDesC8 &, MSIPSecUser &, TRegistrationId)

void HandleRequestL ( TSIPTransportParams & aTransportParams,
CSIPRequest & aRequest,
const CUri8 & aRemoteTarget,
const TDesC8 & aOutboundProxy,
MSIPSecUser & aUser,
TRegistrationId aRegistrationId
)

Parameters

TSIPTransportParams & aTransportParams
CSIPRequest & aRequest
const CUri8 & aRemoteTarget
const TDesC8 & aOutboundProxy
MSIPSecUser & aUser
TRegistrationId aRegistrationId

IsExceptionRequest(const CSIPRequest &)

TBool IsExceptionRequest ( const CSIPRequest & aRequest ) const [private]

Checks if the SIP request is one of those for which the Security-Verify headers are not processed.

Parameters

const CSIPRequest & aRequest

IsSecAgreeResponse(TUint)

TBool IsSecAgreeResponse ( TUint aResponseCode ) [static]

Checks if the SIP response should be handled by the security agreement procedures.

Parameters

TUint aResponseCode SIP response code

MechanismNameL()

HBufC8 * MechanismNameL ( ) const

NewLC(const TInetAddr &, const TDesC8 &, const MSIPSecUser &, MSIPSecMechanismStore &)

CSIPSecAgreement * NewLC ( const TInetAddr & aNextHopAddr,
const TDesC8 & aNextHop,
const MSIPSecUser & aUser,
MSIPSecMechanismStore & aMechanismStore
) [static]

Create agreement

Parameters

const TInetAddr & aNextHopAddr Next-hop ip-address
const TDesC8 & aNextHop Next-hop as descriptor
const MSIPSecUser & aUser SIPSec user
MSIPSecMechanismStore & aMechanismStore Existing mechanisms

NextHop(const TInetAddr &)

TBool NextHop ( const TInetAddr & aNextHopAddr ) const

Parameters

const TInetAddr & aNextHopAddr

NextHop(const TDesC8 &)

TBool NextHop ( const TDesC8 & aNextHop ) const

Parameters

const TDesC8 & aNextHop

ProcessSecurityClientL(CSIPRequest &)

void ProcessSecurityClientL ( CSIPRequest & aRequest ) const [private]

Parameters

CSIPRequest & aRequest

RemoveUser(const MSIPSecUser &)

TBool RemoveUser ( const MSIPSecUser & aUser )

Removes a SIPSec user from the agreement, and checks if this agreement can be removed. Agreement can be removed when it has no users.

Parameters

const MSIPSecUser & aUser SIPSec user to detach

ResponseReceivedL(CSIPResponse &, const MSIPSecUser &, TBool)

void ResponseReceivedL ( CSIPResponse & aResponse,
const MSIPSecUser & aUser,
TBool aUseSecurityServerHeaders
)

Process a received SIP response.

Parameters

CSIPResponse & aResponse SIP response
const MSIPSecUser & aUser SIPSec user
TBool aUseSecurityServerHeaders Tells if the Security-Server headers in aResponse can be used.

__DbgTestInvariant()

void __DbgTestInvariant ( ) const [private]

Member Enumerations Documentation

Enum TState

Enumerators

EWaitResponse
EMechanismSelected
EVerified

Member Data Documentation

CSIPSecClientMechanisms * iClientMechanisms

CSIPSecClientMechanisms * iClientMechanisms [private]

TSglQueLink iLink

TSglQueLink iLink

MSIPSecSecurityMechanism * iMechanism

MSIPSecSecurityMechanism * iMechanism [private]

MSIPSecMechanismStore & iMechanismStore

MSIPSecMechanismStore & iMechanismStore [private]

HBufC8 * iNextHop

HBufC8 * iNextHop [private]

TInetAddr iNextHopAddr

TInetAddr iNextHopAddr [private]

const TInt iOffset

const TInt iOffset [static]

RPointerArray< CSIPSecurityServerHeader > iSecurityServer

RPointerArray < CSIPSecurityServerHeader > iSecurityServer [private]

RPointerArray< CSIPSecurityVerifyHeader > iSecurityVerify

RPointerArray < CSIPSecurityVerifyHeader > iSecurityVerify [private]

CSIPURI * iUri

CSIPURI * iUri [private]

RPointerArray< MSIPSecUser > iUsers

RPointerArray < MSIPSecUser > iUsers [private]