--- a/sipvoipprovider/inc/svpsessionbase.h Tue Feb 02 00:05:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1238 +0,0 @@
-/*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Session base class for SVP MO and MT sessions. Contains methods
-* common for SVP MO and MT sessions.
-*
-*/
-
-
-#ifndef SVPSESSIONBASE_H
-#define SVPSESSIONBASE_H
-
-#include <e32base.h>
-#include <mccpcall.h>
-#include <mccpssobserver.h>
-#include <mccpdtmfobserver.h>
-
-#include "svpsessionobserver.h"
-#include "svpholdobserver.h"
-#include "svptransferobserver.h"
-#include "svptimer.h"
-#include "svptimerobserver.h"
-#include "svppropertywatchobserver.h"
-#include "svpvolumeupdateobserver.h"
-#include "svpdtmfeventobserver.h"
-#include "svputdefs.h"
-
-// FORWARD DECLARATIONS
-class TMceTransactionDataContainer;
-class CSVPUtility;
-class CSVPRtpObserver;
-class CSVPHoldController;
-class MCCPCallObserver;
-class MCCPSsObserver;
-class CSVPTransferController;
-class CMceInRefer;
-class CSVPVolumeObserver;
-class CSVPPropertyWatch;
-class CSVPDTMFEventGenerator;
-class CMceSession;
-class CMceMediaStream;
-class CMceMediaSink;
-class CMceMediaSource;
-class CMceEvent;
-class CMceRefer;
-class CDesC8Array;
-
-/**
- * SVP Session base
- *
- * Base class for SVP MT and MO sessions.
- *
- * @lib svp.dll
- * @since S60 3.2
- */
-class CSVPSessionBase : public CBase,
- public MCCPCall,
- public MSVPTransferObserver,
- public MSVPHoldObserver,
- public MSVPTimerObserver,
- public MSVPPropertyWatchObserver,
- public MSVPVolumeUpdateObserver,
- public MSVPDTMFEventObserver
-
- {
-
-public:
-
- /**
- * C++ default constructor.
- */
- CSVPSessionBase( TMceTransactionDataContainer& aContainer,
- MSVPSessionObserver& aObserver,
- CSVPUtility& aSVPUtility,
- CSVPRtpObserver& aRtpObserver );
-
- /**
- * Destructor.
- */
- virtual ~CSVPSessionBase();
-
-public: // new functions
-
- /**
- * Saves updated Mce session in cases where re-INVITE without
- * SDP is received
- * @Since S60 3.2
- * @param aUpdatedSession Session that is under update
- */
- void SetUpdatedSession( CMceInSession* aUpdatedSession );
-
- /**
- * Releases temporary secure session stored
- * after secure session trial failed
- * @since Series 60 3.2
- */
- void ReleaseTempSecure();
-
- /**
- * Returns Mce session
- * @Since S60 3.2
- * @param
- * @return instance of session
- */
- const CMceSession& Session() const;
-
- /**
- * Construcst audiostreams for MT and MO session
- * @since Series 60 3.2
- * @param None
- * @return
- */
- void ConstructAudioStreamsL();
-
- /**
- * Starts SVP timer
- * @since Series 60 3.2
- * @param aMilliSeconds
- * @param aTimerId
- * @return
- */
- void StartTimerL( TInt aMilliSeconds, TInt aTimerId );
-
- /**
- * Stop specified SVP timer
- * @since Series 60 3.2
- * @param aTimerId The ID of the timer to stop.
- */
- void StopTimer( TInt aTimerId );
-
- /**
- * Stops started timers
- * @since Series 60 3.2
- * @return
- */
- void StopTimers();
-
- /**
- * Returns correct timer value (RFC 3261 chapter 14.1)
- * @since Series 60 3.2
- * @return
- */
- TInt ReinviteCrossoverTime();
-
- /**
- * Sets observer for supplementary services events
- * @since Series 60 3.2
- * @return
- */
- void SetSsObserver( const MCCPSsObserver& aObserver );
-
- /**
- * Gets supplementary services events observer of session
- * @since Series 60 3.2
- * @return MCCPSsObserver supplementary services events observer
- */
- const MCCPSsObserver& GetSsObserver( );
-
- /**
- * Sets CCP DTMF observer to session
- * @since Series 60 3.2
- * @return
- */
- void SetDtmfObserver( const MCCPDTMFObserver& aObserver );
-
- /**
- * Gets CCP DTMF observer
- * @since Series 60 3.2
- * @return MCCPDTMFObserver CCP DTMF observer
- */
- const MCCPDTMFObserver& DtmfObserver();
-
- /**
- * Handles session state changes
- * @since Series 60 3.2
- * @param aStatusCode Status code
- * @return
- */
- void SessionStateChanged( TInt aStatusCode );
-
- /**
- * Handles session state changed announcement.
- * @since Series60 3.2
- * @param aSession MCE session
- * @return void
- */
- void HandleSessionStateChanged( CMceSession& aSession );
-
- /**
- * Handles the state change of a given stream.
- * @since S60 v3.2
- * @param aStream Stream whose state has changed.
- * @return void
- **/
- void HandleStreamStateChange( CMceMediaStream& aStream );
-
- /**
- * Handles the state change of a given stream & sink.
- * @since S60 v3.2
- * @param aStream Stream whose state has changed.
- * @param aSink Sink which is either Enabled or Disabled.
- * @return void
- **/
- void HandleStreamStateChange( CMceMediaStream& aStream,
- CMceMediaSink& aSink );
-
- /**
- * Handles the state change of a given stream & source
- * @since S60 v3.2
- * @param aStream Stream whose state has changed.
- * @param aSource Source which is either Enabled or Disabled.
- * @return void
- **/
- void HandleStreamStateChange( CMceMediaStream& aStream,
- CMceMediaSource& aSource );
-
- /**
- * Handles remote action after session is established.
- * @since Series60 3.2
- * @param None
- * @return
- */
- TInt IncomingRequest( CMceInSession& aUpdatedSession );
-
- /**
- * Returns Hold session
- * @Since S60 3.2
- * @param None
- * @return Reference to the session hold controller
- */
- CSVPHoldController& HoldController() const;
-
- /**
- * Finds out if the session has hold controller
- * @since Series60 3.2
- * @param None
- * @return ETrue if session has hold controller, EFalse otherways
- */
- TBool HasHoldController() const;
-
- /**
- * Returns ETrue if session is muted
- * @since Series 60 3.2
- * @return TBool iMuted value
- */
- TBool IsSessionMuted() const;
-
- /**
- * Handles the event state changes.
- * @since Series 60 3.2
- * @param aEvent, the event that has changed.
- * @param aStatusCode, status code
- * @return KErrNone if succesfull, otherwise error code
- */
- TInt EventStateChanged( CMceEvent& aEvent,
- TInt aStatusCode );
-
- /**
- * Handles the received notify.
- * @since Series 60 3.2
- * @param aEvent, the event that has changed.
- * @param aContainer, if present, holds details of received notify.
- */
- void NotifyReceived( CMceEvent& aEvent,
- TMceTransactionDataContainer* aContainer );
-
- /**
- * Handles the refer state changes.
- * @since Series 60 3.2
- * @param aRefer, the refer that has changed.
- * @param aStatusCode, status code
- */
- void ReferStateChanged( CMceRefer& aRefer,
- TInt aStatusCode );
-
-
- /**
- * Return the data container.
- * When session is the target session of the attended transfer.
- * @since Series 60 3.2
- * @return the mce data container
- */
- TMceTransactionDataContainer& MceTransactionDataContainer();
-
- /**
- * New incoming refer received.
- * @since Series 60 3.2
- * @param aRefer, the new inbound refer. Ownership is
- * transferred.
- * @param aReferTo SIP specific Refer-to header
- * @param aContainer, if present, holds details of incoming refer.
- */
- void IncomingReferL( CMceInRefer* aRefer,
- const TDesC8& aReferTo,
- TMceTransactionDataContainer* aContainer );
-
- /**
- * Checks the MCE refer object.
- * @since S60 3.2
- * @param aRefer - refer to check
- * @return TBool true if same MCE refer object
- */
- TBool IsMceRefer( CMceRefer& aRefer );
-
- /**
- * Indicates whether call is secured or not
- * @since S60 3.2
- * @return TBool ETrue if call is secured
- */
- TBool SecureMandatory() const;
-
- /**
- * Is secure call prefered
- * @since S60 3.2
- * @return TBool ETrue is secure call is prefered
- */
- TBool SecurePreferred() const;
-
- /**
- * Set secure mandatody flag true or false
- * @since S60 3.2
- * @param aSecMandatory flag value
- */
- void SetSecureMandatory( TBool aSecMandatory );
-
- /**
- * Sets secure preferred flag true or false
- * @since S60 3.2
- * @param aSecPreferred flag value
- */
- void SetSecurePreferred( TBool aSecPreferred );
-
- /**
- * Sets call event to be sent, used in secure and attended transfer cases.
- * @since S60 3.2
- * @param aCallEventToBeSent event value
- */
- void SetCallEventToBeSent( MCCPCallObserver::TCCPCallEvent aCallEventToBeSent );
-
- /**
- * Checks if transfer is attended or unattended.
- * @since S60 3.2
- * @return TBool true if attended case
- */
- TBool IsAttended( );
-
- /**
- * The new recipient of the call can be fetched via this method.
- * @since S60 3.2
- * @param none
- * @return New recipient for the call after transfer
- */
- const TDesC& TransferTarget() const;
-
- /**
- * Set transfer data. Add Replaces and Referred-By headers.
- * Update transfer target url to sips: if secure status 1 or 2,
- * otherwise url updated to sip:
- * @since S60 3.2
- * @param aUserAgentHeaders On completion contains collected transfer headers.
- * @param aSecureStatus secure status
- */
- void SetTransferDataL( CDesC8Array* aUserAgentHeaders, TInt aSecureStatus );
-
- /**
- * Send notify incoming transfer case.
- * @param aStatusCode code coming from mce
- * @since Series60 3.2
- */
- void SendNotify( TInt aStatusCode );
-
- /**
- * Finds out if the session has incoming transfer ongoing
- * @since Series60 3.2
- * @return ETrue if incoming transfer ongoing, EFalse otherways
- */
- TBool IsIncomingTransfer();
-
- /**
- * Sets the FromHeader data
- * @since S60 3.2
- * @param aFromHeader reference to the FromHeader data to store
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt SetFromHeader( const TDesC8& aFromHeader );
-
- /**
- * Returns the FromHeader data.
- * @since S60 3.2
- * @return pointer to FromHeader data
- */
- TDesC8* FromHeader();
-
- /**
- * Sets the ToHeader data
- * @since S60 3.2
- * @param aToHeader reference to the ToHeader data to store
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt SetToHeader( const TDesC8& aToHeader );
-
- /**
- * Returns the ToHeader data.
- * @since S60 3.2
- * @return pointer to ToHeader data
- */
- TDesC8* ToHeader();
-
- /**
- * Sets the CallId data
- * @since S60 3.2
- * @param aCallId reference to the CallId data to store
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt SetCallId( const TDesC8& aCallId );
-
- /**
- * Returns the CallId data.
- * @since S60 3.2
- * @return pointer to CallId data
- */
- TDesC8* CallId();
-
- /**
- * Sets the CSeq header data
- * @since S60 3.2
- * @param aCSeq reference to the CSeq header data to store
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt SetCSeqHeader( const TDesC8& aCSeq );
-
- /**
- * Returns the CSeqHeader data.
- * @since S60 3.2
- * @return reference to CSeqHeader data
- */
- const TDesC& CSeqHeader() const;
-
- /**
- * Method for setting crypto context to secure session
- * @since S60 3.2
- */
- void SetCryptoContextL();
-
- /**
- * Gets CCP session observer
- * @since Series 60 3.2
- * @return CCP session observer.
- */
- MCCPCallObserver& GetCCPSessionObserver( );
-
- /**
- * Handles update failure
- * @since Series 60 3.2
- * @param aSession MCE session reference
- * @param aStatusCode Status code of the response received
- * @return None
- */
- void UpdateFailed( CMceSession& aSession, TInt aStatusCode );
-
- /**
- * Returns session keepalive timer value
- * @since Series 60 3.2
- * @return TInt returns keepalive timer value
- */
- TInt GetKeepAliveTime();
-
- /**
- * SVP received INVITE without SDP, this flag is set to
- * prevent extra incomingcall callback to CCE
- * @since Series 60 3.2
- * @return none
- */
- void SetEmptyReInvite();
-
- /**
- * Returns ETrue if empty re-INVITE was received by SVP
- * @since Series 60 3.2
- * @return TBool Flag value
- */
- TBool IsEmptyReInvite();
-
- /**
- * Returns ETrue if iSessionState is still in initial state.
- * @since Series 60 3.2
- * @return TBool Flag value
- */
- TBool IsIdle();
-
-
-// dtmf
-
- /**
- * Cancels asynchronous DTMF string sending.
- * @since Series 60 3.2
- * @return KErrNone is successful, otherwiee antoher system wide error code
- */
- TInt CancelDtmfStringSending();
-
- /**
- * Starts the transmission of a single DTMF tone across a
- * connected and active call.
- * @since S60 3.2
- * @param aTone Tone to be played.
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt StartDtmfTone( const TChar aTone );
-
- /**
- * Stops playing current DTMF tone.
- * @since S60 3.2
- * @param none
- * @return KErrNone if succesfull, otherwise another system wide error code
- */
- TInt StopDtmfTone();
-
- /**
- * Plays DTMF string.
- * @since S60 3.2
- * @param aString String to be played.
- * @return KErrNone if succesfull, otherwise another system wide error code
- * KErrArgument if the specified string contains illegal DTMF characters
- */
- TInt SendDtmfToneString( const TDesC& aString );
-
- // from SVPDTMFEventObserver
- void InbandDtmfEventOccurred( TSVPDtmfEvent aEvent );
-
-public: // from base classes: timerobserver
-
- /**
- * Notifies, that the previously set timer has now expired.
- * Implemented by the class using the timer.
- * @since Series 60 3.2
- * @param TInt aTimerId The ID of the timer. Observer can identify
- * timers from each other with this ID.
- * @return
- */
- void TimedOut( TInt aTimerId );
-
-public: // from MSVPVolumeUpdateObserver
-
- /**
- * CSVPVolumeObserver calls this when volume level changes
- * changed.
- *
- * @since S60 3.2
- * @param aVolume New volume level
- */
- void VolumeChanged( TInt aVolume );
-
-public: // from base classes: MCCPCall
-
- /**
- * Return if call secure status is specified or not.
- * @since Series 60 5.0
- * @param None
- * @return TBool ETrue if security is specified, else EFalse.
- */
- TBool SecureSpecified() const;
-
- /**
- * Sets CCP call observer
- * @since Series 60 3.2
- * @param aObserver observer to be set
- * @return
- */
- void AddObserverL( const MCCPCallObserver& aObserver );
-
- /**
- * Remove an observer.
- * @since S60 v3.2
- * @param none
- * @param aObserver Observer
- * @return KErrNone if removed succesfully. KErrNotFound if observer was not found.
- * Any other system error depending on the error.
- */
- TInt RemoveObserver( const MCCPCallObserver& aObserver );
-
- /**
- * Answers to an incoming call.
- * @since Series60 3.2
- * @return KErrNotSupported
- */
- virtual TInt Answer();
-
- /**
- * Starts dialing to recipient
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Dial();
-
- /**
- * Cancels ongoing dial or answer request
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Cancel();
-
- /**
- * Ends an ongoing call.
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt HangUp();
-
- /**
- * Rejects an incoming call.
- * @since Series 60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Reject();
-
- /**
- * Reguests plug-in to queue the call.
- * @since S60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Queue();
-
- /**
- * Call is ringning
- * @since S60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Ringing();
-
- /**
- * Puts the specified call on hold.
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Hold();
-
- /**
- * Resumes the call.
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Resume();
-
- /**
- * Swaps a connected call to its opposite state, either active or on hold
- * @since Series60 3.2
- * @return KErrNone or system wide error code
- */
- virtual TInt Swap();
-
- /**
- * Releases all bindings to call and calls destructor
- * @since Series60 3.2
- * @return KErrNone
- */
- virtual TInt Release();
-
- /**
- * Returns the recipient of the call.
- * @since Series60 3.2
- * @return recipient address,
- */
- virtual const TDesC& RemoteParty() const;
-
- /**
- * Returns display name of the recipient of the call.
- * @since Series60 3.2
- * @return Recipient's display name
- */
- virtual const TDesC& RemotePartyName();
-
- /**
- * Returns the original dialled party.
- * @since Series60 3.2
- * @return Dialled party,
- */
- virtual const TDesC& DialledParty() const;
-
- /**
- * Return boolean value, is incoming call forwarded or not.
- * @since Series60 3.2
- * @return ETrue if call is forwarded, else EFalse
- */
- virtual TBool IsCallForwarded() const;
-
- /**
- * Returns boolean value, is the call mobile originated.
- * @since Series60 3.2
- * @return ETrue if call is mobile originated, otherwise EFalse
- */
- virtual TBool IsMobileOriginated() const;
-
- /**
- * Returns the state of the call.
- * @since Series60 3.2
- * @return TCCPCallState The current state of the call
- */
- virtual MCCPCallObserver::TCCPCallState State() const;
-
- /**
- * Returns TUid of the Plug-In used for this call
- * @since Series60 3.2
- * @return TUid Implementation UID of the Plug-In
- */
- virtual TUid Uid() const;
-
- /**
- * Returns call control caps for this call This tells for CCE what call can
- * currently do.
- * @since Series60 3.2
- * @return Call control caps defined in MCCPCallObserver::TCCPCallControlCaps.
- */
- virtual MCCPCallObserver::TCCPCallControlCaps Caps() const;
-
- /**
- * Get call's secure status.
- * @since Series 60 3.2
- * @return TBool ETrue if security is enabled, else EFalse.
- */
- virtual TBool IsSecured() const;
-
- /**
- * Get Conference extension methods
- * @since Series 60 3.2
- * @return Pointer to MCCPCSCallConfernece if succesfull, NULL if not available
- */
- virtual MCCPConferenceCall* ConferenceProviderL( const MCCPConferenceCallObserver& aObserver );
-
- /**
- * Get Forward provider
- * @since Series 60 3.2
- * @return Pointer to MCCPForwardProvider if succesfull, NULL if not available
- */
- virtual MCCPForwardProvider* ForwardProviderL( const MCCPForwardObserver& aObserver );
-
-
- /**
- * Get Call transfer provider
- * @since Series 60 3.2
- * @return Pointer to MCCPTransferProvider if succesfull, NULL if not available
- */
- MCCPTransferProvider* TransferProviderL( const MCCPTransferObserver& aObserver );
-
-
- /**
- * Set call parameters.
- * @since S60 3.2
- * @param aNewParams New call paramater information.
- */
- void SetParameters( const CCCPCallParameters& aNewParams );
-
- /**
- * Cet call parameters.
- * @since S60 3.2
- * @param None
- * @return Current call paramater information.
- */
- virtual const CCCPCallParameters& Parameters() const;
-
- /**
- * Returns currently used tone for the call. Used in case tones are needed to be played.
- * See defenition for TCCPTone.
- * @since S60 3.2
- * @param None.
- * @return TCCPTone Used tone.
- */
- TCCPTone Tone() const;
-
-public: // from SVPHoldObserver
-
- /**
- * Notifies, that session has been holded.
- * @since Series 60 3.2
- */
- virtual void SessionLocallyHeld();
-
- /**
- * Notifies, that session has been resumed.
- * @since Series 60 3.2
- */
- virtual void SessionLocallyResumed();
-
- /**
- * Notifies, that session has been remotely held.
- * @since Series 60 3.2
- */
- virtual void SessionRemoteHeld();
-
- /**
- * Notifies, that session has been remotely resumed.
- * @since Series 60 3.2
- */
- virtual void SessionRemoteResumed();
-
- /**
- * Notifies, that hold request failed.
- * @since Series 60 3.2
- */
- virtual void HoldRequestFailed();
-
- /**
- * Notifies, that resume request failed.
- * @since Series 60 3.2
- */
- virtual void ResumeRequestFailed();
-
-
-public: // from MSVPTransferObserver
-
- /**
- * From MSVPTransferObserver
- * Notifier for succesful transfer.
- * @since Series60 3.2
- * @param aNotifyCode The transfer notify code
- */
- virtual void TransferNotification( TInt aNotifyCode );
-
- /**
- * From MSVPTransferObserver
- * Notifier for transfer failure.
- * @since Series60 3.2
- * @param aError The error Id.
- */
- virtual void TransferFailed( TInt aError );
-
-public: // from MSVPPropertyWatchObserver
-
- /**
- * CSVPPropertyWatch calls this when some property under watching was
- * changed.
- *
- * @since S60 3.2
- * @param aKey Property which was changed
- * @param aValue New value of the property
- */
- void ValueChangedL( TInt aKey, TInt aValue );
-
- /**
- * CSVPPropertyWatch calls this when property was deleted.
- *
- * @since S60 3.2
- * @param aKey Property which was deleted
- */
- void PropertyDeleted( TInt aKey );
-
-protected: // new methods
-
- /**
- * Updates keepalive parameters for session
- * @since Series 60 3.2
- * @param aSession Session to be updated
- * @param aSessionUpdateOngoing Determines whether session needs to be updated
- * @return
- */
- void UpdateKeepAliveL( CMceSession& aSession, TBool aSessionUpdateOngoing );
-
- /**
- * Worker function for session state change, called from
- * SessionStateChanged().
- * @since S60 v3.2
- * @param aOrigStatus Original status code
- * @param aError Mapped TCCPError
- * @param aModStatus Modified status code
- * @return void
- */
- virtual void SessionStateChangedL( TInt aOrigCode, TCCPError aError,
- TInt aModStatus );
-
- /**
- * Initializes mute P&S property watcher and CenRep volume watcher
- * @Since S60 3.2
- * @param
- * @return instance of session
- */
- void InitializePropertyWatchingL();
-
- /**
- * Sets RTP keep-alive timer value and payload
- * @since Series 60 3.2
- * @param aSession MCE session
- * @param aSessionUpdateOngoing Determines whether session needs to be updated
- * @return void
- */
- virtual void SetRtpKeepAliveL( CMceSession* aSession,
- TBool aSessionUpdateOngoing );
-
- /**
- * Executes session observer callback(Cb) if not NULL.
- * @since Series 60 3.2
- * @param aError the error code.
- * @return System wide error code.
- */
- TInt ExecCbErrorOccurred( TCCPError aError );
-
- /**
- * Sets new internal call state, and executes session observer callback(Cb)
- * if not NULL.
- * @since Series 60 3.2
- * @param aNewState new state
- * @return System wide error code.
- */
- TInt ExecCbCallStateChanged( MCCPCallObserver::TCCPCallState aNewState );
-
- /**
- * Executes session observer callback(Cb) if not NULL.
- * @since Series 60 3.2
- * @param aEvent the new event.
- * @return System wide error code.
- */
- TInt ExecCbCallEventOccurred( MCCPCallObserver::TCCPCallEvent aEvent );
-
- /**
- * Executes supplementary services(Ss) observer callback(Cb) if not NULL.
- * Events can be e.g. call forward related events
- * that are not call related to an existing call
- * @since Series 60 3.2
- * @param aEvent the new event.
- * @return System wide error code.
- */
- TInt ExecCbSsEventOccurred( MCCPSsObserver::TCCPSsCallForwardEvent aEvent );
-
-
-private: // new methods
-
- /**
- * Method for checking audio priorities in audio streams. Method checks
- * that correct audio priorities are used in inband/outband DTMF cases and
- * sets them accordingly to uplink side codecs.
- * @since S60 v3.2
- * @param aAudioStreams. Media streams in iSession.
- * @return void
- */
- void CheckMmfPrioritiesForDtmfL(
- const RPointerArray<CMceMediaStream>& aAudioStreams ) const;
-
- /**
- * Method for seek remote party
- * Handle possible leave
- * @since Series 60 3.2
- * @return void
- * @leave system error if searching fails
- */
- void RemotePartyL() const;
-
- /**
- * Volume level changed
- * Handle possible leave
- * @since S60 3.2
- * @param aVolume New volume level
- * @return void
- * @leave system error if volume settings fails
- */
- void VolumeChangedL( TInt aVolume );
-
- /**
- * Performs mute / unmute
- * @since S60 3.2
- * @param aStreams Media streams
- * @param aValue Mute change value
- * @return void
- * @leave system error if mute/unmute fails
- */
- void PerformMuteChangeL( const RPointerArray< CMceMediaStream >& aStreams,
- TInt aValue );
-
- /**
- * Sets Flag that indicates Error in UpLink (ICMP -3) happens the 1st Time
- * @since Series 60 3.2
- * @return none
- */
- void SetErrorInULandDLFirstTime( TBool aFirstTime );
-
- /**
- * Returns is the error in Uplink has happened the only 1st time
- * @since Series 60 3.2
- * @return TBool Flag value
- */
- TBool IsErrorInULandDLFirstTime();
-
- /**
- * Returns ETrue if both UpLink and DownLink are disabled
- * @since Series 60 3.2
- * @return TBool Flag value
- */
- TBool IsBothStreamsDisabledL() const;
-
-
-protected: // protected data
-
- /**
- * Mce session
- * Own.
- */
- CMceSession* iSession;
-
- /**
- * Temporary secure session, needed so that old session deletion can be
- * performed painlessly.
- * Own.
- */
- CMceSession* iTempSecSession;
-
- /**
- * reference to SVP utility class
- */
- CSVPUtility& iSVPUtility;
-
- /**
- * reference to SVP Rtp observer class. Needed for RTCP resetting.
- */
- CSVPRtpObserver& iRtpObserver;
-
- /**
- * SIP profile id
- */
- TUint32 iSipProfileId;
-
- /**
- * Converged call provider call observer
- */
- MCCPCallObserver* iCCPSessionObserver;
-
- /**
- * Observer for supplementary services events
- */
- MCCPSsObserver* iCCPSsObserver;
-
- /**
- * Flag that indicates whether established session is secured or not
- */
- TBool iSecured;
-
- /**
- * Call event which will be sent in securepreferred or attended transfer cases.
- */
- MCCPCallObserver::TCCPCallEvent iCallEventToBeSent;
-
- /**
- * Id of VoIP profile
- */
- TUint32 iVoIPProfileId;
-
- /**
- * Keep-alive timer value
- */
- TInt iKeepAliveValue;
-
- /**
- * Call parameters
- */
- CCCPCallParameters* iCallParameters;
-
- /**
- * User tries to call to sips: -uri, secpref 0 is used
- * this flag is needed for event notification
- */
- TBool iTLSNotInUse;
-
- /**
- * Prevents UI notes if error response received to BYE request
- */
- TBool iAlreadyTerminating;
-
- /**
- * This flag indicates whether preconditions
- * are required in SIP headers or not
- */
- TBool iPreconditions;
-
-private: // private data
-
- /**
- * Transaction data container, not owned.
- */
- TMceTransactionDataContainer& iContainer;
-
- /*
- * Instance of DTMF event generator, used in inband dtmf case
- * Own.
- */
- CSVPDTMFEventGenerator* iEventGenerator;
-
- /**
- * Instance of volume observer, observer CenRep
- * Own.
- */
- CSVPVolumeObserver* iVolObserver;
-
- /**
- * Instance of property watcher using P&S system
- * Own.
- */
- CSVPPropertyWatch* iMutePropertyWatch;
-
- /**
- * Session timers, need an array since there migh be more than one.
- */
- RPointerArray<CSVPTimer> iTimers;
-
- /**
- * Contains current session state
- */
- MCCPCallObserver::TCCPCallState iSessionState;
-
- /**
- * From header of the mce session, from headers
- * Own.
- */
- HBufC8* iFromHeader;
-
- /**
- * To header of the mce session, from headers
- * Own.
- */
- HBufC8* iToHeader;
-
- /**
- * Call id of the mce session, from headers
- * Own.
- */
- HBufC8* iCallId;
-
- /**
- * CSeq header of the mce session, from headers
- * Own.
- */
- HBufC* iCSeqHeader;
-
- /**
- * The address of the recipient of the SIP session.
- * Own.
- */
- mutable HBufC* iRecipient;
-
- /**
- * Display name of the recipient of the SIP session.
- * Own.
- */
- HBufC* iDisplayName;
-
- /**
- * Pointer to a SVP hold controller.
- * Own.
- */
- CSVPHoldController* iHoldController;
-
- /**
- * Pointer to transfer controller.
- * Own.
- */
- CSVPTransferController* iTransferController;
-
- /**
- * Terminating timeout time repeat control value when incoming transfer
- * ongoing.
- */
- TInt iTerminatingRepeat;
-
- /**
- * CCP DTMF observer
- */
- MCCPDTMFObserver* iCCPDtmfObserver;
-
- /**
- * SVP session observer
- */
- MSVPSessionObserver& iObserver;
-
- /**
- * Flag to indicate secure preference value 1 -> secure is preferred
- */
- TBool iSecurePreferred;
-
- /**
- * Flag to indicate secure preference value 2 -> secure call mandatory
- */
- TBool iSecureMandatory;
-
- /**
- * Mute flag
- */
- TBool iMuted;
-
- /**
- * Flag that indicates that handling of received re-INVITE
- * without is SDP is ongoing
- */
- TBool iEmptyReInvite;
-
- /**
- * Tone information. Updated everytime session state changes.
- */
- TCCPTone iTone;
-
- /*
- * Contains DTMF tone sent. Used with inband DTMF.
- */
- TChar iDtmfTone;
-
- /*
- * Contains DTMF string sent. Used with inband DTMF.
- */
- HBufC* iDtmfString;
-
- /*
- * Keeps count of the current tone sent. Used with inband DTMF
- */
- TLex iDtmfLex;
-
- /**
- * Flag that indicates that the case MediaStreams are
- * Disabled (ICMP -3 error) happens 1st time
- */
- TBool iErrorInULandDLFirstTime;
-
- /**
- * Flag that indicates whether earlymedia event should
- * be sent again in ringing case
- */
- TBool iEarlyMediaOngoing;
-
-private:
-
- // For testing
- SVP_UT_DEFS
-
- };
-
-#endif // SVPSESSIONBASE_H