phonesrv_plat/converged_call_provider_api/inc/mccpcallobserver.h
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
    31 *  @since S60 3.2
    31 *  @since S60 3.2
    32 */
    32 */
    33 class MCCPCallObserver
    33 class MCCPCallObserver
    34     {
    34     {
    35 public:
    35 public:
    36     /** Call states */
    36 	/** Call states */
    37     enum TCCPCallState
    37 	enum TCCPCallState
    38         {
    38 		{
    39         /** Indicates initial call state after call creation. Basic state. */
    39 		/** Indicates initial call state after call creation. Basic state. */
    40         ECCPStateIdle,
    40 		ECCPStateIdle,
    41         /** Indicates that the MT call is ringing but not answered yet by the local user. Basic state.*/
    41 		/** Indicates that the MT call is ringing but not answered yet by the local user. Basic state.*/
    42         ECCPStateRinging,
    42 		ECCPStateRinging,
    43         /** MO Call: the network notifies to the MS that the remote party is now ringing. Basic state.*/
    43 		/** MO Call: the network notifies to the MS that the remote party is now ringing. Basic state.*/
    44         ECCPStateConnecting,
    44 		ECCPStateConnecting,
    45         /** Indicates that call is connected and active. Basic state.*/
    45 		/** Indicates that call is connected and active. Basic state.*/
    46         ECCPStateConnected,
    46 		ECCPStateConnected,
    47         /** Indicates that call is disconnecting. Basic state.*/
    47 		/** Indicates that call is disconnecting. Basic state.*/
    48         ECCPStateDisconnecting,
    48 		ECCPStateDisconnecting,
    49         /** Indicates that the call is connected but on hold. Basic state.*/
    49 		/** Indicates that the call is connected but on hold. Basic state.*/
    50         ECCPStateHold,
    50 		ECCPStateHold,
    51 
    51 
    52         /** Call is transfering. Optional state.*/
    52 		/** Call is transfering. Optional state.*/
    53         ECCPStateTransferring,
    53 		ECCPStateTransferring,
    54         /** MO call is being forwarded at receiver end. Optional state. */
    54 		/** MO call is being forwarded at receiver end. Optional state. */
    55         ECCPStateForwarding,
    55 		ECCPStateForwarding,
    56         /** Call is queued locally. Optional state. */
    56 		/** Call is queued locally. Optional state. */
    57         ECCPStateQueued,
    57 		ECCPStateQueued,
    58 
    58 
    59         /** Indicates that the local user has answered the MT call but the network has not
    59         /** Indicates that the local user has answered the MT call but the network has not
    60         acknowledged the call connection yet.  Must be sent after MCCPCall::Answer method has been completed. */
    60         acknowledged the call connection yet.  Must be sent after MCCPCall::Answer method has been completed. */
    61         ECCPStateAnswering,
    61         ECCPStateAnswering,
    62    
    62    
    63         /** Indicates that the call is dialing. Must be sent after MCCPCall::Dial method has been completed. */
    63         /** Indicates that the call is dialing. Must be sent after MCCPCall::Dial method has been completed. */
    64         ECCPStateDialling,
    64         ECCPStateDialling,
    65         
    65 		
    66         };
    66 		};
    67 
    67 
    68     /** Describes the possible call events. */
    68 	/** Describes the possible call events. */
    69     enum TCCPCallEvent
    69 	enum TCCPCallEvent
    70         {
    70 		{
    71         /** Call has been placed on hold as a result of a local action. */
    71 		/** Call has been placed on hold as a result of a local action. */
    72         ECCPLocalHold,
    72 		ECCPLocalHold,
    73         /** Call has been placed on hold by the remote connected party. */
    73 		/** Call has been placed on hold by the remote connected party. */
    74         ECCPRemoteHold,
    74 		ECCPRemoteHold,
    75         /** Call has been resumed as a result of a local action.    */
    75 		/** Call has been resumed as a result of a local action.	*/
    76         ECCPLocalResume,
    76 		ECCPLocalResume,
    77         /** Call has been resumed by the remote connected party. */
    77 		/** Call has been resumed by the remote connected party. */
    78         ECCPRemoteResume,
    78 		ECCPRemoteResume,
    79         /** Outgoing call has been barred by the local party. */
    79 		/** Outgoing call has been barred by the local party. */
    80         ECCPLocalBarred,
    80 		ECCPLocalBarred,
    81         /** Outgoing call has been barred by the remote party. */
    81 		/** Outgoing call has been barred by the remote party. */
    82         ECCPRemoteBarred,
    82 		ECCPRemoteBarred,
    83         /** Call is waiting at the remote end. Obsolote, use supplementary service ESsCallWaiting */
    83 		/** Call is waiting at the remote end. Obsolote, use supplementary service ESsCallWaiting */
    84         ECCPRemoteWaiting,
    84 		ECCPRemoteWaiting,
    85         /** Call has been terminated by the remote party. */
    85 		/** Call has been terminated by the remote party. */
    86         ECCPRemoteTerminated,
    86 		ECCPRemoteTerminated,
    87         /** Call is in queue */
    87 		/** Call is in queue */
    88         ECCPQueued,
    88 		ECCPQueued,
    89 
    89 
    90         /** VoIP specific */
    90 		/** VoIP specific */
    91         ECCCSPEarlyMediaStarted,
    91 		ECCCSPEarlyMediaStarted,
    92 
    92 
    93         /** Call is secure */
    93 		/** Call is secure */
    94         ECCPSecureCall,
    94 		ECCPSecureCall,
    95         /** Call is not secure */
    95 		/** Call is not secure */
    96         ECCPNotSecureCall,
    96 		ECCPNotSecureCall,
    97         
    97 		
    98         /** VoIP specific
    98 		/** VoIP specific
    99         User has called with address containing "SIPS:" prefix. This event notifies that
    99 		User has called with address containing "SIPS:" prefix. This event notifies that
   100         secure call signaling is not possible. **/
   100 		secure call signaling is not possible. **/
   101         ECCPNotSecureSessionWithSips,
   101 		ECCPNotSecureSessionWithSips,
   102        
   102        
   103         /** Call has been added to remote conference call at remote end */
   103 		/** Call has been added to remote conference call at remote end */
   104         ECCPRemoteConferenceCreate,
   104 		ECCPRemoteConferenceCreate,
   105        
   105 	   
   106         ////////////////////////////
   106 		////////////////////////////
   107         // CS call specific events
   107 		// CS call specific events
   108         ///////////////////////////        
   108 		///////////////////////////        
   109        
   109 	   
   110         /** CS call specific event */
   110 		/** CS call specific event */
   111         ECCPCSDataPortLoaned,
   111 		ECCPCSDataPortLoaned,
   112         /** CS call specific event */
   112 		/** CS call specific event */
   113         ECCPCSDataPortRecovered,
   113 		ECCPCSDataPortRecovered,
   114 
   114 
   115         /** One or more of following information has been changed
   115 		/** One or more of following information has been changed
   116          *  - Remote party name
   116          *  - Remote party name
   117          *  - Remote party number/address
   117          *  - Remote party number/address
   118          *  - Call parameters ( ie. service id )
   118          *  - Call parameters ( ie. service id )
   119          */     
   119 		 */		
   120         ECCPNotifyRemotePartyInfoChange,
   120 		ECCPNotifyRemotePartyInfoChange,
   121 
   121 
   122         /** Call secure status cannot be determined */
   122         /** Call secure status cannot be determined */
   123         ECCPSecureNotSpecified
   123         ECCPSecureNotSpecified
   124         };
   124 		};
   125 
   125 
   126 
   126 
   127     /** Flags indicating all the possible call control capabilities. */
   127 	/** Flags indicating all the possible call control capabilities. */
   128     enum TCCPCallControlCaps
   128 	enum TCCPCallControlCaps
   129         {
   129 		{
   130         /** Call supports data calls. */
   130 		/** Call supports data calls. */
   131         ECCPCapsData           =   0x00000001,
   131 		ECCPCapsData           =   0x00000001,
   132         /** Call supports fax calls. */
   132 		/** Call supports fax calls. */
   133         ECCPCapsFax            =   0x00000002,
   133 		ECCPCapsFax            =   0x00000002,
   134         /** Call supports voice calls. */
   134 		/** Call supports voice calls. */
   135         ECCPCapsVoice          =   0x00000004,
   135 		ECCPCapsVoice          =   0x00000004,
   136         /** The Dial request is currently a valid action. */
   136 		/** The Dial request is currently a valid action. */
   137         ECCPCapsDial           =   0x00000008,
   137 		ECCPCapsDial           =   0x00000008,
   138         /** The Connect request is currently a valid action. */
   138 		/** The Connect request is currently a valid action. */
   139         ECCPCapsConnect        =   0x00000010,
   139 		ECCPCapsConnect        =   0x00000010,
   140         /** The Hang Up request is currently a valid action. */
   140 		/** The Hang Up request is currently a valid action. */
   141         ECCPCapsHangUp         =   0x00000020,
   141 		ECCPCapsHangUp         =   0x00000020,
   142         /** The Answer request is currently a valid action. */
   142 		/** The Answer request is currently a valid action. */
   143         ECCPCapsAnswer         =   0x00000040,
   143 		ECCPCapsAnswer         =   0x00000040,
   144         /** The Loan Data Port request is currently a valid action. */
   144 		/** The Loan Data Port request is currently a valid action. */
   145         ECCPCapsLoanDataPort   =   0x00000080,
   145 		ECCPCapsLoanDataPort   =   0x00000080,
   146         /** The Recover Data Port request is currently a valid action. */
   146 		/** The Recover Data Port request is currently a valid action. */
   147         ECCPCapsRecoverDataPort=   0x00000100,
   147 		ECCPCapsRecoverDataPort=   0x00000100,
   148         /** Indicates that this call can be put on hold. This implies that the call is currently
   148 		/** Indicates that this call can be put on hold. This implies that the call is currently
   149         active and that there is no other held call. */
   149 		active and that there is no other held call. */
   150         ECCPCapsHold           =   0x00000200,
   150 		ECCPCapsHold           =   0x00000200,
   151         /** Indicates that this call can be resumed. This implies that the call is currently
   151 		/** Indicates that this call can be resumed. This implies that the call is currently
   152         on hold and that there is no other active call. */
   152 		on hold and that there is no other active call. */
   153         ECCPCapsResume         =   0x00000400,
   153 		ECCPCapsResume         =   0x00000400,
   154         /** Indicates that this call's state can be swapped to the opposite state. This
   154 		/** Indicates that this call's state can be swapped to the opposite state. This
   155         implies that this call is either active or held. There may be another call
   155 		implies that this call is either active or held. There may be another call
   156         in the opposite state and if this is the case then both calls will be simultaneously
   156 		in the opposite state and if this is the case then both calls will be simultaneously
   157         swapped to their opposite state. */
   157 		swapped to their opposite state. */
   158         ECCPCapsSwap           =   0x00000800,
   158 		ECCPCapsSwap           =   0x00000800,
   159         /** Indicates that this incoming call can be deflected to another destination.*/
   159 		/** Indicates that this incoming call can be deflected to another destination.*/
   160         ECCPCapsDeflect        =   0x00001000,
   160 		ECCPCapsDeflect        =   0x00001000,
   161         /** Indicates that this call can be transferred to the remote party of another call.
   161 		/** Indicates that this call can be transferred to the remote party of another call.
   162         For this capability to be set there must be one active call and one held or
   162 		For this capability to be set there must be one active call and one held or
   163         dialing call.*/
   163 		dialing call.*/
   164         ECCPCapsTransfer       =   0x00002000,
   164 		ECCPCapsTransfer       =   0x00002000,
   165         /** Indicates that this call can be joined either to another single call to form
   165 		/** Indicates that this call can be joined either to another single call to form
   166         a conference call or to an existing conference call.*/
   166 		a conference call or to an existing conference call.*/
   167         ECCPCapsJoin           =   0x00004000,
   167 		ECCPCapsJoin           =   0x00004000,
   168         /** Indicates that this call (within a conference call) can go into One to One mode.
   168 		/** Indicates that this call (within a conference call) can go into One to One mode.
   169         This action would put the rest of the conference call on hold. */
   169 		This action would put the rest of the conference call on hold. */
   170         ECCPCapsOneToOne       =   0x00008000,
   170 		ECCPCapsOneToOne       =   0x00008000,
   171         /** Indicates that the user can activate a CCBS request on this failed call set-up.*/
   171 		/** Indicates that the user can activate a CCBS request on this failed call set-up.*/
   172         ECCPCapsActivateCCBS   =   0x00010000,
   172 		ECCPCapsActivateCCBS   =   0x00010000,
   173         /** Indicates that this call is part of an alternating call and the client can call
   173 		/** Indicates that this call is part of an alternating call and the client can call
   174         SwitchAlternatingCall() on this call in order to switch it to its other mode.*/
   174 		SwitchAlternatingCall() on this call in order to switch it to its other mode.*/
   175         ECCPCapsSwitchAlternatingCall = 0x00020000,
   175 		ECCPCapsSwitchAlternatingCall = 0x00020000,
   176         /** Indicates that this call can use/create a new bearer. This means that multiple
   176 		/** Indicates that this call can use/create a new bearer. This means that multiple
   177         calls (multicall) can be active at the same time using no more that 7 bearers
   177 		calls (multicall) can be active at the same time using no more that 7 bearers
   178         simultaneously. The other option is to swap with an active call, therefore
   178 		simultaneously. The other option is to swap with an active call, therefore
   179         it becomes held and shares the same bearer.*/
   179 		it becomes held and shares the same bearer.*/
   180         ECCPCapsMulticall      =   0x00040000,
   180 		ECCPCapsMulticall      =   0x00040000,
   181         /** Indicates that this call is an packet switched call */
   181 		/** Indicates that this call is an packet switched call */
   182         ECCPCapsPSCall       =   0x00080000,
   182 		ECCPCapsPSCall       =   0x00080000,
   183         /** Indicates that this call supports unattended transfer method and that this call
   183 		/** Indicates that this call supports unattended transfer method and that this call
   184         is currently active */
   184 		is currently active */
   185         ECCPCapsUnattendedTransfer = 0x00100000,
   185 		ECCPCapsUnattendedTransfer = 0x00100000,
   186         /** Indicates that a conference call can be created. */
   186 		/** Indicates that a conference call can be created. */
   187         KCCPCapsCreate = 0x00200000
   187 		KCCPCapsCreate = 0x00200000
   188         };
   188 		};
   189 
   189 
   190 
   190 
   191 protected:
   191 protected:
   192     /** 
   192 	/** 
   193     * Protects the observer being deleted through the observer interface 
   193 	* Protects the observer being deleted through the observer interface 
   194     * @since S60 3.2
   194 	* @since S60 3.2
   195     */
   195 	*/
   196     virtual inline ~MCCPCallObserver() {};
   196 	virtual inline ~MCCPCallObserver() {};
   197     
   197     
   198 public:
   198 public:
   199     /**
   199 	/**
   200     * An error has occurred concerning a specific call.
   200 	* An error has occurred concerning a specific call.
   201     * @since S60 3.2
   201 	* @since S60 3.2
   202     * @param aError Error code.
   202 	* @param aError Error code.
   203     * @param aCall Pointer to used ccp call, can be NULL in emergency call
   203 	* @param aCall Pointer to used ccp call, can be NULL in emergency call
   204     * @return none
   204 	* @return none
   205     */
   205 	*/
   206     virtual void ErrorOccurred( const TCCPError aError, MCCPCall* aCall ) = 0; 
   206 	virtual void ErrorOccurred( const TCCPError aError, MCCPCall* aCall ) = 0; 
   207 
   207 
   208     /**
   208 	/**
   209     * The state of the call has changed.
   209 	* The state of the call has changed.
   210     * @since S60 3.2
   210 	* @since S60 3.2
   211     * @param aState Call state.
   211 	* @param aState Call state.
   212     * @param aCall Pointer to used ccp call, can be NULL in emergency call
   212 	* @param aCall Pointer to used ccp call, can be NULL in emergency call
   213     * @return none
   213 	* @return none
   214     */
   214 	*/
   215     virtual void CallStateChanged( const MCCPCallObserver::TCCPCallState aState, 
   215 	virtual void CallStateChanged( const MCCPCallObserver::TCCPCallState aState, 
   216                                    MCCPCall* aCall) = 0; 
   216 	                               MCCPCall* aCall) = 0; 
   217 
   217 
   218     /**
   218 	/**
   219     * The state of the call has changed with inband tone, meaning network is playing 
   219 	* The state of the call has changed with inband tone, meaning network is playing 
   220     * the tone relating to the state.
   220 	* the tone relating to the state.
   221     * @since S60 3.2
   221 	* @since S60 3.2
   222     * @param aState Call state.
   222 	* @param aState Call state.
   223     * @param aCall Pointer to used ccp call, can be NULL in emergency call
   223 	* @param aCall Pointer to used ccp call, can be NULL in emergency call
   224     * @return none
   224 	* @return none
   225     */
   225 	*/
   226     virtual void CallStateChangedWithInband( const MCCPCallObserver::TCCPCallState aState, 
   226 	virtual void CallStateChangedWithInband( const MCCPCallObserver::TCCPCallState aState, 
   227                                              MCCPCall* aCall ) = 0; 
   227 	                                         MCCPCall* aCall ) = 0; 
   228 
   228 
   229     /**
   229 	/**
   230     * An event has occurred concerning a specific call.
   230 	* An event has occurred concerning a specific call.
   231     * @since S60 3.2
   231 	* @since S60 3.2
   232     * @param aEvent Occurred event.
   232 	* @param aEvent Occurred event.
   233     * @param aCall Pointer to used ccp call, can be NULL in emergency call
   233 	* @param aCall Pointer to used ccp call, can be NULL in emergency call
   234     * @return none
   234 	* @return none
   235     */
   235 	*/
   236     virtual void CallEventOccurred( const MCCPCallObserver::TCCPCallEvent aEvent, 
   236 	virtual void CallEventOccurred( const MCCPCallObserver::TCCPCallEvent aEvent, 
   237                                     MCCPCall* aCall ) = 0; 
   237 	                                MCCPCall* aCall ) = 0; 
   238 
   238 
   239     /**
   239 	/**
   240     * Notifies changed call capabilities.
   240 	* Notifies changed call capabilities.
   241     * @since S60 3.2
   241 	* @since S60 3.2
   242     * @param aCapsFlags New capabilities for the call
   242 	* @param aCapsFlags New capabilities for the call
   243     * @param aCall Pointer to used ccp call, can be NULL in emergency call
   243 	* @param aCall Pointer to used ccp call, can be NULL in emergency call
   244     * @return none
   244 	* @return none
   245     */
   245 	*/
   246     virtual void CallCapsChanged( const TUint32 aCapsFlags, 
   246 	virtual void CallCapsChanged( const TUint32 aCapsFlags, 
   247                                   MCCPCall* aCall ) = 0; 
   247 	                              MCCPCall* aCall ) = 0; 
   248     };
   248     };
   249 
   249 
   250 #endif // MCCPCALLOBSERVER_H
   250 #endif // MCCPCALLOBSERVER_H
   251 
   251 
   252 // End of File
   252 // End of File