CMceSipConnection Class Reference

class CMceSipConnection : public CBase

MCE SIP Connection.

Since

Inherits from

Public Member Functions
~CMceSipConnection()
TUint32 AccessPointId()
voidAttachL(CMceCsSubSession &)
CSIPConnection &Connection()
voidConnectionStateChanged(CSIPConnection::TState)
TInt Detach(CMceCsSubSession &)
voidErrorOccured(TInt, CSIPTransactionBase &)
voidErrorOccured(TInt, CSIPClientTransaction &, CSIPRegistrationBinding &)
voidErrorOccured(TInt, CSIPTransactionBase &, CSIPDialogAssocBase &)
voidErrorOccured(TInt, CSIPRefresh &)
voidErrorOccured(TInt, CSIPRegistrationBinding &)
voidErrorOccured(TInt, CSIPDialogAssocBase &)
TInetAddr IPAddressL(TUint32)
voidIncomingRequest(CSIPServerTransaction *)
voidIncomingRequest(CSIPServerTransaction *, CSIPDialog &)
voidIncomingResponse(CSIPClientTransaction &)
voidIncomingResponse(CSIPClientTransaction &, CSIPDialogAssocBase &)
voidIncomingResponse(CSIPClientTransaction &, CSIPInviteDialogAssoc *)
voidIncomingResponse(CSIPClientTransaction &, CSIPRegistrationBinding &)
voidInviteCanceled(CSIPServerTransaction &)
voidInviteCompleted(CSIPClientTransaction &)
TBool IsProfileUsedInSession(CSIPProfile &)
TInetAddr LocalIPAddressL(TInetAddr *)
CMceSipConnection *NewLC(CMceSipManager &, CSIPProfile &, CSIPProfileRegistry &)
CMceSipConnection *NewLC(CMceSipManager &, TUint32)
CSIPConnection::TState State()
voidUpdateConnectionL(TUint)
Private Member Functions
CMceSipConnection(CMceSipManager &, CSIPProfile &)
CMceSipConnection(CMceSipManager &, TUint32)
voidConstructL(CSIPProfile &, CSIPProfileRegistry &)
voidConstructL()
voidFillWithMatchingAddrFamily(TInetAddr &, const TInetAddr *)
voidReject(CSIPInviteDialogAssoc *)
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 Attributes
CSIPConnection *iClientConnection
TUint iCurrentSignallingTypeOfService
TUint32 iIAPId
CMceLocalAddrResolver *iLocalAddrResolver
CMceSipManager &iSessionManager
RPointerArray< CMceCsSubSession >iSessions

Constructor & Destructor Documentation

CMceSipConnection(CMceSipManager &, CSIPProfile &)

CMceSipConnection(CMceSipManager &aSessionManager,
CSIPProfile &aProfile
)[private]

Parameters

CMceSipManager & aSessionManager
CSIPProfile & aProfile

CMceSipConnection(CMceSipManager &, TUint32)

CMceSipConnection(CMceSipManager &aSessionManager,
TUint32aIAPId
)[private]

Parameters

CMceSipManager & aSessionManager
TUint32 aIAPId

~CMceSipConnection()

~CMceSipConnection()

Destructor.

Member Functions Documentation

AccessPointId()

TUint32 AccessPointId()const

return access point id

AttachL(CMceCsSubSession &)

voidAttachL(CMceCsSubSession &aSession)

Attach session to this connection Leaves, if SIP connection is not active or session is allready attached

Parameters

CMceCsSubSession & aSessionsession

Connection()

CSIPConnection &Connection()const

return connection

ConnectionStateChanged(CSIPConnection::TState)

voidConnectionStateChanged(CSIPConnection::TStateaState)

Connection state has changed. If connection state has changed to EInactive or EUnavailable, SIP stack has removed all stand-alone SIP refreshes, registrations and dialog associations that client requested to refresh. Client may re-issue refresh requests (stand-alone, registration or dialog association related) when connection becomes EActive again. SIP stack also terminates all pending SIP client transactions and no errors are reported back to the client about the terminated transactions nor about removed refreshes in order to avoid event flood.

Parameters

CSIPConnection::TState aStateindicates the current connection state

ConstructL(CSIPProfile &, CSIPProfileRegistry &)

voidConstructL(CSIPProfile &aProfile,
CSIPProfileRegistry &aProfileRegistry
)[private]

Parameters

