CSIPConnectionImplementation Class Reference
class CSIPConnectionImplementation : public CBase
|
Implementation class for managing a connection.
Inherits from
-
CSIPConnectionImplementation
Public Member Functions
|
|
~CSIPConnectionImplementation
()
|
void
|
AddDialogL
(
CSIPDialogImplementation
&)
|
void
|
AddRegistrationL
(
CRegBindingImplementation
&)
|
void
|
AddTransactionL
(
CSIPTransactionBase
&)
|
void
|
CSIPDeleted
()
|
TInt
|
CheckIfStandAlone
()
|
CSIPClientConnection
*
|
ClientConnection
()
|
CSIPClientConnection
&
|
ClientConnectionL
()
|
void
|
ConnectionStateChanged
(
CSIPConnection::TState
)
|
void
|
DeletingRefresh
(
CSIPRefresh
&,
TUint32
)
|
void
|
DialogErrorOccured
(
TInt
,
TUint32
,
TUint32
)
|
void
|
DialogErrorOccured
(
TInt
,
TUint32
,
TUint32
,
TUint32
)
|
void
|
ErrorOccured
(
TInt
,
TUint32
)
|
CSIPClientTransaction
*
|
FetchRegistrationsL
(
CSIPRequestElements
*)
|
CSIPClientTransaction
*
|
FindClientTransaction
(
TUint32
)
|
CSIPDialogImplementation
*
|
FindDialogByRequestId
(
TUint32
)
|
CSIPRefresh
*
|
FindRefresh
(
TUint32
,
TUint32
)
|
CSIPTransactionBase
*
|
FindTransaction
(
TUint32
)
|
TUint32
|
IapId
()
|
void
|
IncomingDialogRequestL
(
CSIPRequestElements
*,
TUint32
,
TUint32
)
|
void
|
IncomingDialogResponseL
(
CSIPResponseElements
*,
TUint32
,
TUint32
)
|
void
|
IncomingDialogResponseL
(
CSIPResponseElements
*,
TUint32
,
TUint32
,
TUint32
)
|
void
|
IncomingRefreshResponseL
(
CSIPResponseElements
*,
TUint32
,
TUint32
)
|
void
|
IncomingRegistrationResponseL
(
CSIPResponseElements
*,
TUint32
,
TUint32
,
TUint32
)
|
void
|
IncomingRequestL
(
CSIPRequestElements
*,
TUint32
)
|
void
|
IncomingResponseL
(
CSIPResponseElements
*,
TUint32
)
|
void
|
IncomingResponseToDialogL
(
CSIPResponseElements
*,
TUint32
,
TUint32
,
TUint32
*)
|
CDialogState
*
|
InitialDialogStateL
()
|
CRegistrationState
*
|
InitialRegisterStateL
()
|
void
|
InviteCompleted
(
TUint32
)
|
CSIPConnectionImplementation
*
|
NewL
(
CSIP
&,
CSIPConnection
&,
TUint32
,
MSIPConnectionObserver
&)
|
void
|
RefreshErrorOccured
(
TInt
,
TUint32
)
|
void
|
RegistrationErrorOccured
(
TInt
,
TUint32
,
TUint32
)
|
void
|
RemoveDialog
(const
CSIPDialogImplementation
&)
|
void
|
RemoveRegistration
(const
CRegBindingImplementation
&)
|
void
|
RemoveTransaction
(const
CSIPTransactionBase
&)
|
CSIP
*
|
SIP
()
|
const
CSIP
*
|
SIP
()
|
CSIPConnection
&
|
SIPConnectionL
()
|
CSIPClientTransaction
*
|
SendRequestL
(
CSIPRequestElements
*,
TUint32
*,
CSIPRefresh
*)
|
void
|
SetOptL
(
TUint
,
TUint
, const
TDesC8
&)
|
void
|
SetOptL
(
TUint
,
TUint
,
TInt
)
|
CSIPConnection::TState
|
State
()
|
MTransactionAssociation
&
|
TransactionAssociation
()
|
CSIPClientTransaction
*
|
UpdateRefreshL
(
CSIPRefresh
&,
CSIPMessageElements
*,
TBool
)
|
Constructor & Destructor Documentation
CSIPConnectionImplementation(CSIP &, CSIPConnection &, TUint32, MSIPConnectionObserver &)
~CSIPConnectionImplementation()
~CSIPConnectionImplementation
|
(
|
)
|
|
Member Functions Documentation
AddDialogL(CSIPDialogImplementation &)
AddRegistrationL(CRegBindingImplementation &)
AddTransactionL(CSIPTransactionBase &)
CheckCSipL()
void
|
CheckCSipL
|
(
|
)
|
const [private]
|
Checks that
CSIP
is available for use (not NULL). If iSIP is NULL, it means user has deleted a resource needed by
CSIPConnectionImplementation
, and this function leaves.
CheckIfStandAlone()
TInt
|
CheckIfStandAlone
|
(
|
)
|
|
ConnectionLost()
void
|
ConnectionLost
|
(
|
)
|
const [private]
|
Connection is no longer available. All registrations, dialogs, transactions and refreshes using this connection are terminated, but not deleted.
ConnectionStateChanged(CSIPConnection::TState)
ConstructL()
void
|
ConstructL
|
(
|
)
|
[private]
|
DeletingRefresh(CSIPRefresh &, TUint32)
DialogErrorOccured(TInt, TUint32, TUint32)
DialogErrorOccured(TInt, TUint32, TUint32, TUint32)
ErrorOccured(TInt, TUint32)
FetchRegistrationsL(CSIPRequestElements *)
Creates SIP REGISTER request and sends it to the given destination.
User
must no define any Contact or Expires-headers in the provided elements.
-
Pre-condition
-
State()
== EActive
-
aElements != 0
-
aElements->Method().DesC().Length()==0
Parameters
CSIPRequestElements
* aElements
|
contains local and remote addresses, optional SIP message headers and body. User must not set any expires values to aElements. The ownership is transferred.
|
FindClientTransaction(TUint32)
Finds a client transaction by its ID. All connection, registration and dialog related transactions are searched through.
Parameters
TUint32
aRequestId
|
request ID of the client transaction
|
FindDialog(TUint32)
Searches for a dialog, using aDialogId as a key.
Parameters
TUint32
aDialogId
|
DialogId of the dialog.
|
FindDialogByRequestId(TUint32)
Searches for a dialog, using aRequestId as a key.
Parameters
TUint32
aRequestId
|
RequestId of a transaction associated with the dialog
|
FindRefresh(TUint32, TUint32)
Finds a refresh by its id. All connection, registration and dialog related refreshes are searched through.
Parameters
TUint32
aRequestId
|
RequestId associated with the refresh instance
|
TUint32
aRefreshId
|
RefreshId associated with the refresh instance
|
FindRefresh(TUint32, TUint32, CSIPRefresh **, CSIPClientTransaction **)
Searches for a refresh and transaction, using aRequestId and aRefreshId as keys.
Parameters
TUint32
aRequestId
|
RequestId associated with the refreshed transaction
|
TUint32
aRefreshId
|
RefreshId associated with the refresh instance
|
CSIPRefresh
** aRefresh
|
OUT: if refresh was found, this pointer is set to the refresh instance. Ownership is not transferred.
|
CSIPClientTransaction
** aTransaction
|
OUT: if transaction was found, this pointer is set to the refreshed client transaction. Ownership is not transferred.
|
FindRegistration(TUint32, TUint32)
Searches for a registration, using aRegistrationId and aRequestId as keys. Registration might not yet have received RegistrationId from SIP client, so the aRequestId may be needed for searching.
Parameters
TUint32
aRegistrationId
|
RegistrationId of the registration
|
TUint32
aRequestId
|
RequestId of a transaction associated with the registration
|
FindRegistration(TUint32)
Searches for a registration, using aRequestId as a key.
Parameters
TUint32
aRequestId
|
RequestId of a transaction associated with the registration
|
FindTransaction(TUint32)
Searches for a transaction with the matching aRequestId.
Parameters
TUint32
aRequestId
|
RequestId associated with the transaction
|
GetStoredTransaction(TUint32)
Extracts the oldest stored transaction for the dialog identified by aDialogId.
IapId()
Gets Iap-id used for this connection
IncomingDialogRequestL(CSIPRequestElements *, TUint32, TUint32)
IncomingDialogResponseL(CSIPResponseElements *, TUint32, TUint32)
IncomingDialogResponseL(CSIPResponseElements *, TUint32, TUint32, TUint32)
IncomingRefreshResponseL(CSIPResponseElements *, TUint32, TUint32)
IncomingRegistrationResponseL(CSIPResponseElements *, TUint32, TUint32, TUint32)
IncomingRequestBeforeDialogExistsL(CSIPServerTransaction *, TUint32)
A request has been received with a dialogId, but no matching dialog exists. If the request is NOTIFY, it is stored until a response with the same dialogId is received. Then the response is passed to dialog and after that all the stored NOTIFY are passed to the same dialog. This is needed since NOTIFY can be received before a sent SUBSCRIBE receives a response with dialogId.
IncomingRequestL(CSIPRequestElements *, TUint32)
IncomingResponseL(CSIPResponseElements *, TUint32)
IncomingResponseToDialogL(CSIPResponseElements *, TUint32, TUint32, TUint32 *)
Response related to a dialog has been received.
Parameters
CSIPResponseElements
* aElements
|
SIP response elements. Ownership is transferred.
|
TUint32
aRequestId
|
Identifies the transaction
|
TUint32
aDialogId
|
DialogId
|
TUint32
* aRefreshId
|
NULL if the response is not related to a refresh, otherwise the RefreshId. Ownership is not transferred.
|
InitialDialogStateL()
Obtains the initial state for dialog state machine.
InitialRegisterStateL()
Obtains the initial state for registration state machine.
InviteCompleted(TUint32)
void
|
InviteCompleted
|
(
|
TUint32
|
aRequestId
|
)
|
|
NewL(CSIP &, CSIPConnection &, TUint32, MSIPConnectionObserver &)
RefreshErrorOccured(TInt, TUint32)
void
|
RefreshErrorOccured
|
(
|
TInt
|
aError,
|
|
TUint32
|
aRefreshId
|
|
)
|
|
RegistrationErrorOccured(TInt, TUint32, TUint32)
void
|
RegistrationErrorOccured
|
(
|
TInt
|
aError,
|
|
TUint32
|
aRegistrationId,
|
|
TUint32
|
aRequestId
|
|
)
|
|
RemoveDialog(const CSIPDialogImplementation &)
RemoveRegistration(const CRegBindingImplementation &)
Removes a registration from the array, but doesn't delete it.
RemoveTransaction(const CSIPTransactionBase &)
SIP()
const
CSIP
*
|
SIP
|
(
|
)
|
const
|
SendRequestL(CSIPRequestElements *, TUint32 *, CSIPRefresh *)
Parameters
CSIPRequestElements
* aElements
|
SIP headers. Ownership is transferred.
|
TUint32
* aRegistrationId
|
If non-NULL, request will use the outbound proxy and some SIP headers from the registration identified by aRegistrationId. Ownership is not transferred.
|
CSIPRefresh
* aRefresh
|
If non-NULL, the request will be refreshed. Otherwise NULL. Ownership is not transferred.
|
SetOptL(TUint, TUint, const TDesC8 &)
SetOptL(TUint, TUint, TInt)
State()
Gets current state of the connection
UNIT_TEST(CSIP_Test)
UNIT_TEST
|
(
|
CSIP_Test
|
|
)
|
const [private]
|
UpdateRefreshL(CSIPRefresh &, CSIPMessageElements *, TBool)
Member Data Documentation
CConnectionCallback * iCallbackInfo
CSIPClientConnection * iClientConnection
CSIPConnection & iConnection
RPointerArray< CSIPDialogImplementation > iDialogs
MSIPConnectionObserver & iObserver
RPointerArray< CSIPRefresh > iRefreshes
RPointerArray< CRegBindingImplementation > iRegistrations
RPointerArray< CSIPTransactionBase > iTransactions
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.