phonesrv_plat/converged_call_provider_api/inc/mccpcallobserver.h
branchRCL_3
changeset 19 7d48bed6ce0c
parent 0 ff3b6d0fd310
child 20 987c9837762f
equal deleted inserted replaced
18:594d59766373 19:7d48bed6ce0c
    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