CSIPProfile & aProfile
CSIPProfileRegistry & aProfileRegistry

ConstructL()

voidConstructL()[private]

Detach(CMceCsSubSession &)

TInt Detach(CMceCsSubSession &aSession)

De-Attach session to this connection

Parameters

CMceCsSubSession & aSessionsession

ErrorOccured(TInt, CSIPTransactionBase &)

voidErrorOccured(TIntaError,
CSIPTransactionBase &aTransaction
)

An asynchronous error has occurred in the stack related to the request indicated by the given transaction.

Parameters

TInt aErrorsystem wide or SIP error code
CSIPTransactionBase & aTransactionfailed transaction

ErrorOccured(TInt, CSIPClientTransaction &, CSIPRegistrationBinding &)

voidErrorOccured(TIntaError,
CSIPClientTransaction &aTransaction,
CSIPRegistrationBinding &aRegistration
)

An asynchronous error has occurred in the stack related to the request indicated by the given transaction.

Parameters

TInt aErrorsystem wide or SIP error code
CSIPClientTransaction & aTransactionthe failed transaction
CSIPRegistrationBinding & aRegistrationthe failed registration binding

ErrorOccured(TInt, CSIPTransactionBase &, CSIPDialogAssocBase &)

voidErrorOccured(TIntaError,
CSIPTransactionBase &aTransaction,
CSIPDialogAssocBase &aDialogAssoc
)

An asynchronous error has occured related to a request within an existing dialog.

Parameters

TInt aErrorsystem wide or SIP error code
CSIPTransactionBase & aTransactionthe failed transaction.
CSIPDialogAssocBase & aDialogAssocthe failed dialog associoation.

ErrorOccured(TInt, CSIPRefresh &)

voidErrorOccured(TIntaError,
CSIPRefresh &aSIPRefresh
)

An asynchronous error has occured related to a refresh

Parameters

TInt aErrorsystem wide or SIP error code
CSIPRefresh & aSIPRefreshoriginal refresh object.

ErrorOccured(TInt, CSIPRegistrationBinding &)

voidErrorOccured(TIntaError,
CSIPRegistrationBinding &aRegistration
)

An asynchronous error has occured related to a periodical refresh that relates to a registration.

Parameters

TInt aErrorsystem wide or SIP error code; KErrCouldNotConnect if the refresh has failed due to the suspended connection.
CSIPRegistrationBinding & aRegistrationassociated registration binding

ErrorOccured(TInt, CSIPDialogAssocBase &)

voidErrorOccured(TIntaError,
CSIPDialogAssocBase &aDialogAssoc
)

An asynchronous error has occured related to a periodical refresh that belongs to SIP dialog association.

Parameters

TInt aErrorsystem wide or SIP error code; KErrCouldNotConnect if the refresh has failed due to the suspended connection.
CSIPDialogAssocBase & aDialogAssocSIP dialog association.

FillWithMatchingAddrFamily(TInetAddr &, const TInetAddr *)

voidFillWithMatchingAddrFamily(TInetAddr &aAddr,
const TInetAddr *aNextHop
)[private]

Parameters

TInetAddr & aAddr
const TInetAddr * aNextHop

IPAddressL(TUint32)

TInetAddr IPAddressL(TUint32aIapId)[static]

Gets IP address of IAP

Parameters

TUint32 aIapId

IncomingRequest(CSIPServerTransaction *)

voidIncomingRequest(CSIPServerTransaction *aTransaction)

A SIP request outside a dialog has been received from the network.

Pre-condition
aTransaction != 0

Parameters

CSIPServerTransaction * aTransactionSIP server transaction. The ownership is transferred.

IncomingRequest(CSIPServerTransaction *, CSIPDialog &)

voidIncomingRequest(CSIPServerTransaction *aTransaction,
CSIPDialog &aDialog
)

A SIP request within a dialog has been received from the network. The client must resolve the actual dialog association to which this request belongs.

Pre-condition
aTransaction != 0

Parameters

CSIPServerTransaction * aTransactionSIP server transaction. The ownership is transferred.
CSIPDialog & aDialogthe dialog that this transaction belongs to.

IncomingResponse(CSIPClientTransaction &)

voidIncomingResponse(CSIPClientTransaction &aTransaction)

A SIP response received from the network.

Parameters

CSIPClientTransaction & aTransactioncontains response elements.

IncomingResponse(CSIPClientTransaction &, CSIPDialogAssocBase &)

