satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp
changeset 31 a2467631ae02
parent 19 e44a8c097b15
child 32 1f002146abb4
equal deleted inserted replaced
27:7eb70891911c 31:a2467631ae02
    17 
    17 
    18 
    18 
    19 #include <etelmm.h>
    19 #include <etelmm.h>
    20 #include <mmtsy_names.h>
    20 #include <mmtsy_names.h>
    21 
    21 
    22 
       
    23 #include "csetupcallrequesthandler.h"
    22 #include "csetupcallrequesthandler.h"
    24 #include "CSetUpCallHandler.h"
    23 #include "CSetUpCallHandler.h"
       
    24 #include "csetupcalldtmfsender.h"
    25 #include "msatasynctosync.h"
    25 #include "msatasynctosync.h"
    26 #include "SatLog.h"
    26 #include "SatLog.h"
    27 
    27 
    28 // ================= MEMBER FUNCTIONS =======================
    28 // ================= MEMBER FUNCTIONS =======================
    29 
    29 
    58     {
    58     {
    59     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL calling" )
    59     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL calling" )
    60 
    60 
    61     CSetupCallRequestHandler* self =
    61     CSetupCallRequestHandler* self =
    62         new ( ELeave ) CSetupCallRequestHandler( aPhone, aDispatcher );
    62         new ( ELeave ) CSetupCallRequestHandler( aPhone, aDispatcher );
       
    63     
       
    64     self->iDtmfSender = CSetupCallDtmfSender::NewL( aPhone );
    63  
    65  
    64     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL exiting" )
    66     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL exiting" )
    65     return self;
    67     return self;
    66     }
    68     }
    67 
    69 
    74     {
    76     {
    75     LOG( SIMPLE, "SETUPCALL: \
    77     LOG( SIMPLE, "SETUPCALL: \
    76             CSetupCallRequestHandler::~CSetupCallRequestHandler calling" )
    78             CSetupCallRequestHandler::~CSetupCallRequestHandler calling" )
    77     Cancel();
    79     Cancel();
    78     iDispatcher = NULL;
    80     iDispatcher = NULL;
       
    81     
       
    82     delete iDtmfSender;
       
    83     iDtmfSender = NULL;
    79 
    84 
    80     LOG( SIMPLE, "SETUPCALL: \
    85     LOG( SIMPLE, "SETUPCALL: \
    81             CSetupCallRequestHandler::~CSetupCallRequestHandler exiting" )
    86             CSetupCallRequestHandler::~CSetupCallRequestHandler exiting" )
    82     }
    87     }
    83 
    88 
    84 // -----------------------------------------------------------------------------
    89 // -----------------------------------------------------------------------------
    85 // CSetupCallRequestHandler::DialNumber
    90 // CSetupCallRequestHandler::DialNumber
    86 // -----------------------------------------------------------------------------
    91 // -----------------------------------------------------------------------------
    87 //
    92 //
    88 void CSetupCallRequestHandler::DialNumber( const TDesC8& aCallParams,
    93 void CSetupCallRequestHandler::DialNumber( const TDesC8& aCallParams,
    89                   const TDesC& aTelNumber, TBool aTerminateOtherCall,
    94                   TDes& aTelNumber, TBool aTerminateOtherCall,
    90                   MSatAsyncToSync* aAsyncToSync )
    95                   MSatAsyncToSync* aAsyncToSync )
    91     {
    96     {
    92     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" )
    97     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" )
    93  
    98  
    94     TInt terminateRes ( KErrNone );
    99     TInt terminateRes ( KErrNone );
    95     
   100     
    96     if( aTerminateOtherCall )
   101     if( aTerminateOtherCall )
    97         {
   102         {
    98         if( aAsyncToSync )
   103         if( aAsyncToSync )
    99             {
   104             {
   100             iPhone.TerminateAllCalls( aAsyncToSync->RequestStatus() );
   105             iPhone.TerminateActiveCalls( aAsyncToSync->RequestStatus() );
   101             terminateRes = aAsyncToSync->SetActiveAndWait();
   106             terminateRes = aAsyncToSync->SetActiveAndWait();
   102             }
   107             }
   103         else
   108         else
   104             {
   109             {
   105             LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber \
   110             LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber \
   110     
   115     
   111     if( !IsActive() )
   116     if( !IsActive() )
   112         {
   117         {
   113         if( KErrNone == terminateRes )
   118         if( KErrNone == terminateRes )
   114             {
   119             {
       
   120             // Separate dtmf string from whole number and store in iDtmfString
       
   121             // the dtmf string will be removed from aTelNumber 
       
   122             iDtmfSender->SeparateDtmfFromTelNumber(aTelNumber);
       
   123             // Dial the purl tel number
   115             iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber );
   124             iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber );
   116             SetActive();
   125             SetActive();
   117             }
   126             }
   118         else
   127         else
   119             {
   128             {
   136     {
   145     {
   137     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" )
   146     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" )
   138      
   147      
   139     if( !IsActive() )
   148     if( !IsActive() )
   140         {
   149         {
   141         iEmergencyCall = ETrue;
       
   142         iPhone.DialEmergencyCall( iStatus, aTelNumber );
   150         iPhone.DialEmergencyCall( iStatus, aTelNumber );
   143         SetActive();
   151         SetActive();
   144         }
   152         }
   145     else
   153     else
   146         {
   154         {
   147         iDispatcher->SetupCallRequestComplete( KErrInUse );
   155         iDispatcher->SetupCallRequestComplete( KErrInUse );
   148         }
   156         }
   149     
   157     
   150     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialEmergencyCall exiting" )
   158     LOG( SIMPLE, 
       
   159         "SETUPCALL: CSetupCallRequestHandler::DialEmergencyCall exiting" )
   151     }
   160     }
   152 
   161 
   153 // -----------------------------------------------------------------------------
   162 // -----------------------------------------------------------------------------
   154 // CSetupCallRequestHandler::RunL
   163 // CSetupCallRequestHandler::RunL
   155 // Handles the command.
   164 // Handles the command.
   156 // -----------------------------------------------------------------------------
   165 // -----------------------------------------------------------------------------
   157 //
   166 //
   158 void CSetupCallRequestHandler::RunL()
   167 void CSetupCallRequestHandler::RunL()
   159     {
   168     {
   160     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL calling" )
   169     LOG2( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL calling\
   161     
   170         iStatus=%i", iStatus.Int() )
   162     LOG2( NORMAL, "SETUPCALL: CSetupCallRequestHandler::RunL\
   171     
   163           iStatus == %i", iStatus.Int() )
   172     iDispatcher->SetupCallRequestComplete( iStatus.Int() );
   164 
   173     
   165     if ( iEmergencyCall )
   174     if ( KErrNone == iStatus.Int() )
   166         {
   175         {
   167         iEmergencyCall = EFalse;
   176         iDtmfSender->SendDtmfString();
   168         }
   177         }
   169     
       
   170     iDispatcher->SetupCallRequestComplete( iStatus.Int() );                
       
   171     
   178     
   172     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL exiting" )
   179     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL exiting" )
   173     }
   180     }
   174 
   181 
   175 // -----------------------------------------------------------------------------
   182 // -----------------------------------------------------------------------------
   179 void CSetupCallRequestHandler::CancelOperation()
   186 void CSetupCallRequestHandler::CancelOperation()
   180     {
   187     {
   181     LOG( SIMPLE, "SETUPCALL: \
   188     LOG( SIMPLE, "SETUPCALL: \
   182                   CSetupCallRequestHandler::CancelOperation calling" )
   189                   CSetupCallRequestHandler::CancelOperation calling" )
   183     iPhone.DialCancel();
   190     iPhone.DialCancel();
       
   191     iDtmfSender->Cancel();
   184     LOG( SIMPLE, 
   192     LOG( SIMPLE, 
   185         "SETUPCALL: CSetupCallRequestHandler::CancelOperation exiting" )
   193         "SETUPCALL: CSetupCallRequestHandler::CancelOperation exiting" )
   186     }
   194     }
   187 
   195 
   188 // -----------------------------------------------------------------------------
   196 // -----------------------------------------------------------------------------