CSIPReferDialogAssoc Class Reference

class CSIPReferDialogAssoc : public CSIPDialogAssocBase

Class for managing SIP REFER dialog associations. It provides services for creating, using and terminating SIP REFER dialog associations. User can have multiple REFER dialog associations per same SIP dialog. Implementation handles SUBSCRIBE on the dialog level defined by Call-Id, local and remote tags; User is responsible for "Refer-to" header semantics. sipclient.lib

Inherits from

Public Member Functions
~CSIPReferDialogAssoc ()
CSIPClientTransaction * DoSendReferL ( CSIPMessageElements *, TBool )
IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPDialog &, CSIPReferToHeader *)
IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPDialog &, CSIPReferToHeader *)
IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C const CSIPReferToHeader & ReferTo ()
IMPORT_C CSIPClientTransaction * SendReferL ( CSIPMessageElements *)
Private Member Functions
CSIPReferDialogAssoc ()
CSIPReferDialogAssoc * NewLC ( CSIPConnection &, CUri8 *, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *, const MSIPRegistrationContext *)
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()
CSIPDialogAssocBase::CSIPDialogAssocBase()
CSIPDialogAssocBase::ConstructL(RStringF,CSIPDialog &)
CSIPDialogAssocBase::ConstructL(RStringF,CSIPDialog &,CSIPServerTransaction &)
CSIPDialogAssocBase::DeletingRefresh(CSIPRefresh &,TUint32)
CSIPDialogAssocBase::Dialog()
CSIPDialogAssocBase::Dialog()const
CSIPDialogAssocBase::FindRefresh(TUint32)
CSIPDialogAssocBase::Implementation()
CSIPDialogAssocBase::IsNonTargetRefreshRequest(RStringF)const
CSIPDialogAssocBase::SendNonTargetRefreshRequestL(RStringF,CSIPMessageElements *)
CSIPDialogAssocBase::Type()const
CSIPDialogAssocBase::~CSIPDialogAssocBase()
Private Attributes
CSIPReferToHeader * iReferTo
Inherited Attributes
CSIPDialogAssocBase::iImplementation

Constructor & Destructor Documentation

CSIPReferDialogAssoc()

CSIPReferDialogAssoc ( ) [private]

~CSIPReferDialogAssoc()

IMPORT_C ~CSIPReferDialogAssoc ( )

Destructor

Member Functions Documentation

DoSendReferL(CSIPMessageElements *, TBool)

CSIPClientTransaction * DoSendReferL ( CSIPMessageElements * aElements,
TBool aWithinDialog
)

Sends a REFER request.

Pre-condition
Dialog() .Connection().State()==EActive

Parameters

CSIPMessageElements * aElements optional SIP message headers and body. Ownership is transferred.
TBool aWithinDialog ETrue if REFER is sent within dialog, EFalse if REFER creates the dialog.

NewL(CSIPDialog &, CSIPReferToHeader *)

IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPDialog & aDialog,
CSIPReferToHeader * aReferTo
) [static]
Two-phased constructor. Should be used if response to the SIP request to be sent will create a SIP dialog association.
Pre-condition
aReferTo != 0
leave
KErrArgument if aReferTo == 0

Parameters

CSIPDialog & aDialog a dialog to be associated with
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred

NewL(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPConnection & aConnection,
CSIPFromHeader * aFrom,
CUri8 * aRemoteUri,
CSIPReferToHeader * aReferTo,
CSIPToHeader * aTo = 0,
CSIPContactHeader * aContact = 0
) [static]
Two-phased constructor
Pre-condition
aFrom != 0
aReferTo != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
leave
KErrArgument if aFrom == 0 or aRemoteuri == 0 or aReferTo == 0

Parameters

