diff -r 000000000000 -r 5f000ab63145 phoneengine/phonemodel/src/cpeparseremergencynumberhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/phonemodel/src/cpeparseremergencynumberhandler.cpp Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,83 @@ +/* +* Copyright (c) 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: CPEParserEmergencyNumberHandler class methods implementation +* +*/ + + + +// INCLUDE FILES +#include "cpeclientcallrequestmonitor.h" +#include "cpemessagehandler.h" +#include "cpeparseremergencynumberhandler.h" +#include +#include +#include + + +// ================= MEMBER FUNCTIONS ======================================= + +// ----------------------------------------------------------------------------- +// CPEParserEmergencyNumberHandler::CPEParserEmergencyNumberHandler +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CPEParserEmergencyNumberHandler::CPEParserEmergencyNumberHandler( + CPEMessageHandler& aOwner, + MPECallHandling& aCallHandling, + MPEDataStore& aDataStore + ) : iOwner( aOwner ), + iCallHandling( aCallHandling ), + iDataStore( aDataStore ) + { + TEFLOGSTRING( KTAOBJECT, "PE CPEParserEmergencyNumberHandler::CPEParserEmergencyNumberHandler" ) + } + +// ----------------------------------------------------------------------------- +// CPEParserEmergencyNumberHandler::ProcessDialToEmergencyNumberL +// Process dial to number. +// ----------------------------------------------------------------------------- +// +void CPEParserEmergencyNumberHandler::ProcessDialToEmergencyNumberL( + const TDesC& aNumber + ) + { + TEFLOGSTRING2( KTAINT, + "PE CPEParserEmergencyNumberHandler::ProcessDialToEmergencyNumberL, number: %S", + &aNumber); + /* + * DTMF string is nulled here because if this not done here it is possible that + * some old DTMF string is send when emergency call connects(for more information + * about connect handling see CPEMessageHandler class HandleConnectedState method ). + */ + iDataStore.SetDtmfStringCommand( KNullDesC() ); + + if ( aNumber.Length() == 0 ) + { + User::Leave( ECCPErrorInvalidPhoneNumber ); + } + + if ( iDataStore.CallOriginCommand() != EPECallOriginPhone ) + { + iOwner.SetClientInformation( KPEEmergencyCallId, aNumber ); + } + + iDataStore.SetPhoneNumber( aNumber ); + iOwner.HandleDialEmergencyCall( EFalse ); + + iOwner.SetGsmParserErrorCode( KErrNone ); + } + +// End of File