sipvoipprovider/svptransfer/src/svptransfercontroller.cpp
branchRCL_3
changeset 15 ed1e38b404e5
parent 0 a4daefaec16c
child 16 6134b5029079
equal deleted inserted replaced
11:bddb6d4447db 15:ed1e38b404e5
     1 /*
     1 /*
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    25 #include "svplogger.h"
    25 #include "svplogger.h"
    26 #include "svpsessionbase.h"             // CSVPSessionBase
    26 #include "svpsessionbase.h"             // CSVPSessionBase
    27 #include "svpsipconsts.h"
    27 #include "svpsipconsts.h"
    28 #include "svpconsts.h"
    28 #include "svpconsts.h"
    29 
    29 
       
    30 // These have to be handled as well
       
    31 _LIT8( KSVPNotifyRinging183, "SIP/2.0 183 Ringing" );
       
    32 _LIT8( KSVPNotifyOk, "SIP/2.0 200 Ok" );
       
    33 
    30 // ---------------------------------------------------------------------------
    34 // ---------------------------------------------------------------------------
    31 // CSVPTransferController::CSVPTransferController
    35 // CSVPTransferController::CSVPTransferController
    32 // ---------------------------------------------------------------------------
    36 // ---------------------------------------------------------------------------
    33 //
    37 //
    34 CSVPTransferController::CSVPTransferController() :
    38 CSVPTransferController::CSVPTransferController() :
   223                     iTransferContext->TransferObserver().TransferNotification( 
   227                     iTransferContext->TransferObserver().TransferNotification( 
   224                                                           ESVPTransferOKHangUp );
   228                                                           ESVPTransferOKHangUp );
   225                     }
   229                     }
   226                 }
   230                 }
   227             }
   231             }
   228         else if ( !content->Find( TPtrC8( KSVPNotifyOK ) ) )
   232         else if ( !content->Find( TPtrC8( KSVPNotifyOK ) ) || 
       
   233                   !content->Find( TPtrC8( KSVPNotifyOk ) ) )
   229             {
   234             {
   230             if ( iTransferContext->IsAttended() )
   235             if ( iTransferContext->IsAttended() )
   231                 {
   236                 {
   232                 SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, Attended case:\
   237                 SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, Attended case:\
   233                     SIP/2.0 200 OK" );
   238                     SIP/2.0 200 OK" );
   252             else
   257             else
   253                 {
   258                 {
   254                 SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended: SIP/2.0 200 OK" );                    
   259                 SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended: SIP/2.0 200 OK" );                    
   255                 }
   260                 }
   256             }
   261             }
   257         else if ( !content->Find( TPtrC8( KSVPNotifyRinging ) ) &&
   262         else if ( ( !content->Find( TPtrC8( KSVPNotifyRinging ) ) || 
   258                   !iTransferContext->IsAttended())
   263                     !content->Find( TPtrC8( KSVPNotifyRinging183 ) ) ) &&
       
   264                     !iTransferContext->IsAttended())
   259             {
   265             {
   260             // Polycom send Ringing instead of Trying in unattended case.
   266             // Polycom send Ringing instead of Trying in unattended case.
   261             SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended and 180 Ringing" );
   267             SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended and Ringing" );
   262 
   268 
   263             // Check if 202 Accepted already received
   269             // Check if 202 Accepted already received
   264             if ( iAccepted )
   270             if ( iAccepted )
   265                 { 
   271                 { 
   266                 // Stop the refer timer
   272                 // Stop the refer timer