|
1 /* |
|
2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Utility class to switch between ETEL internal enumerations and |
|
15 * codes defined in the GSM standard. |
|
16 * |
|
17 */ |
|
18 |
|
19 |
|
20 // INCLUDE FILES |
|
21 #include "PSetUtility.h" |
|
22 #include <RSSSettings.h> |
|
23 #include "PhoneSettingsLogger.h" |
|
24 |
|
25 // ============================ MEMBER FUNCTIONS =============================== |
|
26 |
|
27 // --------------------------------------------------------------------------- |
|
28 // |
|
29 // Translates given basic service code from code used in GSM standards to |
|
30 // ETEL internal code. |
|
31 // --------------------------------------------------------------------------- |
|
32 // |
|
33 RMobilePhone::TMobileService PSetUtility::ChangeToEtelInternal( const TBasicServiceGroups& aBsc ) |
|
34 { |
|
35 switch ( aBsc ) |
|
36 { |
|
37 case EAllTeleAndBearer: |
|
38 return RMobilePhone::EAllServices; |
|
39 case EAllTele: |
|
40 return RMobilePhone::EAllTele; |
|
41 case ETelephony: |
|
42 return RMobilePhone::ETelephony; |
|
43 case EAllDataTele: |
|
44 return RMobilePhone::EAllDataTele; |
|
45 case EFax: |
|
46 return RMobilePhone::EFaxService; |
|
47 case ESms: |
|
48 return RMobilePhone::EShortMessageService; |
|
49 case EAllDataExSms: |
|
50 return RMobilePhone::EAllDataExSms; |
|
51 case EAllTeleExcSms: |
|
52 return RMobilePhone::EAllTeleExcSms; |
|
53 case EAllPlmnTele: |
|
54 return RMobilePhone::EAllPlmnTele; |
|
55 case EPlmnTele1: |
|
56 return RMobilePhone::EPlmnTele1; |
|
57 case EPlmnTele2: |
|
58 return RMobilePhone::EPlmnTele2; |
|
59 case EPlmnTele3: |
|
60 return RMobilePhone::EPlmnTele3; |
|
61 case EPlmnTele4: |
|
62 return RMobilePhone::EPlmnTele4; |
|
63 case EPlmnTele5: |
|
64 return RMobilePhone::EPlmnTele5; |
|
65 case EPlmnTele6: |
|
66 return RMobilePhone::EPlmnTele6; |
|
67 case EPlmnTele7: |
|
68 return RMobilePhone::EPlmnTele7; |
|
69 case EPlmnTele8: |
|
70 return RMobilePhone::EPlmnTele8; |
|
71 case EPlmnTele9: |
|
72 return RMobilePhone::EPlmnTele9; |
|
73 case EPlmnTeleA: |
|
74 return RMobilePhone::EPlmnTeleA; |
|
75 case EPlmnTeleB: |
|
76 return RMobilePhone::EPlmnTeleB; |
|
77 case EPlmnTeleC: |
|
78 return RMobilePhone::EPlmnTeleC; |
|
79 case EPlmnTeleD: |
|
80 return RMobilePhone::EPlmnTeleD; |
|
81 case EPlmnTeleE: |
|
82 return RMobilePhone::EPlmnTeleE; |
|
83 case EPlmnTeleF: |
|
84 return RMobilePhone::EPlmnTeleF; |
|
85 case EAllBearer: |
|
86 return RMobilePhone::EAllBearer; |
|
87 case EAllAsync: |
|
88 return RMobilePhone::EAllAsync; |
|
89 case EAllSync: |
|
90 return RMobilePhone::EAllSync; |
|
91 case ESyncData: |
|
92 return RMobilePhone::ESyncData; |
|
93 case EAsyncData: |
|
94 return RMobilePhone::EAsyncData; |
|
95 case EPacketData: |
|
96 return RMobilePhone::EPacketDataService; |
|
97 case EPadAccess: |
|
98 return RMobilePhone::EPadAccess; |
|
99 case EAllPlmnBearer: |
|
100 return RMobilePhone::EAllPlmnBearer; |
|
101 case EPlmnBearerServ1: |
|
102 return RMobilePhone::EPlmnBearerServ1; |
|
103 case EPlmnBearerServ2: |
|
104 return RMobilePhone::EPlmnBearerServ2; |
|
105 case EPlmnBearerServ3: |
|
106 return RMobilePhone::EPlmnBearerServ3; |
|
107 case EPlmnBearerServ4: |
|
108 return RMobilePhone::EPlmnBearerServ4; |
|
109 case EPlmnBearerServ5: |
|
110 return RMobilePhone::EPlmnBearerServ5; |
|
111 case EPlmnBearerServ6: |
|
112 return RMobilePhone::EPlmnBearerServ6; |
|
113 case EPlmnBearerServ7: |
|
114 return RMobilePhone::EPlmnBearerServ7; |
|
115 case EPlmnBearerServ8: |
|
116 return RMobilePhone::EPlmnBearerServ8; |
|
117 case EPlmnBearerServ9: |
|
118 return RMobilePhone::EPlmnBearerServ9; |
|
119 case EPlmnBearerServA: |
|
120 return RMobilePhone::EPlmnBearerServA; |
|
121 case EPlmnBearerServB: |
|
122 return RMobilePhone::EPlmnBearerServB; |
|
123 case EPlmnBearerServC: |
|
124 return RMobilePhone::EPlmnBearerServC; |
|
125 case EPlmnBearerServD: |
|
126 return RMobilePhone::EPlmnBearerServD; |
|
127 case EPlmnBearerServE: |
|
128 return RMobilePhone::EPlmnBearerServE; |
|
129 case EPlmnBearerServF: |
|
130 return RMobilePhone::EPlmnBearerServF; |
|
131 case EAltTele: |
|
132 return RMobilePhone::EAuxVoiceService; |
|
133 case EUnknown: |
|
134 default: |
|
135 return RMobilePhone::EServiceUnspecified; |
|
136 } |
|
137 } |
|
138 |
|
139 // --------------------------------------------------------------------------- |
|
140 // |
|
141 // Translates given basic service code from ETEL internal code to |
|
142 // the ones used in GSM standards. |
|
143 // --------------------------------------------------------------------------- |
|
144 // |
|
145 TBasicServiceGroups PSetUtility::ChangeToGSM( const RMobilePhone::TMobileService& aBsc ) |
|
146 { |
|
147 switch ( aBsc ) |
|
148 { |
|
149 case RMobilePhone::EAllServices: |
|
150 return EAllTeleAndBearer; |
|
151 case RMobilePhone::EAllTele: |
|
152 return EAllTele; |
|
153 case RMobilePhone::EVoiceService: |
|
154 case RMobilePhone::ETelephony: |
|
155 return ETelephony; |
|
156 case RMobilePhone::EAllDataTele: |
|
157 return EAllDataTele; |
|
158 case RMobilePhone::EFaxService: |
|
159 return EFax; |
|
160 case RMobilePhone::EShortMessageService: |
|
161 return ESms; |
|
162 case RMobilePhone::EAllDataExSms: |
|
163 return EAllDataExSms; |
|
164 case RMobilePhone::EAllTeleExcSms: |
|
165 return EAllTeleExcSms; |
|
166 case RMobilePhone::EAllPlmnTele: |
|
167 return EAllPlmnTele; |
|
168 case RMobilePhone::EPlmnTele1: |
|
169 return EPlmnTele1; |
|
170 case RMobilePhone::EPlmnTele2: |
|
171 return EPlmnTele2; |
|
172 case RMobilePhone::EPlmnTele3: |
|
173 return EPlmnTele3; |
|
174 case RMobilePhone::EPlmnTele4: |
|
175 return EPlmnTele4; |
|
176 case RMobilePhone::EPlmnTele5: |
|
177 return EPlmnTele5; |
|
178 case RMobilePhone::EPlmnTele6: |
|
179 return EPlmnTele6; |
|
180 case RMobilePhone::EPlmnTele7: |
|
181 return EPlmnTele7; |
|
182 case RMobilePhone::EPlmnTele8: |
|
183 return EPlmnTele8; |
|
184 case RMobilePhone::EPlmnTele9: |
|
185 return EPlmnTele9; |
|
186 case RMobilePhone::EPlmnTeleA: |
|
187 return EPlmnTeleA; |
|
188 case RMobilePhone::EPlmnTeleB: |
|
189 return EPlmnTeleB; |
|
190 case RMobilePhone::EPlmnTeleC: |
|
191 return EPlmnTeleC; |
|
192 case RMobilePhone::EPlmnTeleD: |
|
193 return EPlmnTeleD; |
|
194 case RMobilePhone::EPlmnTeleE: |
|
195 return EPlmnTeleE; |
|
196 case RMobilePhone::EPlmnTeleF: |
|
197 return EPlmnTeleF; |
|
198 case RMobilePhone::EAllBearer: |
|
199 return EAllBearer; |
|
200 case RMobilePhone::ECircuitDataService: |
|
201 case RMobilePhone::EAllAsync: |
|
202 return EAllAsync; |
|
203 case RMobilePhone::EAllSync: |
|
204 return EAllSync; |
|
205 case RMobilePhone::ESyncData: |
|
206 return ESyncData; |
|
207 case RMobilePhone::EAsyncData: |
|
208 return EAsyncData; |
|
209 case RMobilePhone::EPacketDataService: |
|
210 case RMobilePhone::EPacketData: |
|
211 return EPacketData; |
|
212 case RMobilePhone::EPadAccess: |
|
213 return EPadAccess; |
|
214 case RMobilePhone::EAllPlmnBearer: |
|
215 return EAllPlmnBearer; |
|
216 case RMobilePhone::EPlmnBearerServ1: |
|
217 return EPlmnBearerServ1; |
|
218 case RMobilePhone::EPlmnBearerServ2: |
|
219 return EPlmnBearerServ2; |
|
220 case RMobilePhone::EPlmnBearerServ3: |
|
221 return EPlmnBearerServ3; |
|
222 case RMobilePhone::EPlmnBearerServ4: |
|
223 return EPlmnBearerServ4; |
|
224 case RMobilePhone::EPlmnBearerServ5: |
|
225 return EPlmnBearerServ5; |
|
226 case RMobilePhone::EPlmnBearerServ6: |
|
227 return EPlmnBearerServ6; |
|
228 case RMobilePhone::EPlmnBearerServ7: |
|
229 return EPlmnBearerServ7; |
|
230 case RMobilePhone::EPlmnBearerServ8: |
|
231 return EPlmnBearerServ8; |
|
232 case RMobilePhone::EPlmnBearerServ9: |
|
233 return EPlmnBearerServ9; |
|
234 case RMobilePhone::EPlmnBearerServA: |
|
235 return EPlmnBearerServA; |
|
236 case RMobilePhone::EPlmnBearerServB: |
|
237 return EPlmnBearerServB; |
|
238 case RMobilePhone::EPlmnBearerServC: |
|
239 return EPlmnBearerServC; |
|
240 case RMobilePhone::EPlmnBearerServD: |
|
241 return EPlmnBearerServD; |
|
242 case RMobilePhone::EPlmnBearerServE: |
|
243 return EPlmnBearerServE; |
|
244 case RMobilePhone::EPlmnBearerServF: |
|
245 return EPlmnBearerServF; |
|
246 case RMobilePhone::EAuxVoiceService: |
|
247 case RMobilePhone::EAltTele: |
|
248 return EAltTele; |
|
249 case RMobilePhone::EServiceUnspecified: |
|
250 default: |
|
251 return EUnknown; |
|
252 } |
|
253 } |
|
254 |
|
255 // --------------------------------------------------------------------------- |
|
256 // Returns change information status, status is provided as TDivertingStatus, |
|
257 // not as TSY's MAdvGsmLineForwarding enumeration. |
|
258 // |
|
259 // --------------------------------------------------------------------------- |
|
260 // |
|
261 TDivertingStatus PSetUtility::GetChangeInfoStatus( |
|
262 RMobilePhone::TMobilePhoneServiceAction& aAction ) |
|
263 { |
|
264 switch ( aAction ) |
|
265 { |
|
266 /***************************************************** |
|
267 * Series 60 Customer / ETel |
|
268 * Series 60 ETel API |
|
269 *****************************************************/ |
|
270 case RMobilePhone::EServiceActionActivate: |
|
271 case RMobilePhone::EServiceActionRegister: |
|
272 return EDivertingStatusActive; |
|
273 case RMobilePhone::EServiceActionDeactivate: |
|
274 return EDivertingStatusInactive; |
|
275 case RMobilePhone::EServiceActionErase: |
|
276 return EDivertingStatusNotRegistered; |
|
277 default: |
|
278 return EDivertingStatusUnknown; |
|
279 } |
|
280 } |
|
281 |
|
282 // --------------------------------------------------------------------------- |
|
283 // |
|
284 // Returns divert reason, reason is provided as TSY's TCallForwardingReasonGet. |
|
285 // |
|
286 // --------------------------------------------------------------------------- |
|
287 // |
|
288 RMobilePhone::TMobilePhoneCFCondition PSetUtility::GetDivertReason( |
|
289 TCallDivertingCondition aCondition ) |
|
290 { |
|
291 switch ( aCondition ) |
|
292 { |
|
293 /***************************************************** |
|
294 * Series 60 Customer / ETel |
|
295 * Series 60 ETel API |
|
296 *****************************************************/ |
|
297 case EDivertConditionAllConditionalCases: |
|
298 return RMobilePhone::ECallForwardingAllConditionalCases; |
|
299 case EDivertConditionAllCalls: |
|
300 return RMobilePhone::ECallForwardingAllCases; |
|
301 case EDivertConditionUnconditional: |
|
302 return RMobilePhone::ECallForwardingUnconditional; |
|
303 case EDivertConditionBusy: |
|
304 return RMobilePhone::ECallForwardingBusy; |
|
305 case EDivertConditionNoReply: |
|
306 return RMobilePhone::ECallForwardingNoReply; |
|
307 case EDivertConditionNotReachable: |
|
308 return RMobilePhone::ECallForwardingNotReachable; |
|
309 default: |
|
310 return RMobilePhone::ECallForwardingUnspecified; |
|
311 } |
|
312 } |
|
313 |
|
314 // --------------------------------------------------------------------------- |
|
315 // Verify that ALS is really used. |
|
316 // --------------------------------------------------------------------------- |
|
317 // |
|
318 RMobilePhone::TMobileService PSetUtility::VerifyAltLineUseL() |
|
319 { |
|
320 __PHSLOGSTRING("[PHS]--> PSetUtility::VerifyAltLineUseL"); |
|
321 RSSSettings* ssSettings = new (ELeave) RSSSettings; |
|
322 CleanupStack::PushL( ssSettings ); |
|
323 TInt usedLine; |
|
324 User::LeaveIfError( ssSettings->Open() ); |
|
325 User::LeaveIfError( ssSettings->Get( ESSSettingsAls, usedLine ) ); |
|
326 __PHSLOGSTRING1("[PHS] PSetUtility::VerifyAltLineUseL: usedLine: %d", usedLine ); |
|
327 |
|
328 if ( usedLine == ESSSettingsAlsNotSupported ) |
|
329 { |
|
330 User::Leave( KErrNotSupported ); |
|
331 } |
|
332 ssSettings->Close(); |
|
333 CleanupStack::PopAndDestroy(); |
|
334 /***************************************************** |
|
335 * Series 60 Customer / ETel |
|
336 * Series 60 ETel API |
|
337 *****************************************************/ |
|
338 __PHSLOGSTRING("[PHS] <--PSetUtility::VerifyAltLineUseL"); |
|
339 |
|
340 return RMobilePhone::EAuxVoiceService; |
|
341 } |
|
342 |
|
343 // End of File |