voidIncomingResponse(CSIPClientTransaction &aTransaction,
CSIPDialogAssocBase &aDialogAssoc
)

A SIP response received from the network that is within a dialog association or creates a dialog association.

Parameters

CSIPClientTransaction & aTransactioncontains response elements.
CSIPDialogAssocBase & aDialogAssoca dialog association.

IncomingResponse(CSIPClientTransaction &, CSIPInviteDialogAssoc *)

voidIncomingResponse(CSIPClientTransaction &aTransaction,
CSIPInviteDialogAssoc *aDialogAssoc
)

Multiple SIP responses have been received to the single INVITE due to the forking proxy. Note that each response creates a separate INVITE dialog association. Multiple responses can arrive until SIP stack completes UAC core INVITE transaction. If clients deletes INVITE transaction after first SIP response other possible responses will be consumed by the implementation.

Parameters

CSIPClientTransaction & aTransactioncontains response elements
CSIPInviteDialogAssoc * aDialogAssocINVITE dialog association; the ownership is transferred

IncomingResponse(CSIPClientTransaction &, CSIPRegistrationBinding &)

voidIncomingResponse(CSIPClientTransaction &aTransaction,
CSIPRegistrationBinding &aRegistration
)

A SIP response related a registration binding or an error response that is related to registration binding has been received from the network.

Parameters

CSIPClientTransaction & aTransactioncontains response elements
CSIPRegistrationBinding & aRegistrationregistration binding this transaction belongs to

InviteCanceled(CSIPServerTransaction &)

voidInviteCanceled(CSIPServerTransaction &aTransaction)

Invite was canceled with the CANCEL

Parameters

CSIPServerTransaction & aTransactiona canceled INVITE UAS transaction

InviteCompleted(CSIPClientTransaction &)

voidInviteCompleted(CSIPClientTransaction &aTransaction)

SIP stack has completed UAC core INVITE transaction 64*T1 seconds after the reception of the first 2xx response. No more 2xx responses can be received to the issued single INVITE.

If the INVITE transaction does not create a dialog, or the INVITE transaction encounters an error, this event will not be sent.

Parameters

CSIPClientTransaction & aTransactiona complete UAC core INVITE transaction

IsProfileUsedInSession(CSIPProfile &)

TBool IsProfileUsedInSession(CSIPProfile &aProfile)

Numbers of sessions

Parameters

CSIPProfile & aProfile

LocalIPAddressL(TInetAddr *)

TInetAddr LocalIPAddressL(TInetAddr *aNextHop)

Gets local IP address of the connection

Parameters

TInetAddr * aNextHop

NewLC(CMceSipManager &, CSIPProfile &, CSIPProfileRegistry &)

CMceSipConnection *NewLC(CMceSipManager &aSessionManager,
CSIPProfile &aProfile,
CSIPProfileRegistry &aProfileRegistry
)[static]

Two-phased constructor.

Parameters

CMceSipManager & aSessionManager
CSIPProfile & aProfile
CSIPProfileRegistry & aProfileRegistry

NewLC(CMceSipManager &, TUint32)

CMceSipConnection *NewLC(CMceSipManager &aSessionManager,
TUint32aIAPId
)[static]

Two-phased constructor.

Parameters

CMceSipManager & aSessionManager
TUint32 aIAPId

Reject(CSIPInviteDialogAssoc *)

voidReject(CSIPInviteDialogAssoc *aDialogAssoc)[private]

Parameters

CSIPInviteDialogAssoc * aDialogAssoc

State()

CSIPConnection::TState State()const

State of connection

of connection

UpdateConnectionL(TUint)

voidUpdateConnectionL(TUintaSignallingTypeOfService)

Sets signalling type of service for connection if profile is not used.

Parameters

TUint aSignallingTypeOfService

Member Data Documentation

CSIPConnection * iClientConnection

CSIPConnection *iClientConnection[private]

TUint iCurrentSignallingTypeOfService

TUint iCurrentSignallingTypeOfService[private]

TUint32 iIAPId

TUint32 iIAPId[private]

CMceLocalAddrResolver * iLocalAddrResolver

CMceLocalAddrResolver *iLocalAddrResolver[private]

CMceSipManager & iSessionManager

CMceSipManager &iSessionManager[private]

RPointerArray< CMceCsSubSession > iSessions

RPointerArray< CMceCsSubSession >iSessions[private]