CSIPSecAgreement Class Reference

class CSIPSecAgreement : public CBase

SipServer.exe

Inherits from

Public Member Functions
~CSIPSecAgreement()
voidHandleRequestL(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 &)
voidResponseReceivedL(CSIPResponse &, const MSIPSecUser &, TBool)
Private Member Functions
CSIPSecAgreement(const TInetAddr &, MSIPSecMechanismStore &)
voidAddUserIfNotStoredL(const MSIPSecUser &)
voidChooseMechanismL(CSIPResponse &)
voidConstructL(const TDesC8 &, const MSIPSecUser &)
voidCopySecurityServerFromResponseL(CSIPResponse &)
voidCopySecurityVerifyToRequestL(CSIPRequest &)
voidCreateSecurityVerifyL()
CSIPSecAgreement::TState CurrentState()
TBool IsExceptionRequest(const CSIPRequest &)
voidProcessSecurityClientL(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
enumTState { EWaitResponse, EMechanismSelected, EVerified }
Public Attributes
TSglQueLink iLink
const TIntiOffset
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 &)

voidAddUserIfNotStoredL(const MSIPSecUser &aUser)[private]

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

Parameters

const MSIPSecUser & aUserSIPSec user

ChooseMechanismL(CSIPResponse &)

voidChooseMechanismL(CSIPResponse &aResponse)[private]

Parameters

CSIPResponse & aResponse

ConstructL(const TDesC8 &, const MSIPSecUser &)

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

Parameters

const TDesC8 & aNextHop
const MSIPSecUser & aUser

CopySecurityServerFromResponseL(CSIPResponse &)

voidCopySecurityServerFromResponseL(CSIPResponse &aResponse)[private]

Parameters

CSIPResponse & aResponse

CopySecurityVerifyToRequestL(CSIPRequest &)

voidCopySecurityVerifyToRequestL(CSIPRequest &aRequest)const [private]

Parameters

CSIPRequest & aRequest

CreateSecurityVerifyL()

voidCreateSecurityVerifyL()[private]

CurrentState()

CSIPSecAgreement::TState CurrentState()const [private]

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

voidHandleRequestL(TSIPTransportParams &aTransportParams,
CSIPRequest &aRequest,
const CUri8 &aRemoteTarget,
const TDesC8 &aOutboundProxy,
MSIPSecUser &aUser,
TRegistrationIdaRegistrationId
)

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(TUintaResponseCode)[static]

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

Parameters

TUint aResponseCodeSIP 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 & aNextHopAddrNext-hop ip-address
const TDesC8 & aNextHopNext-hop as descriptor
const MSIPSecUser & aUserSIPSec user
MSIPSecMechanismStore & aMechanismStoreExisting 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 &)

voidProcessSecurityClientL(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 & aUserSIPSec user to detach

ResponseReceivedL(CSIPResponse &, const MSIPSecUser &, TBool)

voidResponseReceivedL(CSIPResponse &aResponse,
const MSIPSecUser &aUser,
TBoolaUseSecurityServerHeaders
)

Process a received SIP response.

Parameters

CSIPResponse & aResponseSIP response
const MSIPSecUser & aUserSIPSec user
TBool aUseSecurityServerHeadersTells 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 TIntiOffset[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]