CSIPConnection & aConnection a SIP connection to be used with dialog association
CSIPFromHeader * aFrom originator's address; the ownership is transfered
CUri8 * aRemoteUri a remote target URI that identifies a resource that the request is addressed to.
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred
CSIPToHeader * aTo = 0 logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0 a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewL(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPReferDialogAssoc * NewL ( CSIPConnection & aConnection,
CUri8 * aRemoteUri,
const MSIPRegistrationContext & aContext,
CSIPReferToHeader * aReferTo,
CSIPFromHeader * aFrom = 0,
CSIPToHeader * aTo = 0,
CSIPContactHeader * aContact = 0
) [static]
Two-phased constructor
Pre-condition
aReferTo != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
aContext.IsContextActive() == ETrue
leave
KErrArgument if aRemoteuri == 0 or aReferTo == 0
leave
KErrSIPInvalidRegistrationState if aContext.IsContextActive() == EFalse

Parameters

CSIPConnection & aConnection a SIP connection to be used with dialog association
CUri8 * aRemoteUri a remote target URI that identifies a resource that the request is targeted to.
const MSIPRegistrationContext & aContext used for selecting outbound proxy and originator's address (AOR) and contact
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred
CSIPFromHeader * aFrom = 0 originator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
CSIPToHeader * aTo = 0 logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0 a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPDialog &, CSIPReferToHeader *)

IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPDialog & aDialog,
CSIPReferToHeader * aReferTo
) [static]
Two-phased constructor. Must be used if response to the SIP request to be sent will create a SIP dialog association.
Pre-condition
aReferTo != 0
leave
KErrArgument if aReferTo == 0

Parameters

CSIPDialog & aDialog a dialog to be associated with
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred

NewLC(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPConnection & aConnection,
CSIPFromHeader * aFrom,
CUri8 * aRemoteUri,
CSIPReferToHeader * aReferTo,
CSIPToHeader * aTo = 0,
CSIPContactHeader * aContact = 0
) [static]
Two-phased constructor
Pre-condition
aFrom != 0
aReferTo != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
leave
KErrArgument if aFrom == 0 or aRemoteuri == 0 or aReferTo == 0

Parameters

CSIPConnection & aConnection a SIP connection to be used with dialog association
CSIPFromHeader * aFrom originator's address; the ownership is transfered
CUri8 * aRemoteUri a remote target URI that identifies a resource that the request is addressed to.
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred
CSIPToHeader * aTo = 0 logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0 a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPReferDialogAssoc * NewLC ( CSIPConnection & aConnection,
CUri8 * aRemoteUri,
const MSIPRegistrationContext & aContext,
CSIPReferToHeader * aReferTo,
CSIPFromHeader * aFrom = 0,
CSIPToHeader * aTo = 0,
CSIPContactHeader * aContact = 0
) [static]
Two-phased constructor
Pre-condition
aReferTo != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
aContext.IsContextActive()==ETrue
leave
KErrArgument if aRemoteuri == 0 or aReferTo == 0
leave
KErrSIPInvalidRegistrationState if aContext.IsContextActive() == EFalse

Parameters

CSIPConnection & aConnection a SIP connection to be used with dialog association
CUri8 * aRemoteUri a remote target URI that identifies a resource that the request is targeted to.
const MSIPRegistrationContext & aContext used for selecting outbound proxy and originator's address (AOR) and contact
CSIPReferToHeader * aReferTo referred-to resource; Ownership is transferred
CSIPFromHeader * aFrom = 0 originator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
CSIPToHeader * aTo = 0 logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0 a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPConnection &, CUri8 *, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *, const MSIPRegistrationContext *)

CSIPReferDialogAssoc * NewLC ( CSIPConnection & aConnection,
CUri8 * aRemoteUri,
CSIPReferToHeader * aReferTo,
CSIPFromHeader * aFrom,
CSIPToHeader * aTo,
CSIPContactHeader * aContact,
const MSIPRegistrationContext * aContext
) [private, static]

Parameters

CSIPConnection & aConnection
CUri8 * aRemoteUri
CSIPReferToHeader * aReferTo
CSIPFromHeader * aFrom
CSIPToHeader * aTo
CSIPContactHeader * aContact
const MSIPRegistrationContext * aContext

ReferTo()

IMPORT_C const CSIPReferToHeader & ReferTo ( ) const

Gets referred-to resouce

SendReferL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction * SendReferL ( CSIPMessageElements * aElements = 0 )
Creates REFER and sends it to the remote target. leaves on failure. 101-199 or 2xx response will create REFER dialog association in case of first REFER request within this dialog association.
Pre-condition
Dialog() .Connection().State()==EActive
Dialog() .State()==CSIPDialogEInit || Dialog() .State()==CSIPDialogEConfirmed
leave
KErrSIPInvalidDialogState if dialog is in wrong state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted.
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0 optional SIP message headers and body. Ownership is transferred.

Member Data Documentation

CSIPReferToHeader * iReferTo

CSIPReferToHeader * iReferTo [private]