|
S60 3rd Edition SDK for Symbian OS Example Applications Guide |
#include <SIPExSIPClientOfferingState.h>
Inheritance diagram for CSIPExSIPClientOfferingState:

Public Member Functions | |
| virtual IMPORT_C | ~CSIPExSIPClientOfferingState () |
| void | LinkStates (CSIPExSIPStateBase &aIdleState, CSIPExSIPStateBase &aEstablishedState, CSIPExSIPStateBase &aTerminatedState) |
| void | CancelInviteL (CSIPExSIPEngine &aEngine) |
| void | ResponseReceivedL (CSIPExSIPEngine &aEngine, CSIPClientTransaction &aTransaction) |
Static Public Member Functions | |
| static IMPORT_C CSIPExSIPClientOfferingState * | NewL () |
Private Member Functions | |
| CSIPExSIPClientOfferingState () | |
Private Attributes | |
| CSIPExSIPStateBase * | iIdleState |
| CSIPExSIPStateBase * | iEstablishedState |
| CSIPExSIPStateBase * | iTerminatedState |
Definition at line 32 of file SIPExSIPClientOfferingState.h.
|
|
Destructor Definition at line 36 of file SIPExSIPClientOfferingState.cpp.
|
|
|
C++ default constructor. Definition at line 27 of file SIPExSIPClientOfferingState.cpp.
|
|
|
Two-phased constructor. Definition at line 45 of file SIPExSIPClientOfferingState.cpp. References CSIPExSIPClientOfferingState(). 00046 { 00047 CSIPExSIPClientOfferingState* self = 00048 new (ELeave) CSIPExSIPClientOfferingState(); 00049 return self; 00050 }
|
|
||||||||||||||||
|
Links the states
Definition at line 57 of file SIPExSIPClientOfferingState.cpp. References iEstablishedState, iIdleState, and iTerminatedState. 00061 { 00062 iIdleState = &aIdleState; 00063 iEstablishedState = &aEstablishedState; 00064 iTerminatedState = &aTerminatedState; 00065 }
|
|
|
CancelInviteL Cancel an INVITE sent previously.
Reimplemented from CSIPExSIPStateBase. Definition at line 72 of file SIPExSIPClientOfferingState.cpp. References CSIPExSIPEngine::ClientTx(), iIdleState, MSIPExSIPEngineObserver::InvitationCancelled(), CSIPExSIPEngine::Observer(), and CSIPExSIPEngine::SetCurrentState(). 00073 { 00074 // Get the current Client Transaction 00075 CSIPClientTransaction& clientTA = aEngine.ClientTx(); 00076 00077 // Use it the to send CANCEL request 00078 CSIPClientTransaction* ta = clientTA.CancelL(); 00079 delete ta; 00080 00081 aEngine.SetCurrentState( iIdleState ); 00082 aEngine.Observer()->InvitationCancelled(); 00083 }
|
|
||||||||||||
|
ResponseReceivedL A SIP response has been received from the network.
Reimplemented from CSIPExSIPStateBase. Definition at line 91 of file SIPExSIPClientOfferingState.cpp. References CSIPExSIPEngine::DialogAssoc(), iEstablishedState, MSIPExSIPEngineObserver::InviteAcceptedByRemote(), MSIPExSIPEngineObserver::InviteDeclinedByRemote(), MSIPExSIPEngineObserver::InviteReceivedByRemote(), CSIPExSIPEngine::IPAddressFromResponseElementsL(), iTerminatedState, CSIPExSIPEngine::Observer(), and CSIPExSIPEngine::SetCurrentState(). 00094 { 00095 const CSIPResponseElements* respElem = aTransaction.ResponseElements(); 00096 00097 TUint statusCode = respElem->StatusCode(); 00098 00099 if ( statusCode >= 200 && statusCode < 300 ) 00100 { 00101 // Final Response received from network. 00102 // Get the IP Address of the remote party from the Response Elements 00103 const TInetAddr addr = 00104 aEngine.IPAddressFromResponseElementsL( *respElem ); 00105 00106 00107 // Then, send ACK to remote party 00108 CSIPInviteDialogAssoc& dialogAssoc = aEngine.DialogAssoc(); 00109 dialogAssoc.SendAckL( aTransaction ); 00110 00111 // Get used iap's id 00112 TUint32 iapId( 0 ); 00113 CSIPConnection* conn = aEngine.DialogAssoc().Dialog().Connection(); 00114 if ( conn ) 00115 { 00116 iapId = conn->IapId(); 00117 } 00118 00119 // After ACKing, notify observer, giving IP Address and IAP id 00120 // as parameter 00121 aEngine.Observer()->InviteAcceptedByRemote( addr, iapId ); 00122 00123 00124 // Finally, change engine state 00125 aEngine.SetCurrentState( iEstablishedState ); 00126 } 00127 else if ( statusCode >= 100 && statusCode < 200 ) 00128 { 00129 // Provisional Response received from network. 00130 aEngine.Observer()->InviteReceivedByRemote( statusCode ); 00131 } 00132 else 00133 { 00134 aEngine.Observer()->InviteDeclinedByRemote( statusCode ); 00135 aEngine.SetCurrentState( iTerminatedState ); 00136 } 00137 }
|
|
© Nokia 2006 |