phonesrv_plat/converged_call_engine_api/inc/mcceconferencecall.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
equal deleted inserted replaced
-1:000000000000 0:ff3b6d0fd310
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Interface for conference call
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef MCCECONFERENCECALL_H
       
    20 #define MCCECONFERENCECALL_H
       
    21 
       
    22 #include "mcceconferencecallobserver.h"
       
    23 
       
    24 class MCCECall;
       
    25 
       
    26 /**
       
    27  *  Interface for conference call
       
    28  *
       
    29  *  
       
    30  *
       
    31  *  @lib cce.dll
       
    32  *  @since S60 v3.2
       
    33  */
       
    34 class MCCEConferenceCall
       
    35     {
       
    36 public:
       
    37 
       
    38     /**
       
    39     * Returns the service-id used for the conference call..
       
    40     * @since S60 3.2
       
    41     * @param none
       
    42     * @return TUint32 service-id
       
    43     */
       
    44     virtual TUint32 ServiceId() const = 0;
       
    45 
       
    46     /**
       
    47     * Releases all bindings to conference call. PE will call this after receiving 
       
    48     * MCCEConferenceCallObserver::ECCEConferenceIdle from CCE or when it itself 
       
    49     * wants to release the call. In normal sequence called in PE after HangUp is completed.
       
    50     * @param none
       
    51     * @return KErrNone
       
    52     * @pre None Can always be called.
       
    53     * @post Plug-in must quarantee all resources for the call will be cleaned up. Call MUST not 
       
    54     * be referenced anymore from PE and CCE must not call observer after this call!
       
    55     * @since S60 3.2
       
    56     */
       
    57     virtual TInt Release() = 0;
       
    58 
       
    59 	/**
       
    60 	* Adds new call to conference call.
       
    61 	* @since S60 3.2
       
    62 	* @param aCall Call to be added to conference.
       
    63 	* @return none 
       
    64 	* @leave In case of an error system wide error code
       
    65 	* @leave KErrAlreadyExists call is already part of conference.
       
    66 	* @leave KErrNotReady In case conference is not on hold or idle.
       
    67 	* @pre Conference call state is MCCEConferenceCallObserver::ECCEConferenceHold or 
       
    68 	* MCCEConferenceCallObserver::ECCEConferenceIdle. 
       
    69 	* @post Added call is notified calling MCCEConferenceCallObserver::CallEventOccurred.
       
    70 	* @post If conference becomes active regarding its internal plug-in based logic state is 
       
    71 	* MCCEConferenceCallObserver::ECCEConferenceActive.
       
    72 	*/
       
    73     virtual void AddCallL( MCCECall& aCall ) = 0;
       
    74      
       
    75 	/**
       
    76 	* Removes call from conference call. 
       
    77 	* @since S60 3.2
       
    78 	* @param aCall Call to be removed from conference
       
    79 	* @return none
       
    80 	* @leave In case of an error system wide error code
       
    81 	* @leave KErrNotFound call was not part of conference
       
    82 	* @leave KErrNotReady In case conference is not connected 
       
    83 	* (MCCEConferenceCallObserver::ECCEConferenceActive) state.
       
    84 	* @pre Conference call state is MCCEConferenceCallObserver::ECCEConferenceActive or 
       
    85 	* MCCEConferenceCallObserver::ECCEConferenceIdle. 
       
    86 	* @post Removed call is notified calling MCCEConferenceCallObserver::CallEventOccurred.
       
    87 	* @post If conference becomes idle regarding its internal plug-in based logic state is 
       
    88 	* MCCEConferenceCallObserver::ECCEConferenceIdle. 
       
    89 	* 
       
    90 	*/
       
    91 	virtual void RemoveCallL( MCCECall& aCall ) = 0;
       
    92 
       
    93     /**
       
    94     * Returns call count of the conference call. 
       
    95     *
       
    96     * @since S60 3.2
       
    97     * @param none 
       
    98     * 
       
    99     * @return Number of calls in conference
       
   100     */
       
   101     virtual TInt EnumerateCalls() = 0;
       
   102      
       
   103     /**
       
   104     * Return capabilities of the conference call.
       
   105     *
       
   106     * @since S60 3.2
       
   107     * @param none
       
   108     * @return Conference call capabilities.
       
   109     */
       
   110     virtual MCCEConferenceCallObserver::TCCEConferenceCallCaps Caps() const = 0;
       
   111      
       
   112     /**
       
   113     * End conference call. 
       
   114     * Client needs to call Release to notify CCE it has no use for the call anymore.
       
   115     *
       
   116     * @since S60 3.2
       
   117     * param none
       
   118     * @return KErrNone if request was started succesfully. 
       
   119     * @return KErrAlreadyExists if call is already in idle state
       
   120     * @pre Call state is not MCCEConferenceCallObserver::ECCEConferenceIdle
       
   121     */
       
   122     virtual TInt HangUp() = 0;
       
   123      
       
   124     /**
       
   125     * Allows a client to switch a conference call between "Active" and "Hold" states.
       
   126     *
       
   127     * @since S60 3.2
       
   128     * param none
       
   129     * @return KErrNone if request was started succesfully. 
       
   130     * @return KErrNotReady if call is not in on-hold state or connected state
       
   131     * @pre Call state is MCCEConferenceCallObserver::ECCEConferenceHold or 
       
   132     * MCCEConferenceCallObserver::ECCEConferenceActive
       
   133     
       
   134     */
       
   135     virtual TInt Swap() = 0;
       
   136      
       
   137     /**
       
   138     * Private call with one call from conference call.
       
   139 	* @since S60 3.2
       
   140 	* @param aCall
       
   141     * @return none
       
   142 	* @leave In case of an error system wide error code
       
   143 	* @leave KErrNotFound call was not part of conference
       
   144 	* @post After successful actions conference call state is MCCEConferenceCallObserver::ECCEConferenceHold 
       
   145 	* (if idle state will not be applied as call count decreases) and private call will become active one. 
       
   146 	*/
       
   147 	virtual void GoOneToOneL( MCCECall& aCall ) = 0;
       
   148 
       
   149     /**
       
   150     * Gets conference participants
       
   151     * @since S60 3.2
       
   152     * @param aCallArray Reference to call array
       
   153     * @return Error code
       
   154     */
       
   155     virtual TInt GetCallArray( RPointerArray<MCCECall>& aCallArray ) = 0;
       
   156 
       
   157     /**
       
   158     * Sets observer to conference call events. Observer is given when conference 
       
   159     * creation request is given. Client is not required to call this. If called will 
       
   160     * replace current observer with the new one.
       
   161     *
       
   162     * @since S60 3.2
       
   163     * @param aObserver  Reference to observer interface implementation.
       
   164     * @return none
       
   165     */
       
   166     virtual void SetObserver( const MCCEConferenceCallObserver& aObserver ) = 0;
       
   167 
       
   168 	/**
       
   169 	* Returns duration of a conference call. 
       
   170 	* CCE will count duration from connected state to idle state.
       
   171 	*
       
   172 	* @since S60 v3.2
       
   173 	* @param none
       
   174 	* @return On return contains the call duration in seconds.
       
   175 	*/
       
   176 	virtual TTimeIntervalSeconds CallDuration() const = 0;
       
   177     };
       
   178 
       
   179 
       
   180 #endif // MCCECONFERENCECALL
       
   181