tsrc/musenginestub/inc/musengoutsessionobserver.h
changeset 22 496ad160a278
equal deleted inserted replaced
15:ccd8e69b5392 22:496ad160a278
       
     1 /*
       
     2 * Copyright (c) 2005 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: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef MUSENGOUTSESSIONOBSERVER_H
       
    20 #define MUSENGOUTSESSIONOBSERVER_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <badesca.h>
       
    24 
       
    25 // FORWARD DECLARATIONS
       
    26 class MMusEngAsyncRetryObserver;
       
    27 
       
    28 // CLASS DECLARATION
       
    29 
       
    30 /**
       
    31 * An interface to be implemented by users of Multimedia Sharing Engine if they 
       
    32 * wish to receive feedback from outsent INVITE. All the callback functions 
       
    33 * represent an answer from network to sent INVITE.
       
    34 */
       
    35 class MMusEngOutSessionObserver
       
    36     {
       
    37     public:
       
    38 
       
    39         /**    
       
    40         * Indicates that preconditions for sending invitation cannot be met.
       
    41         */
       
    42         virtual void UnableToSendInvitation() = 0;
       
    43 
       
    44 	    /**    
       
    45         * Indicates that no response received to invitation
       
    46         */
       
    47         virtual void NoResponseReceivedToInvitation() = 0;
       
    48         
       
    49 		/**    
       
    50    		* Indicates that MT has rejected session. ( e.g. 603 DECLINE ).
       
    51 		*/
       
    52      	virtual void SessionRejected() = 0;
       
    53     	
       
    54     	/**
       
    55     	* The following functions represent a specific reason in answer
       
    56     	* to sent INVITE.
       
    57     	*/
       
    58     	
       
    59 		virtual void SessionBadRequest() = 0; // 400 
       
    60 		virtual void SessionUnauthorized() = 0; // 401 
       
    61 		virtual void SessionPaymentRequired() = 0; // 402
       
    62     	virtual void SessionRecipientNotFound() = 0; // 404 
       
    63 		virtual void SessionProxyAuthenticationRequired() = 0; // 407
       
    64 		virtual void SessionRequestTimeOut() = 0; // 408
       
    65 		virtual void SessionUnsupportedMediaType() = 0; // 415
       
    66 		virtual void SessionBusyHere() = 0; // 486
       
    67 		virtual void SessionRequestCancelled() = 0; // 487    	
       
    68   	    virtual void SessionTemporarilyNotAvailable() = 0; // 480
       
    69   	          
       
    70   	    /**
       
    71   	    * Indicates possibility to retry session. Recipient proposal is given
       
    72   	    * but implementation can query user for new recipient address.
       
    73   	    * Retry address should be filled to aRetryAddress on return.
       
    74   	    * @return ETrue if retry should be made
       
    75   	    */
       
    76   	    virtual TBool RetrySessionSync( const TDesC& aRecipientProposal,
       
    77                                         TDes& aRetryAddress ) = 0;
       
    78   	    
       
    79   	    /**
       
    80   	    * Indicates that retry with given address is proceeding.
       
    81   	    */
       
    82   	    virtual void RetryProceeding() = 0;
       
    83   	    
       
    84   	    /**
       
    85   	    * Indicates that there's multiple suitable recipient addresses.
       
    86   	    * Client can choose what to use.
       
    87   	    * @param aAddressArray, list of suitable recipient addresses
       
    88   	    * @param aRecipientAddress, on return should contain recipient
       
    89   	    *    address to be used
       
    90   	    * @return ETrue if recipient was selected, otherwise EFalse
       
    91   	    */
       
    92   	    virtual TBool SelectRecipientL( CDesCArray& aAddressArray, 
       
    93                                         TDes& aRecipientAddress ) = 0;
       
    94     };
       
    95 
       
    96 #endif