--- /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 <mpecallhandling.h>
+#include <mpedatastore.h>
+#include <talogger.h>
+
+
+// ================= 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