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 // ----------------------------------------------------------------------------- |