CSIPDialogImplementation Class Reference

class CSIPDialogImplementation : public CBase

Implementation class for managing SIP dialogs.

Inherits from

Public Member Functions
~CSIPDialogImplementation ()
void AddAssocL ( CSIPDialogAssocBase &, RStringF )
const CSIPCallIDHeader & CallIdL ()
void ChangeRefreshesToActive ()
void ChangeState (const CDialogState *)
void CheckNoTransactionExistsL ()
CSIPConnection * Connection ()
const CSIPConnection * Connection ()
void ConnectionDeleted ()
void ConnectionLost ()
const CSIPContactHeader * ContactHeader ()
void CopyCallIdL (const CSIPDialogImplementation &)
CSIPClientTransaction * CreateClientTransactionL ( RStringF , CSIPDialogAssocImplementation &, CSIPRefresh *)
CSIPDialog & Dialog ()
TUint32 DialogId ()
TBool DoesNotifyConfirmDialog ()
TBool ErrorOccured ( TInt , TUint32 , CConnectionCallback &)
TBool ErrorOccured ( TInt , TUint32 , TUint32 , CConnectionCallback &)
void FillLocalTagL ( TBool )
void FillRemoteTagL (const CSIPToHeader &)
TBool FindAssocAndRefresh ( TUint32 , CSIPDialogAssocBase **, CSIPRefresh **)
TBool FindAssocAndRefreshL ( TUint32 , TUint32 , CSIPDialogAssocBase **, CSIPRefresh **, CSIPTransactionBase **)
CSIPRefresh * FindRefresh ( TUint32 , TUint32 )
CSIPTransactionBase * FindTransaction ( TUint32 )
TBool FindTransactionAndAssoc ( TUint32 , CSIPTransactionBase **, CSIPDialogAssocBase **)
const CSIPFromHeader & FromHeader ()
CUri8 * GetUriFromContactL (const CSIPMessageElements &)
TBool IncomingRequestL ( CSIPServerTransaction *, CConnectionCallback &)
TBool IncomingResponseL ( CSIPResponseElements *, TUint32 , TUint32 , CConnectionCallback &)
TBool IncomingResponseL ( CSIPResponseElements *, TUint32 , TUint32 , TUint32 , CConnectionCallback &)
void InitialTransactionReceivedL ( CSIPServerTransaction &)
void InitialTransactionStarted ( TUint32 )
TBool IsAssociated (const CSIPDialogAssocBase &)
CSIPDialogImplementation * NewL ( CSIPDialog *, CSIPConnectionImplementation &)
CSIPDialogImplementation * NewL ( CSIPDialog *, CSIPConnectionImplementation &, const MSIPRegistrationContext &)
CSIPDialogImplementation * NewLC ( CSIPConnectionImplementation &, const MSIPRegistrationContext *)
const MSIPRegistrationContext * RegistrationContext ()
TUint32 RegistrationId ()
const CUri8 & RemoteURI ()
void RemoveAssoc (const CSIPDialogAssocBase &)
TBool ResponseToRefreshL ( CSIPResponseElements *, TUint32 , TUint32 , CConnectionCallback &, const CDialogState &, const CDialogState &, const CDialogState &, TBool )
TInt ReuseInitialRequestData ()
const RPointerArray < CSIPDialogAssocBase > & SIPDialogAssociations ()
void SendAckL ( CSIPInviteDialogAssoc &, const CSIPClientTransaction &, CSIPMessageElements *)
CSIPClientTransaction * SendByeL ( CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendCancelL ( TUint32 )
CSIPClientTransaction * SendDialogCreatingRequestL ( CSIPDialogAssocImplementation &, CSIPMessageElements *, CSIPRefresh *)
CSIPClientTransaction * SendInviteL ( CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendNonTargetRefreshRequestL ( CSIPDialogAssocImplementation &, RStringF , CSIPMessageElements *)
CSIPClientTransaction * SendNotifyL ( CSIPNotifyDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendPrackL ( CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendReferL ( CSIPReferDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendRequestInDialogL ( CSIPDialogAssocImplementation &, RStringF , CSIPMessageElements *)
void SendResponseL (const CSIPResponseElements &, TUint32 , TBool , TBool )
CSIPClientTransaction * SendSubscribeL ( CSIPSubscribeDialogAssoc &, CSIPMessageElements *, CSIPRefresh *)
CSIPClientTransaction * SendUnsubscribeL ( CSIPSubscribeDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction * SendUpdateL ( CSIPInviteDialogAssoc &, CSIPMessageElements *)
void SetDialogId ( TUint32 )
void SetHeadersL ( CSIPFromHeader *, CSIPToHeader *, CUri8 *, CSIPContactHeader *)
CSIPDialog::TState State ()
void StoreCallIdL ()
const CSIPToHeader & ToHeader ()
CSIPClientTransaction * UpdateL ( CSIPSubscribeDialogAssoc &, CSIPMessageElements *)
void UpdateRemoteTargetL ( RStringF , const CSIPMessageElements &)
void UpdateState (const CSIPClientTransaction &, const CDialogState &, const CDialogState &, const CDialogState &)
TBool operator== (const CSIPDialogImplementation &)
Private Member Functions
CSIPDialogImplementation ( CSIPConnectionImplementation &)
CSIPDialogImplementation ( CSIPConnectionImplementation &, const MSIPRegistrationContext &)
void CheckConnectionL ()
void ConstructL ( CSIPDialog *)
CSIPConnection * GetConnection ()
TBool HasInviteAssoc ()
void InitialTransactionStarted ( CSIPTransactionBase &)
const CDialogState & StateL ()
UNIT_TEST (CSIP_Test)
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
CSIPCallIDHeader * iCallID
CSIPConnectionImplementation * iConnection
CSIPContactHeader * iContact
CSIPDialog * iDialog
RPointerArray < CSIPDialogAssocBase > iDialogAssocs
TUint32 iDialogId
CSIPFromHeader * iFrom
TUint32 iInitialRequestId
const MSIPRegistrationContext * iRegistration
CUri8 * iRemoteUri
const CDialogState * iState
TBool iStringPoolOpened
CSIPToHeader * iTo

Constructor & Destructor Documentation

CSIPDialogImplementation(CSIPConnectionImplementation &)

CSIPDialogImplementation ( CSIPConnectionImplementation & aConnImplementation ) [private]

Parameters

CSIPConnectionImplementation & aConnImplementation

CSIPDialogImplementation(CSIPConnectionImplementation &, const MSIPRegistrationContext &)

CSIPDialogImplementation ( CSIPConnectionImplementation & aConnImplementation,
const MSIPRegistrationContext & aContext
) [private]

Parameters

CSIPConnectionImplementation & aConnImplementation
const MSIPRegistrationContext & aContext

~CSIPDialogImplementation()

~CSIPDialogImplementation ( )

Destructor

Member Functions Documentation

AddAssocL(CSIPDialogAssocBase &, RStringF)

void AddAssocL ( CSIPDialogAssocBase & aAssoc,
RStringF aType
)
Add a dialog association to this dialog. A dialog can have only one INVITE association at a time.
leave
KErrAlreadyExists If aAssoc is already associated with this dialog or if attempting to add another INVITE dialog association.

Parameters

CSIPDialogAssocBase & aAssoc Dialog association
RStringF aType Type of the dialog association

CallIdL()

const CSIPCallIDHeader & CallIdL ( ) const

Gets the Call-ID of the dialog.

ChangeRefreshesToActive()

void ChangeRefreshesToActive ( ) const

Searches if there are dialog related requests, that are being refreshed. If found, those that are in state CSIPRefresh::EInactive are moved into CSIPRefresh::EActive state.

ChangeState(const CDialogState *)

void ChangeState ( const CDialogState * aNewState )

Changes the dialog's current state.

Parameters

const CDialogState * aNewState State which dialog enters

CheckConnectionL()

void CheckConnectionL ( ) const [private]

Checks that CSIPConnection is available for use (not NULL). If iConnection is NULL, it means user has deleted a resource needed by CSIPDialogImplementation , and this function leaves.

CheckNoTransactionExistsL()

void CheckNoTransactionExistsL ( ) const

Connection()

CSIPConnection * Connection ( )

Gets the SIP connection used for this dialog

Connection()

const CSIPConnection * Connection ( ) const

Gets the SIP connection used for this dialog.

ConnectionDeleted()

void ConnectionDeleted ( )

Informs CSIPDialogImplementation that the associated CSIPConnection has been deleted. After this the CSIPDialogImplementation object can't be used anymore.

ConnectionLost()

void ConnectionLost ( )

Connection state is no longer available.

ConstructL(CSIPDialog *)

void ConstructL ( CSIPDialog * aDialog ) [private]

Parameters

CSIPDialog * aDialog

ContactHeader()

const CSIPContactHeader * ContactHeader ( ) const

CopyCallIdL(const CSIPDialogImplementation &)

void CopyCallIdL ( const CSIPDialogImplementation & aDialog )
Copies Call-ID from aDialog.
Pre-condition
iCallID == NULL

Parameters

const CSIPDialogImplementation & aDialog CSIPDialogImplementation where the Call-ID is copied from.

CreateClientTransactionL(RStringF, CSIPDialogAssocImplementation &, CSIPRefresh *)

CSIPClientTransaction * CreateClientTransactionL ( RStringF aType,
CSIPDialogAssocImplementation & aAssoc,
CSIPRefresh * aRefresh
) const

Creates a client transaction.

Parameters

RStringF aType Transaction type
CSIPDialogAssocImplementation & aAssoc Dialog association with which the transaction will be associated
CSIPRefresh * aRefresh If transaction is refreshed, this points to a CSIPRefresh, otherwise this is NULL. Ownership is not transferred.

Dialog()

CSIPDialog & Dialog ( )

DialogId()

TUint32 DialogId ( ) const

Obtains the dialog id.

DoesNotifyConfirmDialog()

TBool DoesNotifyConfirmDialog ( ) const

Determine if an incoming NOTIFY causes dialog to enter confirmed state.

ErrorOccured(TInt, TUint32, CConnectionCallback &)

TBool ErrorOccured ( TInt aError,
TUint32 aRequestId,
CConnectionCallback & aCallback
)

Parameters

TInt aError
TUint32 aRequestId
CConnectionCallback & aCallback

ErrorOccured(TInt, TUint32, TUint32, CConnectionCallback &)

TBool ErrorOccured ( TInt aError,
TUint32 aRefreshId,
TUint32 aRequestId,
CConnectionCallback & aCallback
)

Parameters

TInt aError
TUint32 aRefreshId
TUint32 aRequestId
CConnectionCallback & aCallback

FillLocalTagL(TBool)

void FillLocalTagL ( TBool aClientInitiatedDialog ) const

If the local tag is not yet known, obtain it from the SIP server via an ITC operation.

Parameters

TBool aClientInitiatedDialog ETrue if the dialog creating request was sent by the local endpoint EFalse otherwise

FillRemoteTagL(const CSIPToHeader &)

void FillRemoteTagL ( const CSIPToHeader & aToHeader ) const

If aToHeader has a tag parameter, the tag is stored as a remote-tag in the To-header of the dialog.

Parameters

const CSIPToHeader & aToHeader To-header of a response from remote endpoint.

FindAssocAndRefresh(TUint32, CSIPDialogAssocBase **, CSIPRefresh **)

TBool FindAssocAndRefresh ( TUint32 aRefreshId,
CSIPDialogAssocBase ** aAssoc,
CSIPRefresh ** aRefresh
) const

Searches for the dialog association and refresh by the aRefreshId.

Parameters

TUint32 aRefreshId RefreshId
CSIPDialogAssocBase ** aAssoc
CSIPRefresh ** aRefresh

FindAssocAndRefreshL(TUint32, TUint32, CSIPDialogAssocBase **, CSIPRefresh **, CSIPTransactionBase **)

TBool FindAssocAndRefreshL ( TUint32 aRequestId,
TUint32 aRefreshId,
CSIPDialogAssocBase ** aAssoc,
CSIPRefresh ** aRefresh,
CSIPTransactionBase ** aTransaction
) const

Searches for the dialog association, refresh and transaction. Both aRequestId and aRefreshId are used for search, because either of them might not yet be stored in the SIP API.

Parameters

TUint32 aRequestId RequestId
TUint32 aRefreshId RefreshId
CSIPDialogAssocBase ** aAssoc OUT: Dialog association, if found
CSIPRefresh ** aRefresh OUT: CSIPRefresh, if found
CSIPTransactionBase ** aTransaction OUT: Transaction, if found

FindRefresh(TUint32, TUint32)

CSIPRefresh * FindRefresh ( TUint32 aRequestId,
TUint32 aRefreshId
) const

Finds a refresh by first the given request ID and the the refresh ID. All dialog associations are searched through.

Parameters

TUint32 aRequestId RequestId associated with the refresh instance
TUint32 aRefreshId RefreshId associated with the refresh instance

FindTransaction(TUint32)

CSIPTransactionBase * FindTransaction ( TUint32 aRequestId ) const

Searches for a transaction having the specified id.

Parameters

TUint32 aRequestId Identifier used for searching the transaction.

FindTransactionAndAssoc(TUint32, CSIPTransactionBase **, CSIPDialogAssocBase **)

TBool FindTransactionAndAssoc ( TUint32 aRequestId,
CSIPTransactionBase ** aTransaction,
CSIPDialogAssocBase ** aAssoc
) const

Searches for a transaction having the specified id.

Parameters

TUint32 aRequestId Identifier used for searching the transaction
CSIPTransactionBase ** aTransaction OUT: pointer is set to the found transaction
CSIPDialogAssocBase ** aAssoc OUT: pointer is set to the dialog association related to the found transaction

FromHeader()

const CSIPFromHeader & FromHeader ( ) const

Gets originator's address

GetConnection()

CSIPConnection * GetConnection ( ) const [private]

GetUriFromContactL(const CSIPMessageElements &)

CUri8 * GetUriFromContactL ( const CSIPMessageElements & aElements ) const

Creates a copy of the URI in Contact-header, if aElements contains exactly one Contact-header.

Parameters

const CSIPMessageElements & aElements Message elements

HasInviteAssoc()

TBool HasInviteAssoc ( ) const [private]

Checks whether the dialog has an INVITE assocation.

IncomingRequestL(CSIPServerTransaction *, CConnectionCallback &)

TBool IncomingRequestL ( CSIPServerTransaction * aTransaction,
CConnectionCallback & aCallback
)

Handle an incoming SIP request.

Parameters

CSIPServerTransaction * aTransaction Server transaction, ownership is transferred.
CConnectionCallback & aCallback For selecting a callback function and its parameters

IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &)

TBool IncomingResponseL ( CSIPResponseElements * aElements,
TUint32 aRequestId,
TUint32 aDialogId,
CConnectionCallback & aCallback
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aDialogId
CConnectionCallback & aCallback

IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, TUint32, CConnectionCallback &)

TBool IncomingResponseL ( CSIPResponseElements * aElements,
TUint32 aRequestId,
TUint32 aRefreshId,
TUint32 aDialogId,
CConnectionCallback & aCallback
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aRefreshId
TUint32 aDialogId
CConnectionCallback & aCallback

InitialTransactionReceivedL(CSIPServerTransaction &)

void InitialTransactionReceivedL ( CSIPServerTransaction & aTransaction )

Stores the To and From headers of the server transaction and marks the transaction to affect the dialog state.

Pre-condition

Parameters

CSIPServerTransaction & aTransaction Server transaction which causes a dialog to be created.

InitialTransactionStarted(TUint32)

void InitialTransactionStarted ( TUint32 aRequestId )

The dialog creating transaction has been initiated.

Pre-condition
aRequestId != 0
iInitialRequestId == 0
Post-condition
iInitialRequestId == aRequestId

Parameters

TUint32 aRequestId RequestId of the transaction that creates the dialog

InitialTransactionStarted(CSIPTransactionBase &)

void InitialTransactionStarted ( CSIPTransactionBase & aTransaction ) [private]

The dialog creating transaction has been created. The SIP responses to aTransaction will affect the state of dialog.

Pre-condition
iInitialRequestId == 0

Parameters

CSIPTransactionBase & aTransaction Transaction that creates the dialog.

IsAssociated(const CSIPDialogAssocBase &)

TBool IsAssociated ( const CSIPDialogAssocBase & aAssoc ) const

Checks if the dialog association belongs to this dialog

Parameters

const CSIPDialogAssocBase & aAssoc a dialog association

NewL(CSIPDialog *, CSIPConnectionImplementation &)

CSIPDialogImplementation * NewL ( CSIPDialog * aDialog,
CSIPConnectionImplementation & aConnImplementation
) [static]

Two-phased constructor. This constructor should be used if the user has received SIP request that creates a SIP dialog association.

Parameters

CSIPDialog * aDialog Dialog which creates this CSIPDialogImplementation. Ownership is transferred.
CSIPConnectionImplementation & aConnImplementation Implementation of the used SIP connection

NewL(CSIPDialog *, CSIPConnectionImplementation &, const MSIPRegistrationContext &)

CSIPDialogImplementation * NewL ( CSIPDialog * aDialog,
CSIPConnectionImplementation & aConnImplementation,
const MSIPRegistrationContext & aContext
) [static]

Two-phased constructor This constructor should be used if the user has received SIP request that creates a SIP dialog association.

Parameters

CSIPDialog * aDialog Dialog which creates this CSIPDialogImplementation. Ownership is transferred.
CSIPConnectionImplementation & aConnImplementation Implementation of the used SIP connection
const MSIPRegistrationContext & aContext Registration context whose outbound proxy and other parameters are to be used.

NewLC(CSIPConnectionImplementation &, const MSIPRegistrationContext *)

CSIPDialogImplementation * NewLC ( CSIPConnectionImplementation & aConnImplementation,
const MSIPRegistrationContext * aContext = 0
) [static]

Creates a new CSIPDialogImplementation , and pushes it to cleanupstack.

Parameters

CSIPConnectionImplementation & aConnImplementation Connection implementation to use with the new dialog.
const MSIPRegistrationContext * aContext = 0 Registration context whose outbound proxy and other parameters are to be used. If NULL, context isn't used. Ownership is not transferred.

RegistrationContext()

const MSIPRegistrationContext * RegistrationContext ( ) const

Gets used registration context for this dialog

RegistrationId()

TUint32 RegistrationId ( ) const

RemoteURI()

const CUri8 & RemoteURI ( ) const

Gets remote-uri used during dialog creation

RemoveAssoc(const CSIPDialogAssocBase &)

void RemoveAssoc ( const CSIPDialogAssocBase & aAssoc )

Remove a dialog association from this dialog. When there are no associations left, the dialog is deleted.

Parameters

const CSIPDialogAssocBase & aAssoc Dialog association

ResponseToRefreshL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &, const CDialogState &, const CDialogState &, const CDialogState &, TBool)

TBool ResponseToRefreshL ( CSIPResponseElements * aElements,
TUint32 aRequestId,
TUint32 aRefreshId,
CConnectionCallback & aCallback,
const CDialogState & aEarly,
const CDialogState & aConfirmed,
const CDialogState & aTerminated,
TBool aIsConfirmed = EFalse
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aRefreshId
CConnectionCallback & aCallback
const CDialogState & aEarly
const CDialogState & aConfirmed
const CDialogState & aTerminated
TBool aIsConfirmed = EFalse

ReuseInitialRequestData()

TInt ReuseInitialRequestData ( )

SIPDialogAssociations()

const RPointerArray < CSIPDialogAssocBase > & SIPDialogAssociations ( ) const

Gets all dialog associations.

SendAckL(CSIPInviteDialogAssoc &, const CSIPClientTransaction &, CSIPMessageElements *)

void SendAckL ( CSIPInviteDialogAssoc & aAssoc,
const CSIPClientTransaction & aTransaction,
CSIPMessageElements * aElements
) const

Parameters

CSIPInviteDialogAssoc & aAssoc
const CSIPClientTransaction & aTransaction
CSIPMessageElements * aElements

SendByeL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendByeL ( CSIPInviteDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendCancelL(TUint32)

CSIPClientTransaction * SendCancelL ( TUint32 aRequestId ) const

Parameters

TUint32 aRequestId

SendDialogCreatingRequestL(CSIPDialogAssocImplementation &, CSIPMessageElements *, CSIPRefresh *)

CSIPClientTransaction * SendDialogCreatingRequestL ( CSIPDialogAssocImplementation & aAssoc,
CSIPMessageElements * aElements,
CSIPRefresh * aRefresh = 0
)

Send a request that creates the dialog.

Parameters

CSIPDialogAssocImplementation & aAssoc Dialog association which sends the request.
CSIPMessageElements * aElements Message elements, can be NULL. Ownership is transferred.
CSIPRefresh * aRefresh = 0 Refresh object, if the request is to be refreshed. Ownership isn't transferred.

SendInviteL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendInviteL ( CSIPInviteDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendNonTargetRefreshRequestL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)

CSIPClientTransaction * SendNonTargetRefreshRequestL ( CSIPDialogAssocImplementation & aAssoc,
RStringF aMethod,
CSIPMessageElements * aElements
) const

SendNotifyL(CSIPNotifyDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendNotifyL ( CSIPNotifyDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPNotifyDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendPrackL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendPrackL ( CSIPInviteDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendReferL(CSIPReferDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendReferL ( CSIPReferDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPReferDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendRequestInDialogL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)

CSIPClientTransaction * SendRequestInDialogL ( CSIPDialogAssocImplementation & aAssoc,
RStringF aMethod,
CSIPMessageElements * aElements
) const

Sends a SIP request described by aElements withing dialog and creates a client transaction representing the request.

Pre-condition
aMethod.Length() > 0

Parameters

CSIPDialogAssocImplementation & aAssoc Dialog association with which the transaction will be associated
RStringF aMethod SIP request method
CSIPMessageElements * aElements Optional SIP message headers and body, can be NULL. Ownership is transferred.

SendResponseL(const CSIPResponseElements &, TUint32, TBool, TBool)

void SendResponseL ( const CSIPResponseElements & aElements,
TUint32 aRequestId,
TBool aAffectsDialogState,
TBool aTargetRefresh = EFalse
)

Send a SIP response to network. Application can't send a 100 response. That has already been checked by CSIPResponseElements .

Parameters

const CSIPResponseElements & aElements Response elements
TUint32 aRequestId Identifies the request to which this response is for
TBool aAffectsDialogState Tells if the response can cause dialog to enter another state.
TBool aTargetRefresh = EFalse Tells if this is a response to a target refresh request.

SendSubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *, CSIPRefresh *)

CSIPClientTransaction * SendSubscribeL ( CSIPSubscribeDialogAssoc & aAssoc,
CSIPMessageElements * aElements,
CSIPRefresh * aRefresh
) const

Parameters

CSIPSubscribeDialogAssoc & aAssoc
CSIPMessageElements * aElements
CSIPRefresh * aRefresh

SendUnsubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendUnsubscribeL ( CSIPSubscribeDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

SendUpdateL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * SendUpdateL ( CSIPInviteDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SetDialogId(TUint32)

void SetDialogId ( TUint32 aDialogId )

Set the dialog id.

Parameters

TUint32 aDialogId Dialog id

SetHeadersL(CSIPFromHeader *, CSIPToHeader *, CUri8 *, CSIPContactHeader *)

void SetHeadersL ( CSIPFromHeader * aFrom,
CSIPToHeader * aTo,
CUri8 * aRemoteUri,
CSIPContactHeader * aContact
)

Sets the dialog related headers when a SIP request that creates a SIP dialog association, is sent. Headers can be set only once. If aTo is NULL, aRemoteUri is used as To-header.

Pre-condition
aRemoteUri != NULL && iRemoteUri == NULL && iFrom == NULL && iTo == NULL && iContact == NULL

Parameters

CSIPFromHeader * aFrom Originator's address, can be NULL. Ownership is transferred.
CSIPToHeader * aTo Recipient's address, can be NULL. Ownership is transferred
CUri8 * aRemoteUri
CSIPContactHeader * aContact Contact to be used in dialog creation, can be NULL. Must be given only if user intends to re-direct future requests. Ownership is transferred.

State()

CSIPDialog::TState State ( ) const

Gets dialog state

StateL()

const CDialogState & StateL ( ) const [private]

Returns the current dialog state. If state handler is not available, meaning user has deleted a resource needed by CSIPDialogImplementation , this function leaves.

StoreCallIdL()

void StoreCallIdL ( )

Get the Call-ID from SIP Client and store it.

ToHeader()

const CSIPToHeader & ToHeader ( ) const

Gets recipient's address

UNIT_TEST(CSIP_Test)

UNIT_TEST ( CSIP_Test ) const [private]

Parameters

CSIP_Test

UpdateL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction * UpdateL ( CSIPSubscribeDialogAssoc & aAssoc,
CSIPMessageElements * aElements
) const

UpdateRemoteTargetL(RStringF, const CSIPMessageElements &)

void UpdateRemoteTargetL ( RStringF aMethod,
const CSIPMessageElements & aElements
)

If aMethod is a target refresh request, and aElements contains a Contact-header, the remote target URI of the dialog is updated.

Parameters

RStringF aMethod SIP request method
const CSIPMessageElements & aElements Message elements

UpdateState(const CSIPClientTransaction &, const CDialogState &, const CDialogState &, const CDialogState &)

void UpdateState ( const CSIPClientTransaction & aTransaction,
const CDialogState & aEarly,
const CDialogState & aConfirmed,
const CDialogState & aTerminated
)

Based on the received response, dialog may enter another state. A 100 response should not have a To-tag, so dialog won't enter Early-state when a 100 is received.

Parameters

const CSIPClientTransaction & aTransaction Client transaction carrying the received response
const CDialogState & aEarly Early-state of the dialog state machine
const CDialogState & aConfirmed Confirmed-state of the dialog state machine
const CDialogState & aTerminated Terminated-state of the dialog state machine

operator==(const CSIPDialogImplementation &)

TBool operator== ( const CSIPDialogImplementation & aDialog ) const

Compares this object to another object

Parameters

const CSIPDialogImplementation & aDialog CSIPDialogImplementation object to compare

Member Data Documentation

CSIPCallIDHeader * iCallID

CSIPCallIDHeader * iCallID [private]

CSIPConnectionImplementation * iConnection

CSIPConnectionImplementation * iConnection [private]

CSIPContactHeader * iContact

CSIPContactHeader * iContact [private]

CSIPDialog * iDialog

CSIPDialog * iDialog [private]

RPointerArray< CSIPDialogAssocBase > iDialogAssocs

RPointerArray < CSIPDialogAssocBase > iDialogAssocs [private]

TUint32 iDialogId

TUint32 iDialogId [private]

CSIPFromHeader * iFrom

CSIPFromHeader * iFrom [private]

TUint32 iInitialRequestId

TUint32 iInitialRequestId [private]

const MSIPRegistrationContext * iRegistration

const MSIPRegistrationContext * iRegistration [private]

CUri8 * iRemoteUri

CUri8 * iRemoteUri [private]

const CDialogState * iState

const CDialogState * iState [private]

TBool iStringPoolOpened

TBool iStringPoolOpened [private]

CSIPToHeader * iTo

CSIPToHeader * iTo [private]