|
1 /* |
|
2 * Copyright (c) 2000-2007 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: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 /** |
|
20 @file |
|
21 |
|
22 Multimode ETel API header file. |
|
23 |
|
24 Describes the MM ETel API - classes, methods and types. |
|
25 |
|
26 @publishedPartner |
|
27 @released |
|
28 */ |
|
29 |
|
30 #ifndef __ETELMM_H__ |
|
31 #define __ETELMM_H__ |
|
32 |
|
33 #include <e32base.h> |
|
34 #include <s32mem.h> |
|
35 #include <etel.h> |
|
36 #include <etelmmcs.h> |
|
37 |
|
38 |
|
39 /** |
|
40 Internal API/TSY delimiter used to pass the phonebook type |
|
41 */ |
|
42 #define PHBOOK_DELIMITER _L("//") |
|
43 /** The size of the phone book delimiter string. |
|
44 @internalComponent |
|
45 */ |
|
46 const TInt KSizeOfPhbookDelimiter=2; |
|
47 |
|
48 /** |
|
49 Names for Multimode ETel sub-sessions |
|
50 */ |
|
51 _LIT(KETelMeAdnPhoneBook,"S1"); |
|
52 _LIT(KETelMeDialledPhoneBook,"S2"); |
|
53 _LIT(KETelMeMissedPhoneBook,"S3"); |
|
54 _LIT(KETelMeReceivedPhoneBook,"S4"); |
|
55 _LIT(KETelCombinedAdnPhoneBook,"S5"); |
|
56 _LIT(KETelTaAdnPhoneBook,"S6"); |
|
57 _LIT(KETelIccAdnPhoneBook,"S7"); |
|
58 _LIT(KETelIccFdnPhoneBook,"S8"); |
|
59 _LIT(KETelIccSdnPhoneBook,"S9"); |
|
60 _LIT(KETelIccBdnPhoneBook,"S10"); |
|
61 _LIT(KETelIccLndPhoneBook,"S11"); |
|
62 _LIT(KETelIccVoiceMailBox,"S12"); |
|
63 |
|
64 _LIT(KETelMeSmsStore,"S13"); |
|
65 _LIT(KETelIccSmsStore,"S14"); |
|
66 _LIT(KETelCombinedSmsStore,"S15"); |
|
67 |
|
68 _LIT(KETelNamStore,"S16"); |
|
69 _LIT(KETelOwnNumberStore,"S17"); |
|
70 _LIT(KETelEmergencyNumberStore,"S18"); |
|
71 |
|
72 _LIT(KETelSmsMessaging,"S19"); |
|
73 _LIT(KETelBroadcastMessaging,"S20"); |
|
74 _LIT(KETelUssdMessaging,"S21"); |
|
75 |
|
76 _LIT(KETelConferenceCall,"S22"); |
|
77 |
|
78 _LIT(KETelIccMbdnPhoneBook, "S23"); |
|
79 _LIT(KETelIccMsisdnPhoneBook, "S24"); |
|
80 _LIT(KETelIccOciPhoneBook, "S25"); |
|
81 _LIT(KETelIccIciPhoneBook, "S26"); |
|
82 _LIT(KETelIccNamStore ,"S27"); |
|
83 _LIT(KETelIccInfoPhoneBook, "S28"); |
|
84 |
|
85 _LIT(KETelLocationServices,"S29"); |
|
86 |
|
87 // Types for Multimode ETel sub-sessions |
|
88 |
|
89 _LIT(KEtelCdmaPhoneBookType,"T1"); |
|
90 _LIT(KEtelGsmPhoneBookType,"T2"); |
|
91 _LIT(KEtelUSimPhoneBookType,"T3"); |
|
92 |
|
93 // Types for SmartCardEap sub-sessions |
|
94 |
|
95 /** |
|
96 The prefix to all RMobileSmartCardEap sub-session names. |
|
97 */ |
|
98 _LIT(KETelSmartCardEapSession, "ScEap"); |
|
99 /** |
|
100 The length of KETelSmartCardEapSession. Used to obtain a const value |
|
101 for this length at compile-time. |
|
102 */ |
|
103 #define SCEAP_SSN_LENGTH 5 |
|
104 |
|
105 /** |
|
106 EAP-MD5 type identifier. Value taken from section 5 of RFC 3748 Jun 2004. |
|
107 This should be used as the EAP type identifier value of |
|
108 RMobileSmartCardEap::Open() if standard EAP-MD5 challenges are to be used. |
|
109 |
|
110 This value corresponds to one of the possible values returned in the type |
|
111 list of TUiccApplicationEapInfoV6. |
|
112 |
|
113 (Decimal value = 4) |
|
114 |
|
115 @see RMobileSmartCardEap::Open() |
|
116 @see RMobilePhone::TUiccApplicationEapInfoV6 |
|
117 */ |
|
118 _LIT8(KETelSmartCardEapTypeMD5, "04"); |
|
119 |
|
120 /** |
|
121 EAP-TLS type identifier. Value taken from section 4.1 of RFC 2716 Oct 1999. |
|
122 This should be used as the EAP type identifier value of |
|
123 RMobileSmartCardEap::Open() if standard EAP-TLS is to be used. |
|
124 |
|
125 This value corresponds to one of the possible values returned in the type |
|
126 list of TUiccApplicationEapInfoV6. |
|
127 |
|
128 (Decimal value = 13) |
|
129 |
|
130 @see RMobileSmartCardEap::Open() |
|
131 @see RMobilePhone::TUiccApplicationEapInfoV6 |
|
132 */ |
|
133 _LIT8(KETelSmartCardEapTypeTLS, "0D"); |
|
134 |
|
135 /** |
|
136 EAP-SIM type identifier. |
|
137 This should be used as the EAP type identifier value of |
|
138 RMobileSmartCardEap::Open() if standard EAP-SIM is to be used. |
|
139 |
|
140 This value corresponds to one of the possible values returned in the type |
|
141 list of TUiccApplicationEapInfoV6. |
|
142 |
|
143 (Decimal value = 18) |
|
144 |
|
145 @see RMobileSmartCardEap::Open() |
|
146 @see RMobilePhone::TUiccApplicationEapInfoV6 |
|
147 */ |
|
148 _LIT8(KETelSmartCardEapTypeSIM, "12"); |
|
149 |
|
150 /** |
|
151 EAP-AKA type identifier. |
|
152 This should be used as the EAP type identifier value of |
|
153 RMobileSmartCardEap::Open() if standard EAP-AKA is to be used. |
|
154 |
|
155 This value corresponds to one of the possible values returned in the type |
|
156 list of TUiccApplicationEapInfoV6. |
|
157 |
|
158 (Decimal value = 23) |
|
159 |
|
160 @see RMobileSmartCardEap::Open() |
|
161 @see RMobilePhone::TUiccApplicationEapInfoV6 |
|
162 */ |
|
163 _LIT8(KETelSmartCardEapTypeAKA, "17"); |
|
164 |
|
165 /** |
|
166 EAP-TTLS type identifier. |
|
167 This should be used as the EAP type identifier value of |
|
168 RMobileSmartCardEap::Open() if standard EAP-TTLS is to be used. |
|
169 |
|
170 This value corresponds to one of the possible values returned in the type |
|
171 list of TUiccApplicationEapInfoV6. |
|
172 |
|
173 (Decimal value = 21) |
|
174 |
|
175 @see RMobileSmartCardEap::Open() |
|
176 @see RMobilePhone::TUiccApplicationEapInfoV6 |
|
177 */ |
|
178 _LIT8(KETelSmartCardEapTypeTTLS, "15"); |
|
179 |
|
180 /***********************************************************************************/ |
|
181 // |
|
182 // Global Multimode constants and types |
|
183 // |
|
184 /***********************************************************************************/ |
|
185 |
|
186 /** |
|
187 Unique API identifier and Functional Unit constants |
|
188 Modes: Common |
|
189 */ |
|
190 enum TMultimodeETelV1Api |
|
191 { |
|
192 /** TSY supports the Multimode ETel v1.0 API. |
|
193 |
|
194 Modes: Common */ |
|
195 KETelExtMultimodeV1=3000, // 3000 is unique reference for Multimode Etel v1.0 API |
|
196 /** TSY supports the MobileSimAccess functional unit. |
|
197 |
|
198 Modes: Common */ |
|
199 KETelFuncMobileIccAccess, |
|
200 /** TSY supports the MobileNetwork functional unit. |
|
201 |
|
202 Modes: Common */ |
|
203 KETelFuncMobileNetwork, |
|
204 /** TSY supports the MobileIdentity functional unit. |
|
205 |
|
206 Modes: Common */ |
|
207 KETelFuncMobileIdentity, |
|
208 /** TSY supports the MobilePower functional unit. |
|
209 |
|
210 Modes: Common */ |
|
211 KETelFuncMobilePower, |
|
212 /** TSY supports the MobileSignal functional unit. |
|
213 |
|
214 Modes: GSM/WCDMA */ |
|
215 KETelFuncMobileSignal, |
|
216 /** TSY supports the MobileIndicator functional unit. |
|
217 |
|
218 Modes: Common */ |
|
219 KETelFuncMobileIndicator, |
|
220 /** TSY supports the MobileDTMF functional unit. |
|
221 |
|
222 Modes: Common */ |
|
223 KETelFuncMobileDTMF, |
|
224 /** TSY supports the MobileUserNetworkAccess functional unit. |
|
225 |
|
226 Modes: Common */ |
|
227 KETelFuncMobileUserNetworkAccess, |
|
228 /** TSY supports the MobileIdentityService functional unit. |
|
229 |
|
230 Modes: Common */ |
|
231 KETelFuncMobileIdentityService, |
|
232 /** TSY supports the MobileCallForwarding functional unit. |
|
233 |
|
234 Modes: Common */ |
|
235 KETelFuncMobileCallForwarding, |
|
236 /** TSY supports the MobileCallBarring functional unit. |
|
237 |
|
238 Modes: GSM/WCDMA */ |
|
239 KETelFuncMobileCallBarring, |
|
240 /** TSY supports the MobileCallWaiting functional unit. |
|
241 |
|
242 Modes: Common */ |
|
243 KETelFuncMobileCallWaiting, |
|
244 /** TSY supports the MobileCallCompletion functional unit. */ |
|
245 KETelFuncMobileCallCompletion, |
|
246 /** TSY supports the MobileAlternatingCall functional unit. |
|
247 |
|
248 Modes: GSM/WCDMA */ |
|
249 KETelFuncMobileAlternatingCall, |
|
250 /** TSY supports the MobileCost functional unit. |
|
251 |
|
252 Modes: GSM/WCDMA */ |
|
253 KETelFuncMobileCost, |
|
254 /** TSY supports the MobileSecurity functional unit. |
|
255 |
|
256 Modes: Common */ |
|
257 KETelFuncMobileSecurity, |
|
258 /** TSY supports the MobileAlternateLineService functional unit. |
|
259 |
|
260 Modes: GSM/WCDMA */ |
|
261 KETelFuncMobileAlternateLineService, |
|
262 /** TSY supports the MobileMessageWaiting functional unit. |
|
263 |
|
264 Modes: Common */ |
|
265 KETelFuncMobileMessageWaiting, |
|
266 /** TSY supports the MobileFixedDiallingNumbers functional unit. |
|
267 |
|
268 Modes: GSM/WCDMA */ |
|
269 KETelFuncMobileFixedDiallingNumbers, |
|
270 /** TSY supports the MobileDataCall functional unit. |
|
271 |
|
272 Modes: Common */ |
|
273 KETelFuncMobileDataCall, |
|
274 /** TSY supports the MobilePrivacy functional unit. |
|
275 |
|
276 Modes: CDMA */ |
|
277 KETelFuncMobilePrivacy, |
|
278 /** TSY supports the MobileEmergencyCall functional unit. |
|
279 |
|
280 Modes: Common */ |
|
281 KETelFuncMobileEmergencyCall, |
|
282 /** TSY supports the MobileSmsMessaging functional unit. |
|
283 |
|
284 Modes: Common */ |
|
285 KETelFuncMobileSmsMessaging, |
|
286 /** TSY supports the MobileBroadcastMessaging functional unit. |
|
287 |
|
288 Modes: Common */ |
|
289 KETelFuncMobileBroadcastMessaging, |
|
290 /** TSY supports the MobileUssdMessaging functional unit. |
|
291 |
|
292 Modes: GSM/WCDMA */ |
|
293 KETelFuncMobileUssdMessaging, |
|
294 /** TSY supports the MobileConferenceCall functional unit. |
|
295 |
|
296 Modes: Common */ |
|
297 KETelFuncMobileConferenceCall, |
|
298 /** TSY supports the MobilePhonebookStore functional unit. |
|
299 |
|
300 Modes: Common */ |
|
301 KETelFuncMobilePhonebook, |
|
302 /** TSY supports the MobileSmsStore functional unit. |
|
303 |
|
304 Modes: Common */ |
|
305 KETelFuncMobileSmsStore, |
|
306 /** TSY supports the MobileNamStore functional unit. |
|
307 |
|
308 Modes: CDMA */ |
|
309 KETelFuncMobileNamStore, |
|
310 /** TSY supports the MobileONStore functional unit. |
|
311 |
|
312 Modes: Common */ |
|
313 KETelFuncMobileOwnNumberStore, |
|
314 /** TSY supports the MobileENStore functional unit. |
|
315 |
|
316 Modes: Common */ |
|
317 KETelFuncMobileEmergencyNumberStore, |
|
318 /** TSY supports the MobileMultimedia functional unit. |
|
319 |
|
320 Modes: GSM/WCDMA */ |
|
321 KETelFuncMobileMulticall, |
|
322 /** TSY supports the MobileNextIncomingCall functional unit. |
|
323 |
|
324 Modes: GSM/WCDMA */ |
|
325 KETelFuncMobileNextIncomingCall, |
|
326 /** TSY supports the MobileMultimediaCall functional unit. |
|
327 |
|
328 Modes: GSM/WCDMA */ |
|
329 KETelFuncMobileMultimediaCall, |
|
330 /** TSY supports the MobileUserSignalling functional unit. |
|
331 |
|
332 Modes: GSM/WCDMA */ |
|
333 KETelFuncMobileUserSignalling |
|
334 }; |
|
335 |
|
336 /** Unique API identifier and Functional Unit constants. |
|
337 Modes: WCDMA |
|
338 |
|
339 */ |
|
340 enum TMultimodeETelV2Api |
|
341 { |
|
342 /** TSY supports the Multimode ETel v2.0 API. |
|
343 |
|
344 Modes: WCDMA */ |
|
345 KETelExtMultimodeV2=7000, // 7000 is unique reference for Multimode Etel v2.0 API |
|
346 /** TSY supports the MobileMultimediaCallSettings functional unit. |
|
347 |
|
348 Modes: WCDMA */ |
|
349 KEtelFuncMobileMultimediaCallSettings, |
|
350 /** TSY supports the MobileNetworkSecurity functional unit. |
|
351 |
|
352 Modes: WCDMA */ |
|
353 KEtelFuncMobileNetworkSecurity, |
|
354 KEtelFuncMobileUSIMApplications |
|
355 }; |
|
356 |
|
357 /** |
|
358 Enum to define the v3.0 API additions |
|
359 |
|
360 */ |
|
361 enum TMultimodeETelV3Api |
|
362 { |
|
363 /** |
|
364 Indicator that the TSY supports the Multimode ETel v3.0 API. |
|
365 */ |
|
366 KETelExtMultimodeV3 = 10000, |
|
367 /** |
|
368 TSY supports the MobileMMSInformation functional unit. |
|
369 */ |
|
370 KEtelFuncMobileMMSInformation, // 10001 |
|
371 /** |
|
372 TSY supports the KEtelFuncMobileAirTime functional unit. |
|
373 */ |
|
374 KEtelFuncMobileAirTime, // 10002 |
|
375 /** |
|
376 TSY supports the KEtelFuncMobileAutoRedial functional unit. |
|
377 */ |
|
378 KEtelFuncMobileAutoRedial, // 10003 |
|
379 /** |
|
380 TSY supports the KEtelFuncMobilePersonalisation functional unit. |
|
381 */ |
|
382 KEtelFuncMobilePersonalisation, // 10004 |
|
383 /** |
|
384 TSY supports the KEtelMobileMailboxNumbers functional unit. |
|
385 */ |
|
386 KEtelFuncMobileMailboxNumbers, // 10005 |
|
387 /** |
|
388 TSY supports the Mobile APN Control List functional unit. |
|
389 */ |
|
390 KEtelFuncMobileAPNControlList // 10006 |
|
391 }; |
|
392 |
|
393 /** |
|
394 Enum to define the v4.0 API additions |
|
395 |
|
396 */ |
|
397 enum TMultimodeETelV4Api |
|
398 { |
|
399 /** |
|
400 Indicator that the TSY supports the Multimode ETel v4.0 API. |
|
401 */ |
|
402 KETelExtMultimodeV4 = 15000 |
|
403 }; |
|
404 |
|
405 |
|
406 /** Enum to define Release 5 enabling API and data structures |
|
407 */ |
|
408 enum TMultimodeEtelV5Api |
|
409 { |
|
410 /** |
|
411 Indicator that the TSY supports the Multimode ETel v5.0 API. |
|
412 */ |
|
413 KEtelExtMultimodeV5=20000, |
|
414 /** |
|
415 Indicator that the TSY supports the IMS functional unit. |
|
416 */ |
|
417 KEtelFuncMobileIMS, // 20001 |
|
418 /** |
|
419 TSY supports the KEtelFuncMobileSmartCardApplications functional unit. |
|
420 */ |
|
421 KEtelFuncMobileSmartCardApplications // 20002 |
|
422 }; |
|
423 |
|
424 |
|
425 /** |
|
426 Enum to define the v6.0 API additions. |
|
427 */ |
|
428 enum TMultimodeEtelV6Api |
|
429 { |
|
430 /** |
|
431 Indicator that the TSY supports the Multimode ETel v6.0 API. |
|
432 */ |
|
433 KEtelExtMultimodeV6=25000, |
|
434 /** |
|
435 Indicator that the TSY supports the EAP supporting functional unit. |
|
436 */ |
|
437 KEtelSmartCardEap // 25001 |
|
438 }; |
|
439 /** |
|
440 Enum to define the v7.0 API additions. |
|
441 */ |
|
442 enum TMultimodeEtelV7Api |
|
443 { |
|
444 /** |
|
445 Indicator that the TSY supports the Multimode ETel v7.0 API. |
|
446 */ |
|
447 KEtelExtMultimodeV7=30000, |
|
448 /** |
|
449 Indicator that the TSY supports the LocationServices supporting functional unit. |
|
450 */ |
|
451 KEtelLocationControlServices // 30001 |
|
452 }; |
|
453 /** |
|
454 Enum to define the Etel 3rdParty V1 API additions |
|
455 |
|
456 */ |
|
457 enum TMultimodeETel3rdPartyV1Api |
|
458 { |
|
459 /** |
|
460 Indicator that the TSY supports the Etel 3rd Party v1.0 API |
|
461 */ |
|
462 KETelExt3rdPartyV1 = 40000 |
|
463 }; |
|
464 |
|
465 /*********************************************************/ |
|
466 // |
|
467 // Phone based functionality (RMobilePhone) |
|
468 // |
|
469 /*********************************************************/ |
|
470 |
|
471 |
|
472 class CMobilePhonePtrHolder; |
|
473 class CMobilePhoneStoredNetworkList; |
|
474 class RMobileSmartCardEap; |
|
475 |
|
476 class RMobilePhone : public RPhone |
|
477 /** |
|
478 Provides client access to mobile phone functionality provided by TSY. |
|
479 |
|
480 Encapsulates access to a mobile phone. The functionality of RMobilePhone |
|
481 is divided into a number of functional units, for the purpose of easier documentation |
|
482 and navigation and selectable support by TSY. |
|
483 |
|
484 Note: Some RMobilePhone function members must be supported by the TSY while |
|
485 others are part of optional "functional unit" and only need to be supported |
|
486 if the TSY supports that functional unit. When a functional unit is mandatory |
|
487 then the unit should at least support the Get...Caps() member function to |
|
488 indicate the member functions that are supported for this unit. |
|
489 |
|
490 */ |
|
491 { |
|
492 public: |
|
493 friend class CAsyncRetrievePhoneList; |
|
494 IMPORT_C RMobilePhone(); |
|
495 |
|
496 // Global multimode types |
|
497 |
|
498 |
|
499 class TMultimodeType |
|
500 /** |
|
501 Base class for all the V1 parameter types defined within the API. |
|
502 |
|
503 @publishedPartner |
|
504 @released |
|
505 */ |
|
506 { |
|
507 public: |
|
508 IMPORT_C TInt ExtensionId() const; |
|
509 protected: |
|
510 TMultimodeType(); |
|
511 void InternalizeL(RReadStream& aStream); |
|
512 void ExternalizeL(RWriteStream& aStream) const; |
|
513 protected: |
|
514 TInt iExtensionId; |
|
515 }; |
|
516 |
|
517 /** A typedef'd packaged TMultimodeType for passing through a generic API |
|
518 function member. */ |
|
519 typedef TPckg<TMultimodeType> TMultimodeTypePckg; |
|
520 |
|
521 // Types used in RMobilePhone::TMobileAddress |
|
522 |
|
523 /** Address types. |
|
524 |
|
525 Modes: Common */ |
|
526 enum TMobileTON |
|
527 { |
|
528 /** User or the network has no knowledge of the type of number. |
|
529 |
|
530 Modes: Common */ |
|
531 EUnknownNumber, // 0 |
|
532 /** International number. |
|
533 |
|
534 Modes: Common */ |
|
535 EInternationalNumber, // 1 |
|
536 /** National number. |
|
537 |
|
538 Modes: Common */ |
|
539 ENationalNumber, // 2 |
|
540 /** Administration/service number specific to the serving network, e.g. used to |
|
541 access an operator. |
|
542 |
|
543 Modes: Common */ |
|
544 ENetworkSpecificNumber, // 3 |
|
545 /** Subscriber number. |
|
546 |
|
547 Modes: Common */ |
|
548 ESubscriberNumber, // 4 - Also defined as "dedicated, short code" in GSM 04.08 |
|
549 /** Alphanumeric number coded according to 3GPP TS 123 038 GSM 7-bit default alphabet. |
|
550 |
|
551 Modes: GSM/WCDMA */ |
|
552 EAlphanumericNumber, // 5 |
|
553 /** Abbreviated number. |
|
554 |
|
555 Modes: Common */ |
|
556 EAbbreviatedNumber // 6 |
|
557 }; |
|
558 |
|
559 /** Number Plan Indicator. |
|
560 |
|
561 Modes: Common */ |
|
562 enum TMobileNPI |
|
563 { |
|
564 /** User or the network has no knowledge of the numbering plan. |
|
565 |
|
566 Modes: Common */ |
|
567 EUnknownNumberingPlan =0, |
|
568 /** ISDN/telephony numbering plan. |
|
569 |
|
570 Modes: Common */ |
|
571 EIsdnNumberPlan=1, |
|
572 /** Data numbering plan. |
|
573 |
|
574 Modes: Common */ |
|
575 EDataNumberPlan=3, |
|
576 /** Telex numbering plan. |
|
577 |
|
578 Modes: Common */ |
|
579 ETelexNumberPlan=4, |
|
580 /** Service centre specific plan used to indicate a numbering plan specific to external |
|
581 Short Message entities attached to the SMSC. */ |
|
582 EServiceCentreSpecificPlan1=5, |
|
583 /** Service centre specific plan used to indicate a numbering plan specific to external |
|
584 Short Message entities attached to the SMSC. |
|
585 |
|
586 Modes: GSM/WCDMA */ |
|
587 EServiceCentreSpecificPlan2=6, |
|
588 /** National numbering plan. |
|
589 |
|
590 Modes: GSM/WCDMA */ |
|
591 ENationalNumberPlan=8, |
|
592 /** Private numbering plan. |
|
593 |
|
594 Modes: Common */ |
|
595 EPrivateNumberPlan=9, |
|
596 /** ERMES numbering plan. |
|
597 |
|
598 Modes: GSM/WCDMA */ |
|
599 EERMESNumberPlan=10 |
|
600 }; |
|
601 |
|
602 enum |
|
603 { |
|
604 KMaxMobilePasswordSize=10, |
|
605 KMaxMobileNameSize=32, |
|
606 KMaxMobileTelNumberSize=100 |
|
607 }; |
|
608 |
|
609 struct TMMTableSettings |
|
610 { |
|
611 TUint32 iLocId; |
|
612 }; |
|
613 |
|
614 typedef TPckg<TMMTableSettings> TMMTableSettingsPckg; |
|
615 |
|
616 |
|
617 |
|
618 class TMobileAddress |
|
619 /** |
|
620 Defines API abstraction of a mobile telephone number. |
|
621 |
|
622 @publishedPartner |
|
623 @released |
|
624 */ |
|
625 { |
|
626 public: |
|
627 IMPORT_C TMobileAddress(); |
|
628 |
|
629 void InternalizeL(RReadStream& aStream); |
|
630 void ExternalizeL(RWriteStream& aStream) const; |
|
631 |
|
632 public: |
|
633 /** Type of number. |
|
634 |
|
635 @see TMobileTON */ |
|
636 TMobileTON iTypeOfNumber; |
|
637 /** Number plan. |
|
638 |
|
639 @see TMobileNPI */ |
|
640 TMobileNPI iNumberPlan; |
|
641 /** Telephone number. */ |
|
642 TBuf<KMaxMobileTelNumberSize> iTelNumber; |
|
643 }; |
|
644 |
|
645 // Mobile information location type |
|
646 |
|
647 /** Defines Location of service information. |
|
648 |
|
649 Modes: Common */ |
|
650 enum TMobileInfoLocation |
|
651 { |
|
652 /** Retrieve the service information ONLY from the cache on the phone. Return KErrNotFound |
|
653 if the cache does not exist or it is empty. */ |
|
654 EInfoLocationCache, |
|
655 /** Retrieve the service information from the cache, but if this is empty or does |
|
656 not exist then interrogate the network. */ |
|
657 EInfoLocationCachePreferred, |
|
658 /** Retrieve the service information from the network (and refresh the cache if |
|
659 there is one). */ |
|
660 EInfoLocationNetwork |
|
661 }; |
|
662 |
|
663 // Mobile call service type |
|
664 |
|
665 /** Applicability of request to a mobile service group. |
|
666 |
|
667 Modes: Common */ |
|
668 enum TMobileService |
|
669 { |
|
670 /** The call service has not been specified. |
|
671 |
|
672 Modes: Common */ |
|
673 EServiceUnspecified, |
|
674 /** The API request applies to voice call services. |
|
675 |
|
676 Modes: Common */ |
|
677 EVoiceService, |
|
678 /** The API request applies to auxiliary voice call services. |
|
679 |
|
680 Modes: GSM/WCDMA */ |
|
681 EAuxVoiceService, |
|
682 /** The API request applies to circuit switched data call services. |
|
683 |
|
684 Modes: Common */ |
|
685 ECircuitDataService, |
|
686 /** The API request applies to packet data services. |
|
687 |
|
688 Modes: Common */ |
|
689 EPacketDataService, |
|
690 /** The API request applies to fax call services. |
|
691 |
|
692 Modes: Common */ |
|
693 EFaxService, |
|
694 /** The API request applies to short message services. |
|
695 |
|
696 Modes: Common */ |
|
697 EShortMessageService, |
|
698 /** The API request applies to all mobile services. |
|
699 |
|
700 Modes: Common */ |
|
701 EAllServices, |
|
702 /** All teleservices |
|
703 |
|
704 Modes: Common */ |
|
705 EAllTele, |
|
706 /** Telephony |
|
707 |
|
708 Modes: Common */ |
|
709 ETelephony, |
|
710 /** All data teleservices |
|
711 |
|
712 Modes: Common */ |
|
713 EAllDataTele, |
|
714 /** Voice Broadcast Service (VBS) Bearer Service |
|
715 |
|
716 Modes: Common */ |
|
717 EAllDataExSms, |
|
718 /** All teleservices except SMS |
|
719 |
|
720 Modes: Common */ |
|
721 EAllTeleExcSms, |
|
722 /** All PLMN specific teleservices |
|
723 |
|
724 Modes: Common */ |
|
725 EAllPlmnTele, |
|
726 /** PLMN specific teleservice 1 |
|
727 |
|
728 Modes: Common */ |
|
729 EPlmnTele1, |
|
730 /** PLMN specific teleservice 2 |
|
731 |
|
732 Modes: Common */ |
|
733 EPlmnTele2, |
|
734 /** PLMN specific teleservice 3 |
|
735 |
|
736 Modes: Common */ |
|
737 EPlmnTele3, |
|
738 /** PLMN specific teleservice 4 |
|
739 |
|
740 Modes: Common */ |
|
741 EPlmnTele4, |
|
742 /** PLMN specific teleservice 5 |
|
743 |
|
744 Modes: Common */ |
|
745 EPlmnTele5, |
|
746 /** PLMN specific teleservice 6 |
|
747 |
|
748 Modes: Common */ |
|
749 EPlmnTele6, |
|
750 /** PLMN specific teleservice 7 |
|
751 |
|
752 Modes: Common */ |
|
753 EPlmnTele7, |
|
754 /** PLMN specific teleservice 8 |
|
755 |
|
756 Modes: Common */ |
|
757 EPlmnTele8, |
|
758 /** PLMN specific teleservice 9 |
|
759 |
|
760 Modes: Common */ |
|
761 EPlmnTele9, |
|
762 /** PLMN specific teleservice 10 |
|
763 |
|
764 Modes: Common */ |
|
765 EPlmnTeleA, |
|
766 /** PLMN specific teleservice 11 |
|
767 |
|
768 Modes: Common */ |
|
769 EPlmnTeleB, |
|
770 /** PLMN specific teleservice 12 |
|
771 |
|
772 Modes: Common */ |
|
773 EPlmnTeleC, |
|
774 /** PLMN specific teleservice 13 |
|
775 |
|
776 Modes: Common */ |
|
777 EPlmnTeleD, |
|
778 /** PLMN specific teleservice 14 |
|
779 |
|
780 Modes: Common */ |
|
781 EPlmnTeleE, |
|
782 /** PLMN specific teleservice 15 |
|
783 |
|
784 Modes: Common */ |
|
785 EPlmnTeleF, |
|
786 /** All bearer services |
|
787 |
|
788 Modes: Common */ |
|
789 EAllBearer, |
|
790 /** All async services |
|
791 |
|
792 Modes: Common */ |
|
793 EAllAsync, |
|
794 /** All sync services |
|
795 |
|
796 Modes: Common */ |
|
797 EAllSync, |
|
798 /** All data circuit sync |
|
799 |
|
800 Modes: Common */ |
|
801 ESyncData, |
|
802 /** All data circuit async |
|
803 |
|
804 Modes: Common */ |
|
805 EAsyncData, |
|
806 /** All packet data services |
|
807 |
|
808 Modes: Common */ |
|
809 EPacketData, |
|
810 /** All pad access services |
|
811 |
|
812 Modes: Common */ |
|
813 EPadAccess, |
|
814 /** All PLMN specific bearer services |
|
815 |
|
816 Modes: Common */ |
|
817 EAllPlmnBearer, |
|
818 /** PLMN specific bearer service 1 |
|
819 |
|
820 Modes: Common */ |
|
821 EPlmnBearerServ1, |
|
822 /** PLMN specific bearer service 2 |
|
823 |
|
824 Modes: Common */ |
|
825 EPlmnBearerServ2, |
|
826 /** PLMN specific bearer service 3 |
|
827 |
|
828 Modes: Common */ |
|
829 EPlmnBearerServ3, |
|
830 /** PLMN specific bearer service 4 |
|
831 |
|
832 Modes: Common */ |
|
833 EPlmnBearerServ4, |
|
834 /** PLMN specific bearer service 5 |
|
835 |
|
836 Modes: Common */ |
|
837 EPlmnBearerServ5, |
|
838 /** PLMN specific bearer service 6 |
|
839 |
|
840 Modes: Common */ |
|
841 EPlmnBearerServ6, |
|
842 /** PLMN specific bearer service 7 |
|
843 |
|
844 Modes: Common */ |
|
845 EPlmnBearerServ7, |
|
846 /** PLMN specific bearer service 8 |
|
847 |
|
848 Modes: Common */ |
|
849 EPlmnBearerServ8, |
|
850 /** PLMN specific bearer service 9 |
|
851 |
|
852 Modes: Common */ |
|
853 EPlmnBearerServ9, |
|
854 /** PLMN specific bearer service 10 |
|
855 |
|
856 Modes: Common */ |
|
857 EPlmnBearerServA, |
|
858 /** PLMN specific bearer service 11 |
|
859 |
|
860 Modes: Common */ |
|
861 EPlmnBearerServB, |
|
862 /** PLMN specific bearer service 12 |
|
863 |
|
864 Modes: Common */ |
|
865 EPlmnBearerServC, |
|
866 /** PLMN specific bearer service 13 |
|
867 |
|
868 Modes: Common */ |
|
869 EPlmnBearerServD, |
|
870 /** PLMN specific bearer service 14 |
|
871 |
|
872 Modes: Common */ |
|
873 EPlmnBearerServE, |
|
874 /** PLMN specific bearer service 15 |
|
875 |
|
876 Modes: Common */ |
|
877 EPlmnBearerServF, |
|
878 /** Alternative tele services |
|
879 |
|
880 Modes: Common */ |
|
881 EAltTele, |
|
882 EVoiceGroupCall, |
|
883 EVoiceBroadcast, |
|
884 EAllGprsBearer |
|
885 }; |
|
886 |
|
887 // Mobile name type |
|
888 |
|
889 /** A typedef to hold the names of API sub-sessions. The names are coded as ASCII |
|
890 characters. */ |
|
891 typedef TBuf<KMaxMobileNameSize> TMobileName; |
|
892 |
|
893 // Mobile password type |
|
894 |
|
895 /** A typedef for the standard password used by mobile phones for secure access |
|
896 to services (phone lock, SIM lock, call barring password). The password is |
|
897 coded as Unicode characters. */ |
|
898 typedef TBuf<KMaxMobilePasswordSize> TMobilePassword; |
|
899 |
|
900 // for use by client-side API code and TSY only |
|
901 |
|
902 struct TClientId |
|
903 /** This type is used within the 2-phase list retrieval classes. During both phases, |
|
904 the client-side API code will pass down the TClientId so that TSY can use |
|
905 this information to match the first phase of the request to the second phase. */ |
|
906 { |
|
907 /** The handle to the underlying RTelServer session. */ |
|
908 TInt iSessionHandle; |
|
909 /** The handle to the sub-session to which this API request relates. */ |
|
910 TInt iSubSessionHandle; |
|
911 }; |
|
912 |
|
913 /** Phone air interface capabilities. */ |
|
914 enum TMobilePhoneModeCaps |
|
915 { |
|
916 /** Phone can operate in GSM mode on 900/1800/1900 MHz bands. */ |
|
917 KCapsGsmSupported=0x00000001, |
|
918 /** Phone can operate in GPRS mode on 900/1800/1900 MHz bands. */ |
|
919 KCapsGprsSupported=0x00000002, |
|
920 /** Phone can operate in AMPS mode on 800MHz band. */ |
|
921 KCapsAmpsSupported=0x00000004, |
|
922 /** Phone can operate in CDMA (IS-95) mode on 800/1900 MHz bands. */ |
|
923 KCapsCdma95Supported=0x00000008, |
|
924 /** Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands. */ |
|
925 KCapsCdma2000Supported=0x00000010, |
|
926 /** Phone can operate in W-CDMA (UTRA Frequency Division Duplex (FDD)) mode. */ |
|
927 KCapsWcdmaSupported=0x00000020, |
|
928 /** Phone can operate in TDMA/CDMA (UTRA Time Division Duplex (TDD)) mode. */ |
|
929 KCapsTdcdmaSupported=0x00000040, |
|
930 /** |
|
931 Phone can access Smart Card functionality required for an EAP. |
|
932 @deprecated 9.3 |
|
933 */ |
|
934 KCapsEapSupported=0x00000080 |
|
935 }; |
|
936 |
|
937 /** Version number of the multimode ETel API. */ |
|
938 enum TMultimodeEtelAPIVersion |
|
939 { |
|
940 /** Multimode Etel API version 1. */ |
|
941 TMultimodeETelApiV1 |
|
942 }; |
|
943 |
|
944 // |
|
945 // API/TSY internal type |
|
946 // |
|
947 |
|
948 struct TPhoneStoreNameAndIccType |
|
949 /** Structure that holds the phone store name and ICC type. |
|
950 |
|
951 Mode: Common */ |
|
952 { |
|
953 /** This parameter is used to set the name of the storage. */ |
|
954 TName iStoreName; |
|
955 /** This parameter is used to set the type of the ICC card. */ |
|
956 TName iMode; |
|
957 }; |
|
958 |
|
959 IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const; |
|
960 |
|
961 IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const; |
|
962 |
|
963 IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const; |
|
964 |
|
965 IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aStatus, TDes8& aInfo, const TDesC& aStoreName, const TDesC& aMode) const; |
|
966 |
|
967 // explicit phone initialisation |
|
968 IMPORT_C void InitialiseMM(TRequestStatus& aReqStatus, TDes8& aTableSettings) const; |
|
969 |
|
970 /***********************************************************************************/ |
|
971 // |
|
972 // MobilePhoneIccAccess functional unit |
|
973 // |
|
974 /***********************************************************************************/ |
|
975 |
|
976 /** ICC access capabilities. |
|
977 |
|
978 Modes: GSM */ |
|
979 enum TMobilePhoneIccCaps |
|
980 { |
|
981 /** Phone has a SIM and it currently supports SIM access by clients. |
|
982 |
|
983 Modes: GSM */ |
|
984 KCapsSimAccessSupported=0x00000001, |
|
985 /** Phone has a R-UIM and it currently supports R-UIM access by clients. |
|
986 |
|
987 Modes: CDMA */ |
|
988 KCapsRUimAccessSupported=0x00000002, |
|
989 /** Phone has a USIM and it currently supports USIM access by clients. |
|
990 |
|
991 Modes: WCDMA */ |
|
992 KCapsUSimAccessSupported=0x00000004 |
|
993 }; |
|
994 |
|
995 |
|
996 enum |
|
997 { |
|
998 /** |
|
999 Maximum size of an ICC identity. |
|
1000 |
|
1001 NOTE: TS102.221 defines the maximum size of the ICC Identity as held in EF_ICCID as 10 bytes, however |
|
1002 TS 51.011 mentions that network operators may issue a SIM with an identification number of 20 bytes. |
|
1003 Therefore to cover this possibility the higher figure of 20 bytes has been chosen as the maximum size of the ICC identity. |
|
1004 */ |
|
1005 KMaxSizeIccIdentity = 20 |
|
1006 }; |
|
1007 |
|
1008 /** A typedef to hold the ICC identity.*/ |
|
1009 typedef TBuf8<KMaxSizeIccIdentity> TIccIdentity; |
|
1010 |
|
1011 IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const; |
|
1012 IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
1013 IMPORT_C void GetIccIdentity(TRequestStatus& aReqStatus, TIccIdentity& aIdentity) const; |
|
1014 |
|
1015 /** The Call Transfer/Call Forward options that are supported by the CSP. |
|
1016 |
|
1017 Modes: WCDMA/GSM */ |
|
1018 enum TCspCallOffering |
|
1019 { |
|
1020 /** Indicates that "Call Transfer" is supported by the CSP. */ |
|
1021 KCspCT=0x08, |
|
1022 /** Indicates that "Call Forwarding on Not Reachable" is supported by the CSP. */ |
|
1023 KCspCFNRc=0x10, |
|
1024 /** Indicates that "Call Forwarding on No Reply" is supported by the CSP. */ |
|
1025 KCspCFNRy=0x20, |
|
1026 /** Indicates that "Call Forwarding on Busy" is supported by the CSP. */ |
|
1027 KCspCFB=0x40, |
|
1028 /** Indicates that "Call Forwarding Unconditional" is supported by the CSP. */ |
|
1029 KCspCFU=0x80 |
|
1030 }; |
|
1031 |
|
1032 /** The call restrictions supported by the CSP. |
|
1033 |
|
1034 Modes: GSM/WCDMA */ |
|
1035 enum TCspCallRestriction |
|
1036 { |
|
1037 /** Indicates that "Barring of Incoming Calls when roaming outside the home PLMN |
|
1038 country" is supported by CSP. */ |
|
1039 KCspBICRoam=0x08, |
|
1040 /** Indicates that "Barring of All Incoming Calls" is supported by CSP. */ |
|
1041 KCspBAIC=0x10, |
|
1042 /** Indicates that "Barring of Outgoing International Calls except those directed |
|
1043 to the home PLMN country" is supported by CSP. */ |
|
1044 KCspBOICexHC=0x20, |
|
1045 /** Indicates that "Barring of Outgoing International Calls" is supported by CSP. */ |
|
1046 KCspBOIC=0x40, |
|
1047 /** Indicates that "Barring of All Outgoing Calls" is supported by CSP. */ |
|
1048 KCspBOAC=0x80 |
|
1049 }; |
|
1050 |
|
1051 /** Other services supported by the CSP. |
|
1052 |
|
1053 Modes: GSM/WCDMA */ |
|
1054 enum TCspOtherSuppServices |
|
1055 { |
|
1056 /** Indicates that the Outgoing Access option of the Closed User Group service is |
|
1057 supported by the CSP. */ |
|
1058 KCspCUGOA=0x08, |
|
1059 /** Indicates that the Preferential CUG option of the Closed User Group service |
|
1060 is supported by the CSP. */ |
|
1061 KCspPrefCUG=0x10, |
|
1062 /** Indicates that the Advice of Charge service is supported by the CSP. */ |
|
1063 KCspAoC=0x20, |
|
1064 /** Indicates that the Closed User Group service is supported by the CSP. */ |
|
1065 KCspCUG=0x40, |
|
1066 /** Indicates that the Multiparty call service is supported by the CSP */ |
|
1067 KCspMPTY=0x80, |
|
1068 }; |
|
1069 |
|
1070 /** Call completion modes supported by this CSP. |
|
1071 |
|
1072 Modes: GSM/WCDMA */ |
|
1073 enum TCspCallCompletion |
|
1074 { |
|
1075 /** Indicates that the Call Completion to Busy Subscriber service is supported by |
|
1076 the CSP. */ |
|
1077 KCspCCBS=0x20, |
|
1078 /** Indicates that the Call Waiting service is supported by the CSP. */ |
|
1079 KCspCW=0x40, |
|
1080 /** Indicates that the Call Hold service is supported by the CSP. */ |
|
1081 KCspHOLD=0x80, |
|
1082 }; |
|
1083 |
|
1084 /** SMS Teleservices supported by the CSP. |
|
1085 |
|
1086 Modes: GSM/WCDMA */ |
|
1087 enum TCspTeleservices |
|
1088 { |
|
1089 /** Indicates that display of Validity Period menu options for SMS is supported |
|
1090 by the CSP. */ |
|
1091 KCspValidityPeriod=0x02, |
|
1092 /** Indicates that display of Protocol ID menu options for SMS is supported by the |
|
1093 CSP. */ |
|
1094 KCspProtocolID=0x04, |
|
1095 /** Indicates that SMS Delivery Confirmation is supported by the CSP. */ |
|
1096 KCspDelConf=0x08, |
|
1097 /** Indicates that display of Reply Path menu options for outgoing SMS is supported |
|
1098 by the CSP. */ |
|
1099 KCspReplyPath=0x10, |
|
1100 /** Indicates that the Cell Broadcast service is supported by the CSP. */ |
|
1101 KCspSMCB=0x20, |
|
1102 /** Indicates mobile originated Short Messages are supported by CSP. */ |
|
1103 KCspSMMO=0x40, |
|
1104 /** Indicates mobile terminated Short Messages are supported by CSP. */ |
|
1105 KCspSMMT=0x80, |
|
1106 }; |
|
1107 |
|
1108 /** Alternate Line Services */ |
|
1109 enum TCspCPHSTeleservices |
|
1110 { |
|
1111 /** Indicates that Alternate Line Service is supported by the CSP. */ |
|
1112 KCspALS=0x80 |
|
1113 }; |
|
1114 |
|
1115 /** Currently not used. */ |
|
1116 enum TCspCPHSFeatures |
|
1117 { |
|
1118 /** This bit value is reserved for SST in Phase 1 CPHS. */ |
|
1119 KCspReservedSST=0x80 |
|
1120 }; |
|
1121 |
|
1122 /** Number Identification option supported by the CSP. |
|
1123 |
|
1124 Modes: GSM/WCDMA */ |
|
1125 enum TCspNumberIdentification |
|
1126 { |
|
1127 /** Indicates that Calling Line Identity Presentation blocking per call (CLI sent |
|
1128 by default) is supported by the CSP. */ |
|
1129 KCspCLIBlock=0x01, |
|
1130 /** Indicates that Calling Line Identity Presentation per call (CLI blocked by default) |
|
1131 is supported by the CSP. */ |
|
1132 KCspCLISend=0x02, |
|
1133 /** Indicates that Connected Line Identification Presentation is supported by the |
|
1134 CSP. */ |
|
1135 KCspCOLP=0x10, |
|
1136 /** Indicates that Connected Line Identification Restriction is supported by the |
|
1137 CSP. */ |
|
1138 KCspCOLR=0x20, |
|
1139 /** Indicates that Calling Line Identification Presentation is supported by the CSP. */ |
|
1140 KCspCLIP=0x80, |
|
1141 }; |
|
1142 |
|
1143 /** Phase 2+ services supported by the CSP. |
|
1144 |
|
1145 Modes: GSM/WCDMA */ |
|
1146 enum TCspPhase2PlusServices |
|
1147 { |
|
1148 /** Indicates that Multiple Band roaming is supported by CSP. */ |
|
1149 KCspMultipleband=0x04, |
|
1150 /** Indicates that Multiple Subscriber Profile is supported by CSP. |
|
1151 |
|
1152 v1.0 of Multimode ETel API does not support this feature */ |
|
1153 KCspMSP=0x08, |
|
1154 /** Indicates that Voice Broadcast is supported by CSP. |
|
1155 |
|
1156 v1.0 of Multimode ETel API does not support this feature. */ |
|
1157 KCspVoiceBroadcast=0x10, |
|
1158 /** Indicates that Voice Group Call is supported by CSP. |
|
1159 |
|
1160 v1.0 of Multimode ETel API does not support this feature. */ |
|
1161 KCspVoiceGroupCall=0x20, |
|
1162 /** Indicates that High Speed Circuit Switched Data is supported by CSP. */ |
|
1163 KCspHscsd=0x40, |
|
1164 /** Indicates that General Packet Radio Service is supported by CSP. */ |
|
1165 KCspGprs=0x80 |
|
1166 }; |
|
1167 |
|
1168 /** Value added services supported by this CSP. |
|
1169 |
|
1170 Modes: GSM/WCDMA */ |
|
1171 enum TCspValueAdded |
|
1172 { |
|
1173 /** Indicates that display of language selection menus is supported by the CSP. |
|
1174 |
|
1175 v1.0 of Multimode ETel API does not support this feature. */ |
|
1176 KCspLanguage=0x01, |
|
1177 /** Indicates that display of data call option menu is supported by the CSP. */ |
|
1178 KCspData=0x04, |
|
1179 /** Indicates that display of fax call option menu is supported by the CSP. */ |
|
1180 KCspFax=0x08, |
|
1181 /** Indicates that display of the menu option to send a Short Message of type Email |
|
1182 is supported by the CSP. */ |
|
1183 KCspSMMOEmail=0x10, |
|
1184 /** Indicates that display of the menu option to send a Short Message of type Paging |
|
1185 is supported by the CSP. */ |
|
1186 KCspSMMOPaging=0x20, |
|
1187 /** Indicates that display of the menu option for manual PLMN selection is supported |
|
1188 by the CSP. */ |
|
1189 KCspPLMNMode=0x80, |
|
1190 }; |
|
1191 |
|
1192 |
|
1193 |
|
1194 class TMobilePhoneCspFileV1 : public TMultimodeType |
|
1195 /** Defines contents of the CSP (Customer Service Profile) on the SIM. The profile |
|
1196 consists of the sum of the respective enums. |
|
1197 |
|
1198 @see GetCustomerServiceProfile() |
|
1199 @publishedPartner |
|
1200 @released*/ |
|
1201 { |
|
1202 public: |
|
1203 /** Constructor. */ |
|
1204 IMPORT_C TMobilePhoneCspFileV1(); |
|
1205 |
|
1206 /** Sum of the TCspCallOffering. */ |
|
1207 TUint8 iCallOfferingServices; |
|
1208 /** Sum of the TCspCallRestriction. */ |
|
1209 TUint8 iCallRestrictionServices; |
|
1210 /** Sum of the TCspOtherSuppServices. */ |
|
1211 TUint8 iOtherSuppServices; |
|
1212 /** Sum of the TCspCallCompletion. */ |
|
1213 TUint8 iCallCompletionServices; |
|
1214 /** Sum of the TCspTeleservices. */ |
|
1215 TUint8 iTeleservices; |
|
1216 /** Sum of the TCspCPHSTeleservices. */ |
|
1217 TUint8 iCphsTeleservices; |
|
1218 /** Sum of the TCspCPHSFeatures. */ |
|
1219 TUint8 iCphsFeatures; |
|
1220 /** Sum of the TCspNumberIdentification. */ |
|
1221 TUint8 iNumberIdentServices; |
|
1222 /** Sum of the TCspPhase2PlusServices. */ |
|
1223 TUint8 iPhase2PlusServices; |
|
1224 /** Sum of the TCspValueAdded. */ |
|
1225 TUint8 iValueAddedServices; |
|
1226 }; |
|
1227 |
|
1228 /** A typedef'd packaged TMobilePhoneCspFileV1 for passing through a generic API |
|
1229 function member. */ |
|
1230 typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg; |
|
1231 |
|
1232 IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const; |
|
1233 |
|
1234 /** SIM/USIM/CDMA Service Table. |
|
1235 |
|
1236 Modes: Common */ |
|
1237 enum TSSTServices1To8 |
|
1238 { |
|
1239 /** Indicates that disabling PIN1 is supported by the ICC. */ |
|
1240 KSstPin1Disable=0x01, |
|
1241 /** Indicates that storage of Abbreviated Dialling Numbers within this ICC is supported. */ |
|
1242 KSstADN=0x02, |
|
1243 /** Indicates that the Fixed Dialling Numbers service and the storage of FDN numbers |
|
1244 within this ICC is supported. */ |
|
1245 KSstFDN=0x04, |
|
1246 /** Indicates that the Short Message Service and the storage of short messages within |
|
1247 this ICC is supported. |
|
1248 |
|
1249 Modes: Common */ |
|
1250 KSstSMS=0x08, |
|
1251 /** Indicates that the Advice of Charge service is supported by this ICC. |
|
1252 |
|
1253 Modes: GSM/WCDMA */ |
|
1254 KSstAoC=0x10, |
|
1255 /** Indicates that the storage of Configuration Capability Parameters associated |
|
1256 with an AND, FDN, MSISDN, LND or SDN is supported by this ICC. |
|
1257 |
|
1258 Modes: GSM/WCDMA */ |
|
1259 KSstCCP=0x20, |
|
1260 /** Indicates that storage of a preferred network list is supported by this ICC. |
|
1261 |
|
1262 v1.0 of Multimode ETel API does not support this feature |
|
1263 |
|
1264 Modes: GSM/WCDMA */ |
|
1265 KSstPLMNSelector=0x40 |
|
1266 }; |
|
1267 |
|
1268 /** SIM/USIM/CDMA Service Table (continued). |
|
1269 |
|
1270 Modes: GSM/WCDMA */ |
|
1271 enum TSSTServices9To16 |
|
1272 { |
|
1273 /** Indicates that storage of MSISDN (own numbers) numbers within this ICC is supported. |
|
1274 |
|
1275 Modes: GSM/WCDMA */ |
|
1276 KSstMSISDN=0x01, |
|
1277 /** Indicates that storage of extended (greater than 20 digits) ADN, LND and MSISDN |
|
1278 numbers within this ICC is supported. |
|
1279 |
|
1280 Modes: Common */ |
|
1281 KSstExt1=0x02, |
|
1282 /** Indicates that storage of extended (greater than 20 digits) FDN numbers within |
|
1283 this ICC is supported. |
|
1284 |
|
1285 Modes: Common */ |
|
1286 KSstExt2=0x04, |
|
1287 /** Indicates that storage of SMS parameter records within this ICC is supported. |
|
1288 |
|
1289 Modes: Common */ |
|
1290 KSstSMSP=0x08, |
|
1291 /** Indicates that storage of Last Numbers Dialled within this ICC is supported. |
|
1292 |
|
1293 Modes: Common */ |
|
1294 KSstLND=0x10, |
|
1295 /** Indicates that the storage of Cell Broadcast message identifiers is supported |
|
1296 within this ICC. |
|
1297 |
|
1298 Modes: GSM/WCDMA */ |
|
1299 KSstCBMI=0x20, |
|
1300 /** Indicates that access to the GID1 file is supported within this ICC. |
|
1301 |
|
1302 v1.0 of Multimode ETel API does not support this feature |
|
1303 |
|
1304 Modes: GSM/WCDMA */ |
|
1305 KSstGID1=0x40, |
|
1306 /** Indicates that access to the GID2 file is supported within this ICC. |
|
1307 |
|
1308 v1.0 of Multimode ETel API does not support this feature |
|
1309 |
|
1310 Modes: GSM/WCDMA */ |
|
1311 KSstGID2=0x80 |
|
1312 }; |
|
1313 |
|
1314 /** SIM/USIM/CDMA Service Table (continued). |
|
1315 |
|
1316 v1.0 of Multimode ETel API does not support this feature |
|
1317 |
|
1318 Modes: Common */ |
|
1319 enum TSSTServices17To24 |
|
1320 { |
|
1321 /** Indicates that access to the Service Provider Name within ICC is supported. |
|
1322 |
|
1323 v1.0 of Multimode ETel API does not support this feature |
|
1324 |
|
1325 Modes: Common */ |
|
1326 KSstSPName=0x01, |
|
1327 /** Indicates that storage of Service Dialling Numbers within ICC is supported. |
|
1328 |
|
1329 Modes: Common */ |
|
1330 KSstSDN=0x02, |
|
1331 /** Indicates that storage of extended (greater than 20 digits) SDN numbers within |
|
1332 this ICC/RUIM is supported. |
|
1333 |
|
1334 Modes: Common */ |
|
1335 KSstExt3=0x04, |
|
1336 /** Indicates that access to the VGCS group identifier list within ICC is supported. |
|
1337 |
|
1338 v1.0 of Multimode ETel API does not support this feature |
|
1339 |
|
1340 Modes: GSM/WCDMA */ |
|
1341 KSstVGCSList=0x10, |
|
1342 /** Indicates that access to the VBS group identifier list within ICC is supported. |
|
1343 |
|
1344 v1.0 of Multimode ETel API does not support this feature |
|
1345 |
|
1346 Modes: GSM/WCDMA */ |
|
1347 KSstVBSList=0x20, |
|
1348 /** Indicates that the enhanced Multi-Level Precedence and Pre-emption service is |
|
1349 supported by ICC |
|
1350 |
|
1351 v1.0 of Multimode ETel API does not support this feature |
|
1352 |
|
1353 Modes: GSM/WCDMA */ |
|
1354 KSsteMLPP=0x40, |
|
1355 /** Indicates that automatic answer for eMLPP is supported by ICC |
|
1356 |
|
1357 v1.0 of Multimode ETel API does not support this feature |
|
1358 |
|
1359 Modes: GSM/WCDMA */ |
|
1360 KSstAnswereMLPP=0x80 |
|
1361 }; |
|
1362 |
|
1363 /** SIM/USIM/CDMA Service Table (continued). |
|
1364 |
|
1365 Modes: GSM/WCDMA */ |
|
1366 enum TSSTServices25To32 |
|
1367 { |
|
1368 /** Indicates that SAT SMS-CB data download is supported by ICC. */ |
|
1369 KSstSmsCbDataDownload=0x01, |
|
1370 /** Indicates that SAT SMS-PP data download is supported by ICC. */ |
|
1371 KSstSmsPpDataDownload=0x02, |
|
1372 /** Indicates that SAT menu selection is supported by ICC. |
|
1373 |
|
1374 SAT ETel API provides this feature. */ |
|
1375 KSstMenuSelection=0x04, |
|
1376 /** Indicates that SAT call control is supported by ICC. |
|
1377 |
|
1378 SAT ETel API provides this feature. */ |
|
1379 KSstCallControl=0x08, |
|
1380 /** Indicates that SAT pro-active SIM is supported by ICC. |
|
1381 |
|
1382 SAT ETel API provides this feature. */ |
|
1383 KSstProactiveSim=0x10, |
|
1384 /** Indicates ICC storage of ranges of Cell Broadcast Message Identifiers is supported. */ |
|
1385 KSstCBMIRanges=0x20, |
|
1386 /** Indicates ICC storage of Barred Dialling Numbers is supported. */ |
|
1387 KSstBDN=0x40, |
|
1388 /** Indicates ICC storage of extended (greater than 20 digits) BDN numbers is supported. */ |
|
1389 KSstExt4=0x80 |
|
1390 }; |
|
1391 |
|
1392 /** SIM/USIM/CDMA Service Table (continued). |
|
1393 |
|
1394 Modes: GSM/WCDMA */ |
|
1395 enum TSSTServices33To40 |
|
1396 { |
|
1397 /** Indicates depersonalisation control keys are supported by ICC. |
|
1398 |
|
1399 v1.0 of Multimode ETel API does not support this feature. */ |
|
1400 KSstDepersonalisationKeys=0x01, |
|
1401 /** Indicates co-operative network list are supported by this ICC. |
|
1402 |
|
1403 v1.0 of Multimode ETel API does not support this feature. */ |
|
1404 KSstCooperativeNetworks=0x02, |
|
1405 /** Indicates Short Message Status Reports are supported by ICC. */ |
|
1406 KSstSMStatusReports=0x04, |
|
1407 /** Indicates network's indication of alerting is supported by ICC. |
|
1408 |
|
1409 v1.0 of Multimode ETel API does not support this feature. */ |
|
1410 KSstNetworkIndAlerting=0x08, |
|
1411 /** Indicates outgoing SM control by SAT is supported by ICC. |
|
1412 |
|
1413 SAT ETel API provides this feature. */ |
|
1414 KSstMoSmControlBySim=0x10, |
|
1415 /** Indicates that GPRS is supported by this ICC. |
|
1416 |
|
1417 GPRS ETel API provides GPRS functionality. */ |
|
1418 KSstGprs=0x20, |
|
1419 /** Indicates that Image files are supported by this ICC. |
|
1420 |
|
1421 SAT ETel API provides this feature. */ |
|
1422 KSstImage=0x40, |
|
1423 /** Indicates that SoLSA in supported by this ICC. |
|
1424 |
|
1425 v1.0 of Multimode ETel API does not support this feature */ |
|
1426 KSstSoLSA=0x80 |
|
1427 }; |
|
1428 |
|
1429 /** SIM/USIM/CDMA Service Table (continued). |
|
1430 |
|
1431 Modes: GSM/WCDMA */ |
|
1432 enum TSSTServices41To48 |
|
1433 { |
|
1434 /** Indicates that USSD string data is supported in SAT Call Control by this ICC. |
|
1435 |
|
1436 SAT ETel API provides this feature. */ |
|
1437 KSstUssdStringInCallControl=0x01, |
|
1438 /** Indicates that RUN AT COMMAND is supported in SAT by this ICC. |
|
1439 |
|
1440 v1.0 of Multimode ETel API does not support this feature */ |
|
1441 KSstRunATCommand=0x02, |
|
1442 /** Indicates that PLMN selector list with access technology is supported by this |
|
1443 ICC. |
|
1444 |
|
1445 v1.0 of Multimode ETel API does not support this feature. */ |
|
1446 KSstPlmnSelectorListWithAccessTechnology=0x04, |
|
1447 /** Indicates that OPLMN selector list with access technology is supported by this |
|
1448 ICC. |
|
1449 |
|
1450 v1.0 of Multimode ETel API does not support this feature. */ |
|
1451 KSstOplmnSelectorListWithAccessTechnology=0x08, |
|
1452 /** Indicates that HPLMN access technology is supported by this ICC. |
|
1453 |
|
1454 v1.0 of Multimode ETel API does not support this feature. */ |
|
1455 KSstHplmnAccessTechnology=0x10, |
|
1456 /** Indicates that CPBCCH information is supported by this ICC. |
|
1457 |
|
1458 v1.0 of Multimode ETel API does not support this feature. */ |
|
1459 KSstCpbcchInformation=0x20, |
|
1460 /** Indicates that Investigation Scan is supported by this ICC. |
|
1461 |
|
1462 v1.0 of Multimode ETel API does not support this feature. */ |
|
1463 KSstInvestigationScan=0x40, |
|
1464 /** Indicates that extended capability configuration parameters are supported by |
|
1465 this ICC. |
|
1466 |
|
1467 v1.0 of Multimode ETel API does not support this feature. */ |
|
1468 KSstExtendedCcp=0x80 |
|
1469 }; |
|
1470 |
|
1471 /** SIM/USIM/CDMA Service Table (continued). |
|
1472 |
|
1473 Modes: GSM/WCDMA */ |
|
1474 enum TSSTServices49To56 |
|
1475 { |
|
1476 /** Indicates Mobile Execution Environment services are supported by this ICC */ |
|
1477 KSstMExE=0x01, |
|
1478 /** Indicates that RPLMN last used access technology is supported by this ICC. |
|
1479 |
|
1480 v1.0 of Multimode ETel API does not support this feature. */ |
|
1481 KSstRplmnLastUsedAccessTechnology=0x02 |
|
1482 }; |
|
1483 |
|
1484 /** USIM service table. */ |
|
1485 enum TUSTServices1To8 |
|
1486 { |
|
1487 /** Indicates that the local phonebook is supported by the USIM. Local phonebook |
|
1488 means a phonebook that is specific to a USIM Application, as opposed to the |
|
1489 global phonebook which is located at the DF Telecom level on the UICC and |
|
1490 not attached to a USIM Application. */ |
|
1491 KUstLocalPhBk=0x01, |
|
1492 /** Indicates that the Fixed Dialling Numbers (FDN) service and the storage of |
|
1493 FDN numbers within this USIM is supported. */ |
|
1494 KUstFDN=0x02, |
|
1495 /** Indicates that the Extension 2 is supported by the USIM. Extension 2 provides |
|
1496 extension data for Fixed Dialling Numbers. */ |
|
1497 KUstExt2=0x04, |
|
1498 /** Indicates that the Service Dialling Numbers are supported by the USIM. */ |
|
1499 KUstSDN=0x08, |
|
1500 /** Indicates that the Extension 3 is supported by the USIM. Extension 3 provides |
|
1501 extension data for Service Dialling Numbers. */ |
|
1502 KUstExt3=0x10, |
|
1503 /** Indicates that the Barred Dialling Numbers are supported by the USIM. */ |
|
1504 KUstBDN=0x20, |
|
1505 /** Indicates that the Extension 4 is supported by the USIM. Extension 4 provides |
|
1506 extension data for Barred Dialling Numbers. */ |
|
1507 KUstExt4=0x40, |
|
1508 /** Indicates that the outgoing call information (OCI and OCT) are supported by |
|
1509 the USIM. |
|
1510 |
|
1511 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1512 KUstOugoingCallInfo=0x80 |
|
1513 }; |
|
1514 |
|
1515 /** USIM service table (continued). */ |
|
1516 enum TUSTServices9To16 |
|
1517 { |
|
1518 /** Indicates that the incoming call information (ICI and ICT) are supported by |
|
1519 the USIM |
|
1520 |
|
1521 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1522 KUstIncomingCallInfo=0x01, |
|
1523 /** Indicates that Short Message Storage is supported by the USIM. */ |
|
1524 KUstSMS=0x02, |
|
1525 /** Indicates that Short Message Status Reports are supported by the USIM. */ |
|
1526 KUstSMSR=0x04, |
|
1527 /** Indicates that Short Message Service Parameters are supported by the USIM. */ |
|
1528 KUstSMSP=0x08, |
|
1529 /** Indicates that Advice Of Charge is supported by the USIM. */ |
|
1530 KUstAoC=0x10, |
|
1531 /** Indicates that Capability Configuration Parameters are supported by the USIM. */ |
|
1532 KUstCCP=0x20, |
|
1533 /** Indicates that Cell Broadcast Message Identifier is supported by the USIM. */ |
|
1534 KUstCBMI=0x40, |
|
1535 /** Indicates that Cell Broadcast Message Identifier Ranges are supported by the |
|
1536 USIM. */ |
|
1537 KUstCBMIRanges=0x80 |
|
1538 }; |
|
1539 |
|
1540 /** USIM service table (continued). */ |
|
1541 enum TUSTServices17To24 |
|
1542 { |
|
1543 /** Indicates that Group Identifier Level 1 is supported by the USIM. |
|
1544 |
|
1545 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1546 KUstGID1=0x01, |
|
1547 /** Indicates that Group Identifier Level 2 is supported by the USIM. |
|
1548 |
|
1549 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1550 KUstGID2=0x02, |
|
1551 /** Indicates that Service Provider Name is supported by the USIM. */ |
|
1552 KUstSPN=0x04, |
|
1553 /** Indicates that user controlled PLMN selector with Access Technology is supported |
|
1554 by the USIM. |
|
1555 |
|
1556 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1557 KUstPLMNSelAccessTech=0x08, |
|
1558 /** Indicates that MSISDN is supported by the USIM. */ |
|
1559 KUstMSISDN=0x10, |
|
1560 /** Indicates that Image is supported by the USIM. |
|
1561 |
|
1562 Note: (U)SAT ETel API provides this feature. This enum value is reserved for |
|
1563 future API use. */ |
|
1564 KUstIMG=0x20, |
|
1565 //0x40 is a reserved value |
|
1566 /** Indicates that enhanced Multi Level Precedence and Pre-emption Service is supported |
|
1567 by the USIM. |
|
1568 |
|
1569 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1570 KUsteMLPP=0x80 |
|
1571 }; |
|
1572 |
|
1573 /** USIM service table (continued). */ |
|
1574 enum TUSTServices25To32 |
|
1575 { |
|
1576 /** Indicates that Automatic Answer for eMLPP is supported by the USIM. |
|
1577 |
|
1578 Note: v1.0 and v2.0 of Multimode ETel API do not support this feature. */ |
|
1579 KUstAnswereMLPP=0x01, |
|
1580 //0x02 is a reserved value |
|
1581 /** Indicates that GSM Access is supported by the USIM */ |
|
1582 KUstGSMAccess=0x04, |
|
1583 /** Indicates that Data download via SMS-PP is supported by the USIM. |
|
1584 |
|
1585 Note: (U)SAT ETel API provides this feature. */ |
|
1586 KUstSMSPpDataDownload=0x08, |
|
1587 /** Indicates that Data download via SMS-CB is supported by the USIM. |
|
1588 |
|
1589 Note: (U)SAT ETel API provides this feature. */ |
|
1590 KUstSMSCbDataDownload=0x10, |
|
1591 /** Indicates that Call Control by USIM is supported by the USIM. |
|
1592 |
|
1593 Note: (U)SAT ETel API provides this feature. */ |
|
1594 KUstCallControl=0x20, |
|
1595 /** Indicates that MO-SMS Control by USIM is supported by the USIM. |
|
1596 |
|
1597 Note: (U)SAT ETel API provides this feature. */ |
|
1598 KUstMoSmControl=0x40, |
|
1599 /** Indicates that the proactive command RUN AT COMMAND is supported by the USIM. |
|
1600 |
|
1601 Note: (U)SAT ETel API provides this feature. */ |
|
1602 KUstPCmdRunAtCommand=0x80 |
|
1603 }; |
|
1604 |
|
1605 /** USIM service table (continued). */ |
|
1606 enum TUSTServices33To40 |
|
1607 { |
|
1608 /** Should always be present as specified by 3 GPP spec. */ |
|
1609 KUstAlways=0x10, |
|
1610 /** Indicates that the Enabled Service Table is supported by the USIM. */ |
|
1611 KUstEST=0x02, |
|
1612 /** Indicates that APN Control List is supported by the USIM. |
|
1613 |
|
1614 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1615 KUstACL=0x04, |
|
1616 /** Indicates that the Depersonalisation Control Keys are supported by the USIM. |
|
1617 |
|
1618 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1619 KIstDepersonalisationKeys =0x08, |
|
1620 /** Indicates that the Co-operative Network List is supported by the USIM. |
|
1621 |
|
1622 Note: v2.0 of Multimode ETel API does not support this feature. */ |
|
1623 KUstCooperativeNetwork=0x10, |
|
1624 /** Indicates that GSM Security Context is supported by the USIM. */ |
|
1625 KUstGSMSecurityContext=0x20, |
|
1626 /** Indicates that CPBCCH Information is supported by the USIM. |
|
1627 |
|
1628 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1629 KUstCPBCCHInfo=0x40, |
|
1630 /** Indicates that Investigation Scan is supported by the USIM. |
|
1631 |
|
1632 Note:v2.0 of Multimode ETel API do not support this feature. */ |
|
1633 KUstInvestigationScan=0x80 |
|
1634 }; |
|
1635 |
|
1636 /** USIM service table (continued). */ |
|
1637 enum TUSTServices41To48 |
|
1638 { |
|
1639 /** Indicates that MExE is supported by the USIM. |
|
1640 |
|
1641 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1642 KUstMExE=0x01, |
|
1643 /** Indicates that Operator controlled PLMN selector with Access Technology is |
|
1644 supported by the USIM. |
|
1645 |
|
1646 N.B .v2.0 of Multimode ETel API do not support this feature. */ |
|
1647 KUstOperatorPLMNSelector=0x02, |
|
1648 /** Indicates that HPLMN selector with Access Technology is supported by the USIM. |
|
1649 |
|
1650 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1651 KUstHPLMNSelAccessTech=0x04, |
|
1652 /** Indicates that Extension 5 is supported by the USIM. Provides support for extension |
|
1653 data for MSISDN. */ |
|
1654 KUstExt5=0x08, |
|
1655 /** Indicates that PLMN Network Name is supported by the USIM. |
|
1656 |
|
1657 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1658 KUstPLMNNetworkName=0x10, |
|
1659 /** Indicates that Operator PLMN List is supported by the USIM. |
|
1660 |
|
1661 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1662 KUstOperatorPLMNList=0x20, |
|
1663 /** Indicates that Mailbox Dialling Numbers are supported by the USIM. */ |
|
1664 KUstMDN=0x40, |
|
1665 /** Indicates that Message Waiting Indication Status is supported by the USIM. */ |
|
1666 KUstMWISo=0x80 |
|
1667 }; |
|
1668 |
|
1669 /** USIM service table (continued). */ |
|
1670 enum TUSTServices49To56 |
|
1671 { |
|
1672 /** Indicates that Call forwarding indication status is supported by the USIM. |
|
1673 |
|
1674 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1675 KUstCFIS=0x01, |
|
1676 /** Indicates that RPLMN last-used access technology is supported by the USIM. |
|
1677 |
|
1678 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1679 KUstRPLMN=0x02, |
|
1680 /** Indicates that Service provider display information is supported by the USIM. |
|
1681 |
|
1682 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1683 KUstSPDI=0x04, |
|
1684 KUstMMS=0x08, |
|
1685 KUstExt8=0x10, |
|
1686 KUstCConGPRS=0x20, |
|
1687 KUstMMSUCP=0x40 |
|
1688 }; |
|
1689 |
|
1690 /** Enabled Services Table. */ |
|
1691 enum TESTServices1To8 |
|
1692 { |
|
1693 /** Indicates that FDN service is activated. */ |
|
1694 KEstFDN=0x01, |
|
1695 /** Indicates that BDN service is activated. */ |
|
1696 KEstBDN=0x02, |
|
1697 /** Indicates that the APN Control List service is activated. |
|
1698 |
|
1699 Note: v2.0 of Multimode ETel API do not support this feature. */ |
|
1700 KEstACL=0x04 |
|
1701 }; |
|
1702 |
|
1703 /** Get Service Table. |
|
1704 |
|
1705 Modes: GSM/WCDMA */ |
|
1706 enum TMobilePhoneServiceTable |
|
1707 { |
|
1708 /** Retrieve SIM service table on SIM (or from GSM application on UICC). |
|
1709 |
|
1710 Modes: GSM/WCDMA */ |
|
1711 ESIMServiceTable, |
|
1712 /** Retrieve USIM service table from active USIM application on UICC. |
|
1713 |
|
1714 Modes: WCDMA */ |
|
1715 EUSIMServiceTable, |
|
1716 /** Retrieve CDMA service table on R-UIM. |
|
1717 |
|
1718 Modes: CDMA */ |
|
1719 ECDMAServiceTable, |
|
1720 /** USIM Enabled Services Table to be used in conjunction with the USIM Service |
|
1721 Table. |
|
1722 |
|
1723 Modes: WCDMA */ |
|
1724 EUSIMEnabledServiceTable |
|
1725 }; |
|
1726 |
|
1727 |
|
1728 class TMobilePhoneServiceTableV1 : public TMultimodeType |
|
1729 /** Defines contents of the specified Service Table on the ICC. |
|
1730 |
|
1731 @see GetServiceTable() |
|
1732 @publishedPartner |
|
1733 @released |
|
1734 */ |
|
1735 { |
|
1736 public: |
|
1737 IMPORT_C TMobilePhoneServiceTableV1(); |
|
1738 |
|
1739 /** Sum of the TSSTServices1To8 capability constants. */ |
|
1740 TUint8 iServices1To8; |
|
1741 /** Sum of the TSSTServices9To16 capability constants. */ |
|
1742 TUint8 iServices9To16; |
|
1743 /** Sum of the TSSTServices17To24 capability constants. */ |
|
1744 TUint8 iServices17To24; |
|
1745 /** Sum of the TSSTServices25To32 capability constants. */ |
|
1746 TUint8 iServices25To32; |
|
1747 /** Sum of the TSSTServices33To40 capability constants. */ |
|
1748 TUint8 iServices33To40; |
|
1749 /** Sum of the TSSTServices41To48 capability constants. */ |
|
1750 TUint8 iServices41To48; |
|
1751 /** Sum of the TSSTServices49To56 capability constants. */ |
|
1752 TUint8 iServices49To56; |
|
1753 }; |
|
1754 |
|
1755 /** A typedef'd packaged TMobilePhoneServiceTableV1 passing through a generic API |
|
1756 function member. */ |
|
1757 typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg; |
|
1758 |
|
1759 enum { KAIDSize=16 }; |
|
1760 |
|
1761 /** A typedef'd buffer to hold the application identifier (AID) that identifies |
|
1762 the USIM application in a UICC. The AID consists of a Registered application |
|
1763 provider IDentifier (RID) of 5Â bytes and a Proprietary application Identifier |
|
1764 eXtension (PIX) of up to 11 bytes. */ |
|
1765 typedef TBuf8<KAIDSize> TAID; |
|
1766 |
|
1767 class TMobilePhoneServiceTableV2 : public TMobilePhoneServiceTableV1 |
|
1768 /** Defines contents of the specified Service Table on the ICC for the v2.0 version |
|
1769 of the API. |
|
1770 */ |
|
1771 { |
|
1772 public: |
|
1773 IMPORT_C TMobilePhoneServiceTableV2(); |
|
1774 public: |
|
1775 /** The application identifier. */ |
|
1776 TAID iAID; |
|
1777 }; |
|
1778 |
|
1779 /** A typedef'd packaged TMobilePhoneServiceTableV2 passing through a generic API |
|
1780 function member. */ |
|
1781 typedef TPckg<TMobilePhoneServiceTableV2> TMobilePhoneServiceTableV2Pckg; |
|
1782 |
|
1783 IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const; |
|
1784 |
|
1785 |
|
1786 /***********************************************************************************/ |
|
1787 // |
|
1788 // MobilePhonePower functional unit |
|
1789 // |
|
1790 /***********************************************************************************/ |
|
1791 |
|
1792 /** Phone supported battery information. |
|
1793 |
|
1794 Modes: Common */ |
|
1795 enum TMobilePhoneBatteryCaps |
|
1796 { |
|
1797 /** Phone supports requests to get the current battery information. */ |
|
1798 KCapsGetBatteryInfo=0x00000001, |
|
1799 /** Phone supports requests for notification of change in battery information. */ |
|
1800 KCapsNotifyBatteryInfoChange=0x00000002 |
|
1801 }; |
|
1802 |
|
1803 IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const; |
|
1804 |
|
1805 /** The mobile phone battery status. |
|
1806 |
|
1807 Modes: Common */ |
|
1808 enum TMobilePhoneBatteryStatus |
|
1809 { |
|
1810 /** The TSY can not determine the phone's current power status. */ |
|
1811 EPowerStatusUnknown, |
|
1812 /** The phone is currently powered by a battery. */ |
|
1813 EPoweredByBattery, |
|
1814 /** A battery is connected, but the phone is externally powered. */ |
|
1815 EBatteryConnectedButExternallyPowered, |
|
1816 /** No battery is connected. */ |
|
1817 ENoBatteryConnected, |
|
1818 /** Power fault. */ |
|
1819 EPowerFault |
|
1820 }; |
|
1821 |
|
1822 class TMobilePhoneBatteryInfoV1 : public TMultimodeType |
|
1823 /** Defines contents of the battery status of the phone. |
|
1824 |
|
1825 @see GetBatteryInfo() |
|
1826 @see NotifyBatteryInfoChange() |
|
1827 */ |
|
1828 { |
|
1829 public: |
|
1830 IMPORT_C TMobilePhoneBatteryInfoV1(); |
|
1831 public: |
|
1832 /** The power and battery status. |
|
1833 |
|
1834 @see TMobilePhoneBatteryStatus */ |
|
1835 TMobilePhoneBatteryStatus iStatus; |
|
1836 /** The percentage battery charge level. */ |
|
1837 TUint iChargeLevel; |
|
1838 }; |
|
1839 |
|
1840 IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const; |
|
1841 IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const; |
|
1842 |
|
1843 |
|
1844 /***********************************************************************************/ |
|
1845 // |
|
1846 // MobilePhoneSignal functional unit |
|
1847 // |
|
1848 /***********************************************************************************/ |
|
1849 |
|
1850 /** The mobile phone signal strength capabilities. |
|
1851 |
|
1852 Modes: Common */ |
|
1853 enum TMobilePhoneSignalCaps |
|
1854 { |
|
1855 /** Phone supports requests to get the current signal strength. */ |
|
1856 KCapsGetSignalStrength=0x00000001, |
|
1857 /** Phone supports requests for notification of change in signal strength. */ |
|
1858 KCapsNotifySignalStrengthChange=0x00000002 |
|
1859 }; |
|
1860 |
|
1861 IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const; |
|
1862 IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const; |
|
1863 IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const; |
|
1864 |
|
1865 /***********************************************************************************/ |
|
1866 // |
|
1867 // MobilePhoneIndicator functional unit |
|
1868 // |
|
1869 /***********************************************************************************/ |
|
1870 |
|
1871 /** The mobile phone indicator capabilities supported. |
|
1872 |
|
1873 Modes: Common */ |
|
1874 enum TMobilePhoneIndicatorCaps |
|
1875 { |
|
1876 /** Phone supports requests to get the current value of all supported indicators. */ |
|
1877 KCapsGetIndicator=0x00000001, |
|
1878 /** Phone supports requests for notification of change in the supported indicators. */ |
|
1879 KCapsNotifyIndicatorChange=0x00000002 |
|
1880 }; |
|
1881 |
|
1882 /** The mobile phone indicators. |
|
1883 |
|
1884 Modes Common */ |
|
1885 enum TMobilePhoneIndicators |
|
1886 { |
|
1887 /** If bit-flag is set to '1' indicates that the battery charger is connected to |
|
1888 the phone. If bit-flag is set to '0' indicates that the battery charger is |
|
1889 disconnected. */ |
|
1890 KIndChargerConnected=0x00000001, |
|
1891 /** If bit-flag is set to '1' indicates that network service is available. If bit-flag |
|
1892 is set to '0' indicates that network service is unavailable. */ |
|
1893 KIndNetworkAvailable=0x00000002, |
|
1894 /** If bit-flag is set to '1' indicates that a call is in progress. If set to '0' |
|
1895 indicates that a call is not in progress. */ |
|
1896 KIndCallInProgress=0x00000004 |
|
1897 }; |
|
1898 |
|
1899 IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const; |
|
1900 IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const; |
|
1901 IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const; |
|
1902 |
|
1903 |
|
1904 /***********************************************************************************/ |
|
1905 // |
|
1906 // MobilePhoneIdentity functional unit |
|
1907 // |
|
1908 /***********************************************************************************/ |
|
1909 |
|
1910 /** Defines Identity Capabilities. |
|
1911 |
|
1912 Modes: Common */ |
|
1913 enum TMobilePhoneIdentityCaps |
|
1914 { |
|
1915 /** Phone can return the identity of its manufacturer. */ |
|
1916 KCapsGetManufacturer=0x00000001, |
|
1917 /** Phone can return the identity of its model. */ |
|
1918 KCapsGetModel=0x00000002, |
|
1919 /** Phone can return the identity of its revision. */ |
|
1920 KCapsGetRevision=0x00000004, |
|
1921 /** Phone can return the identity of its serial number. */ |
|
1922 KCapsGetSerialNumber=0x00000008, |
|
1923 /** Phone can return the identity of its subscriber. */ |
|
1924 KCapsGetSubscriberId=0x00000010 |
|
1925 }; |
|
1926 |
|
1927 IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const; |
|
1928 |
|
1929 enum { KPhoneManufacturerIdSize=50 }; |
|
1930 enum { KPhoneModelIdSize=50 }; |
|
1931 enum { KPhoneRevisionIdSize=50 }; |
|
1932 enum { KPhoneSerialNumberSize=50 }; |
|
1933 |
|
1934 class TMobilePhoneIdentityV1 : public TMultimodeType |
|
1935 /** Defines the mobile phone identity. |
|
1936 |
|
1937 @see GetPhoneId() */ |
|
1938 { |
|
1939 public: |
|
1940 IMPORT_C TMobilePhoneIdentityV1(); |
|
1941 public: |
|
1942 /** Phone manufacturer identification, in character string format. */ |
|
1943 TBuf<KPhoneManufacturerIdSize> iManufacturer; |
|
1944 /** Phone model identification, in character string format. */ |
|
1945 TBuf<KPhoneModelIdSize> iModel; |
|
1946 /** Phone revision identification, in character string format. */ |
|
1947 TBuf<KPhoneRevisionIdSize> iRevision; |
|
1948 /** Phone serial number (IMEI or ESN), in character string format. */ |
|
1949 TBuf<KPhoneSerialNumberSize> iSerialNumber; |
|
1950 }; |
|
1951 |
|
1952 IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TMobilePhoneIdentityV1& aId) const; |
|
1953 |
|
1954 enum { KIMSISize = 15 }; |
|
1955 |
|
1956 /** A typedef'd buffer to hold the mobile phone subscriber id. */ |
|
1957 typedef TBuf<KIMSISize> TMobilePhoneSubscriberId; |
|
1958 |
|
1959 IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const; |
|
1960 |
|
1961 /***********************************************************************************/ |
|
1962 // |
|
1963 // MobilePhoneDTMF functional unit |
|
1964 // |
|
1965 /***********************************************************************************/ |
|
1966 |
|
1967 /** DTMF Capabilities. |
|
1968 |
|
1969 Modes: Common */ |
|
1970 enum TMobilePhoneDTMFCaps |
|
1971 { |
|
1972 /** Capability to send a string of DTMF tones, containing one or more tone(s). */ |
|
1973 KCapsSendDTMFString=0x00000001, |
|
1974 /** Capability to send one DTMF tone, using start and stop DTMF tone function member. */ |
|
1975 KCapsSendDTMFSingleTone=0x00000002, |
|
1976 }; |
|
1977 |
|
1978 /** |
|
1979 DTMF tone operation event. |
|
1980 */ |
|
1981 enum TMobilePhoneDTMFEvent |
|
1982 { |
|
1983 /** |
|
1984 Start sending of a Dtmf tone operation has been acknowledged from the MSC. |
|
1985 */ |
|
1986 EStartDtmfTone, |
|
1987 /** |
|
1988 Stop sending of a Dtmf tone operation has been acknowledged from the MSC. |
|
1989 */ |
|
1990 EStopDtmfTone, |
|
1991 }; |
|
1992 |
|
1993 |
|
1994 IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const; |
|
1995 IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
1996 |
|
1997 IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const; |
|
1998 IMPORT_C void ReadDTMFTones(TRequestStatus& aReqStatus, TDes& aTones) const; |
|
1999 IMPORT_C TInt StartDTMFTone(TChar aTone) const; |
|
2000 IMPORT_C TInt StopDTMFTone() const; |
|
2001 |
|
2002 IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const; |
|
2003 IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const; |
|
2004 IMPORT_C void NotifyDTMFEvent(TRequestStatus& aReqStatus, TMobilePhoneDTMFEvent& aEvent) const; |
|
2005 |
|
2006 /***********************************************************************************/ |
|
2007 // |
|
2008 // MobilePhoneNetwork functional unit |
|
2009 // |
|
2010 /***********************************************************************************/ |
|
2011 |
|
2012 /** Defines Network Capabilities. |
|
2013 |
|
2014 Modes: Common */ |
|
2015 enum TMobilePhoneNetworkCaps |
|
2016 { |
|
2017 /** The phone supports retrieval of current registration status. */ |
|
2018 KCapsGetRegistrationStatus=0x00000001, |
|
2019 /** The phone supports notifications of change in registration status. */ |
|
2020 KCapsNotifyRegistrationStatus=0x00000002, |
|
2021 /** The phone supports retrieval of current mode. */ |
|
2022 KCapsGetCurrentMode=0x00000004, |
|
2023 /** The phone supports notification of change in mode. */ |
|
2024 KCapsNotifyMode=0x00000008, |
|
2025 /** The phone supports retrieval of current network information. */ |
|
2026 KCapsGetCurrentNetwork=0x00000010, |
|
2027 /** The phone supports notification of change of current network. */ |
|
2028 KCapsNotifyCurrentNetwork=0x00000020, |
|
2029 /** The phone supports retrieval of home network information. */ |
|
2030 KCapsGetHomeNetwork=0x00000040, |
|
2031 /** The phone supports retrieval of a list of detected networks. */ |
|
2032 KCapsGetDetectedNetworks=0x00000080, |
|
2033 /** The phone supports manual network selection mode. */ |
|
2034 KCapsManualNetworkSelection=0x00000100, |
|
2035 /** The phone supports retrieval of time and date information (NITZ) received from |
|
2036 the network. */ |
|
2037 KCapsGetNITZInfo=0x00000200, |
|
2038 /** The phone supports notification of new updates of time & date information (NITZ) |
|
2039 received from the network. */ |
|
2040 KCapsNotifyNITZInfo=0x00000400 |
|
2041 }; |
|
2042 |
|
2043 IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const; |
|
2044 |
|
2045 /** Defines Current Network Modes. |
|
2046 |
|
2047 Modes: Common */ |
|
2048 enum TMobilePhoneNetworkMode |
|
2049 { |
|
2050 /** Network mode is unknown. |
|
2051 |
|
2052 Modes: Common */ |
|
2053 ENetworkModeUnknown, |
|
2054 /** ME is not registered. |
|
2055 |
|
2056 Modes: Common */ |
|
2057 ENetworkModeUnregistered, |
|
2058 /** GSM/GPRS or DCS1800 network. */ |
|
2059 ENetworkModeGsm, |
|
2060 /** AMPS network. |
|
2061 |
|
2062 Modes: CDMA */ |
|
2063 ENetworkModeAmps, |
|
2064 /** CDMA (IS-95) network. |
|
2065 |
|
2066 Modes: CDMA */ |
|
2067 ENetworkModeCdma95, |
|
2068 /** CDMA (cdma2000) network. |
|
2069 |
|
2070 Modes: CDMA */ |
|
2071 ENetworkModeCdma2000, |
|
2072 /** WCDMA (UTRA Frequency Division Duplex (FDD)) network. |
|
2073 |
|
2074 Modes: WCDMA */ |
|
2075 ENetworkModeWcdma, |
|
2076 /** TD-CDMA (UTRA Time Division Duplex (TDD)) network. |
|
2077 |
|
2078 Modes: WCDMA */ |
|
2079 ENetworkModeTdcdma |
|
2080 }; |
|
2081 |
|
2082 IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const; |
|
2083 IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const; |
|
2084 |
|
2085 void DoNotifyModeChange( TMobilePhoneNetworkMode aNetworkMode, TInt aErrorCode ); |
|
2086 void CancelAsyncRequest(TInt aReqToCancel) const; |
|
2087 |
|
2088 mutable TMobilePhoneNetworkMode* iNetworkMode; |
|
2089 mutable TRequestStatus* iReqStatus; |
|
2090 |
|
2091 |
|
2092 /** Phone network status. |
|
2093 |
|
2094 Modes: Common */ |
|
2095 enum TMobilePhoneNetworkStatus |
|
2096 { |
|
2097 /** Status is unknown. */ |
|
2098 ENetworkStatusUnknown, |
|
2099 /** A network that the ME is allowed to register to. */ |
|
2100 ENetworkStatusAvailable, |
|
2101 /** The currently registered network. */ |
|
2102 ENetworkStatusCurrent, |
|
2103 /** A network that the ME is not allowed to register to. */ |
|
2104 ENetworkStatusForbidden |
|
2105 }; |
|
2106 |
|
2107 /** Mobile phone network band information. |
|
2108 |
|
2109 Modes: CDMA */ |
|
2110 enum TMobilePhoneNetworkBandInfo |
|
2111 { |
|
2112 /** The current band and band class is unknown. */ |
|
2113 EBandUnknown, |
|
2114 /** The network operates at 800MHz on Band A. */ |
|
2115 E800BandA, |
|
2116 /** The network operates at 800MHz on Band B. */ |
|
2117 E800BandB, |
|
2118 /** The network operates at 800MHz on Band C. */ |
|
2119 E800BandC, |
|
2120 /** The network operates at 1900MHz on Band A. */ |
|
2121 E1900BandA, |
|
2122 /** The network operates at 1900MHz on Band B. */ |
|
2123 E1900BandB, |
|
2124 /** The network operates at 1900MHz on Band C. */ |
|
2125 E1900BandC, |
|
2126 /** The network operates at 1900MHz on Band D. */ |
|
2127 E1900BandD, |
|
2128 /** The network operates at 1900MHz on Band E. */ |
|
2129 E1900BandE, |
|
2130 /** The network operates at 1900MHz on Band F. */ |
|
2131 E1900BandF |
|
2132 }; |
|
2133 |
|
2134 /** A typedef'd buffer to hold the network display tag */ |
|
2135 typedef TBuf<30> TMobilePhoneNetworkDisplayTag; |
|
2136 /** A typedef'd buffer to hold the network long name. */ |
|
2137 typedef TBuf<20> TMobilePhoneNetworkLongName; |
|
2138 /** A typedef'd buffer to hold the network short name. */ |
|
2139 typedef TBuf<10> TMobilePhoneNetworkShortName; |
|
2140 |
|
2141 /** A typedef'd buffer to hold the network country code. */ |
|
2142 typedef TBuf<4> TMobilePhoneNetworkCountryCode; // MCC in GSM and CDMA |
|
2143 /** A typedef'd buffer to hold the network identity. */ |
|
2144 typedef TBuf<8> TMobilePhoneNetworkIdentity; // MNC in GSM and SID or NID in CDMA |
|
2145 |
|
2146 |
|
2147 |
|
2148 class TMobilePhoneNetworkInfoV1 : public TMultimodeType |
|
2149 /** Defines information related to a mobile phone network. |
|
2150 |
|
2151 @see GetCurrentNetwork() |
|
2152 @see NotifyCurrentNetworkChange() |
|
2153 @see GetHomeNetwork() |
|
2154 @publishedPartner |
|
2155 @released */ |
|
2156 { |
|
2157 public: |
|
2158 IMPORT_C TMobilePhoneNetworkInfoV1(); |
|
2159 public: |
|
2160 void InternalizeL(RReadStream& aStream); |
|
2161 void ExternalizeL(RWriteStream& aStream) const; |
|
2162 public: |
|
2163 /** Mode of the network. |
|
2164 |
|
2165 Modes: Common |
|
2166 |
|
2167 @see TMobilePhoneNetworkMode */ |
|
2168 TMobilePhoneNetworkMode iMode; |
|
2169 /** Status of the network |
|
2170 |
|
2171 Modes: Common |
|
2172 |
|
2173 @see TMobilePhoneNetworkStatus */ |
|
2174 TMobilePhoneNetworkStatus iStatus; |
|
2175 /** The band and band class of the CDMA network operator. |
|
2176 |
|
2177 Modes: CDMA |
|
2178 |
|
2179 @see TMobilePhoneNetworkBandInfo */ |
|
2180 TMobilePhoneNetworkBandInfo iBandInfo; |
|
2181 /** The MCC of the network. |
|
2182 |
|
2183 Modes: Common |
|
2184 |
|
2185 @see TMobilePhoneNetworkCountryCode */ |
|
2186 TMobilePhoneNetworkCountryCode iCountryCode; |
|
2187 /** The system identity (SID) of the CDMA network. |
|
2188 |
|
2189 Modes: CDMA |
|
2190 |
|
2191 @see TMobilePhoneNetworkIdentity */ |
|
2192 TMobilePhoneNetworkIdentity iCdmaSID; |
|
2193 /** The system identity (SID) of the AMPS network. |
|
2194 |
|
2195 Modes: CDMA |
|
2196 |
|
2197 @see TMobilePhoneNetworkIdentity */ |
|
2198 TMobilePhoneNetworkIdentity iAnalogSID; |
|
2199 /** The network identity (NID in CDMA and MNC in GSM). |
|
2200 |
|
2201 Modes: Common |
|
2202 |
|
2203 @see TMobilePhoneNetworkIdentity */ |
|
2204 TMobilePhoneNetworkIdentity iNetworkId; |
|
2205 /** The alpha-tag displayed when this is the serving network. |
|
2206 |
|
2207 Modes: Common |
|
2208 |
|
2209 @see TMobilePhoneNetworkDisplayTag */ |
|
2210 TMobilePhoneNetworkDisplayTag iDisplayTag; |
|
2211 /** The short name (up to 10 characters) of the network operator. |
|
2212 |
|
2213 Modes: GSM/WCDMA |
|
2214 |
|
2215 @see TMobilePhoneNetworkShortName */ |
|
2216 TMobilePhoneNetworkShortName iShortName; |
|
2217 /** The long name (up to 20 characters) of the network operator. |
|
2218 |
|
2219 Modes: GSM/WCDMA |
|
2220 |
|
2221 @see TMobilePhoneNetworkLongName */ |
|
2222 TMobilePhoneNetworkLongName iLongName; |
|
2223 }; |
|
2224 |
|
2225 /** A typedef'd packaged TMobilePhoneNetworkInfoV1 for passing through a generic |
|
2226 API function member. */ |
|
2227 typedef TPckg<TMobilePhoneNetworkInfoV1> TMobilePhoneNetworkInfoV1Pckg; |
|
2228 |
|
2229 /** The access technology that the network is based on. |
|
2230 |
|
2231 Modes: Common */ |
|
2232 enum TMobilePhoneNetworkAccess |
|
2233 { |
|
2234 /** This is used when there is no network activity and therefore no RAT active. |
|
2235 |
|
2236 Modes: Common */ |
|
2237 ENetworkAccessUnknown, |
|
2238 /** The access technology is GSM. |
|
2239 |
|
2240 Modes: GSM */ |
|
2241 ENetworkAccessGsm, |
|
2242 /** The access technology is GSM COMPACT. However GSM COMPACT systems which use |
|
2243 GSM frequency bands but with the CBPCCH broadcast channel are considered as |
|
2244 a separate access technology from GSM. |
|
2245 |
|
2246 Modes: GSM */ |
|
2247 ENetworkAccessGsmCompact, |
|
2248 /** The access technology is UTRAN (UMTS Network). |
|
2249 |
|
2250 Modes: WCDMA */ |
|
2251 ENetworkAccessUtran, |
|
2252 /** Analogue Cellular |
|
2253 |
|
2254 Modes: CDMA */ |
|
2255 ENetworkAccessAmpsCellular, |
|
2256 /** CDMA Cellular - Standard channels |
|
2257 |
|
2258 Modes: CDMA */ |
|
2259 ENetworkAccessCdmaCellularStdChannel, |
|
2260 /** CDMA Cellular - Custom channels |
|
2261 |
|
2262 Modes: CDMA */ |
|
2263 ENetworkAccessCdmaCellularCustomChannel, |
|
2264 /** CDMA/Analogue Cellular (cdma first then analogue) |
|
2265 |
|
2266 Modes: CDMA */ |
|
2267 ENetworkAccessCdmaAmpsCellular, |
|
2268 /** CDMA PCS - Using blocks |
|
2269 |
|
2270 Modes: CDMA */ |
|
2271 ENetworkAccessCdmaPcsUsingBlocks, |
|
2272 /** CDMA PCS - Using channels |
|
2273 |
|
2274 Modes: CDMA */ |
|
2275 ENetworkAccessCdmaPcsUsingNetworkAccessChannels, |
|
2276 /** CDMA JTACS - Standard channels |
|
2277 |
|
2278 Modes: CDMA */ |
|
2279 ENetworkAccessJTacsStdChannels, |
|
2280 /** CDMA JTACS - Custom channels |
|
2281 |
|
2282 Modes: CDMA */ |
|
2283 ENetworkAccessJTacsCustomChannels, |
|
2284 /** CDMA 2GHz band - Using channels |
|
2285 |
|
2286 Modes: CDMA */ |
|
2287 ENetworkAccess2GHzBandUsingChannels, |
|
2288 /** Generic Acquisition Record for IS-2000 and IS-95 |
|
2289 |
|
2290 Modes: CDMA */ |
|
2291 ENetworkAccessGenericAcqRecord2000and95, |
|
2292 /** Generic Acquisition Record for IS-856 |
|
2293 |
|
2294 Modes: CDMA */ |
|
2295 ENetworkAccessGenericAcqRecord856 |
|
2296 }; |
|
2297 |
|
2298 |
|
2299 |
|
2300 class TMobilePhoneNetworkInfoV2 : public TMobilePhoneNetworkInfoV1 |
|
2301 /** The access technology that the network is based on in version v2.0 of the API. |
|
2302 @publishedPartner |
|
2303 @released*/ |
|
2304 { |
|
2305 public: |
|
2306 /** Default constructor. Network access is set to ENetworkAccessUnknown and iExtensionId |
|
2307 is set to KETelExtMultimodeV2. */ |
|
2308 IMPORT_C TMobilePhoneNetworkInfoV2(); |
|
2309 |
|
2310 public: |
|
2311 void InternalizeL(RReadStream& aStream); |
|
2312 void ExternalizeL(RWriteStream& aStream) const; |
|
2313 |
|
2314 public: |
|
2315 /** The type of network access. |
|
2316 |
|
2317 @see TMobilePhoneNetworkAccess */ |
|
2318 TMobilePhoneNetworkAccess iAccess; |
|
2319 }; |
|
2320 |
|
2321 /** A typedef'd packaged TMobilePhoneNetworkInfoV2 for passing through a generic |
|
2322 API function member. */ |
|
2323 typedef TPckg<TMobilePhoneNetworkInfoV2> TMobilePhoneNetworkInfoV2Pckg; |
|
2324 |
|
2325 |
|
2326 class TMobilePhoneNetworkInfoV5 : public TMobilePhoneNetworkInfoV2 |
|
2327 /** The access technology that the network is based on in version v2.0 of the API. |
|
2328 @publishedPartner |
|
2329 @released*/ |
|
2330 { |
|
2331 public: |
|
2332 IMPORT_C TMobilePhoneNetworkInfoV5(); |
|
2333 |
|
2334 public: |
|
2335 void InternalizeL(RReadStream& aStream); |
|
2336 void ExternalizeL(RWriteStream& aStream) const; |
|
2337 |
|
2338 public: |
|
2339 /** HSDPA availability indicator. This information is for display |
|
2340 indication only and shall not be used for any other purpose. |
|
2341 |
|
2342 Modes: WCDMA */ |
|
2343 TBool iHsdpaAvailableIndicator; |
|
2344 |
|
2345 /** EGPRS availability indicator. This information is for display |
|
2346 indication only and shall not be used for any other purpose. |
|
2347 |
|
2348 Modes: GPRS */ |
|
2349 TBool iEgprsAvailableIndicator; |
|
2350 }; |
|
2351 |
|
2352 /** A typedef'd packaged TMobilePhoneNetworkInfoV5 for passing through a generic |
|
2353 API function member. */ |
|
2354 typedef TPckg<TMobilePhoneNetworkInfoV5> TMobilePhoneNetworkInfoV5Pckg; |
|
2355 |
|
2356 class TMobilePhoneLocationAreaV1 : public TMultimodeType |
|
2357 /** Defines the mobile phone location area. |
|
2358 |
|
2359 @see GetCurrentNetwork() |
|
2360 @see NotifyCurrentNetworkChange() */ |
|
2361 { |
|
2362 public: |
|
2363 /** Constructor. */ |
|
2364 IMPORT_C TMobilePhoneLocationAreaV1(); |
|
2365 public: |
|
2366 /** Boolean indicating whether the location area is known. |
|
2367 |
|
2368 Modes: Common */ |
|
2369 TBool iAreaKnown; |
|
2370 /** Location area code. |
|
2371 |
|
2372 Modes: GSM/WCDMA */ |
|
2373 TUint iLocationAreaCode; |
|
2374 /** Cell identity code. |
|
2375 |
|
2376 Modes: GSM/WCDMA */ |
|
2377 TUint iCellId; |
|
2378 }; |
|
2379 |
|
2380 IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const; |
|
2381 IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const; |
|
2382 IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; |
|
2383 IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; |
|
2384 |
|
2385 IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; |
|
2386 IMPORT_C void GetHomeNetworkSearchPeriod(TRequestStatus& aReqStatus, TInt& aSearchIntv) const; |
|
2387 IMPORT_C void GetLastUsedAccessTechnology(TRequestStatus& aReqStatus, TMobilePhoneNetworkAccess& aAccessTech) const; |
|
2388 |
|
2389 /** The registration status of the mobile phone. |
|
2390 |
|
2391 Modes: WCDMA */ |
|
2392 enum TMobilePhoneRegistrationStatus |
|
2393 { |
|
2394 /** Registration status is unknown. */ |
|
2395 ERegistrationUnknown, |
|
2396 /** Not registered. The ME can not detect any other networks and is not currently |
|
2397 searching a new operator to register to. */ |
|
2398 ENotRegisteredNoService, |
|
2399 /** Not registered. The ME can detect other networks on which it is possible to |
|
2400 make emergency calls only. */ |
|
2401 ENotRegisteredEmergencyOnly, |
|
2402 /** Not registered, but the ME is currently searching a new operator to register to. */ |
|
2403 ENotRegisteredSearching, |
|
2404 /** Registered, network busy. |
|
2405 |
|
2406 Modes: WCDMA */ |
|
2407 ERegisteredBusy, |
|
2408 /** Registered on home network. */ |
|
2409 ERegisteredOnHomeNetwork, |
|
2410 /** Registration denied. */ |
|
2411 ERegistrationDenied, |
|
2412 /** Registered, roaming. */ |
|
2413 ERegisteredRoaming |
|
2414 }; |
|
2415 |
|
2416 IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const; |
|
2417 IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const; |
|
2418 |
|
2419 /** The network selection function member. |
|
2420 |
|
2421 Modes: Common */ |
|
2422 enum TMobilePhoneSelectionMethod |
|
2423 { |
|
2424 /** Network selection function member is unknown. |
|
2425 |
|
2426 Modes: Common */ |
|
2427 ENetworkSelectionUnknown, |
|
2428 /** Network is selected automatically by phone. |
|
2429 |
|
2430 Modes: Common */ |
|
2431 ENetworkSelectionAutomatic, |
|
2432 /** Network is selected manually by user. |
|
2433 |
|
2434 Modes: GSM/WCDMA */ |
|
2435 ENetworkSelectionManual, |
|
2436 /** Network selection is restricted to home network only |
|
2437 |
|
2438 Modes: CDMA */ |
|
2439 ENetworkSelectionHomeOnly |
|
2440 }; |
|
2441 |
|
2442 /** The mobile phone band class preferences. |
|
2443 |
|
2444 Modes: CDMA */ |
|
2445 enum TMobilePhoneBandClass |
|
2446 { |
|
2447 /** Band class selection is unknown. */ |
|
2448 ENetworkBandClassUnknown, |
|
2449 /** Phone will select band class A only. */ |
|
2450 ENetworkBandClassAOnly, |
|
2451 /** Phone will select band class B only. */ |
|
2452 ENetworkBandClassBOnly, |
|
2453 /** Phone will prefer to select band class A. */ |
|
2454 ENetworkBandClassAPreferred, |
|
2455 /** Phone will prefer to select band class B. */ |
|
2456 ENetworkBandClassBPreferred |
|
2457 }; |
|
2458 |
|
2459 /** The mobile phone network operation mode preferences. |
|
2460 |
|
2461 Modes: CDMA */ |
|
2462 enum TMobilePhoneOperation |
|
2463 { |
|
2464 /** Network operation mode is unknown. */ |
|
2465 ENetworkOperationUnknown, |
|
2466 /** Phone will select analog operation only. */ |
|
2467 ENetworkOperationAnalogOnly, |
|
2468 /** Phone will select digital/CDMA operation only. */ |
|
2469 ENetworkOperationDigitalOnly, |
|
2470 /** Phone will prefer to select analog operation. */ |
|
2471 ENetworkOperationAnalogPreferred, |
|
2472 /** Phone will prefer to select digital/CDMA operation. */ |
|
2473 ENetworkOperationDigitalPreferred |
|
2474 }; |
|
2475 |
|
2476 class TMobilePhoneNetworkSelectionV1 : public TMultimodeType |
|
2477 /** The mobile phone network selection preferences. |
|
2478 |
|
2479 @see GetNetworkSelectionSetting() |
|
2480 @see SetNetworkSelectionSetting() |
|
2481 @see NotifyNetworkSelectionSettingChange() |
|
2482 @publishedPartner |
|
2483 @released */ |
|
2484 { |
|
2485 public: |
|
2486 IMPORT_C TMobilePhoneNetworkSelectionV1(); |
|
2487 public: |
|
2488 /** Phone's network selection function member. |
|
2489 |
|
2490 Modes: Common |
|
2491 |
|
2492 @see TMobilePhoneSelectionMethod */ |
|
2493 TMobilePhoneSelectionMethod iMethod; |
|
2494 /** Phone's band class setting. |
|
2495 |
|
2496 Modes: CDMA |
|
2497 |
|
2498 @see TMobilePhoneBandClass */ |
|
2499 TMobilePhoneBandClass iBandClass; |
|
2500 /** Phone's CDMA operation mode. |
|
2501 |
|
2502 Modes: CDMA |
|
2503 |
|
2504 @see TMobilePhoneOperation */ |
|
2505 TMobilePhoneOperation iOperationMode; |
|
2506 }; |
|
2507 |
|
2508 /** A typedef'd packaged TMobilePhoneNetworkSelectionV1 for passing through a generic |
|
2509 API function member. */ |
|
2510 typedef TPckg<TMobilePhoneNetworkSelectionV1> TMobilePhoneNetworkSelectionV1Pckg; |
|
2511 |
|
2512 IMPORT_C TInt GetNetworkSelectionSetting(TDes8& aSetting) const; |
|
2513 IMPORT_C void SetNetworkSelectionSetting(TRequestStatus& aReqStatus, const TDes8& aSetting) const; |
|
2514 IMPORT_C void NotifyNetworkSelectionSettingChange(TRequestStatus& aReqStatus, TDes8& aSetting) const; |
|
2515 |
|
2516 struct TMobilePhoneNetworkManualSelection |
|
2517 /** The mobile phone manual network selection parameters. |
|
2518 |
|
2519 Modes: GSM/WCDMA |
|
2520 |
|
2521 @see TMobilePhoneNetworkCountryCode */ |
|
2522 { |
|
2523 /** The MCC of the network |
|
2524 |
|
2525 @see TMobilePhoneNetworkCountryCode */ |
|
2526 TMobilePhoneNetworkCountryCode iCountry; |
|
2527 /** The MNC of the network |
|
2528 |
|
2529 @see TMobilePhoneNetworkIdentity */ |
|
2530 TMobilePhoneNetworkIdentity iNetwork; |
|
2531 }; |
|
2532 |
|
2533 IMPORT_C void SelectNetwork(TRequestStatus& aReqStatus, TBool aIsManual, const TMobilePhoneNetworkManualSelection& aManualSelection) const; |
|
2534 |
|
2535 |
|
2536 |
|
2537 // Used to indicate which TMobilePhoneNITZ fields are currently available |
|
2538 /** The Phone Network Time Zone Capabilities. */ |
|
2539 enum TMobilePhoneNITZCaps |
|
2540 { |
|
2541 /** Universal Time is available in the current network mode. */ |
|
2542 KCapsTimeAvailable = 0x00000001, |
|
2543 /** Local time zone is available in the current network mode. */ |
|
2544 KCapsTimezoneAvailable = 0x00000002, |
|
2545 /** DST is available in the current network mode. */ |
|
2546 KCapsDSTAvailable = 0x00000004, |
|
2547 /** Short name is available in the current network mode. */ |
|
2548 KCapsShortNameAvailable = 0x00000008, |
|
2549 /** Long name is available in the current network mode. */ |
|
2550 KCapsLongNameAvailable = 0x00000010 |
|
2551 }; |
|
2552 |
|
2553 class TMobilePhoneNITZ : public TDateTime |
|
2554 /** Defines time and date information received from a mobile phone network. |
|
2555 |
|
2556 @see GetNITZInfo() |
|
2557 @see NotifyNITZInfoChange() |
|
2558 @publishedPartner |
|
2559 @released */ |
|
2560 { |
|
2561 public: |
|
2562 IMPORT_C TMobilePhoneNITZ(); |
|
2563 IMPORT_C TMobilePhoneNITZ(TInt aYear, TMonth aMonth, TInt aDay, TInt aHour, TInt aMinute, TInt aSecond, TInt aMicroSecond); |
|
2564 public: |
|
2565 /** Bitwise sum of TMobilePhoneNITZCaps constants used to indicate which NITZ fields |
|
2566 are available. |
|
2567 |
|
2568 Modes: Common */ |
|
2569 TInt32 iNitzFieldsUsed; |
|
2570 /** Time zone, expressed in +/- 15 minute offsets from GMT. |
|
2571 |
|
2572 Modes: Common */ |
|
2573 TInt iTimeZone; |
|
2574 /** Daylight Saving Time adjustment for summer time. The adjustment for DST |
|
2575 can be +1h or +2h. |
|
2576 |
|
2577 Modes: GSM/WCDMA */ |
|
2578 TInt iDST; |
|
2579 /** Network name in "short" representation. |
|
2580 |
|
2581 Modes: GSM/WCDMA |
|
2582 |
|
2583 @see TMobilePhoneNetworkShortName */ |
|
2584 TMobilePhoneNetworkShortName iShortNetworkId; |
|
2585 /** Network name in "long" representation. |
|
2586 |
|
2587 Modes: GSM/WCDMA |
|
2588 |
|
2589 @see TMobilePhoneNetworkLongName */ |
|
2590 TMobilePhoneNetworkLongName iLongNetworkId; |
|
2591 }; |
|
2592 |
|
2593 IMPORT_C TInt GetNITZInfo(TMobilePhoneNITZ& aNITZInfo) const; |
|
2594 IMPORT_C void NotifyNITZInfoChange(TRequestStatus& aReqStatus, TMobilePhoneNITZ& aNITZInfo) const; |
|
2595 |
|
2596 enum { KMaxSPNameSize=16 }; |
|
2597 enum { KMaxPLMNFieldSize=251 }; |
|
2598 |
|
2599 enum TDisplayRequirements |
|
2600 { |
|
2601 KDisplayPLMNNotRequired = 0x00000001, |
|
2602 KDisplayPLMNRequired = 0x00000002, |
|
2603 KDisplaySPNRequired = 0x00000004, |
|
2604 KDisplaySPNNotRequired = 0x00000008 |
|
2605 }; |
|
2606 |
|
2607 typedef TUint32 TDisplayRequirementsFlags; |
|
2608 |
|
2609 class TMobilePhoneServiceProviderNameV2 : public TMultimodeType |
|
2610 /** Used to retrieve the Service Provider Name from the ICC. The |
|
2611 SP is actually the entity that provides the service. The SP could have contractual |
|
2612 agreements with several home PLMN that the ME can register to. The display |
|
2613 preference of the registered PLMN and/or the SPN on the ME can be defined |
|
2614 on the UICC. |
|
2615 @publishedPartner |
|
2616 @released */ |
|
2617 { |
|
2618 public: |
|
2619 IMPORT_C TMobilePhoneServiceProviderNameV2(); |
|
2620 public: |
|
2621 /** This parameter specifies if the display of the registered PLMN is required. |
|
2622 Can contain a number of flags from RMobilePhone::TDisplayRequirements. |
|
2623 */ |
|
2624 TDisplayRequirementsFlags iDisplayReq; |
|
2625 /** The name of the service provider. */ |
|
2626 TBuf<KMaxSPNameSize> iSPName; |
|
2627 TBuf<KMaxPLMNFieldSize> iPLMNField; |
|
2628 }; |
|
2629 |
|
2630 /** A typedef'd packaged TMobilePhoneServiceProviderNameV2 for passing through |
|
2631 a generic API function member. */ |
|
2632 typedef TPckg<TMobilePhoneServiceProviderNameV2> TMobilePhoneServiceProviderNameV2Pckg; |
|
2633 |
|
2634 IMPORT_C void GetServiceProviderName(TRequestStatus& aReqStatus, TDes8& aName) const; |
|
2635 |
|
2636 /** |
|
2637 Network investigation scan settings. |
|
2638 */ |
|
2639 enum TMobilePhoneInvestigationScan |
|
2640 { |
|
2641 /** |
|
2642 Network investigation setting in limited service mode. |
|
2643 */ |
|
2644 KNetworkInvLimited = 0x01, |
|
2645 /** |
|
2646 Network investigation setting after successful PLMN selection. |
|
2647 */ |
|
2648 KNetworkInvAfterPlmnSelection=0x02 |
|
2649 }; |
|
2650 |
|
2651 /** |
|
2652 Network investigation scan events. |
|
2653 */ |
|
2654 enum TMobilePhoneInvestigationScanEvent |
|
2655 { |
|
2656 /** |
|
2657 No investigation scan events available. |
|
2658 */ |
|
2659 ENetworkInvestigationNoEvent, |
|
2660 /** |
|
2661 A higher priority network has been detected, but it does not offer CS Voice. |
|
2662 */ |
|
2663 ENetworkInvestigationHighPriorityPlmn |
|
2664 }; |
|
2665 |
|
2666 IMPORT_C TInt GetNetworkInvScanSetting(TMobilePhoneInvestigationScan & aSetting) const; |
|
2667 IMPORT_C void NotifyNetworkInvScanChange(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScan& aSetting) const; |
|
2668 IMPORT_C void NotifyNetworkInvScanEvent(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScanEvent& aEvent) const; |
|
2669 |
|
2670 |
|
2671 /** 251 bytes is the maximum number of octets in an L3 message as defined in3GPP TS 44.006. */ |
|
2672 enum { KMaxNetworkNameFieldSize = 251 }; |
|
2673 |
|
2674 class TMobilePhoneNetworkNameV3 : public TMultimodeType |
|
2675 /** |
|
2676 Class containing short, long network names and location information for a PLMN. |
|
2677 */ |
|
2678 { |
|
2679 public: |
|
2680 IMPORT_C TMobilePhoneNetworkNameV3(); |
|
2681 public: |
|
2682 /** |
|
2683 The long name (up to 20 characters) of the network operator. |
|
2684 */ |
|
2685 TMobilePhoneNetworkLongName iLongName; |
|
2686 /** |
|
2687 The short name (up to 10 characters) of the network operator. |
|
2688 */ |
|
2689 TMobilePhoneNetworkShortName iShortName; |
|
2690 /** |
|
2691 This buffer contains other long and short names for the registered PLMN coded as TLV objects. |
|
2692 */ |
|
2693 TBuf<KMaxNetworkNameFieldSize> iOtherNames; |
|
2694 }; |
|
2695 |
|
2696 /** |
|
2697 Packaging typedef for TMobilePhoneNetworkNameV3 class. |
|
2698 */ |
|
2699 typedef TPckg<TMobilePhoneNetworkNameV3> TMobilePhoneNetworkNameV3Pckg; |
|
2700 |
|
2701 |
|
2702 class TMobilePhoneOPlmnV3 : public TMultimodeType |
|
2703 /** |
|
2704 Class containing network name information. |
|
2705 */ |
|
2706 { |
|
2707 public: |
|
2708 IMPORT_C TMobilePhoneOPlmnV3(); |
|
2709 public: |
|
2710 /** |
|
2711 The MCC of the registered PLMN, with "wild" values specified for the particular digits of the code. |
|
2712 */ |
|
2713 TMobilePhoneNetworkCountryCode iCountryCode; |
|
2714 /** |
|
2715 The MNC of the registered PLMN, with "wild" values specified for the particular digits of the code. |
|
2716 */ |
|
2717 TMobilePhoneNetworkIdentity iNetworkId; |
|
2718 /** |
|
2719 The id of the Network Name to be displayed for the (following) location area codes. |
|
2720 */ |
|
2721 TUint32 iPNNid; |
|
2722 /** |
|
2723 First Location area code for defining the entire range of LACs for the registered PLMN. |
|
2724 */ |
|
2725 TUint iFirstLocationAreaCode; |
|
2726 /** |
|
2727 Last Location area code defining the entire range of LACs for the registered PLMN. |
|
2728 */ |
|
2729 TUint iLastLocationAreaCode; |
|
2730 |
|
2731 }; |
|
2732 |
|
2733 /** |
|
2734 Packaging typedef for TMobilePhoneOPlmnV3 class. |
|
2735 */ |
|
2736 typedef TPckg<TMobilePhoneOPlmnV3> TMobilePhoneOPlmnV3Pckg; |
|
2737 |
|
2738 IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName, TDes8& aLocInfo) const; |
|
2739 |
|
2740 /** |
|
2741 Identifiers for different access technologies. |
|
2742 */ |
|
2743 enum TMobilePhoneNetworkAccessCaps |
|
2744 { |
|
2745 /** |
|
2746 No network activity. |
|
2747 */ |
|
2748 KNetworkAccessUnknown=0x0000, |
|
2749 /** |
|
2750 Access technology is GSM. |
|
2751 */ |
|
2752 KNetworkAccessGsm=0x8000, |
|
2753 /** |
|
2754 Access technology is GSM COMPACT. |
|
2755 */ |
|
2756 KNetworkAccessGsmCompact=0x4000, |
|
2757 /** |
|
2758 Access technology is UTRAN (UMTS only). |
|
2759 */ |
|
2760 KNetworkAccessUtran=0x0080 |
|
2761 }; |
|
2762 |
|
2763 typedef TUint32 TMobilePhoneNetworkAccessCapsFlags; |
|
2764 |
|
2765 class TMobilePreferredNetworkEntryV3 : public TMultimodeType |
|
2766 /** |
|
2767 Defines information for a preferred network. |
|
2768 */ |
|
2769 { |
|
2770 public: |
|
2771 IMPORT_C TMobilePreferredNetworkEntryV3(); |
|
2772 public: |
|
2773 void InternalizeL(RReadStream& aStream); |
|
2774 void ExternalizeL(RWriteStream& aStream) const; |
|
2775 public: |
|
2776 /** |
|
2777 Access Technology supported. |
|
2778 Can contain a number of flags from RMobilePhone::TMobilePhoneNetworkAccessCaps. |
|
2779 */ |
|
2780 TMobilePhoneNetworkAccessCapsFlags iAccess; |
|
2781 /** |
|
2782 Editable preferences in the User-controlled Networks List with Access Technology. |
|
2783 */ |
|
2784 TBool iUserDefined; |
|
2785 /** |
|
2786 The MCC of the network. |
|
2787 */ |
|
2788 TMobilePhoneNetworkCountryCode iCountryCode; |
|
2789 /** |
|
2790 The MNC of the network. |
|
2791 */ |
|
2792 TMobilePhoneNetworkIdentity iNetworkId; |
|
2793 }; |
|
2794 |
|
2795 IMPORT_C void StorePreferredNetworksListL(TRequestStatus& aReqStatus, CMobilePhoneStoredNetworkList* aList) const; |
|
2796 IMPORT_C void NotifyPreferredNetworksListChange(TRequestStatus& aReqStatus) const; |
|
2797 |
|
2798 /***********************************************************************************/ |
|
2799 // |
|
2800 // Mobile Multimedia Call Settings functional unit |
|
2801 // |
|
2802 /***********************************************************************************/ |
|
2803 |
|
2804 /** An enumerated list of settings for multimedia calls. */ |
|
2805 enum TMobilePhoneMultimediaSettings |
|
2806 { |
|
2807 /** Accept all incoming multimedia calls with the fallback option enabled. (default). */ |
|
2808 EAcceptMMCallsVoiceFallback, |
|
2809 /** Accept all incoming multimedia calls, but do not accept voice fallback. */ |
|
2810 EAcceptMMCallsNoFallback, |
|
2811 /** Reject all incoming multimedia calls. */ |
|
2812 ERejectMMCalls, |
|
2813 /** Reject all incoming multimedia calls, but drop to voice instead. */ |
|
2814 EAnswerMMCallsAsVoice |
|
2815 }; |
|
2816 |
|
2817 IMPORT_C void SetMultimediaCallPreference(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings aMmSettings) const; |
|
2818 IMPORT_C TInt GetMultimediaCallPreference(TMobilePhoneMultimediaSettings& aMmSettings) const; |
|
2819 IMPORT_C void NotifyMultimediaCallPreferenceChange(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings& aMmSettings); |
|
2820 |
|
2821 /***********************************************************************************/ |
|
2822 // |
|
2823 // MobilePrivacy functional unit |
|
2824 // |
|
2825 /***********************************************************************************/ |
|
2826 |
|
2827 /** The mobile phone privacy settings. |
|
2828 |
|
2829 Modes: CDMA */ |
|
2830 enum TMobilePhonePrivacy |
|
2831 { |
|
2832 /** The privacy setting is unspecified. */ |
|
2833 EPrivacyUnspecified, |
|
2834 /** The privacy setting is set to ON. */ |
|
2835 EPrivacyOn, |
|
2836 /** The privacy setting is set to OFF. */ |
|
2837 EPrivacyOff |
|
2838 }; |
|
2839 |
|
2840 IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const; |
|
2841 IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const; |
|
2842 IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const; |
|
2843 |
|
2844 /***********************************************************************************/ |
|
2845 // |
|
2846 // TSY Capabilities for supplementary call services |
|
2847 // |
|
2848 /***********************************************************************************/ |
|
2849 |
|
2850 /** The call services. |
|
2851 |
|
2852 Modes: GSM/WCDMA */ |
|
2853 enum TMobilePhoneCallServiceCaps |
|
2854 { |
|
2855 /** Phone supports retrieval of call forwarding status from a cache on the phone. |
|
2856 |
|
2857 Modes: GSM/WCDMA */ |
|
2858 KCapsGetCFStatusCache =0x00000001, |
|
2859 /** Phone supports retrieval of call forwarding status from the network. |
|
2860 |
|
2861 Modes: GSM/WCDMA */ |
|
2862 KCapsGetCFStatusNetwork =0x00000002, |
|
2863 /** Phone supports setting of call forwarding status (and registered information) |
|
2864 in the network. */ |
|
2865 KCapsSetCFStatus =0x00000004, |
|
2866 /** Phone supports notification of change in status of any call forwarding service. |
|
2867 |
|
2868 Modes: GSM/WCDMA */ |
|
2869 KCapsNotifyCFStatus =0x00000008, |
|
2870 /** Phone supports retrieval of CLIP status from either a cache or the network. |
|
2871 |
|
2872 Modes: GSM/WCDMA */ |
|
2873 KCapsGetClipStatus =0x00000010, |
|
2874 /** Phone supports retrieval of CLIR status from either a cache or the network. |
|
2875 |
|
2876 Modes: GSM/WCDMA */ |
|
2877 KCapsGetClirStatus =0x00000020, |
|
2878 /** Phone supports retrieval of COLP status from either a cache or the network. |
|
2879 |
|
2880 Modes: GSM/WCDMA */ |
|
2881 KCapsGetColpStatus =0x00000040, |
|
2882 /** Phone supports retrieval of COLR status from either a cache or the network. |
|
2883 |
|
2884 Modes: GSM/WCDMA */ |
|
2885 KCapsGetColrStatus =0x00000080, |
|
2886 /** Phone supports retrieval of CNAP status from either a cache or the network. |
|
2887 |
|
2888 Modes: GSM/WCDMA */ |
|
2889 KCapsGetCnapStatus =0x00000100, |
|
2890 /** Phone supports retrieval of call barring status from a cache on the phone. |
|
2891 |
|
2892 Modes: Common */ |
|
2893 KCapsGetCBStatusCache =0x00000200, |
|
2894 /** Phone supports retrieval of call barring status from the network. |
|
2895 |
|
2896 Modes: GSM/WCDMA */ |
|
2897 KCapsGetCBStatusNetwork =0x00000400, |
|
2898 /** Phone supports setting of call barring status in the network. |
|
2899 |
|
2900 Modes: Common */ |
|
2901 KCapsSetCBStatus =0x00000800, |
|
2902 /** Phone supports notification of change in call barring status for any service. |
|
2903 |
|
2904 Modes: Common */ |
|
2905 KCapsNotifyCBStatus =0x00001000, |
|
2906 /** Phone supports setting of a password for call barring service. |
|
2907 |
|
2908 Modes: Common */ |
|
2909 KCapsChangeCBPassword =0x00002000, |
|
2910 /** Phone supports BAIC call barring service. |
|
2911 |
|
2912 Modes: Common */ |
|
2913 KCapsBarAllIncoming =0x00004000, |
|
2914 /** Phone supports BIC-Roam call barring service. |
|
2915 |
|
2916 Modes: Common */ |
|
2917 KCapsBarIncomingRoaming =0x00008000, |
|
2918 /** Phone supports BAOC call barring service. |
|
2919 |
|
2920 Modes: Common */ |
|
2921 KCapsBarAllOutgoing =0x00010000, |
|
2922 /** Phone supports BOIC call barring service. |
|
2923 |
|
2924 Modes: Common */ |
|
2925 KCapsBarOutgoingInternational =0x00020000, |
|
2926 /** Phone supports BOIC-ExHC call barring service. |
|
2927 |
|
2928 Modes: Common */ |
|
2929 KCapsBarOutgoingInternationalExHC =0x00040000, |
|
2930 /** Phone supports barring all cases at once. |
|
2931 |
|
2932 Modes: Common */ |
|
2933 KCapsBarAllCases =0x00080000, |
|
2934 /** Phone supports retrieval of call waiting status from a cache on the phone. |
|
2935 |
|
2936 Modes: GSM/WCDMA */ |
|
2937 KCapsGetCWStatusCache =0x00100000, |
|
2938 /** Phone supports retrieval of call waiting status from the network. |
|
2939 |
|
2940 Modes: GSM/WCDMA */ |
|
2941 KCapsGetCWStatusNetwork =0x00200000, |
|
2942 /** Phone supports setting of call waiting status in the network. |
|
2943 |
|
2944 Modes: Common */ |
|
2945 KCapsSetCWStatus =0x00400000, |
|
2946 /** Phone supports notification of change in call waiting status for any service. |
|
2947 |
|
2948 Modes: GSM/WCDMA */ |
|
2949 KCapsNotifyCWStatus =0x00800000, |
|
2950 /** Phone supports retrieval of call completion (CCBS) status from a cache on the |
|
2951 phone. |
|
2952 |
|
2953 Modes: GSM/WCDMA */ |
|
2954 KCapsGetCCBSStatusCache =0x01000000, |
|
2955 /** Phone supports retrieval of call completion (CCBS) status from the network. |
|
2956 |
|
2957 Modes: GSM/WCDMA */ |
|
2958 KCapsGetCCBSStatusNetwork =0x02000000, |
|
2959 /** Phone supports deactivation of all CCBS requests at once. |
|
2960 |
|
2961 Modes: GSM/WCDMA */ |
|
2962 KCapsDeactivateAllCCBS =0x04000000, |
|
2963 KCapsDeactivateCCBS =0x08000000, |
|
2964 /** Phone supports retrieval of a list of active CCBS requests. |
|
2965 |
|
2966 Modes: GSM/WCDMA */ |
|
2967 KCapsRetrieveActiveCCBS =0x10000000, |
|
2968 /** The phone supports programming and retrieval of feature code against a CDMA |
|
2969 network service. |
|
2970 |
|
2971 Modes: CDMA */ |
|
2972 KCapsFeatureCode =0x20000000, |
|
2973 /** The phone supports sending of generic network service request strings. |
|
2974 |
|
2975 Modes: Common */ |
|
2976 KCapsNetworkServiceRequest =0x40000000, |
|
2977 /** The phone supports retrieval of called line identification status. |
|
2978 |
|
2979 Modes: GSM/WCDMA */ |
|
2980 KCapsGetCdipStatus =0x80000000 |
|
2981 }; |
|
2982 |
|
2983 IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const; |
|
2984 IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
2985 |
|
2986 /***********************************************************************************/ |
|
2987 // |
|
2988 // MobilePhoneUserNetworkAccess functional unit |
|
2989 // |
|
2990 /***********************************************************************************/ |
|
2991 |
|
2992 /** Mobile Phone network services. |
|
2993 |
|
2994 Modes: CDMA */ |
|
2995 enum TMobilePhoneNetworkService |
|
2996 { |
|
2997 /** Network service is unspecified. */ |
|
2998 ENetworkServiceUnspecified, |
|
2999 /** Feature code applies to call forwarding unconditional service. */ |
|
3000 ECFUService, |
|
3001 /** Feature code applies to call forwarding on busy service. */ |
|
3002 ECFBService, |
|
3003 /** Feature code applies to call forwarding on no reply service. */ |
|
3004 ECFNRyService, |
|
3005 /** Feature code applies to call forwarding on not reachable service. */ |
|
3006 ECFNRcService, |
|
3007 /** Feature code applies to user selective call forwarding service - when the |
|
3008 user wishes to forward incoming call to voicemail. */ |
|
3009 EDeflectToVoicemail, |
|
3010 /** Feature code applies to user selective call forwarding service - when the |
|
3011 user wishes to forward incoming call to a number supplied within the deflect |
|
3012 request. */ |
|
3013 EDeflectToNumber, |
|
3014 /** Feature code applies to user selective call forwarding service - when the |
|
3015 user wishes to forward incoming call to a number pre-registered within the |
|
3016 network. */ |
|
3017 EDeflectToRegisteredNumber, |
|
3018 /** Feature code applies to call waiting service. */ |
|
3019 ECWService, |
|
3020 ENextCallShowCLI, |
|
3021 /** Feature code applies to caller ID restriction service - when user wishes to |
|
3022 hide their ID for the next call they make. */ |
|
3023 ENextCallHideCLI |
|
3024 }; |
|
3025 |
|
3026 /** Mobile phone service actions. |
|
3027 |
|
3028 Modes: Common */ |
|
3029 enum TMobilePhoneServiceAction |
|
3030 { |
|
3031 /** The action is unspecified. */ |
|
3032 EServiceActionUnspecified, |
|
3033 /** The client is registering new service information. If the service was not active |
|
3034 then this action also activates the service. */ |
|
3035 EServiceActionRegister, |
|
3036 /** The client is activating the service. */ |
|
3037 EServiceActionActivate, |
|
3038 /** The client is invoking the service. */ |
|
3039 EServiceActionInvoke, |
|
3040 /** The client is deactivating the service. */ |
|
3041 EServiceActionDeactivate, |
|
3042 /** The client is erasing the currently registered service information. If the service |
|
3043 was active then this action also deactivates the service. */ |
|
3044 EServiceActionErase |
|
3045 }; |
|
3046 |
|
3047 /** |
|
3048 Defines the type of SS operation |
|
3049 */ |
|
3050 enum TMobilePhoneNotifySendSSOperation |
|
3051 { |
|
3052 /** |
|
3053 SS Invoke operation. |
|
3054 */ |
|
3055 ESendSSInvoke, |
|
3056 /** |
|
3057 SS ReturnResult operation. |
|
3058 */ |
|
3059 ESendSSReturnResult, |
|
3060 /** |
|
3061 SS ReturnError operation. |
|
3062 */ |
|
3063 ESendSSReturnError, |
|
3064 /** |
|
3065 SS Reject operation. |
|
3066 */ |
|
3067 ESendSSReject |
|
3068 }; |
|
3069 |
|
3070 /** Size of additional info buffer. */ |
|
3071 enum{ KAdditionalInfoSize = 244 }; |
|
3072 |
|
3073 class TMobilePhoneSendSSRequestV3 : public TMultimodeType |
|
3074 /** |
|
3075 Contains the operation code and buffer to hold any additional information when receiving a notification |
|
3076 about a network service request. |
|
3077 */ |
|
3078 { |
|
3079 public: |
|
3080 IMPORT_C TMobilePhoneSendSSRequestV3(); |
|
3081 public: |
|
3082 /** |
|
3083 This is the Operation Code for a Send SS Invoke or Return result events. |
|
3084 This is the Error or Problem Code for a Send SS Return Error or Reject events. |
|
3085 */ |
|
3086 TUint8 iOpCode; |
|
3087 /** |
|
3088 The additional information (parameters) for a Send SS Invoke or Return result or Return Error events. |
|
3089 This is not used for a Send SS Reject event |
|
3090 */ |
|
3091 TBuf<KAdditionalInfoSize> iAdditionalInfo; |
|
3092 }; |
|
3093 |
|
3094 /** |
|
3095 Packaging typedef for TMobilePhoneSendSSRequestV3 class. |
|
3096 */ |
|
3097 typedef TPckg<TMobilePhoneSendSSRequestV3> TMobilePhoneSendSSRequestV3Pckg; |
|
3098 |
|
3099 // API/TSY internal type |
|
3100 |
|
3101 struct TNetworkServiceAndAction |
|
3102 { |
|
3103 TMobilePhoneNetworkService iService; |
|
3104 TMobilePhoneServiceAction iAction; |
|
3105 }; |
|
3106 |
|
3107 IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const; |
|
3108 IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const; |
|
3109 |
|
3110 IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const; |
|
3111 IMPORT_C void SendNetworkServiceRequestNoFdnCheck(TRequestStatus& aReqStatus, const TDesC& aServiceString) const; |
|
3112 IMPORT_C void NotifySendNetworkServiceRequest(TRequestStatus& aReqStatus, const TMobilePhoneNotifySendSSOperation aOperation, TDes8& aRequestComplete) const; |
|
3113 |
|
3114 /***********************************************************************************/ |
|
3115 // |
|
3116 // MobilePhoneCallForwarding functional unit |
|
3117 // |
|
3118 /***********************************************************************************/ |
|
3119 |
|
3120 /** The Call Forwarding flavours. |
|
3121 |
|
3122 Modes: GSM/WCDMA */ |
|
3123 enum TMobilePhoneCFCondition |
|
3124 { |
|
3125 /** The call forwarding service is unspecified. */ |
|
3126 ECallForwardingUnspecified, |
|
3127 /** All calls to this subscriber are forwarded. */ |
|
3128 ECallForwardingUnconditional, |
|
3129 /** Calls are forwarded when this subscriber is busy. */ |
|
3130 ECallForwardingBusy, |
|
3131 /** Calls are forwarded when this subscriber does not reply within a time-out period. */ |
|
3132 ECallForwardingNoReply, |
|
3133 /** Calls are forwarded when this subscriber is unreachable. */ |
|
3134 ECallForwardingNotReachable, |
|
3135 /** All of above CF services. Can be used to check all 4 call forwarding Fs |
|
3136 at once. */ |
|
3137 ECallForwardingAllCases, // combination of all four above cases |
|
3138 /** All the conditional (busy, no reply, not reachable) CF services. Can be used |
|
3139 to check all 3 conditional call forwarding conditions at once. */ |
|
3140 ECallForwardingAllConditionalCases // combination of CFB, CFNRy and CFNRc |
|
3141 }; |
|
3142 |
|
3143 /** The Call Forwarding status |
|
3144 |
|
3145 Modes: GSM/WCDMA */ |
|
3146 enum TMobilePhoneCFStatus |
|
3147 { |
|
3148 /** The CF service is currently active and operative. */ |
|
3149 ECallForwardingStatusActive, |
|
3150 /** The CF service is currently deactivated. */ |
|
3151 ECallForwardingStatusNotActive, |
|
3152 /** The CF service is not registered. */ |
|
3153 ECallForwardingStatusNotRegistered, |
|
3154 /** The CF service is not provisioned. */ |
|
3155 ECallForwardingStatusNotProvisioned, |
|
3156 /** The CF service is not available in the serving network. */ |
|
3157 ECallForwardingStatusNotAvailable, |
|
3158 /** The phone can not determine CF service status. */ |
|
3159 ECallForwardingStatusUnknown, |
|
3160 /** The Call Forwarding service is active and the presentation indicator is set |
|
3161 to allowed */ |
|
3162 ECallForwardingStatusActivePIAllowed, |
|
3163 /** The Call Forwarding service is active and the presentation indicator is set |
|
3164 to not available */ |
|
3165 ECallForwardingStatusActivePINotAvailable, |
|
3166 /** The Call Forwarding service is active and the presentation indicator is set |
|
3167 to restricted |
|
3168 |
|
3169 The Call Forwarding service is active and the presentation indicator is set |
|
3170 to restricted and screening returns "User provided, verified and passed". */ |
|
3171 ECallForwardingStatusActivePIClir, |
|
3172 /** The Call Forwarding service is active and the presentation indicator is set |
|
3173 to restricted and screening returns "User provided, not screened". */ |
|
3174 ECallForwardingStatusActivePIClirSIVerified, |
|
3175 /** The Call Forwarding service is active and the presentation indicator is set |
|
3176 to "restricted" and screening returns "Network provided". */ |
|
3177 ECallForwardingStatusActivePIClirSINotScreened, |
|
3178 /** The Call Forwarding service is active and the presentation indicator is set |
|
3179 to "restricted" and screening returns "Network provided". */ |
|
3180 ECallForwardingStatusActivePIClirSINetwork, |
|
3181 /** The CF service is currently in the quiescent state. */ |
|
3182 ECallForwardingStatusQuiescent |
|
3183 }; |
|
3184 |
|
3185 |
|
3186 |
|
3187 class TMobilePhoneCFInfoEntryV1 : public TMultimodeType |
|
3188 /** Defines information about the call forwarding service. |
|
3189 |
|
3190 Modes: GSM/WCDMA |
|
3191 |
|
3192 @see CMobilePhoneCFList |
|
3193 @publishedPartner |
|
3194 @released |
|
3195 */ |
|
3196 { |
|
3197 public: |
|
3198 IMPORT_C TMobilePhoneCFInfoEntryV1(); |
|
3199 public: |
|
3200 void InternalizeL(RReadStream& aStream); |
|
3201 void ExternalizeL(RWriteStream& aStream) const; |
|
3202 public: |
|
3203 /** The CF service of this list entry. |
|
3204 |
|
3205 @see TMobilePhoneCFCondition */ |
|
3206 TMobilePhoneCFCondition iCondition; |
|
3207 /** The basic service group associated to this CF service list entry. |
|
3208 |
|
3209 @see TMobileService */ |
|
3210 TMobileService iServiceGroup; |
|
3211 /** The current status of the call forwarding condition. |
|
3212 |
|
3213 @see TMobilePhoneCFStatus */ |
|
3214 TMobilePhoneCFStatus iStatus; |
|
3215 /** The "forward-to" telephone number registered for the call forwarding condition. |
|
3216 An empty string if CF service is not registered, not provisioned or not available. |
|
3217 |
|
3218 @see TMobileAddress */ |
|
3219 TMobileAddress iNumber; |
|
3220 /** The "No Reply" time-out (in seconds) registered for the call forwarding no reply |
|
3221 condition. |
|
3222 |
|
3223 Equals to -1 if this value is not applicable. In GSM mode, will be between |
|
3224 5 and 30 and in steps of 5 if this value is applicable. */ |
|
3225 TInt iTimeout; // valid for CFRNy only |
|
3226 }; |
|
3227 |
|
3228 IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const; |
|
3229 |
|
3230 class TMobilePhoneCFChangeV1 : public TMultimodeType |
|
3231 /** Defines the call forward information. |
|
3232 |
|
3233 @see SetCallForwardingStatus() |
|
3234 @publishedPartner |
|
3235 @released |
|
3236 */ |
|
3237 { |
|
3238 public: |
|
3239 IMPORT_C TMobilePhoneCFChangeV1(); |
|
3240 public: |
|
3241 /** The basic service group(s) to apply the CF status change to. |
|
3242 |
|
3243 @see TMobileService */ |
|
3244 TMobileService iServiceGroup; |
|
3245 /** The service action for call forwarding. |
|
3246 |
|
3247 @see TMobilePhoneServiceAction */ |
|
3248 TMobilePhoneServiceAction iAction; |
|
3249 /** A new "forward-to" number to be registered against the CF condition. This is |
|
3250 applicable if iAction=EServiceActionRegister. In other cases, it is set to |
|
3251 an empty string. |
|
3252 |
|
3253 @see TMobileAddress */ |
|
3254 TMobileAddress iNumber; |
|
3255 /** The new "No Reply" time-out in seconds to be registered. This is applicable |
|
3256 if the CF condition is CFNRy and iAction=EServiceActionRegister. Equals -1 |
|
3257 if this value is not applicable. If applicable, in GSM mode will be between |
|
3258 5 and 30 and in steps of 5. */ |
|
3259 TInt iTimeout; |
|
3260 }; |
|
3261 |
|
3262 IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const; |
|
3263 |
|
3264 /** Call Forwarding Active Notification |
|
3265 |
|
3266 Modes: Common */ |
|
3267 enum TMobilePhoneCFActive |
|
3268 { |
|
3269 /** CF Unconditional is currently active. */ |
|
3270 ECFUnconditionalActive, |
|
3271 /** CF Busy, CF No Reply or CF Not Reachable is currently active. */ |
|
3272 ECFConditionalActive |
|
3273 }; |
|
3274 |
|
3275 IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const; |
|
3276 |
|
3277 /** |
|
3278 Current status indicators for unconditional call forwarding. |
|
3279 */ |
|
3280 enum TCFUIndicatorStatus |
|
3281 { |
|
3282 /** |
|
3283 CFU Indicator status unknown. |
|
3284 */ |
|
3285 KCFUIndicatorUnknown = 0x0, |
|
3286 /** |
|
3287 CFU Indicator status for Voice (TMobileServiceGroup EVoice). |
|
3288 */ |
|
3289 KCFUIndicatorVoice=0x01, |
|
3290 /** |
|
3291 CFU Indicator status for Fax (TMobileServiceGroup EFax). |
|
3292 */ |
|
3293 KCFUIndicatorFax=0x02, |
|
3294 /** |
|
3295 CFU Indicator status for Data Teleservices(TMobileServiceGroup EData). |
|
3296 */ |
|
3297 KCFUIndicatorData=0x04, |
|
3298 /** |
|
3299 CFU Indicator status for Sms (TMobileServiceGroup ESms). |
|
3300 */ |
|
3301 KCFUIndicatorSms=0x08, |
|
3302 /** |
|
3303 CFU Indicator status for Data Bearer Services(TMobileServiceGroup EDataBearer). |
|
3304 */ |
|
3305 KCFUIndicatorDataBearer=0x10 |
|
3306 }; |
|
3307 |
|
3308 typedef TUint32 TCFUIndicatorStatusFlags; |
|
3309 |
|
3310 class TMobilePhoneCFUIndicatorV3 : public TMultimodeType |
|
3311 /** |
|
3312 Contains indicator parameters for unconditional call forwarding. |
|
3313 */ |
|
3314 { |
|
3315 public: |
|
3316 IMPORT_C TMobilePhoneCFUIndicatorV3(); |
|
3317 public: |
|
3318 /** |
|
3319 Current setting for indicator status. |
|
3320 Can contain a number of flags from RMobilePhone::TCFUIndicatorStatus. |
|
3321 */ |
|
3322 TCFUIndicatorStatusFlags iIndicator; |
|
3323 }; |
|
3324 |
|
3325 typedef TPckg<TMobilePhoneCFUIndicatorV3> TMobilePhoneCFUIndicatorV3Pckg; |
|
3326 |
|
3327 /** |
|
3328 The MSP number contains the Profile Identity of the subscriber profile. |
|
3329 The Profile Identity shall be any of the following enlisted. |
|
3330 @see 3GPP TS 31.102 v7.4.1 section 4.2.64 |
|
3331 @see 3GPP TS 23.097 [36] |
|
3332 */ |
|
3333 enum TMultipleSubscriberProfileID |
|
3334 { |
|
3335 /** |
|
3336 Profile Identity Unknown |
|
3337 */ |
|
3338 KProfileIdentityUnknown = 0x0, |
|
3339 /** |
|
3340 Profile Identity 1 |
|
3341 */ |
|
3342 KProfileIdentityOne = 0x01, |
|
3343 /** |
|
3344 Profile Identity 2 |
|
3345 */ |
|
3346 KProfileIdentityTwo = 0x02, |
|
3347 /** |
|
3348 Profile Identity 3 |
|
3349 */ |
|
3350 KProfileIdentityThree = 0x04, |
|
3351 /** |
|
3352 Profile Identity 4 |
|
3353 */ |
|
3354 KProfileIdentityFour = 0x08 |
|
3355 }; |
|
3356 |
|
3357 class TMobilePhoneCFUIndicatorV6 : public TMobilePhoneCFUIndicatorV3 |
|
3358 /** |
|
3359 Contains the indicator parameters for unconditional call forwarding. |
|
3360 The TMobilePhoneCFUIndicatorV6 supports MSP number(Multiple Subscriber Profile) and Call Forwarding Number. |
|
3361 Upto four different profiles can be provisioned against a subscriber using the MSP feature. |
|
3362 @see 3GPP TS 31.102 v7.4.1 section 4.2.64 |
|
3363 */ |
|
3364 { |
|
3365 public: |
|
3366 IMPORT_C TMobilePhoneCFUIndicatorV6(); |
|
3367 public: |
|
3368 /** |
|
3369 @see RMoblie::TMobileAddress |
|
3370 */ |
|
3371 TMobileAddress iCFNumber; |
|
3372 /** |
|
3373 The profile IDs allow unambiguous identification of each profile. |
|
3374 This will allow the subscriber to select the preferred profile for outgoing calls and for subscriber actions. |
|
3375 For terminating calls the profile ID shall be part of the notification of the profile. |
|
3376 */ |
|
3377 TMultipleSubscriberProfileID iMultipleSubscriberProfileID; |
|
3378 }; |
|
3379 |
|
3380 typedef TPckg<TMobilePhoneCFUIndicatorV6> TMobilePhoneCFUIndicatorV6Pckg; |
|
3381 |
|
3382 IMPORT_C void GetCallForwardingIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const; |
|
3383 |
|
3384 /***********************************************************************************/ |
|
3385 // |
|
3386 // Mobile Identity Service functional unit |
|
3387 // |
|
3388 /***********************************************************************************/ |
|
3389 |
|
3390 /** Phone ID services (CLIP/CNIP/CLIR). |
|
3391 |
|
3392 Modes: GSM/WCDMA */ |
|
3393 enum TMobilePhoneIdService |
|
3394 { |
|
3395 /** The identity service is unspecified */ |
|
3396 EIdServiceUnspecified, |
|
3397 /** The caller's ID is presented to the called party. */ |
|
3398 EIdServiceCallerPresentation, |
|
3399 /** The caller's ID is restricted to the called party. */ |
|
3400 EIdServiceCallerRestriction, |
|
3401 /** The connected party's ID is presented to the calling party. */ |
|
3402 EIdServiceConnectedPresentation, |
|
3403 /** The connected party's ID is restricted to the calling party. */ |
|
3404 EIdServiceConnectedRestriction, |
|
3405 /** The caller's name is presented to the called party. */ |
|
3406 EIdServiceCallerName, |
|
3407 /** The called party is presented with the caller's ID. This command enables a |
|
3408 called subscriber to get the called line identification of the called party |
|
3409 when receiving a mobile terminated call. - maps to +CDIP. */ |
|
3410 EIdServiceCalledPresentation |
|
3411 }; |
|
3412 |
|
3413 /** Service status of the Phone ID services (CLIP/CLIR/CNIP). |
|
3414 |
|
3415 Modes: GSM/WCDMA */ |
|
3416 enum TMobilePhoneIdServiceStatus |
|
3417 { |
|
3418 /** The interrogated Identity service is provisioned and active. This status is |
|
3419 used for all identity services and in the case of the CLIR service means that |
|
3420 it is permanently active with no subscription option set. */ |
|
3421 EIdServiceActivePermanent, |
|
3422 /** This status is used for the CLIR service only and means that the service is |
|
3423 provisioned and active. |
|
3424 |
|
3425 The CLIR subscription option is set to "Temporary, default restricted", therefore |
|
3426 identity is always restricted unless over-ridden by the user during a call |
|
3427 set-up. */ |
|
3428 EIdServiceActiveDefaultRestricted, |
|
3429 /** This status is used for the CLIR service only and means that the service is |
|
3430 provisioned and active. |
|
3431 |
|
3432 The CLIR subscription option is set to "Temporary, default allowed", therefore |
|
3433 identity is always allowed unless over-ridden by the user during a call set-up. */ |
|
3434 EIdServiceActiveDefaultAllowed, |
|
3435 /** The interrogated Identity service is not provisioned. */ |
|
3436 EIdServiceNotProvisioned, |
|
3437 /** The status of the interrogated Identity service is unknown. */ |
|
3438 EIdServiceUnknown |
|
3439 }; |
|
3440 |
|
3441 // for use by client-side API code and TSY only |
|
3442 |
|
3443 struct TIdServiceAndLocation |
|
3444 { |
|
3445 TMobilePhoneIdService iService; |
|
3446 TMobileInfoLocation iLocation; |
|
3447 }; |
|
3448 |
|
3449 /** This function member retrieves the current status of the identity service specified. |
|
3450 |
|
3451 The phone will retrieve this service status information from the location |
|
3452 specified by the client. |
|
3453 |
|
3454 If the client has requested EInfoLocationCache but there is no valid status |
|
3455 information in the cache then the request will return KErrNotFound. |
|
3456 |
|
3457 If the client has requested EInfoLocationCachePreferred, the network will |
|
3458 be interrogated if the cache is empty. Whenever the network is interrogated, |
|
3459 the cache will be refreshed with the information from the network. |
|
3460 |
|
3461 Use RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneGetIdentityServiceStatus) |
|
3462 to cancel a previously placed asynchronous GetIdentityServiceStatus() request. |
|
3463 |
|
3464 @param aReqStatus On return, KErrNone if successful. |
|
3465 @param aService The identity service to be queried. |
|
3466 @param aStatus On return, the service status. |
|
3467 @param aLocation The location to use. */ |
|
3468 IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const; |
|
3469 |
|
3470 /** |
|
3471 Identifies default service status for provisioned identity services. |
|
3472 */ |
|
3473 enum TMobilePhoneIdServiceSetting |
|
3474 { |
|
3475 /** Sets the default setting to network default (unknown). */ |
|
3476 EIdServiceNetworkDefault, |
|
3477 /** Sets the default setting to presentation restricted. */ |
|
3478 EIdServicePresentationRestricted, |
|
3479 /** Sets the default setting to presentation allowed. */ |
|
3480 EIdServicePresentationAllowed |
|
3481 }; |
|
3482 |
|
3483 IMPORT_C void SetIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, const TMobilePhoneIdServiceSetting aSetting) const; |
|
3484 IMPORT_C void NotifyIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus) const; |
|
3485 IMPORT_C void NotifyIdentitySuppressionRejected(TRequestStatus& aReqStatus) const; |
|
3486 |
|
3487 /***********************************************************************************/ |
|
3488 // |
|
3489 // Mobile Call Barring Functional Unit |
|
3490 // |
|
3491 /***********************************************************************************/ |
|
3492 |
|
3493 /** Mobile Phone Call Baring Conditions. |
|
3494 |
|
3495 Modes: Common */ |
|
3496 enum TMobilePhoneCBCondition |
|
3497 { |
|
3498 /** The barring program is unspecified */ |
|
3499 EBarUnspecified, |
|
3500 /** All incoming calls to this subscriber are barred (BAIC). */ |
|
3501 EBarAllIncoming, |
|
3502 /** All incoming calls to this subscriber are barred when roaming outside the home |
|
3503 PLMN country (BIC-roam). */ |
|
3504 EBarIncomingRoaming, |
|
3505 /** All outgoing calls by this subscriber are barred (BAOC). */ |
|
3506 EBarAllOutgoing, |
|
3507 /** All outgoing international calls by this subscriber are barred (BOIC). */ |
|
3508 EBarOutgoingInternational, |
|
3509 /** All outgoing international calls except those directed to the home PLMN country |
|
3510 by this subscriber are barred (BOIC-ExHC). */ |
|
3511 EBarOutgoingInternationalExHC, |
|
3512 /** All of above CB services. */ |
|
3513 EBarAllCases, |
|
3514 EBarAllOutgoingServices, |
|
3515 EBarAllIncomingServices |
|
3516 }; |
|
3517 |
|
3518 /** Mobile Phone Call Barring Status and Information. |
|
3519 |
|
3520 Modes: Common */ |
|
3521 enum TMobilePhoneCBStatus |
|
3522 { |
|
3523 /** The CB service is currently active and operative. */ |
|
3524 ECallBarringStatusActive, |
|
3525 /** The CB service is currently deactivated or quiescent. */ |
|
3526 ECallBarringStatusNotActive, |
|
3527 /** In GSM/WCDMA mode, the CB service is not provisioned. In CDMA mode, this value |
|
3528 has no meaning. */ |
|
3529 ECallBarringStatusNotProvisioned, |
|
3530 /** In GSM/WCDMA mode, the CB service is not available in serving network. In CDMA |
|
3531 mode, the CB service is not available in the phone. */ |
|
3532 ECallBarringStatusNotAvailable, |
|
3533 /** The phone can not determine CB service status. */ |
|
3534 ECallBarringStatusUnknown |
|
3535 }; |
|
3536 |
|
3537 |
|
3538 |
|
3539 class TMobilePhoneCBInfoEntryV1 : public TMultimodeType |
|
3540 /** Defines information about the call barring service. |
|
3541 |
|
3542 @see CMobilePhoneCBList |
|
3543 @publishedPartner |
|
3544 @released |
|
3545 */ |
|
3546 { |
|
3547 public: |
|
3548 void InternalizeL(RReadStream& aStream); |
|
3549 void ExternalizeL(RWriteStream& aStream) const; |
|
3550 public: |
|
3551 IMPORT_C TMobilePhoneCBInfoEntryV1(); |
|
3552 public: |
|
3553 /** The CB service of this list entry. |
|
3554 |
|
3555 Modes: Common |
|
3556 |
|
3557 @see TMobilePhoneCBCondition */ |
|
3558 TMobilePhoneCBCondition iCondition; |
|
3559 /** The service group associated to this list entry. |
|
3560 |
|
3561 Modes: Common |
|
3562 |
|
3563 @see TMobileService */ |
|
3564 TMobileService iServiceGroup; |
|
3565 /** The CB service status of this list entry. |
|
3566 |
|
3567 Modes: Common |
|
3568 |
|
3569 @see TMobilePhoneCBStatus */ |
|
3570 TMobilePhoneCBStatus iStatus; |
|
3571 }; |
|
3572 |
|
3573 class TMobilePhoneCBInfoEntryV3 : public TMobilePhoneCBInfoEntryV1 |
|
3574 /** |
|
3575 V3 class extending TMobilePhoneCBInfoEntryV1 to add a comparison method parameter. |
|
3576 */ |
|
3577 { |
|
3578 public: |
|
3579 void InternalizeL(RReadStream& aStream); |
|
3580 void ExternalizeL(RWriteStream& aStream) const; |
|
3581 public: |
|
3582 IMPORT_C TMobilePhoneCBInfoEntryV3(); |
|
3583 public: |
|
3584 /** |
|
3585 The comparison method associated with this CB entry. |
|
3586 */ |
|
3587 TUint8 iCompMethod; |
|
3588 }; |
|
3589 |
|
3590 class TMobilePhoneCBChangeV1 : public TMultimodeType |
|
3591 /** Mobile Phone Call Barring Change. |
|
3592 |
|
3593 @see SetCallBarringStatus() |
|
3594 */ |
|
3595 { |
|
3596 public: |
|
3597 IMPORT_C TMobilePhoneCBChangeV1(); |
|
3598 public: |
|
3599 /** The basic service group(s) to apply the CB status change to. |
|
3600 |
|
3601 @see TMobileService */ |
|
3602 TMobileService iServiceGroup; |
|
3603 /** The service action for call barring. |
|
3604 |
|
3605 @see TMobilePhoneServiceAction */ |
|
3606 TMobilePhoneServiceAction iAction; |
|
3607 /** Password required to perform the call barring service action. |
|
3608 |
|
3609 @see TMobilePassword */ |
|
3610 TMobilePassword iPassword; |
|
3611 }; |
|
3612 |
|
3613 IMPORT_C void SetCallBarringStatus(TRequestStatus& aReqStatus, TMobilePhoneCBCondition aCondition, const TMobilePhoneCBChangeV1& aInfo) const; |
|
3614 IMPORT_C void NotifyCallBarringStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCBCondition& aCondition) const; |
|
3615 |
|
3616 class TMobilePhonePasswordChangeV1 : public TMultimodeType |
|
3617 /** Mobile phone password change. |
|
3618 |
|
3619 @see SetCallBarringPassword() |
|
3620 @see ChangeSecurityCode() |
|
3621 @publishedPartner |
|
3622 @released |
|
3623 */ |
|
3624 { |
|
3625 public: |
|
3626 IMPORT_C TMobilePhonePasswordChangeV1(); |
|
3627 public: |
|
3628 /** Old password. |
|
3629 |
|
3630 Modes: Common |
|
3631 |
|
3632 @see TMobilePassword */ |
|
3633 TMobilePassword iOldPassword; |
|
3634 /** New password. |
|
3635 |
|
3636 Modes: Common |
|
3637 |
|
3638 @see TMobilePassword */ |
|
3639 TMobilePassword iNewPassword; |
|
3640 }; |
|
3641 |
|
3642 IMPORT_C void SetCallBarringPassword(TRequestStatus& aReqStatus, const TMobilePhonePasswordChangeV1& aPassword) const; |
|
3643 |
|
3644 class TMobilePhonePasswordChangeV2 : public TMobilePhonePasswordChangeV1 |
|
3645 /** Mobile phone password change version 2. |
|
3646 */ |
|
3647 { |
|
3648 public: |
|
3649 IMPORT_C TMobilePhonePasswordChangeV2(); |
|
3650 public: |
|
3651 /** Verified password. |
|
3652 |
|
3653 Modes: Common |
|
3654 |
|
3655 @see TMobilePassword */ |
|
3656 TMobilePassword iVerifiedPassword; |
|
3657 }; |
|
3658 |
|
3659 /** A typedef'd packaged TMobilePhonePasswordChangeV2 passing through a generic |
|
3660 API function member. */ |
|
3661 typedef TPckg<TMobilePhonePasswordChangeV2> TMobilePhonePasswordChangeV2Pckg; |
|
3662 |
|
3663 IMPORT_C void SetSSPassword(TRequestStatus& aReqStatus, const TDesC8& aPassword, const TInt aService) const; |
|
3664 |
|
3665 IMPORT_C void GetCompMethodName(TRequestStatus& aReqStatus, TDes& aAlphaTag, const TUint8 aCmi) const; |
|
3666 |
|
3667 /***********************************************************************************/ |
|
3668 // |
|
3669 // Mobile Call Waiting Functional Unit |
|
3670 // |
|
3671 /***********************************************************************************/ |
|
3672 |
|
3673 /** The mobile phone call waiting status. |
|
3674 |
|
3675 Modes: GSM/WCDMA */ |
|
3676 enum TMobilePhoneCWStatus |
|
3677 { |
|
3678 /** The CW service is currently active and operative. */ |
|
3679 ECallWaitingStatusActive, |
|
3680 /** The CW service is currently deactivated or quiescent. */ |
|
3681 ECallWaitingStatusNotActive, |
|
3682 /** The CW service is not provisioned. */ |
|
3683 ECallWaitingStatusNotProvisioned, |
|
3684 /** The CW service is not available in the serving network. */ |
|
3685 ECallWaitingStatusNotAvailable, |
|
3686 /** The phone can not determine CW service status. */ |
|
3687 ECallWaitingStatusUnknown |
|
3688 }; |
|
3689 |
|
3690 |
|
3691 |
|
3692 class TMobilePhoneCWInfoEntryV1 : public TMultimodeType |
|
3693 /** Defines information about the call waiting service. |
|
3694 |
|
3695 @see CMobilePhoneCWList |
|
3696 */ |
|
3697 { |
|
3698 public: |
|
3699 void InternalizeL(RReadStream& aStream); |
|
3700 void ExternalizeL(RWriteStream& aStream) const; |
|
3701 public: |
|
3702 IMPORT_C TMobilePhoneCWInfoEntryV1(); |
|
3703 public: |
|
3704 /** The service group associated to this CW service list entry. |
|
3705 |
|
3706 Modes: GSM/WCDMA |
|
3707 |
|
3708 @see TMobileService */ |
|
3709 TMobileService iServiceGroup; |
|
3710 /** The CW service status of this list entry. |
|
3711 |
|
3712 Modes: GSM/WCDMA |
|
3713 |
|
3714 @see TMobilePhoneCWStatus */ |
|
3715 TMobilePhoneCWStatus iStatus; |
|
3716 }; |
|
3717 |
|
3718 /** A typedef'd packaged TMobilePhoneCWInfoEntryV1 for passing through a generic |
|
3719 API function member. */ |
|
3720 typedef TPckg<TMobilePhoneCWInfoEntryV1> TMobilePhoneCWInfoEntryV1Pckg; |
|
3721 |
|
3722 IMPORT_C void SetCallWaitingStatus(TRequestStatus& aReqStatus, TMobileService aServiceGroup, TMobilePhoneServiceAction aAction) const; |
|
3723 IMPORT_C void NotifyCallWaitingStatusChange(TRequestStatus& aReqStatus, TDes8& aCWStatus) const; |
|
3724 |
|
3725 /***********************************************************************************/ |
|
3726 // |
|
3727 // Mobile Call Completion Unit |
|
3728 // |
|
3729 /***********************************************************************************/ |
|
3730 |
|
3731 /** The Call Completion Busy Subscriber status of the phone. |
|
3732 |
|
3733 Modes: GSM/WCDMA */ |
|
3734 enum TMobilePhoneCCBSStatus |
|
3735 { |
|
3736 /** User has CCBS provisioned and there is at least 1 (and up to 5) active CCBS |
|
3737 requests. */ |
|
3738 ECcbsActive, |
|
3739 /** User has CCBS provisioned but there are currently no active CCBS requests. */ |
|
3740 ECcbsNotActive, |
|
3741 /** User has not subscribed to the CCBS service. */ |
|
3742 ECcbsNotProvisioned, |
|
3743 /** The CCBS service is not available in the serving network. */ |
|
3744 ECcbsNotAvailable, |
|
3745 /** MS is unable to determine status of the CCBS service. */ |
|
3746 ECcbsUnknown |
|
3747 }; |
|
3748 |
|
3749 /** CCBS recall events. |
|
3750 |
|
3751 @see RMobilePhone::TMobilePhoneCCBSEntryV2 */ |
|
3752 enum TCCBSRecallEvent |
|
3753 { |
|
3754 /** Recall received. */ |
|
3755 ECcbsRecallReceived, |
|
3756 /** Recall accepted. */ |
|
3757 ECcbsRecallAccepted, |
|
3758 /** Recall refused. */ |
|
3759 ECcbsRecallRefused, |
|
3760 /** Recall reason unspecified. */ |
|
3761 ECcbsRecallUnspecified |
|
3762 }; |
|
3763 |
|
3764 |
|
3765 |
|
3766 class TMobilePhoneCCBSEntryV1 : public TMultimodeType |
|
3767 /** Defines information about the call completion (CCBS) service. |
|
3768 |
|
3769 @see CMobilePhoneCcbsList |
|
3770 @publishedPartner |
|
3771 @released |
|
3772 */ |
|
3773 { |
|
3774 public: |
|
3775 void InternalizeL(RReadStream& aStream); |
|
3776 void ExternalizeL(RWriteStream& aStream) const; |
|
3777 public: |
|
3778 IMPORT_C TMobilePhoneCCBSEntryV1(); |
|
3779 public: |
|
3780 /** The CCBS index - a number allocated by the network. |
|
3781 |
|
3782 Modes: GSM/WCDMA */ |
|
3783 TInt iCcbsIndex; |
|
3784 /** The basic service group (voice/data/fax) this CCBS request is applicable to. |
|
3785 |
|
3786 Modes: GSM/WCDMA |
|
3787 |
|
3788 @see TMobileService */ |
|
3789 TMobileService iServiceGroup; |
|
3790 /** The phone number of the remote party to whom the CCBS request is aimed. |
|
3791 |
|
3792 Modes: GSM/WCDMA |
|
3793 |
|
3794 @see TMobileAddress */ |
|
3795 TMobileAddress iDestination; |
|
3796 |
|
3797 }; |
|
3798 |
|
3799 /** A typedef'd packaged TMobilePhoneCCBSEntryV1 for passing through a generic API |
|
3800 function member. */ |
|
3801 typedef TPckg<TMobilePhoneCCBSEntryV1> TMobilePhoneCCBSEntryV1Pckg; |
|
3802 |
|
3803 |
|
3804 class TMobilePhoneCCBSEntryV2 : public TMobilePhoneCCBSEntryV1 |
|
3805 /** Defines information about the call completion (CCBS) service version 2. |
|
3806 */ |
|
3807 { |
|
3808 public: |
|
3809 IMPORT_C TMobilePhoneCCBSEntryV2(); |
|
3810 public: |
|
3811 TCCBSRecallEvent iEvent; |
|
3812 }; |
|
3813 |
|
3814 /** A typedef'd packaged TMobilePhoneCCBSEntryV2 for passing through a generic API |
|
3815 function member. */ |
|
3816 typedef TPckg<TMobilePhoneCCBSEntryV2> TMobilePhoneCCBSEntryV2Pckg; |
|
3817 |
|
3818 IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const; |
|
3819 IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const; |
|
3820 IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus, TInt aIndex) const; |
|
3821 IMPORT_C void NotifyCCBSRecall(TRequestStatus& aReqStatus, TDes8& aCCBSEntry) const; |
|
3822 IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus, TInt aIndex, TName& aCallName) const; |
|
3823 IMPORT_C TInt RefuseCCBSRecall(TInt aIndex) const; |
|
3824 |
|
3825 /***********************************************************************************/ |
|
3826 // |
|
3827 // Mobile Alternating Call Function Unit |
|
3828 // |
|
3829 /***********************************************************************************/ |
|
3830 |
|
3831 /** Alternating Call Capabilities |
|
3832 |
|
3833 Modes: GSM */ |
|
3834 enum TMobilePhoneAlternatingCallCaps |
|
3835 { |
|
3836 /** Phone supports outgoing Voice/Data calls |
|
3837 |
|
3838 Modes: GSM */ |
|
3839 KCapsMOVoiceData = 0x00000001, |
|
3840 /** Phone supports outgoing Voice Then Data calls. |
|
3841 |
|
3842 Modes: GSM */ |
|
3843 KCapsMOVoiceThenData = 0x00000002, |
|
3844 /** Phone supports outgoing Voice/Fax calls. |
|
3845 |
|
3846 Modes: GSM/WCDMA */ |
|
3847 KCapsMOVoiceFax = 0x00000004, |
|
3848 /** Phone supports incoming Voice/Data calls. |
|
3849 |
|
3850 Modes: GSM */ |
|
3851 KCapsMTVoiceData = 0x00000008, |
|
3852 /** Phone supports incoming Voice Then Data calls. |
|
3853 |
|
3854 Modes: GSM */ |
|
3855 KCapsMTVoiceThenData = 0x00000010, |
|
3856 /** Phone supports incoming Voice/Fax calls |
|
3857 |
|
3858 Modes: GSM/WCDMA */ |
|
3859 KCapsMTVoiceFax = 0x00000020 |
|
3860 }; |
|
3861 |
|
3862 IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const; |
|
3863 IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
3864 |
|
3865 /** Alternating Call Mode. |
|
3866 |
|
3867 Modes: Common */ |
|
3868 enum TMobilePhoneAlternatingCallMode |
|
3869 { |
|
3870 /** The alternating call mode is unspecified |
|
3871 |
|
3872 Modes: Common */ |
|
3873 EAlternatingModeUnspecified, |
|
3874 /** Next call will use a single bearer service - default setting |
|
3875 |
|
3876 Modes: Common */ |
|
3877 EAlternatingModeSingle, |
|
3878 /** Next call will use voice/data alternating bearer service. |
|
3879 |
|
3880 Modes: GSM */ |
|
3881 EAlternatingModeVoiceData, |
|
3882 /** Next call will use voice then data alternating bearer service. |
|
3883 |
|
3884 Modes: GSM */ |
|
3885 EAlternatingModeVoiceThenData, |
|
3886 /** Next call will use voice/fax alternating bearer service. |
|
3887 |
|
3888 Modes: GSM/WCDMA */ |
|
3889 EAlternatingModeVoiceFax |
|
3890 }; |
|
3891 |
|
3892 IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const; |
|
3893 IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const; |
|
3894 IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const; |
|
3895 |
|
3896 /***********************************************************************************/ |
|
3897 // |
|
3898 // Mobile Alternate Line Service Functional Unit |
|
3899 // |
|
3900 /***********************************************************************************/ |
|
3901 |
|
3902 /** Alternate Line Primary settings. |
|
3903 |
|
3904 Modes: GSM */ |
|
3905 enum TMobilePhoneALSLine |
|
3906 { |
|
3907 /** Current ALS line selection is the "Primary" voice line. */ |
|
3908 EAlternateLinePrimary, |
|
3909 /** Current ALS line selection is the "Auxiliary" voice line. */ |
|
3910 EAlternateLineAuxiliary, |
|
3911 /** ALS is supported by ME and SIM, but the TSY can not determine which line is |
|
3912 currently selected. */ |
|
3913 EAlternateLineUnknown, |
|
3914 /** The ME, SIM or serving network does not support ALS. */ |
|
3915 EAlternateLineNotAvailable |
|
3916 }; |
|
3917 |
|
3918 IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const; |
|
3919 IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const; |
|
3920 IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const; |
|
3921 |
|
3922 /***********************************************************************************/ |
|
3923 // |
|
3924 // Mobile Network Security Functional Unit |
|
3925 // |
|
3926 /***********************************************************************************/ |
|
3927 |
|
3928 /** Enumerated network security types. |
|
3929 |
|
3930 Mode: Common */ |
|
3931 enum TMobilePhoneNetworkSecurity |
|
3932 { |
|
3933 /** The encryption level is NONE. |
|
3934 |
|
3935 Mode: Common */ |
|
3936 ECipheringOff, |
|
3937 /** The encryption level is GSM.(standard encryption algorithms for 2nd Generation |
|
3938 Mobile networks). |
|
3939 |
|
3940 Mode: GSM */ |
|
3941 ECipheringGSM, |
|
3942 /** The encryption level is WCDMA.(standard encryption algorithms for 3rd Generation |
|
3943 Mobile networks). |
|
3944 |
|
3945 Mode: WCDMA */ |
|
3946 ECipheringWCDMA, |
|
3947 /** The encryption level is CDMA.(standard encryption algorithms for 3rd Generation |
|
3948 Mobile networks). |
|
3949 |
|
3950 Mode: CDMA */ |
|
3951 ECipheringCDMA |
|
3952 }; |
|
3953 |
|
3954 IMPORT_C void GetNetworkSecurityLevel(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const; |
|
3955 IMPORT_C void NotifyNetworkSecurityLevelChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const; |
|
3956 |
|
3957 /** |
|
3958 Indicators for whether encryption status of the current call should be displayed. |
|
3959 */ |
|
3960 enum TMobileCallCipheringIndicator |
|
3961 { |
|
3962 /** |
|
3963 The ME indication displaying the encryption status of the current call should be off. |
|
3964 */ |
|
3965 ECipheringDisplayOff, |
|
3966 /** |
|
3967 The ME indication displaying the encryption status of the current call should be on. |
|
3968 */ |
|
3969 ECipheringDisplayOn |
|
3970 }; |
|
3971 |
|
3972 IMPORT_C void GetCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const; |
|
3973 IMPORT_C void NotifyCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const; |
|
3974 |
|
3975 /***********************************************************************************/ |
|
3976 // |
|
3977 // Mobile Cost Functional Unit |
|
3978 // |
|
3979 /***********************************************************************************/ |
|
3980 |
|
3981 /** Call Cost Capabilities. |
|
3982 |
|
3983 Modes: GSM/WCDMA */ |
|
3984 enum TMobilePhoneCostCaps |
|
3985 { |
|
3986 /** Indicates that the phone supports calculation and display of current and accumulated |
|
3987 call cost on an information-only basis. (The AoCI service in GSM) |
|
3988 |
|
3989 Modes: GSM/WCDMA */ |
|
3990 KCapsCostInformation = 0x00000001, |
|
3991 /** Indicates that the phone supports calculation and display of current and accumulated |
|
3992 call cost in order to support the charging service. (The AoCC service in GSM). |
|
3993 |
|
3994 |
|
3995 Modes: Common */ |
|
3996 KCapsCostCharging = 0x00000002, |
|
3997 /** Indicates that the phone supports clearing of cost meters (ACM or CCM) to zero. |
|
3998 |
|
3999 Modes: Common */ |
|
4000 KCapsClearCost = 0x00000004, |
|
4001 /** Indicates that the phone supports setting the maximum allowed cost (ACMmax) |
|
4002 to a non-zero value. |
|
4003 |
|
4004 Modes: Common */ |
|
4005 KCapsSetMaxCost = 0x00000008, |
|
4006 /** Indicates that the phone supports setting the currency and price per unit. |
|
4007 |
|
4008 Modes: GSM/WCDMA */ |
|
4009 KCapsSetPuct = 0x00000010, |
|
4010 /** Indicates that the phone currently has call cost information available that |
|
4011 the client can retrieve. |
|
4012 |
|
4013 Modes: Common */ |
|
4014 KCapsGetCost = 0x00000020, |
|
4015 /** Indicates that the phone can notify the client when the call cost information |
|
4016 changes. |
|
4017 |
|
4018 Modes: Common */ |
|
4019 KCapsNotifyCostChange = 0x00000040 |
|
4020 }; |
|
4021 |
|
4022 IMPORT_C TInt GetCostCaps(TUint32& aCaps) const; |
|
4023 IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
4024 |
|
4025 /** Clear Cost Meter. |
|
4026 |
|
4027 Modes: Common */ |
|
4028 enum TMobilePhoneCostMeters |
|
4029 { |
|
4030 /** Clear the Current Call Meter. */ |
|
4031 EClearCCM, |
|
4032 /** Clear the Accumulated Charge Meter. */ |
|
4033 EClearACM, |
|
4034 /** Clear all cost meters */ |
|
4035 EClearAll |
|
4036 }; |
|
4037 |
|
4038 IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const; |
|
4039 IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const; |
|
4040 |
|
4041 |
|
4042 |
|
4043 class TMobilePhonePuctV1 : public TMultimodeType |
|
4044 /** Defines the contents of the price/unit and currency table (PUCT) on the SIM. |
|
4045 |
|
4046 @see TMobilePhoneCostInfoV1 |
|
4047 @see SetPuct() |
|
4048 */ |
|
4049 { |
|
4050 public: |
|
4051 IMPORT_C TMobilePhonePuctV1(); |
|
4052 public: |
|
4053 /** The Price per Unit. This floating point value is used to adjust the pricing |
|
4054 units supplied by the network into real currency values. |
|
4055 |
|
4056 Modes: GSM/WCDMA */ |
|
4057 TReal iPricePerUnit; |
|
4058 /** The three character currency indicator. |
|
4059 |
|
4060 Modes: GSM/WCDMA */ |
|
4061 TBuf<4> iCurrencyName; |
|
4062 }; |
|
4063 |
|
4064 /** A typedef'd packaged TMobilePhonePuctV1 for passing through a generic API function |
|
4065 member. */ |
|
4066 typedef TPckg<TMobilePhonePuctV1> TMobilePhonePuctV1Pckg; |
|
4067 |
|
4068 IMPORT_C void SetPuct(TRequestStatus& aReqStatus, const TDesC8& aPuct) const; |
|
4069 |
|
4070 /** Cost Information |
|
4071 |
|
4072 Modes: GSM/WCDMA */ |
|
4073 enum TMobilePhoneCostService |
|
4074 { |
|
4075 /** Phone supports call cost service but no calls are currently in progress so the |
|
4076 network support and user subscription is unknown. */ |
|
4077 ECostServiceUnknown, |
|
4078 /** The network or the phone does not support any of the call cost services. The |
|
4079 call can be either in progress or not. If the user is subscribed to AoCI they |
|
4080 will be able to continue to make calls but will not see any charging information. |
|
4081 If the user is subscribed to AoCC then they will be prevented from making |
|
4082 chargeable calls. */ |
|
4083 ECostServiceNotAvailable, |
|
4084 /** Call is in progress and a call cost service is active but the phone is unable |
|
4085 to determine whether it is an AoCI or AoCC service. */ |
|
4086 ECostServiceAvailable, |
|
4087 /** Call is in progress and the call cost information (AoCI) service is currently |
|
4088 operating. |
|
4089 |
|
4090 Modes: GSM/WCDMA */ |
|
4091 ECostServiceInformation, |
|
4092 /** Call is in progress and the call cost charging (AoCC) service is currently operating. |
|
4093 |
|
4094 Modes: GSM/WCDMA */ |
|
4095 ECostServiceCharging |
|
4096 }; |
|
4097 |
|
4098 |
|
4099 |
|
4100 class TMobilePhoneCostInfoV1 : public TMultimodeType |
|
4101 /** Defines the information related to current billing costs. |
|
4102 |
|
4103 @see GetCostInfo() |
|
4104 @see NotifyCostInfoChange() |
|
4105 */ |
|
4106 { |
|
4107 public: |
|
4108 IMPORT_C TMobilePhoneCostInfoV1(); |
|
4109 public: |
|
4110 /** The current status and type of call cost service. |
|
4111 |
|
4112 @see TMobilePhoneCostService */ |
|
4113 TMobilePhoneCostService iService; |
|
4114 /** The current number of charging units in the Current Call Meter. This is set |
|
4115 to zero if reset by the user or at the start of call set-up attempt. */ |
|
4116 TUint iCCM; |
|
4117 /** The current number of charging units in the Accumulated Call Meter. This equals |
|
4118 the accumulation of previous and current calls. */ |
|
4119 TUint iACM; |
|
4120 /** The maximum number of charging units that the ACM can rise to before chargeable |
|
4121 calls are stopped. Equals zero if Service != ECostServiceCharging. */ |
|
4122 TUint iACMmax; |
|
4123 /** The Price per Unit and Currency Table. |
|
4124 |
|
4125 @see TMobilePhonePuctV1 */ |
|
4126 TMobilePhonePuctV1 iPuct; |
|
4127 }; |
|
4128 |
|
4129 /** A typedef'd packaged TMobilePhoneCostInfoV1 for passing through a generic API |
|
4130 function member. */ |
|
4131 typedef TPckg<TMobilePhoneCostInfoV1> TMobilePhoneCostInfoV1Pckg; |
|
4132 |
|
4133 IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const; |
|
4134 IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const; |
|
4135 |
|
4136 /***********************************************************************************/ |
|
4137 // |
|
4138 // Mobile Security Functional Unit |
|
4139 // |
|
4140 /***********************************************************************************/ |
|
4141 |
|
4142 /** Security Capabilities. |
|
4143 |
|
4144 Modes: Common */ |
|
4145 enum TMobilePhoneSecurityCaps |
|
4146 { |
|
4147 /** The phone supports an overall "phone device lock" which can be enabled or disabled. |
|
4148 If enabled, user must enter phone password before the phone can be used. When |
|
4149 this capability is set the phone will support get lock info, notify lock info |
|
4150 change and set lock setting for phone device lock. |
|
4151 |
|
4152 Modes: Common */ |
|
4153 KCapsLockPhone = 0x0000001, |
|
4154 /** The phone supports locking the ICC (using the PIN1 security code), which can |
|
4155 be enabled or disabled. If enabled, the user must enter PIN1 code before the |
|
4156 ICC can be used. When this capability is set the phone will support get lock |
|
4157 info, notify lock info change and set lock setting for ICC lock. |
|
4158 |
|
4159 Modes: Common */ |
|
4160 KCapsLockICC = 0x00000002, |
|
4161 /** The phone supports the "phone to ICC lock" which can be enabled or disabled. |
|
4162 If enabled, at power-up the phone will check whether current ICC is the one |
|
4163 the phone is locked to or not. If not, then the user must enter the phone |
|
4164 password before phone can be used with this ICC. When this capability is set |
|
4165 the phone will support get lock info, notify lock info change and set lock |
|
4166 setting for Phone-ICC lock. |
|
4167 |
|
4168 Modes: Common */ |
|
4169 KCapsLockPhoneToICC = 0x00000004, |
|
4170 /** The phone supports the "phone to first ICC lock" which can be enabled or disabled. |
|
4171 If enabled, at power-up the phone will check whether current ICC is the one |
|
4172 the phone is first locked to or not. If not, then user must enter the phone |
|
4173 password before the phone can be used with this ICC. When this capability |
|
4174 is set the phone will support get lock info, notify lock info change and set |
|
4175 lock setting for Phone-First ICC lock. |
|
4176 |
|
4177 Modes: Common */ |
|
4178 KCapsLockPhoneToFirstICC = 0x00000008, |
|
4179 /** The phone supports the "Over The Air" programming lock which can be enabled |
|
4180 or disabled. If enabled, the phone will prevent OTA programming by the network. |
|
4181 If disabled, the phone will allow OTA programming by the network. When this |
|
4182 capability is set the phone will support get lock info, notify lock info change |
|
4183 and set lock setting for OTA lock. |
|
4184 |
|
4185 Modes: CDMA */ |
|
4186 KCapsLockOTA = 0x00000010, |
|
4187 /** The phone supports access to the PIN 1 security code. When this capability is |
|
4188 set the phone will support verification of PIN1, unblocking PIN1, changing |
|
4189 PIN1 and notification of PIN1 required. |
|
4190 |
|
4191 Modes: Common */ |
|
4192 KCapsAccessPin1 = 0x00000020, |
|
4193 /** The phone supports access to the PIN 2 security code. When this capability is |
|
4194 set the phone will support verification of PIN2, unblocking PIN2, changing |
|
4195 PIN2 and notification of PIN2 required. |
|
4196 |
|
4197 Modes: GSM/WCDMA */ |
|
4198 KCapsAccessPin2 = 0x00000040, |
|
4199 /** The phone supports access to the phone password security code. When this capability |
|
4200 is set the phone will support verification of the phone password, changing |
|
4201 the phone password and notification if the phone password is required. |
|
4202 |
|
4203 Modes: Common */ |
|
4204 KCapsAccessPhonePassword = 0x00000080, |
|
4205 /** The phone supports access to the SPC (Service Programming Code) security code. |
|
4206 This code may need to be verified before OTA can commence. |
|
4207 |
|
4208 Modes: CDMA */ |
|
4209 KCapsAccessSPC = 0x00000100, |
|
4210 /** The phone supports access to the hidden key. When this capability is set the |
|
4211 phone will support verification of HiddenKey. |
|
4212 |
|
4213 Modes: WCDMA */ |
|
4214 KCapsAccessHiddenKey=0x00000200, |
|
4215 /** The phone supports access to the USIM Application PIN. An Application PIN allows |
|
4216 access to any file on the UICC where it is referenced in the access rules. |
|
4217 |
|
4218 Modes: WCDMA */ |
|
4219 KCapsAccessUSIMAppPin=0x00000400, |
|
4220 /** The phone supports access to the second USIM Application PIN. The second Application |
|
4221 PIN allows access to files (where it is referenced in the access rules) within |
|
4222 one USIM Application on the UICC. This is a local PIN. |
|
4223 |
|
4224 Modes: WCDMA */ |
|
4225 KCapsAccessUSIMAppSecondPin =0x00000800, |
|
4226 /** The phone supports access to the Universal PIN. A Universal PIN is a PIN that |
|
4227 is used in a multi-application UICC environment to allow several USIM applications |
|
4228 to share one common PIN. |
|
4229 |
|
4230 Modes: WCDMA */ |
|
4231 KCapsAccessUniversalPin =0x00001000 |
|
4232 }; |
|
4233 |
|
4234 IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const; |
|
4235 IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
4236 |
|
4237 /** Lock Information. |
|
4238 |
|
4239 Modes: Common */ |
|
4240 enum TMobilePhoneLock |
|
4241 { |
|
4242 /** Lock the whole device. Phone lock password is required to unlock when this lock |
|
4243 is enabled. |
|
4244 |
|
4245 Modes: Common */ |
|
4246 ELockPhoneDevice, |
|
4247 /** Lock PIN1 on the ICC. PIN1 security code is required to unlock when this lock |
|
4248 is enabled. |
|
4249 |
|
4250 Modes: Common */ |
|
4251 ELockICC, |
|
4252 /** Lock the phone to the current ICC inserted in the phone Phone lock password |
|
4253 is required to unlock when this lock is enabled. |
|
4254 |
|
4255 Modes: Common */ |
|
4256 ELockPhoneToICC, |
|
4257 /** Lock the phone to the first ICC inserted in the phone. Phone lock password is |
|
4258 required to unlock when this lock is enabled. |
|
4259 |
|
4260 Modes: Common */ |
|
4261 ELockPhoneToFirstICC, |
|
4262 /** Lock the OTA facility on the phone. SPC security code may be required to unlock |
|
4263 when this lock is enabled. |
|
4264 |
|
4265 Modes: CDMA */ |
|
4266 ELockOTA, |
|
4267 /** Lock PIN2 on the ICC. PIN2 security code is required to unlock when this lock |
|
4268 is enabled. |
|
4269 |
|
4270 Modes: Common */ |
|
4271 ELockPin2, |
|
4272 /** Lock the phonebook hidden entries on the phone. Hidden key security code may |
|
4273 be required to unlock when this lock is enabled. |
|
4274 |
|
4275 Modes: WCDMA */ |
|
4276 ELockHiddenKey, |
|
4277 /** Lock the associated USIM Application. USIM Application PIN is required to unlock |
|
4278 when this lock is enabled. |
|
4279 |
|
4280 Modes: WCDMA */ |
|
4281 ELockUSimApp, |
|
4282 /** Lock the associated USIM Application. The second USIM Application PIN is required |
|
4283 to unlock when this lock is enabled. |
|
4284 |
|
4285 Modes: WCDMA */ |
|
4286 ELockSecondUSimApp, |
|
4287 /** Lock the associated USIM Application(s) that share this common lock. Universal |
|
4288 Pin is required to unlock when this lock is enabled. |
|
4289 |
|
4290 Modes: WCDMA */ |
|
4291 ELockUniversalPin, |
|
4292 /** Lock for the NAM. The SPC is required to unlock. |
|
4293 |
|
4294 Modes: CDMA */ |
|
4295 ELockNam |
|
4296 }; |
|
4297 |
|
4298 /** Phone lock status. |
|
4299 |
|
4300 Modes: Common */ |
|
4301 enum TMobilePhoneLockStatus |
|
4302 { |
|
4303 /** The status of the lock is unknown. */ |
|
4304 EStatusLockUnknown, |
|
4305 /** Lock is closed - user can not access functionality governed by this lock until |
|
4306 user correctly enters associated security code. */ |
|
4307 EStatusLocked, |
|
4308 /** Lock is open - user can access functionality governed by this lock */ |
|
4309 EStatusUnlocked, |
|
4310 EStatusBlocked |
|
4311 }; |
|
4312 |
|
4313 /** The phone lock setting. |
|
4314 |
|
4315 Modes: Common */ |
|
4316 enum TMobilePhoneLockSetting |
|
4317 { |
|
4318 /** The setting of the lock is unknown |
|
4319 |
|
4320 Modes: Common */ |
|
4321 ELockSetUnknown, |
|
4322 /** Lock is enabled - associated security code will be required to unlock the |
|
4323 lock, the next time the lock's status is EStatusLocked. |
|
4324 |
|
4325 Modes: Common */ |
|
4326 ELockSetEnabled, |
|
4327 /** Lock is disabled - so its status is always EStatusUnlocked. |
|
4328 |
|
4329 Modes: Common */ |
|
4330 ELockSetDisabled, |
|
4331 /** Lock of the current Application is replaced by the Universal PIN. Only the |
|
4332 Universal PIN is allowed as a replacement. |
|
4333 |
|
4334 Modes: WCDMA */ |
|
4335 ELockReplaced |
|
4336 }; |
|
4337 |
|
4338 |
|
4339 |
|
4340 class TMobilePhoneLockInfoV1 : public TMultimodeType |
|
4341 /** Defines the status of a phone lock. |
|
4342 |
|
4343 @see GetLockInfo() |
|
4344 @see NotifyLockInfoChange() |
|
4345 @publishedPartner |
|
4346 @released |
|
4347 */ |
|
4348 { |
|
4349 public: |
|
4350 IMPORT_C TMobilePhoneLockInfoV1(); |
|
4351 public: |
|
4352 /** The current status of the lock. |
|
4353 |
|
4354 Modes: Common |
|
4355 |
|
4356 @see TMobilePhoneLockStatus */ |
|
4357 TMobilePhoneLockStatus iStatus; |
|
4358 /** The current setting of the lock. |
|
4359 |
|
4360 Modes: Common |
|
4361 |
|
4362 @see TMobilePhoneLockSetting */ |
|
4363 TMobilePhoneLockSetting iSetting; |
|
4364 }; |
|
4365 |
|
4366 /** A typedef'd packaged TMobilePhoneLockInfoV1 for passing through a generic API |
|
4367 function member. */ |
|
4368 typedef TPckg<TMobilePhoneLockInfoV1> TMobilePhoneLockInfoV1Pckg; |
|
4369 |
|
4370 IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const; |
|
4371 IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const; |
|
4372 IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const; |
|
4373 |
|
4374 /** Change Security Code. |
|
4375 |
|
4376 Modes: Common */ |
|
4377 enum TMobilePhoneSecurityCode |
|
4378 { |
|
4379 /** PIN 1 code (between 4-8 digits). |
|
4380 |
|
4381 Modes: Common */ |
|
4382 ESecurityCodePin1, |
|
4383 /** PIN 2 code (between 4-8 digits) |
|
4384 |
|
4385 Modes: GSM/WCDMA */ |
|
4386 ESecurityCodePin2, |
|
4387 /** PIN 1 unblocking code (always 8 digits). |
|
4388 |
|
4389 Modes: Common */ |
|
4390 ESecurityCodePuk1, |
|
4391 /** PIN 2 unblocking code (always 8 digits) |
|
4392 |
|
4393 Modes: GSM/WCDMA */ |
|
4394 ESecurityCodePuk2, |
|
4395 /** Password used for Phone-SIM Lock and Phone Device Lock (up to 8 digits) |
|
4396 |
|
4397 Modes: Common */ |
|
4398 ESecurityCodePhonePassword, |
|
4399 /** Service Programming Code (SPC) |
|
4400 |
|
4401 Modes: CDMA */ |
|
4402 ESecurityCodeSPC, |
|
4403 /** Phonebook key to display the hidden entries. |
|
4404 |
|
4405 Modes: WCDMA */ |
|
4406 ESecurityHiddenKey, |
|
4407 /** USIM Application PIN. |
|
4408 |
|
4409 Modes: WCDMA */ |
|
4410 ESecurityUSIMAppPin, |
|
4411 /** Second USIM Application PIN. |
|
4412 |
|
4413 Modes: WCDMA */ |
|
4414 ESecuritySecondUSIMAppPin, |
|
4415 /** Universal PIN. |
|
4416 |
|
4417 Modes: WCDMA */ |
|
4418 ESecurityUniversalPin, |
|
4419 /** Universal PIN unblocking code (always 8 digits). |
|
4420 |
|
4421 Modes: Common */ |
|
4422 ESecurityUniversalPuk |
|
4423 }; |
|
4424 |
|
4425 IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const; |
|
4426 |
|
4427 /** Defines the status of a security code. |
|
4428 |
|
4429 @see GetSecurityCodeInfo() |
|
4430 @see NotifySecurityCodeInfoChange() |
|
4431 @publishedPartner |
|
4432 @released |
|
4433 */ |
|
4434 class TMobilePhoneSecurityCodeInfoV5 : public TMultimodeType |
|
4435 { |
|
4436 public: |
|
4437 IMPORT_C TMobilePhoneSecurityCodeInfoV5(); |
|
4438 public: |
|
4439 /** Number of remaining security code entry attempts before the corresponding lock gets blocked |
|
4440 |
|
4441 Modes: Common |
|
4442 */ |
|
4443 TInt iRemainingEntryAttempts; |
|
4444 }; |
|
4445 |
|
4446 /** A typedef'd packaged TMobilePhoneSecurityCodeInfoV5 for passing through a generic API |
|
4447 function member. */ |
|
4448 typedef TPckg<TMobilePhoneSecurityCodeInfoV5> TMobilePhoneSecurityCodeInfoV5Pckg; |
|
4449 |
|
4450 IMPORT_C void GetSecurityCodeInfo(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aSecurityCode, TDes8& aSecurityCodeInfo) const; |
|
4451 IMPORT_C void NotifySecurityCodeInfoChange(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode& aSecurityCode, TDes8& aSecurityCodeInfo) const; |
|
4452 |
|
4453 /** Notify Security Events. |
|
4454 |
|
4455 Modes: Common */ |
|
4456 enum TMobilePhoneSecurityEvent |
|
4457 { |
|
4458 /** The phone has detected that there is no ICC present. |
|
4459 |
|
4460 Modes: Common */ |
|
4461 ENoICCFound, |
|
4462 /** The phone has detected that the ICC is unusable. |
|
4463 |
|
4464 Modes: Common */ |
|
4465 EICCTerminated, |
|
4466 /** The phone requires PIN1 to be entered. |
|
4467 |
|
4468 Modes: Common */ |
|
4469 EPin1Required, |
|
4470 /** The phone requires PUK1 to be entered. |
|
4471 |
|
4472 Modes: Common */ |
|
4473 EPuk1Required, |
|
4474 /** The phone requires PIN2 to be entered. |
|
4475 |
|
4476 Modes: GSM/WCDMA */ |
|
4477 EPin2Required, |
|
4478 /** The phone requires PUK2 to be entered. |
|
4479 |
|
4480 Modes: GSM/WCDMA */ |
|
4481 EPuk2Required, |
|
4482 /** The phone requires the Phone Password to be entered. |
|
4483 |
|
4484 Modes: Common */ |
|
4485 EPhonePasswordRequired, |
|
4486 /** The phone requires the SPC to be entered. |
|
4487 |
|
4488 Modes: CDMA */ |
|
4489 ESPCRequired, |
|
4490 /** The PIN1 verification procedure has passed. |
|
4491 |
|
4492 Modes: Common */ |
|
4493 EPin1Verified, |
|
4494 /** The PIN2 verification procedure has passed. |
|
4495 |
|
4496 Modes: GSM/WCDMA */ |
|
4497 EPin2Verified, |
|
4498 /** The PUK1 unblocking procedure has passed. |
|
4499 |
|
4500 Modes: Common */ |
|
4501 EPuk1Verified, |
|
4502 /** The PUK2 unblocking procedure has passed. |
|
4503 |
|
4504 Modes: GSM/WCDMA */ |
|
4505 EPuk2Verified, |
|
4506 /** The Phone Password has been verified. |
|
4507 |
|
4508 Modes: Common */ |
|
4509 EPhonePasswordVerified, |
|
4510 /** The SPC verification procedure has passed. |
|
4511 |
|
4512 Modes: CDMA */ |
|
4513 ESPCVerified, |
|
4514 /** The phone requires the phonebook hidden key to be entered. |
|
4515 |
|
4516 Modes: WCDMA */ |
|
4517 EHiddenKeyRequired, |
|
4518 /** The phonebook hidden key procedure has passed. |
|
4519 |
|
4520 Modes: WCDMA */ |
|
4521 EHiddenKeyVerified, |
|
4522 /** The phone requires the currently active USIM Application PIN to be entered. |
|
4523 |
|
4524 Modes: WCDMA */ |
|
4525 EUSIMAppPinRequired, |
|
4526 /** The currently active USIM Application PIN procedure has passed. |
|
4527 |
|
4528 Modes: WCDMA */ |
|
4529 EUSIMAppPinVerified, |
|
4530 /** The phone requires the currently active USIM Application second PIN to be entered. |
|
4531 |
|
4532 Modes: WCDMA */ |
|
4533 ESecondUSIMAppPinRequired, |
|
4534 /** The currently active USIM Application second PIN procedure has passed. |
|
4535 |
|
4536 Modes: WCDMA */ |
|
4537 ESecondUSIMAppPinVerified, |
|
4538 /** The phone requires the Universal PIN to be entered. |
|
4539 |
|
4540 Modes: WCDMA */ |
|
4541 EUniversalPinRequired, |
|
4542 /** The currently active Universal PIN procedure has passed. |
|
4543 |
|
4544 Modes: WCDMA */ |
|
4545 EUniversalPinVerified, |
|
4546 /** The Service Programming Code has been changed. |
|
4547 |
|
4548 Modes: CDMA */ |
|
4549 ESPCChanged, |
|
4550 /** The phone requires Universal PUK to be entered. |
|
4551 |
|
4552 Modes: WCDMA */ |
|
4553 EUniversalPukRequired, |
|
4554 /** The Universal PUK unblocking procedure has passed. |
|
4555 |
|
4556 Modes: WCDMA */ |
|
4557 EUniversalPukVerified |
|
4558 }; |
|
4559 |
|
4560 IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const; |
|
4561 |
|
4562 // for use by client-side API code and TSY only |
|
4563 |
|
4564 struct TCodeAndUnblockCode |
|
4565 { |
|
4566 TMobilePassword iCode; |
|
4567 TMobilePassword iUnblockCode; |
|
4568 }; |
|
4569 |
|
4570 IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, |
|
4571 const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const; |
|
4572 IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const; |
|
4573 |
|
4574 /***********************************************************************************/ |
|
4575 // |
|
4576 // MobileMessageWaiting |
|
4577 // |
|
4578 /***********************************************************************************/ |
|
4579 |
|
4580 /** Display indicators. */ |
|
4581 enum TMobilePhoneIndicatorDisplay |
|
4582 { |
|
4583 /** Display voicemail active. */ |
|
4584 KDisplayVoicemailActive = 0x01, |
|
4585 /** Display fax active. */ |
|
4586 KDisplayFaxActive = 0x02, |
|
4587 /** Display E-mail active. */ |
|
4588 KDisplayEmailActive = 0x04, |
|
4589 /** Display other active. */ |
|
4590 KDisplayOtherActive = 0x08, |
|
4591 /** Display Aux voicemail active. */ |
|
4592 KDisplayAuxVoicemailActive = 0x10, |
|
4593 /** Display data active. */ |
|
4594 KDisplayDataActive = 0x20 |
|
4595 }; |
|
4596 |
|
4597 class TMobilePhoneMessageWaitingV1 : public TMultimodeType |
|
4598 /** Message Waiting Indicators. See 3GPP TS 31 102. |
|
4599 |
|
4600 @see GetIccMessageWaitingIndicators() |
|
4601 @see SetIccMessageWaitingIndicators() |
|
4602 @see NotifyIccMessageWaitingIndicatorsChange() |
|
4603 */ |
|
4604 { |
|
4605 public: |
|
4606 IMPORT_C TMobilePhoneMessageWaitingV1(); |
|
4607 public: |
|
4608 /** The flags for each indicator from TMobilePhoneIndicatorDisplay to specify whether |
|
4609 the indicator should be displayed or not. E.g. Messages of the specified type are waiting. |
|
4610 |
|
4611 Modes: Common */ |
|
4612 TUint8 iDisplayStatus; |
|
4613 /** The number of voicemail messages waiting for the "main" voice line. |
|
4614 |
|
4615 Modes: Common */ |
|
4616 TUint8 iVoiceMsgs; |
|
4617 /** The number of voicemail messages waiting for the "auxiliary" voice line. |
|
4618 |
|
4619 Modes: GSM */ |
|
4620 TUint8 iAuxVoiceMsgs; |
|
4621 /** The number of messages waiting for the data line. |
|
4622 |
|
4623 Modes: Common */ |
|
4624 TUint8 iDataMsgs; |
|
4625 /** The number of messages waiting for the fax line. |
|
4626 |
|
4627 Modes: Common */ |
|
4628 TUint8 iFaxMsgs; |
|
4629 /** The number of email messages waiting. |
|
4630 |
|
4631 Modes: WCDMA */ |
|
4632 TUint8 iEmailMsgs; |
|
4633 /** Contains the number of "unspecified" messages waiting. |
|
4634 |
|
4635 Modes: WCDMA */ |
|
4636 TUint8 iOtherMsgs; |
|
4637 }; |
|
4638 |
|
4639 /** A typedef'd packaged TMobilePhoneMessageWaitingV1 for passing through a generic |
|
4640 API function member. */ |
|
4641 typedef TPckg<TMobilePhoneMessageWaitingV1> TMobilePhoneMessageWaitingV1Pckg; |
|
4642 |
|
4643 IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const; |
|
4644 IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const; |
|
4645 IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const; |
|
4646 |
|
4647 IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const; |
|
4648 |
|
4649 /***********************************************************************************/ |
|
4650 // |
|
4651 // Mobile Fixed Dialling Numbers Functional Unit |
|
4652 // |
|
4653 /***********************************************************************************/ |
|
4654 |
|
4655 /** Fixed Dialling Numbers Status. |
|
4656 |
|
4657 Modes: Common */ |
|
4658 enum TMobilePhoneFdnStatus |
|
4659 { |
|
4660 /** Fixed Dialling Number mode is supported but is not currently active. */ |
|
4661 EFdnNotActive, |
|
4662 /** Fixed Dialling Number mode is supported and is currently active. Deactivating |
|
4663 FDN mode is supported. */ |
|
4664 EFdnActive, |
|
4665 /** Fixed Dialling Number mode is supported and is permanently active. Deactivating |
|
4666 FDN mode is NOT supported with this SIM. */ |
|
4667 EFdnPermanentlyActive, |
|
4668 /** Fixed Dialling Number mode is not supported by ME and/or SIM. */ |
|
4669 EFdnNotSupported, |
|
4670 /** ME is currently unable to determine the status of FDN mode. */ |
|
4671 EFdnUnknown |
|
4672 }; |
|
4673 |
|
4674 IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const; |
|
4675 IMPORT_C void GetFdnStatus(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const; |
|
4676 |
|
4677 /** Fixed Dialling Numbers Setting |
|
4678 |
|
4679 Modes: Common */ |
|
4680 enum TMobilePhoneFdnSetting |
|
4681 { |
|
4682 /** Activate the FDN service. */ |
|
4683 EFdnSetOn, |
|
4684 /** Deactivate the FDN service. */ |
|
4685 EFdnSetOff |
|
4686 }; |
|
4687 |
|
4688 IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const; |
|
4689 IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const; |
|
4690 |
|
4691 /***********************************************************************************/ |
|
4692 // |
|
4693 // Multicall bearer settings |
|
4694 // |
|
4695 /***********************************************************************************/ |
|
4696 |
|
4697 class TMobilePhoneMulticallSettingsV1 : public TMultimodeType |
|
4698 /** Multi call settings for version v1.0. |
|
4699 |
|
4700 @see GetMulticallParams() |
|
4701 @see NotifyMulticallParamsChange() |
|
4702 @publishedPartner |
|
4703 @released*/ |
|
4704 { |
|
4705 public: |
|
4706 IMPORT_C TMobilePhoneMulticallSettingsV1(); |
|
4707 public: |
|
4708 /** Maximum number of simultaneous CS bearers allowed - defined by the user. |
|
4709 |
|
4710 Modes: WCDMA */ |
|
4711 TInt iUserMaxBearers; |
|
4712 /** Maximum number of simultaneous bearers allowed - defined by the service provider. |
|
4713 |
|
4714 Modes: WCDMA */ |
|
4715 TInt iServiceProviderMaxBearers; |
|
4716 /** Maximum number of simultaneous CS bearers supported by the network. |
|
4717 |
|
4718 Modes: WCDMA */ |
|
4719 TInt iNetworkSupportedMaxBearers; |
|
4720 /** Maximum number of simultaneous CS bearers supported by the UE. |
|
4721 |
|
4722 Modes: WCDMA */ |
|
4723 TInt iUESupportedMaxBearers; |
|
4724 }; |
|
4725 |
|
4726 /** A typedef'd packaged TMobilePhoneMulticallSettingsV1 for passing through a generic |
|
4727 API function member. */ |
|
4728 typedef TPckg<TMobilePhoneMulticallSettingsV1> TMobilePhoneMulticallSettingsV1Pckg; |
|
4729 |
|
4730 IMPORT_C void GetMulticallParams(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const; |
|
4731 IMPORT_C void SetMulticallParams(TRequestStatus& aReqStatus, TInt aUserMaxBearers) const; |
|
4732 IMPORT_C void NotifyMulticallParamsChange(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const; |
|
4733 |
|
4734 enum TMobilePhoneMulticallIndicator |
|
4735 /** |
|
4736 Indicators for exceeding allowed multiple active bearers. |
|
4737 */ |
|
4738 { |
|
4739 /** The maximum number of multiple active bearers allowed by the service provider has been exceeded. */ |
|
4740 EBearerNetworProviderExceeded, |
|
4741 /** The maximum number of multiple active bearers allowed by the mobile user has been exceeded. */ |
|
4742 EBearerUserExceeded |
|
4743 }; |
|
4744 |
|
4745 IMPORT_C void NotifyMulticallIndicatorChange(TRequestStatus& aReqStatus, TMobilePhoneMulticallIndicator& aMulticallIndicator) const; |
|
4746 |
|
4747 /***********************************************************************************/ |
|
4748 // |
|
4749 // MobileNextIncomingCall Functional Unit |
|
4750 // |
|
4751 /***********************************************************************************/ |
|
4752 |
|
4753 /** Incoming Call Types. |
|
4754 |
|
4755 Modes: Common */ |
|
4756 enum TMobilePhoneIncomingCallType |
|
4757 { |
|
4758 /** MS will receive any type of incoming call. |
|
4759 |
|
4760 Modes: Common */ |
|
4761 EIncomingTypeNotSpecified, |
|
4762 /** MS will request voice bearer for incoming calls. |
|
4763 |
|
4764 Modes: Common */ |
|
4765 EIncomingVoice, |
|
4766 /** MS will request fax bearer for incoming calls |
|
4767 |
|
4768 Modes: Common */ |
|
4769 EIncomingFax, |
|
4770 /** MS will request data bearer for incoming calls |
|
4771 |
|
4772 Modes: Common */ |
|
4773 EIncomingData, |
|
4774 /** MS will request a data bearer for use by a Multimedia CS call (voice fall back |
|
4775 is acceptable) for incoming calls. |
|
4776 |
|
4777 Modes: GSM/WCDMA */ |
|
4778 EIncomingMultimediaVoiceFallback, |
|
4779 /** MS will request a data bearer for use by a Multimedia CS call (voice fall back |
|
4780 NOT acceptable) for incoming calls |
|
4781 |
|
4782 Modes: GSM/WCDMA */ |
|
4783 EIncomingMultimediaNoFallback, |
|
4784 /** The single numbering scheme call mode is alternating voice to fax. |
|
4785 |
|
4786 Modes: GSM/WCDMA */ |
|
4787 EIncomingAlternatingVoiceFax, |
|
4788 /** The single numbering scheme call mode is alternating voice to data. |
|
4789 |
|
4790 Modes: GSM */ |
|
4791 EIncomingAlternatingVoiceData, |
|
4792 /** The single numbering scheme call mode is alternating fax to voice. |
|
4793 |
|
4794 Modes: GSM */ |
|
4795 EIncomingAlternatingFaxVoice, |
|
4796 /** The single numbering scheme call mode is alternating data to voice. |
|
4797 |
|
4798 Modes: GSM */ |
|
4799 EIncomingAlternatingDataVoice, |
|
4800 /** The single numbering scheme call mode is alternating voice then data. |
|
4801 |
|
4802 Modes: GSM */ |
|
4803 EIncomingAlternatingVoiceThenData |
|
4804 }; |
|
4805 |
|
4806 IMPORT_C void GetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const; |
|
4807 IMPORT_C void SetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType aCallType, TDes8& aDataParams) const; |
|
4808 IMPORT_C void NotifyIncomingCallTypeChange(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const; |
|
4809 |
|
4810 /***********************************************************************************/ |
|
4811 // |
|
4812 // User-To-User Signalling Functional Unit |
|
4813 // |
|
4814 /***********************************************************************************/ |
|
4815 |
|
4816 /** UUS Settings Requests. |
|
4817 |
|
4818 Modes: GSM/WCDMA */ |
|
4819 enum TMobilePhoneUUSSetting // UUS settings of the phone |
|
4820 { |
|
4821 /** UUS is not specified. */ |
|
4822 EIncomingUUSNotSpecified, |
|
4823 /** MS will accept incoming UUS activation request. */ |
|
4824 EIncomingUUSAccepted, |
|
4825 /** MS will reject incoming UUS activation request. */ |
|
4826 EIncomingUUSRejected |
|
4827 }; |
|
4828 |
|
4829 IMPORT_C void GetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const; |
|
4830 IMPORT_C void SetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting aSetting) const; |
|
4831 IMPORT_C void NotifyUUSSettingChange(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const; |
|
4832 |
|
4833 /***********************************************************************************/ |
|
4834 // |
|
4835 // Mobile Smart Card Applications Functional Unit |
|
4836 // |
|
4837 /***********************************************************************************/ |
|
4838 |
|
4839 |
|
4840 enum { KSmartCardApplicationLabelMaxSize=32 }; |
|
4841 |
|
4842 /** Smart card application info version v5.0. |
|
4843 Modes: Common |
|
4844 |
|
4845 @see GetSmartCardApplicationInfo() |
|
4846 @publishedPartner |
|
4847 @released |
|
4848 */ |
|
4849 class TSmartCardApplicationInfoV5 : public TMultimodeType |
|
4850 { |
|
4851 public: |
|
4852 IMPORT_C TSmartCardApplicationInfoV5(); |
|
4853 public: |
|
4854 /** |
|
4855 Smart card application identifier. |
|
4856 */ |
|
4857 TAID iAID; |
|
4858 /** |
|
4859 Smart card application label. 16 bit USC2 characters string provided by the application |
|
4860 provider to be shown to the user for information, e.g. operator name. It is |
|
4861 recommended by ETSI/3GPP spec that the application label does not exceed 32 |
|
4862 bytes. |
|
4863 |
|
4864 The application label is optional. If no label is provided, the buffer should |
|
4865 be NULL. |
|
4866 */ |
|
4867 TBuf8<KSmartCardApplicationLabelMaxSize> iLabel; |
|
4868 }; |
|
4869 |
|
4870 /** |
|
4871 A typedef'd packaged TSmartCardApplicationInfoV5 for passing through a generic API |
|
4872 function member. |
|
4873 */ |
|
4874 typedef TPckg<TSmartCardApplicationInfoV5> TSmartCardApplicationInfoV5Pckg; |
|
4875 |
|
4876 /** |
|
4877 Specifies the max length of the buffer used to retrieve the smart |
|
4878 card application's supported EAP method list. Value 255 since EAP |
|
4879 type list length fits into one byte (see table 5.1 of ETSI TS |
|
4880 102.310 v6.2.0). |
|
4881 |
|
4882 @see RMobilePhone::GetSmartCardApplicationInfo() |
|
4883 @see RMobilePhone::TUiccApplicationEapInfoV6::iEapTypeList |
|
4884 */ |
|
4885 enum { KEapSupportedTypeListSize = 255 }; |
|
4886 |
|
4887 /** |
|
4888 UICC application info version v6.0. Is a |
|
4889 TSmartCardApplicationInfoV5 object, but has an additional buffer |
|
4890 (iEapTypeList) for retrieving a list supported EAP methods on the |
|
4891 application. |
|
4892 |
|
4893 Modes: GSM/WCDMA |
|
4894 |
|
4895 @see RMobilePhone::GetSmartCardApplicationInfo() |
|
4896 @publishedPartner |
|
4897 @released |
|
4898 */ |
|
4899 class TUiccApplicationEapInfoV6 : public TSmartCardApplicationInfoV5 |
|
4900 { |
|
4901 public: |
|
4902 IMPORT_C TUiccApplicationEapInfoV6(); |
|
4903 |
|
4904 public: |
|
4905 /** |
|
4906 Application EAP support type list, defining the EAP methods |
|
4907 supported by the UICC application (see RFC 3748 and |
|
4908 http://www.iana.org/assignments/eap-numbers). |
|
4909 |
|
4910 As reference, also worth seeing section 5.2 of ETSI TS 102.310 |
|
4911 v6.2.0 and section 6.2 of RFC3748. |
|
4912 |
|
4913 @see KETelSmartCardEapTypeMD5 |
|
4914 @see KETelSmartCardEapTypeTLS |
|
4915 @see KETelSmartCardEapTypeSIM |
|
4916 @see KETelSmartCardEapTypeAKA |
|
4917 @see KETelSmartCardEapTypeTTLS |
|
4918 */ |
|
4919 TBuf8<KEapSupportedTypeListSize> iEapTypeList; |
|
4920 }; |
|
4921 |
|
4922 /** |
|
4923 A typedef'd packaged TEapUiccApplicationInfoV6 for passing through |
|
4924 a generic API function member. |
|
4925 |
|
4926 @see RMobilePhone::GetSmartCardApplicationInfo() |
|
4927 */ |
|
4928 typedef TPckg<TUiccApplicationEapInfoV6> TUiccApplicationEapInfoV6Pckg; |
|
4929 |
|
4930 /** |
|
4931 Smart card application notification events |
|
4932 |
|
4933 Modes: Common |
|
4934 */ |
|
4935 enum TSmartCardApplicationEvent |
|
4936 { |
|
4937 /** |
|
4938 Smart card application has been installed. |
|
4939 */ |
|
4940 EScApplicationInstalled, |
|
4941 /** |
|
4942 Smart card application has been removed. |
|
4943 */ |
|
4944 EScApplicationRemoved, |
|
4945 /** |
|
4946 Smart card application has been activated. |
|
4947 */ |
|
4948 EScApplicationActivated, |
|
4949 /** |
|
4950 Smart card application has been terminated. |
|
4951 */ |
|
4952 EScApplicationTerminated |
|
4953 }; |
|
4954 |
|
4955 /** |
|
4956 Smart card application status. |
|
4957 |
|
4958 Modes: Common |
|
4959 */ |
|
4960 enum TSmartCardApplicationAction |
|
4961 { |
|
4962 /** |
|
4963 Smart card application will be activated. |
|
4964 */ |
|
4965 EScApplicationActivate, |
|
4966 /** |
|
4967 Smart card application will be terminated. |
|
4968 */ |
|
4969 EScTerminate |
|
4970 }; |
|
4971 |
|
4972 /** |
|
4973 Smart card application file types. For definitions see TS 102.221. |
|
4974 |
|
4975 Modes: Common |
|
4976 */ |
|
4977 enum TScFileType |
|
4978 { |
|
4979 /** |
|
4980 Smart card file type is unknown. |
|
4981 */ |
|
4982 EUnknown, |
|
4983 /** |
|
4984 Smart card file type is linear fixed. |
|
4985 |
|
4986 This is a record-based file. |
|
4987 */ |
|
4988 ELinearFixed, |
|
4989 /** |
|
4990 Smart card file type is cyclic. |
|
4991 |
|
4992 This is a record-based file. |
|
4993 */ |
|
4994 ECyclic, |
|
4995 /** |
|
4996 Smart card file type is transparent. |
|
4997 |
|
4998 This is a binary file. |
|
4999 */ |
|
5000 ETransparent |
|
5001 }; |
|
5002 |
|
5003 /** |
|
5004 Typedef to hold a 2-byte file identifier. |
|
5005 */ |
|
5006 typedef TUint16 TScFileID; |
|
5007 |
|
5008 /** Smart card application file info version v5.0. |
|
5009 Modes: Common |
|
5010 |
|
5011 @see GetScFileInfo() |
|
5012 @publishedPartner |
|
5013 @released |
|
5014 */ |
|
5015 class TScFileInfoV5 : public TMultimodeType |
|
5016 { |
|
5017 public: |
|
5018 IMPORT_C TScFileInfoV5(); |
|
5019 public: |
|
5020 /** |
|
5021 Smart card file identifier. |
|
5022 */ |
|
5023 TScFileID iFileID; |
|
5024 /** |
|
5025 The type of the smart card file. Options are |
|
5026 Linear Fixed, Cyclic or Transparent. |
|
5027 */ |
|
5028 TScFileType iType; |
|
5029 /** |
|
5030 Total length of the file. As specified in TS 102.221 the maximum length of an EF is 0xFFF bytes. |
|
5031 */ |
|
5032 TInt iTotalLength; |
|
5033 /** |
|
5034 If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the fixed length of a record in the file. |
|
5035 If file type is ETransparent then this value is unused and will be set to 0. |
|
5036 |
|
5037 From TS 102.221 the maximum length of a record in an EF is 255 bytes. |
|
5038 */ |
|
5039 TInt iRecordLength; |
|
5040 /** |
|
5041 If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the number of records in the file. |
|
5042 If file type is ETransparent then this value is unused and will be set to 0. |
|
5043 |
|
5044 From TS 102.221 the maximum number of records in an EF is 254. |
|
5045 */ |
|
5046 TInt iNumberRecords; |
|
5047 }; |
|
5048 |
|
5049 |
|
5050 /** A typedef'd packaged TScFileInfoV5 for passing through a generic API |
|
5051 function member. |
|
5052 */ |
|
5053 typedef TPckg<TScFileInfoV5> TScFileInfoV5Pckg; |
|
5054 |
|
5055 /** |
|
5056 This based on the maximum number of bytes in a command PDU |
|
5057 as defined in TS 102.221 however the actual path string is very unlikely to ever be this big. |
|
5058 |
|
5059 Modes: Common |
|
5060 */ |
|
5061 enum{ KMaxScFilePathLength = 256}; |
|
5062 |
|
5063 /** |
|
5064 A typedef'd buffer to hold the path to an EF file. |
|
5065 */ |
|
5066 typedef TBuf8<KMaxScFilePathLength> TScFilePathReference; |
|
5067 |
|
5068 |
|
5069 /** |
|
5070 Class that holds a smart card applications AID and associated file path string. |
|
5071 |
|
5072 Modes: Common |
|
5073 |
|
5074 @see GetScFileInfo() |
|
5075 @publishedPartner |
|
5076 @released |
|
5077 */ |
|
5078 class TScFilePath |
|
5079 { |
|
5080 public: |
|
5081 IMPORT_C TScFilePath(); |
|
5082 public: |
|
5083 /** |
|
5084 AID of application. This may be empty implying the iPath is a path reference starting at the master file (MF). |
|
5085 */ |
|
5086 TAID iAID; |
|
5087 /** |
|
5088 Full path reference to file. |
|
5089 |
|
5090 The iPath must define the file path using full path referencing. This is because the client does not know |
|
5091 what is the currently selected EF or DF and it is therefore necessary to select the file by full |
|
5092 path referencing from the master file. |
|
5093 |
|
5094 If iAID value is empty then the iPath reference starts from the MF file but should not include the file ID of the MF (3F00) itself. |
|
5095 E.g. To reference the EF_DIR - iAID would be empty and iPath would be set to "2F00". |
|
5096 E.g. To refefence the EF_SMS under DF_TELECOM on a 2G SIM ICC - iAID would be empty and iPath would be set to "7F106F3C". |
|
5097 |
|
5098 If iAID is non-empty then it refers to the AID of the application and iPath is a path reference to a file in that application, |
|
5099 In this situation the path reference may start with the implicit FID of the application DF (7FFF). |
|
5100 E.g. The path to reference to the EF_SMS file in a USIM application using implicit ADF FID would |
|
5101 be "7FFF6F3C". |
|
5102 |
|
5103 See TS102.221 section 8.4.2 for more information. |
|
5104 */ |
|
5105 TScFilePathReference iPath; |
|
5106 }; |
|
5107 |
|
5108 /** Smart card application file identifier and access offsets. This class is used to identify a file and the |
|
5109 location in a file to either read or write. Inherits attributes from TScFilePath which provide the |
|
5110 parent AID and full path reference. |
|
5111 |
|
5112 Modes: Common |
|
5113 |
|
5114 @see TScFilePath |
|
5115 @see ReadScFile() |
|
5116 @see UpdateScFile() |
|
5117 @publishedPartner |
|
5118 @released |
|
5119 */ |
|
5120 class TScFilePathWithAccessOffsets : public TScFilePath |
|
5121 { |
|
5122 public: |
|
5123 IMPORT_C TScFilePathWithAccessOffsets(); |
|
5124 public: |
|
5125 /** |
|
5126 The type of the smart card file. Options are |
|
5127 Linear Fixed, Cyclic or Transparent. |
|
5128 */ |
|
5129 TScFileType iType; |
|
5130 /** |
|
5131 If file type is ELinearFixed or ECyclic then this is the starting record index to read or update. |
|
5132 This must be less than the number of records in the file. |
|
5133 |
|
5134 If file type is ETransparent then this is the offset (in bytes) from the start of the transparent file to read or update. |
|
5135 This must be less than the total file size. |
|
5136 */ |
|
5137 TUint iStartOffset; |
|
5138 /** |
|
5139 If the file type is ELinearFixed or ECyclic then this is unused. |
|
5140 NOTE: A call to ReadScFile or UpdateScFile for a record based file type will only read or update |
|
5141 one record as described in TS 102.221 READ RECORD and UPDATE RECORD. |
|
5142 |
|
5143 If file type is ETransparent then this is the number of bytes to read or update. |
|
5144 */ |
|
5145 TUint iCount; |
|
5146 }; |
|
5147 |
|
5148 IMPORT_C void EnumerateSmartCardApplications(TRequestStatus& aReqStatus, TUint& aCount) const; |
|
5149 IMPORT_C void GetSmartCardApplicationInfo(TRequestStatus& aReqStatus, TUint aAppIndex, TDes8& aInfo) const; |
|
5150 IMPORT_C void NotifySmartCardApplicationInfoChange(TRequestStatus& aReqStatus, TAID& aAID, TSmartCardApplicationEvent& aEvent) const; |
|
5151 IMPORT_C void SetSmartCardApplicationStatus(TRequestStatus& aReqStatus, const TAID& aAID, TSmartCardApplicationAction aAppAction) const; |
|
5152 IMPORT_C void GetScFileInfo(TRequestStatus& aReqStatus, const TScFilePath& aFilePathId, TDes8& aInfo) const; |
|
5153 IMPORT_C void ReadScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aReadBuffer) const; |
|
5154 IMPORT_C void UpdateScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aUpdateBuffer) const; |
|
5155 |
|
5156 /***********************************************************************************/ |
|
5157 // |
|
5158 // Mobile USIM Applications Functional Unit |
|
5159 // |
|
5160 /***********************************************************************************/ |
|
5161 |
|
5162 enum { KUSimApplicationLabelMaxSize=32 }; |
|
5163 |
|
5164 IMPORT_C void EnumerateUSimApplications(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1 |
|
5165 |
|
5166 class TUSimApplicationInfoV2 : public TMultimodeType |
|
5167 /** USIM application information for version v2.0. |
|
5168 |
|
5169 @deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead. |
|
5170 */ |
|
5171 { |
|
5172 public: |
|
5173 IMPORT_C TUSimApplicationInfoV2(); |
|
5174 public: |
|
5175 /** USIM Application identifier. |
|
5176 |
|
5177 Modes: WCDMA */ |
|
5178 TAID iAID; |
|
5179 /** USIM Application label. 16 bit USC2 characters string provided by the application |
|
5180 provider to be shown to the user for information, e.g. operator name. It is |
|
5181 recommended by ETSI/3GPP spec that the application label does not exceed 32 |
|
5182 bytes. |
|
5183 |
|
5184 The application label is optional. If no label is provided, the buffer should |
|
5185 be NULL. |
|
5186 |
|
5187 Modes: WCDMA */ |
|
5188 TBuf8<KUSimApplicationLabelMaxSize> iLabel; |
|
5189 }; |
|
5190 |
|
5191 /** A typedef'd packaged TUSimApplicationInfoV2 for passing through a generic API |
|
5192 function member. |
|
5193 |
|
5194 @deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead. |
|
5195 */ |
|
5196 typedef TPckg<TUSimApplicationInfoV2> TUSimApplicationInfoV2Pckg; |
|
5197 |
|
5198 IMPORT_C void GetUSimApplicationInfo(TRequestStatus& aReqStatus, TInt aUSimAppIndex, TDes8& aInfo) const; //deprecated 9.1 |
|
5199 IMPORT_C void NotifyUSimApplicationsInfoChange(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1 |
|
5200 |
|
5201 /** USIM Application Status. |
|
5202 |
|
5203 Modes: WCDMA |
|
5204 |
|
5205 @deprecated 9.1 Use @see TSmartCardApplicationAction instead. |
|
5206 */ |
|
5207 enum TUSimAppAction |
|
5208 { |
|
5209 /** USIM application will be activated. |
|
5210 |
|
5211 Modes: WCDMA */ |
|
5212 EUSimActivate, |
|
5213 /** USIM application will be terminated. |
|
5214 |
|
5215 Modes: WCDMA */ |
|
5216 EUSimTerminate |
|
5217 }; |
|
5218 |
|
5219 IMPORT_C void SetUSimApplicationStatus(TRequestStatus& aReqStatus, const TAID aAID, TUSimAppAction aUsimAppAction) const; //deprecated 9.1 |
|
5220 |
|
5221 /** USIM Application selection mode. |
|
5222 |
|
5223 Mode: WCDMA */ |
|
5224 enum TUSimSelectionMode |
|
5225 { |
|
5226 /** USIM application is selected automatically by phone. |
|
5227 |
|
5228 Mode: WCDMA */ |
|
5229 EUSimSelectionAutomatic, |
|
5230 /** USIM application is selected manually by user. |
|
5231 |
|
5232 Mode: WCDMA */ |
|
5233 EUSimSelectionManual |
|
5234 }; |
|
5235 |
|
5236 IMPORT_C TInt SetUSimAppsSelectionMode(TUSimSelectionMode aUSimSelectionMode) const; |
|
5237 IMPORT_C TInt GetUSimAppsSelectionMode(TUSimSelectionMode& aUSimSelectionMode) const; |
|
5238 IMPORT_C void NotifyUSimAppsSelectionModeChange(TRequestStatus& aReqStatus, TUSimSelectionMode& aUSimSelectionMode) const; |
|
5239 IMPORT_C void GetCurrentActiveUSimApplication(TRequestStatus& aReqStatus, TAID& aAID) const; |
|
5240 |
|
5241 /***********************************************************************************/ |
|
5242 // |
|
5243 // Mobile MMS Functional Unit |
|
5244 // |
|
5245 /***********************************************************************************/ |
|
5246 |
|
5247 /** max size of MMS notification buffer. */ |
|
5248 enum{KMaxMmsNotification = 253}; |
|
5249 |
|
5250 /** |
|
5251 Identifies current status of MMS. |
|
5252 */ |
|
5253 enum TMmsStatus |
|
5254 { |
|
5255 /** |
|
5256 The MMS has not been retrieved. |
|
5257 */ |
|
5258 EMmsNotRetrieved, |
|
5259 /** |
|
5260 The MMS has been retrieved. |
|
5261 */ |
|
5262 EMmsRetrieved, |
|
5263 /** |
|
5264 The MMS has been rejected. |
|
5265 */ |
|
5266 EMmsRejected, |
|
5267 /** |
|
5268 The MMS has been forwarded. |
|
5269 */ |
|
5270 EMmsforwarded |
|
5271 }; |
|
5272 |
|
5273 /** |
|
5274 MMS Implementation. |
|
5275 */ |
|
5276 enum TMmsImplementation |
|
5277 { |
|
5278 /** |
|
5279 Unknown implementation for MMS. |
|
5280 */ |
|
5281 KMmsImplUnknwown=0x00, |
|
5282 /** |
|
5283 Wap implementation for MMS. |
|
5284 */ |
|
5285 KWapImplementation=0x01 |
|
5286 }; |
|
5287 |
|
5288 /** |
|
5289 MMS Connectivity settings. |
|
5290 */ |
|
5291 enum TMmsConnParams |
|
5292 { |
|
5293 /** |
|
5294 MMS User Preferences. |
|
5295 */ |
|
5296 EUserPreferences, |
|
5297 /** |
|
5298 MMS Issuer Connectivity Parameters. |
|
5299 */ |
|
5300 EIssuerConnParams, |
|
5301 /** |
|
5302 MMS User Connectivity Parameters. |
|
5303 */ |
|
5304 EUserConnParams |
|
5305 }; |
|
5306 |
|
5307 /** |
|
5308 MMS field Id tags. |
|
5309 */ |
|
5310 enum TMobileMMSFieldTags |
|
5311 { |
|
5312 /** |
|
5313 Tag id for MMS connectivity parameters. |
|
5314 */ |
|
5315 ETagMmsConnParams=0xAB, |
|
5316 /** |
|
5317 Tag id for MMS Implementation. |
|
5318 */ |
|
5319 ETagMmsImpl=0x80, |
|
5320 /** |
|
5321 Tag id for MMS Relay/Server. |
|
5322 */ |
|
5323 ETagMmsServer=0x81, |
|
5324 /** |
|
5325 Tag id for Interface to Core Network and Bearer. |
|
5326 */ |
|
5327 ETagMmsBearerIE=0x82, |
|
5328 /** |
|
5329 Tag id for Gateway. |
|
5330 */ |
|
5331 ETagMmsGateway=0x83 |
|
5332 }; |
|
5333 |
|
5334 class TMmsNotificationV3 : public TMultimodeType |
|
5335 /** |
|
5336 Class containing MMS notification paramters. |
|
5337 */ |
|
5338 { |
|
5339 public : |
|
5340 IMPORT_C TMmsNotificationV3(); |
|
5341 public : |
|
5342 /** |
|
5343 Free/Used space. |
|
5344 */ |
|
5345 TBool iSpace; |
|
5346 /** |
|
5347 Notification read/not read. |
|
5348 */ |
|
5349 TBool iNotification; |
|
5350 /** |
|
5351 MMS status. |
|
5352 */ |
|
5353 TMmsStatus iMmsStatus; |
|
5354 /** |
|
5355 MMS implementation. |
|
5356 */ |
|
5357 TMmsImplementation iImplementation; |
|
5358 /** |
|
5359 MMS notification buffer. |
|
5360 */ |
|
5361 TBuf8<KMaxMmsNotification> iNotify; |
|
5362 }; |
|
5363 |
|
5364 typedef TPckg<TMmsNotificationV3> TMmsNotificationV3Pckg; |
|
5365 |
|
5366 // MMS notification |
|
5367 IMPORT_C void NotifyMmsUpdate(TRequestStatus& aReqStatus, TDes8& aNotification) const; |
|
5368 IMPORT_C void SetMmsUserConnParams(TRequestStatus& aReqStatus, TDes8& aConnectivity) const; |
|
5369 IMPORT_C void SetMmsUserPreferences(TRequestStatus& aReqStatus, TDes8& aPreferences) const; |
|
5370 IMPORT_C void GetMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const; |
|
5371 IMPORT_C void NotifyMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const; |
|
5372 |
|
5373 /***********************************************************************************/ |
|
5374 // |
|
5375 // Mobile MailBox Numbers Functional Unit |
|
5376 // |
|
5377 /***********************************************************************************/ |
|
5378 |
|
5379 class TMobilePhoneVoicemailIdsV3 : public TMultimodeType |
|
5380 /** |
|
5381 Contains mailbox numbers. |
|
5382 */ |
|
5383 { |
|
5384 public : |
|
5385 IMPORT_C TMobilePhoneVoicemailIdsV3(); |
|
5386 public : |
|
5387 /** |
|
5388 Phonebook entry for "voicemail" mailbox number. |
|
5389 */ |
|
5390 TUint8 iVoice; |
|
5391 /** |
|
5392 Phonebook entry for "data" mailbox number. |
|
5393 */ |
|
5394 TUint8 iData; |
|
5395 /** |
|
5396 Phonebook entry for "fax" mailbox number. |
|
5397 */ |
|
5398 TUint8 iFax; |
|
5399 /** |
|
5400 Phonebook entry for "other" mailbox number. |
|
5401 */ |
|
5402 TUint8 iOther; |
|
5403 }; |
|
5404 |
|
5405 typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg; |
|
5406 |
|
5407 IMPORT_C void GetMailboxNumbers(TRequestStatus& aReqStatus, TDes8& aMailBox) const; |
|
5408 IMPORT_C void NotifyMailboxNumbersChange(TRequestStatus& aReqStatus, TDes8& aMailBox) const; |
|
5409 |
|
5410 /***********************************************************************************/ |
|
5411 // |
|
5412 // Mobile APN Control List Functional Unit |
|
5413 // |
|
5414 /***********************************************************************************/ |
|
5415 |
|
5416 enum { KMaxApnName = 100 }; |
|
5417 |
|
5418 class TAPNEntryV3 : public TMultimodeType |
|
5419 /** |
|
5420 Contains parameters for an Access Point Name (APN) entry contained |
|
5421 within the Access Control List EFacl file in the UICC. |
|
5422 */ |
|
5423 { |
|
5424 public: |
|
5425 IMPORT_C TAPNEntryV3(); |
|
5426 public: |
|
5427 /** |
|
5428 GGSN DNS name. |
|
5429 */ |
|
5430 TBuf8<KMaxApnName> iApn; |
|
5431 }; |
|
5432 |
|
5433 typedef TPckg<TAPNEntryV3> TAPNEntryV3Pckg; |
|
5434 |
|
5435 IMPORT_C void EnumerateAPNEntries(TRequestStatus& aReqStatus, TUint32 &aIndex) const; |
|
5436 IMPORT_C void GetAPNname(TRequestStatus& aReqStatus, const TUint32 aIndex, TDes8& aAPN) const; |
|
5437 IMPORT_C void AppendAPNName(TRequestStatus& aReqStatus, const TDes8& aAPN) const; |
|
5438 IMPORT_C void DeleteAPNName(TRequestStatus& aReqStatus, TUint32 aIndex) const; |
|
5439 IMPORT_C void NotifyAPNListChanged(TRequestStatus& aReqStatus) const; |
|
5440 |
|
5441 enum TAPNControlListServiceStatus { |
|
5442 /** |
|
5443 The APN control list service is disabled. |
|
5444 */ |
|
5445 EAPNControlListServiceDisabled, |
|
5446 /** |
|
5447 The APN control list service is enabled. |
|
5448 */ |
|
5449 EAPNControlListServiceEnabled |
|
5450 }; |
|
5451 |
|
5452 IMPORT_C void SetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus aAPNControlListServiceStatus) const; |
|
5453 IMPORT_C void GetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const; |
|
5454 IMPORT_C void NotifyAPNControlListServiceStatusChange(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const; |
|
5455 |
|
5456 /***********************************************************************************/ |
|
5457 // |
|
5458 // Retrieve Total Air Time Duration Functional Unit |
|
5459 // |
|
5460 /***********************************************************************************/ |
|
5461 IMPORT_C TInt GetAirTimeDuration(TTimeIntervalSeconds& aTime) const; |
|
5462 IMPORT_C void NotifyAirTimeDurationChange(TRequestStatus& aReqStatus,TTimeIntervalSeconds& aTime) const; |
|
5463 /***********************************************************************************/ |
|
5464 // |
|
5465 // Terminate All Calls |
|
5466 // |
|
5467 /***********************************************************************************/ |
|
5468 IMPORT_C void TerminateAllCalls(TRequestStatus& aReqStatus) const; |
|
5469 |
|
5470 /***********************************************************************************/ |
|
5471 // |
|
5472 // Auto Redial Functional Unit |
|
5473 // |
|
5474 /***********************************************************************************/ |
|
5475 IMPORT_C void ClearBlacklist(TRequestStatus& aReqStatus) const; |
|
5476 |
|
5477 /***********************************************************************************/ |
|
5478 // |
|
5479 // Mobile Personalisation Functional Unit |
|
5480 // |
|
5481 /***********************************************************************************/ |
|
5482 |
|
5483 /** |
|
5484 Indentifies the personalisation scheme capabilities of the UICC/ME. |
|
5485 */ |
|
5486 enum TMobilePhonePersonalisationCaps |
|
5487 { |
|
5488 /** |
|
5489 UICC/ME personalisation based on network (MCC, MNC) information is possible. |
|
5490 */ |
|
5491 KCapsPersonalisedNetwork=0x01, |
|
5492 /** |
|
5493 UICC/ME personalisation based on network (MCC, MNC, IMSI network code group) information is possible. |
|
5494 */ |
|
5495 KCapsPersonalisedNetworkSub=0x02, |
|
5496 /** |
|
5497 UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFCNL) information is possible. |
|
5498 */ |
|
5499 KCapsPersonalisedServiceProvider=0x04, |
|
5500 /** |
|
5501 UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFGID2, EFCNL) information is possible. |
|
5502 */ |
|
5503 KCapsPersonalisedCorporate=0x08, |
|
5504 /** |
|
5505 UICC/ME personalisation based on (IMSI SIM/USIM code group) information is possible. |
|
5506 */ |
|
5507 KCapsPersonalisedUSim=0x10 |
|
5508 }; |
|
5509 |
|
5510 /** |
|
5511 Identifies the current personalisation schemes that are active. |
|
5512 */ |
|
5513 enum TMobilePhonePersonalisationScheme |
|
5514 { |
|
5515 /** |
|
5516 The ME is personalised under the network scheme. |
|
5517 */ |
|
5518 KPersonalisedNetwork=0x01, |
|
5519 /** |
|
5520 The ME is personalised under the network sub scheme. |
|
5521 */ |
|
5522 KPersonalisedNetworkSub=0x02, |
|
5523 /** |
|
5524 The ME is personalised under the service provider scheme. |
|
5525 */ |
|
5526 KPersonalisedServiceProvider=0x04, |
|
5527 /** |
|
5528 The ME is personalised under the corprorate scheme. |
|
5529 */ |
|
5530 KPersonalisedCorporate=0x08, |
|
5531 /** |
|
5532 The ME is personalised under the SIM/USIM scheme. |
|
5533 */ |
|
5534 KPersonalisedUSim=0x10 |
|
5535 }; |
|
5536 |
|
5537 /** |
|
5538 Identifies the personalisation scheme to be set. |
|
5539 */ |
|
5540 enum TMobilePhonePersonalisation |
|
5541 { |
|
5542 /** |
|
5543 Personalise the ME using the network scheme. |
|
5544 */ |
|
5545 EPersonaliseNetwork, |
|
5546 /** |
|
5547 Personalise the ME using the network sub scheme. |
|
5548 */ |
|
5549 EPersonaliseNetworkSub, |
|
5550 /** |
|
5551 Personalise the ME using the service provider scheme. |
|
5552 */ |
|
5553 EPersonaliseServiceProvider, |
|
5554 /** |
|
5555 Personalise the ME using the corporate scheme. |
|
5556 */ |
|
5557 EPersonaliseCorporate, |
|
5558 /** |
|
5559 Personalise the ME using the SIM/USIM scheme. |
|
5560 */ |
|
5561 EPersonaliseUsim |
|
5562 }; |
|
5563 |
|
5564 IMPORT_C TInt GetPersonalisationCaps(TUint32& aCaps) const; |
|
5565 IMPORT_C void GetPersonalisationStatus(TRequestStatus& aReqStatus, TUint32& aPersSchemes) const; |
|
5566 IMPORT_C void SetPersonalisationStatus(TRequestStatus& aReqStatus, const TMobilePhonePersonalisation aPersSchemes, const TDes& aPersCode) const; |
|
5567 |
|
5568 /***********************************************************************************/ |
|
5569 // |
|
5570 // Etel 3rd Party v1.0 Parameter classes |
|
5571 // |
|
5572 /***********************************************************************************/ |
|
5573 |
|
5574 class TEtel3rdPartyMobileNetworkInfoV1 : public TMultimodeType |
|
5575 /** |
|
5576 Defines the parameters used to set-up of a call originated from an ETel 3rd Party client. |
|
5577 |
|
5578 TEtel3rdPartyMobileNetworkInfoV1 was used to give an indication to the TSY of where the |
|
5579 request was originating from; i.e. if the request is from an application using the ISV |
|
5580 API or ETel API, which allowed the TSY to make a decision based on the origin. This |
|
5581 data type also provided further protection by not including any location information |
|
5582 parameters. With PlatSec being introduced in v9.0, there was no need to use this data |
|
5583 structure, as each API is policed with the adequate PlatSec capabilities. Therefore, |
|
5584 in v9.0 TEtel3rdPartyMobileNetworkInfoV1 was deprecated and removed from the ETel ISV |
|
5585 (ETel3rdParty) implementation. |
|
5586 |
|
5587 TEtel3rdPartyMobileNetworkInfoV1 was only used internally by the ETel ISV API when calls |
|
5588 are made to RMobilePhone::GetCurrentNetwork or RMobilePhone::NotifyCurrentNetworkChange. |
|
5589 The TSY no longer needs to support this as ETel ISV now uses the TMobilePhoneNetworkInfoV2 |
|
5590 data structure and no distinction is required for ISV Apps. |
|
5591 |
|
5592 @publishedPartner |
|
5593 @deprecated 9.0 This class has been deprecated from 9.0 and should no longer be used. |
|
5594 */ |
|
5595 { |
|
5596 public: |
|
5597 IMPORT_C TEtel3rdPartyMobileNetworkInfoV1(); |
|
5598 public: |
|
5599 /** Mode of the network. |
|
5600 Modes: Common |
|
5601 |
|
5602 @see TMobilePhoneNetworkMode */ |
|
5603 TMobilePhoneNetworkMode iMode; |
|
5604 /** Status of the network |
|
5605 |
|
5606 Modes: Common |
|
5607 |
|
5608 @see TMobilePhoneNetworkStatus */ |
|
5609 TMobilePhoneNetworkStatus iStatus; |
|
5610 /** The band and band class of the CDMA network operator. |
|
5611 |
|
5612 Modes: CDMA |
|
5613 |
|
5614 @see TMobilePhoneNetworkBandInfo */ |
|
5615 TMobilePhoneNetworkBandInfo iBandInfo; |
|
5616 /** The MCC of the network. |
|
5617 |
|
5618 Modes: Common |
|
5619 |
|
5620 @see TMobilePhoneNetworkCountryCode */ |
|
5621 TMobilePhoneNetworkCountryCode iCountryCode; |
|
5622 /** The system identity (SID) of the CDMA network or the system identity (SID) of the AMPS network. |
|
5623 |
|
5624 Modes: CDMA |
|
5625 |
|
5626 @see TMobilePhoneNetworkIdentity */ |
|
5627 TMobilePhoneNetworkIdentity iCdmaSID; |
|
5628 /** The network identity (NID in CDMA and MNC in GSM). |
|
5629 |
|
5630 Modes: Common |
|
5631 |
|
5632 @see TMobilePhoneNetworkIdentity */ |
|
5633 TMobilePhoneNetworkIdentity iNetworkId; |
|
5634 /** The alpha-tag displayed when this is the serving network. |
|
5635 |
|
5636 Modes: Common |
|
5637 |
|
5638 @see TMobilePhoneNetworkDisplayTag */ |
|
5639 TMobilePhoneNetworkDisplayTag iDisplayTag; |
|
5640 /** The short name (up to 10 characters) of the network operator. |
|
5641 |
|
5642 Modes: GSM/WCDMA |
|
5643 |
|
5644 @see TMobilePhoneNetworkShortName */ |
|
5645 TMobilePhoneNetworkShortName iShortName; |
|
5646 /** The long name (up to 20 characters) of the network operator. |
|
5647 |
|
5648 Modes: GSM/WCDMA |
|
5649 |
|
5650 @see TMobilePhoneNetworkLongName */ |
|
5651 TMobilePhoneNetworkLongName iLongName; |
|
5652 /** The type of network access. |
|
5653 |
|
5654 @see TMobilePhoneNetworkAccess */ |
|
5655 TMobilePhoneNetworkAccess iAccess; |
|
5656 }; |
|
5657 |
|
5658 /** A typedef'd packaged TEtel3rdPartyMobileNetworkInfoV1 for passing through a generic |
|
5659 API function member. |
|
5660 |
|
5661 @deprecated 9.0 |
|
5662 */ |
|
5663 typedef TPckg<TEtel3rdPartyMobileNetworkInfoV1> TEtel3rdPartyMobileNetworkInfoV1Pckg; |
|
5664 |
|
5665 /** IMS Authenticate constants,in accordance to 3GPP TS 33.102, |
|
5666 section 6.3.7, and RFC 3310*/ |
|
5667 enum TMobilePhoneAuthenticate |
|
5668 { |
|
5669 /** length of autn is 128bits - 16octets*/ |
|
5670 KAutnLength=16, |
|
5671 /** length of RAND is 16 octets */ |
|
5672 KRandLength=16, |
|
5673 /** length of RES is 16 octets*/ |
|
5674 KResLength=16, |
|
5675 /** length of IK is 16 octets*/ |
|
5676 KIkLength=16, |
|
5677 /** length of CK is 16 octets*/ |
|
5678 KCkLength=16, |
|
5679 /** length of Kc (GSM cipher key) is 8 octets*/ |
|
5680 KKcLength=8, |
|
5681 /** length of is 112 bits - 14 octets */ |
|
5682 KAutsLength=14, |
|
5683 }; |
|
5684 |
|
5685 /** Maximum size of the record in an EF is 0xff( 255 bytes) according to TS 102.221, section 8.2.2.2 |
|
5686 */ |
|
5687 enum TMobilePhoneRelease5EFMaxSize |
|
5688 { |
|
5689 KRelease5EFMaxSize=255, |
|
5690 }; |
|
5691 |
|
5692 /** typedefs for encapsulation of the buffers that hold authorization data stored on the ISIM/USIM*/ |
|
5693 /** typedef for Internet Multimedia Public Identity*/ |
|
5694 typedef TBuf8<KRelease5EFMaxSize> TIMPU; |
|
5695 /** typedef for Internet Multimedia Private Identity*/ |
|
5696 typedef TBuf8<KRelease5EFMaxSize> TIMPI; |
|
5697 /** typedef for Home Network Domain Name*/ |
|
5698 typedef TBuf8<KRelease5EFMaxSize> THNDN; |
|
5699 |
|
5700 |
|
5701 /** IMS Authenticate API*/ |
|
5702 /** Class encapsulates data needed as an input/output for |
|
5703 ISIM/USIM AUTHENTICATE command |
|
5704 |
|
5705 @publishedPartner |
|
5706 @released |
|
5707 */ |
|
5708 class TImsAuthenticateDataV5: public TMultimodeType |
|
5709 { |
|
5710 public: |
|
5711 IMPORT_C TImsAuthenticateDataV5(); |
|
5712 /** holds value of network challenge AUTN */ |
|
5713 TBuf8<KAutnLength> iAUTN; |
|
5714 /** holds value of network challenge RAND */ |
|
5715 TBuf8<KRandLength> iRAND; |
|
5716 /** holds result RES of AUTHENTICATE command when it's successfull*/ |
|
5717 TBuf8<KResLength> iRES; |
|
5718 /** holds value of session key Integrity Key */ |
|
5719 TBuf8<KIkLength> iIK; |
|
5720 /** holds value of session key Cipher Key */ |
|
5721 TBuf8<KCkLength> iCK; |
|
5722 /** holds value of Authentication Token when AUTHENTICATE fails*/ |
|
5723 TBuf8<KAutsLength> iAUTS; |
|
5724 }; |
|
5725 |
|
5726 /** packaged version of TImsAuthenticateDataV5, used when this structure has to be passeed via IPC*/ |
|
5727 typedef TPckg<TImsAuthenticateDataV5> TImsAuthenticateDataV5Pckg; |
|
5728 friend class CAsyncRetrieveAuthorizationInfo; |
|
5729 |
|
5730 /** API that execute ISIM/USIM AUTHENTICATE command*/ |
|
5731 IMPORT_C void ImsAuthenticate (TRequestStatus& aReqStatus,TDes8& authenticateDataPckgd) const; |
|
5732 |
|
5733 IMPORT_C void NotifyImsAuthorizationInfoChange(TRequestStatus& aReqStatus) const; |
|
5734 |
|
5735 /** |
|
5736 Source location of IMS Authorization data. |
|
5737 */ |
|
5738 enum TAuthorizationDataSource |
|
5739 { |
|
5740 /** Authorization data source is USIM. */ |
|
5741 EFromUSIM, |
|
5742 /** Authorization data source is ISIM. */ |
|
5743 EFromISIM |
|
5744 }; |
|
5745 |
|
5746 /** |
|
5747 Class encapsulates IMS authorization data stored in the ISIM or USIM |
|
5748 |
|
5749 @publishedPartner |
|
5750 @released |
|
5751 */ |
|
5752 class CImsAuthorizationInfoV5 : public CBase |
|
5753 { |
|
5754 public: |
|
5755 IMPORT_C ~CImsAuthorizationInfoV5(); |
|
5756 IMPORT_C static CImsAuthorizationInfoV5* NewL(); |
|
5757 IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer); |
|
5758 IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer); |
|
5759 IMPORT_C TUint ExtensionId() const; |
|
5760 public: |
|
5761 /**Internet Multimedia Private Identity stored on the ISIM/USIM*/ |
|
5762 RMobilePhone::TIMPI iIMPI; |
|
5763 /**Internet Multimedia Public Identity(ies) stored on the ISIM/USIM*/ |
|
5764 RArray<RMobilePhone::TIMPU> iIMPUArray; |
|
5765 /**Home Network Domain Name stored on the ISIM/USIM*/ |
|
5766 RMobilePhone::THNDN iHomeNetworkDomainName; |
|
5767 /**indicates whether authorization data has been retrieved from the ISIM*/ |
|
5768 TAuthorizationDataSource iAuthenticationDataSource; |
|
5769 protected: |
|
5770 CImsAuthorizationInfoV5(); |
|
5771 /** version of the data supported*/ |
|
5772 TUint iExtensionId; |
|
5773 }; |
|
5774 |
|
5775 /** |
|
5776 Defines the input as well as the ouput parameters used when performing the |
|
5777 (U)ICC AUTHENTICATE command. |
|
5778 |
|
5779 @publishedPartner |
|
5780 @released |
|
5781 */ |
|
5782 class TSmartCardAuthenticateDataV6 : public TImsAuthenticateDataV5 |
|
5783 { |
|
5784 public: |
|
5785 IMPORT_C TSmartCardAuthenticateDataV6(); |
|
5786 |
|
5787 public: |
|
5788 TBuf8<KKcLength> iKc; |
|
5789 }; |
|
5790 |
|
5791 /** |
|
5792 Packaged version of TSmartCardAuthenticateDataV6, used when this |
|
5793 structure has to be passeed via IPC. |
|
5794 */ |
|
5795 typedef TPckg<TSmartCardAuthenticateDataV6> TSmartCardAuthenticateDataV6Pckg; |
|
5796 |
|
5797 IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, TDes8& aAuthDataPckgd) const; |
|
5798 IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, const TAID& aAID, TDes8& aAuthDataPckgd) const; |
|
5799 |
|
5800 private: |
|
5801 CMobilePhonePtrHolder* iMmPtrHolder; |
|
5802 RMobilePhone(const RMobilePhone& aPhone); |
|
5803 |
|
5804 protected: |
|
5805 IMPORT_C void ConstructL(); |
|
5806 IMPORT_C void Destruct(); |
|
5807 }; |
|
5808 |
|
5809 |
|
5810 /*********************************************************/ |
|
5811 // |
|
5812 // Phone Storage functionality (RMobilePhoneStore) |
|
5813 // |
|
5814 /*********************************************************/ |
|
5815 |
|
5816 |
|
5817 |
|
5818 class CMobilePhoneStorePtrHolder; |
|
5819 class RMobilePhoneStore : public RTelSubSessionBase |
|
5820 /** |
|
5821 Abstract class used to define common phone storage actions and types |
|
5822 |
|
5823 Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore |
|
5824 */ |
|
5825 { |
|
5826 public: |
|
5827 friend class CAsyncRetrieveStoreList; |
|
5828 |
|
5829 /** Types of store. |
|
5830 |
|
5831 Modes: Common */ |
|
5832 enum TMobilePhoneStoreType |
|
5833 { |
|
5834 /** Store type is unknown. |
|
5835 |
|
5836 Modes: Common */ |
|
5837 EPhoneStoreTypeUnknown, |
|
5838 /** Store contains SMS messages. |
|
5839 |
|
5840 Modes: Common */ |
|
5841 EShortMessageStore, |
|
5842 /** Store contains NAM entries. |
|
5843 |
|
5844 Modes: CDMA */ |
|
5845 ENamStore, |
|
5846 /** Store contains PhoneBook entries. |
|
5847 |
|
5848 Modes: Common */ |
|
5849 EPhoneBookStore, |
|
5850 /** Store contains emergency number entries. |
|
5851 |
|
5852 Modes: Common */ |
|
5853 EEmergencyNumberStore, |
|
5854 /** Store contains own number entries. |
|
5855 |
|
5856 Modes: Common */ |
|
5857 EOwnNumberStore |
|
5858 }; |
|
5859 |
|
5860 /** Store capabilities. */ |
|
5861 enum TMobilePhoneStoreCaps |
|
5862 { |
|
5863 /** The store can be accessed as a whole using the ReadAll() and StoreAll() member |
|
5864 functions. */ |
|
5865 KCapsWholeStore = 0x80000000, |
|
5866 /** The store can be accessed one entry at a time using the RMobilePhoneStore::Read(), |
|
5867 RMobilePhoneStore::Write() and RMobilePhoneStore::Delete() member functions. */ |
|
5868 KCapsIndividualEntry = 0x40000000, |
|
5869 /** The store can be accessed in order to read entries. */ |
|
5870 KCapsReadAccess = 0x20000000, |
|
5871 /** The store can be accessed in order to write or delete entries. */ |
|
5872 KCapsWriteAccess = 0x10000000, |
|
5873 /** The TSY supports deleting all the store entries at once. */ |
|
5874 KCapsDeleteAll = 0x08000000, |
|
5875 /** The TSY supports notification of store events such as entries added, deleted |
|
5876 or store becoming full. */ |
|
5877 KCapsNotifyEvent = 0x04000000 |
|
5878 }; |
|
5879 |
|
5880 /** The type of store information. As defined in TMobilePhoneStoreInfoV1::iExtensionId |
|
5881 |
|
5882 Modes: Common |
|
5883 |
|
5884 @see TMobilePhoneStoreInfoV1 |
|
5885 @see RMobilePhone::TMultimodeType */ |
|
5886 enum TMobilePhoneStoreInfoExtId |
|
5887 { |
|
5888 /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneStore::TMobilePhoneStoreInfoV1. |
|
5889 Modes: Common */ |
|
5890 KETelMobilePhoneStoreV1=KETelExtMultimodeV1, |
|
5891 /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneBookStore::TMobilePhoneBookInfoV1. |
|
5892 Modes: Common */ |
|
5893 KETelMobilePhonebookStoreV1, |
|
5894 /** Reserved for SMS store specific information class. |
|
5895 Modes: Common */ |
|
5896 KETelMobileSmsStoreV1, |
|
5897 /** The iExtensionId contents indicate that the packaged class is a RMobileNamStore::TMobileNamStoreInfoV1. |
|
5898 Modes: CDMA */ |
|
5899 KETelMobileNamStoreV1, |
|
5900 /** The iExtensionId contents indicate that the packaged class is a RMobileONStore::TMobileONStoreInfoV1. |
|
5901 Modes: Common */ |
|
5902 KETelMobileONStoreV1, |
|
5903 /** Reserved for Emergency Number store specific infoprmation class. |
|
5904 Modes: Common */ |
|
5905 KETelMobileENStoreV1, |
|
5906 /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2. |
|
5907 Modes: Common */ |
|
5908 KETelMobilePhonebookStoreV2=KETelExtMultimodeV2, |
|
5909 |
|
5910 /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2. |
|
5911 Modes: Common */ |
|
5912 KETelMobilePhonebookStoreV5=KEtelExtMultimodeV5 |
|
5913 }; |
|
5914 |
|
5915 |
|
5916 |
|
5917 class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType |
|
5918 /** Defines information and capabilities of a phone-side store. |
|
5919 @publishedPartner |
|
5920 @released */ |
|
5921 { |
|
5922 public: |
|
5923 IMPORT_C TMobilePhoneStoreInfoV1(); |
|
5924 |
|
5925 /** The type of entry in the phone-side store. |
|
5926 |
|
5927 Modes: Common |
|
5928 |
|
5929 @see TMobilePhoneStoreType */ |
|
5930 TMobilePhoneStoreType iType; |
|
5931 /** Indicates the total number of entries that may be held in this store. */ |
|
5932 TInt iTotalEntries; |
|
5933 /** Indicates the current number of entries held in this store. |
|
5934 |
|
5935 Is equal to KIndexNotUsed if the TSY is unable to determine current number |
|
5936 of entries. |
|
5937 |
|
5938 Modes: Common */ |
|
5939 TInt iUsedEntries; |
|
5940 /** Indicates the capabilities of the store. It is the sum of caps constants defined |
|
5941 in TMobilePhoneStoreCaps and those defined for a specialised phone store. |
|
5942 |
|
5943 Modes: Common */ |
|
5944 TUint32 iCaps; |
|
5945 /** The name of the phone-side store. A valid list of names is given in the description |
|
5946 of each specialised store. |
|
5947 |
|
5948 Modes: Common |
|
5949 |
|
5950 @see RMobilePhone::TMobileName */ |
|
5951 RMobilePhone::TMobileName iName; |
|
5952 }; |
|
5953 |
|
5954 /** A typedef'd packaged TMobilePhoneStoreInfoV1 for passing through a generic |
|
5955 API member function. */ |
|
5956 typedef TPckg<TMobilePhoneStoreInfoV1> TMobilePhoneStoreInfoV1Pckg; |
|
5957 |
|
5958 |
|
5959 |
|
5960 class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType |
|
5961 /** Defines common contents of an entry in a phone-side store. |
|
5962 */ |
|
5963 { |
|
5964 public: |
|
5965 |
|
5966 enum |
|
5967 { |
|
5968 KIndexNotUsed = -1 |
|
5969 }; |
|
5970 |
|
5971 protected: |
|
5972 TMobilePhoneStoreEntryV1(); |
|
5973 public: |
|
5974 void InternalizeL(RReadStream& aStream); |
|
5975 void ExternalizeL(RWriteStream& aStream) const; |
|
5976 public: |
|
5977 /** The slot location of the entry within phone-side storage. |
|
5978 |
|
5979 Modes: Common */ |
|
5980 TInt iIndex; |
|
5981 }; |
|
5982 |
|
5983 IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const; |
|
5984 |
|
5985 IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const; |
|
5986 IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const; |
|
5987 |
|
5988 IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const; |
|
5989 IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const; |
|
5990 |
|
5991 /** The store events. It is possible for more than one event to occur at the same |
|
5992 time, therefore the events are a bitmask and should be tested as a bitmask. |
|
5993 |
|
5994 Modes: Common |
|
5995 |
|
5996 @see NotifyStoreEvent() */ |
|
5997 enum TMobileStoreEvent |
|
5998 { |
|
5999 /** The store has become full. This event will trigger after the last possible |
|
6000 entry in a store has been written. */ |
|
6001 KStoreFull =0x00000001, |
|
6002 /** The store was full but now has some space. This event will trigger after one |
|
6003 or more entries have been deleted from a full store. */ |
|
6004 KStoreHasSpace =0x00000002, |
|
6005 /** The store is empty. This event will trigger after the last entry in a store |
|
6006 has been deleted or if all entries are deleted at once. */ |
|
6007 KStoreEmpty =0x00000004, |
|
6008 /** The store has a new entry, placed in the slot indicated by the aIndex parameter. */ |
|
6009 KStoreEntryAdded =0x00000008, |
|
6010 /** The store has deleted the entry that was in the slot indicated by the aIndex |
|
6011 parameter. */ |
|
6012 KStoreEntryDeleted =0x00000010, |
|
6013 /** The store has changed the entry that was in the slot indicated by the aIndex |
|
6014 parameter. */ |
|
6015 KStoreEntryChanged =0x00000020, |
|
6016 /** The store contents have substantially changed and the TSY is recommending that |
|
6017 the client performs a refresh by reading all the contents again. */ |
|
6018 KStoreDoRefresh =0x00000040 |
|
6019 }; |
|
6020 |
|
6021 IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const; |
|
6022 |
|
6023 protected: |
|
6024 CMobilePhoneStorePtrHolder* iStorePtrHolder; |
|
6025 |
|
6026 protected: |
|
6027 RMobilePhoneStore(); |
|
6028 IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder); |
|
6029 IMPORT_C void Destruct(); |
|
6030 }; |
|
6031 |
|
6032 |
|
6033 /*********************************************************/ |
|
6034 // |
|
6035 // Call based functionality (RMobileCall) |
|
6036 // |
|
6037 /*********************************************************/ |
|
6038 |
|
6039 |
|
6040 |
|
6041 class CMobileCallPtrHolder; |
|
6042 |
|
6043 class RMobileCall : public RCall |
|
6044 /** Provides access to the functionality associated with a specific mobile call. |
|
6045 |
|
6046 RMobileCall encapsulates access to a mobile phone. The functionality of RMobileCall |
|
6047 is divided into a number of functional units, for the purpose of easier documentation |
|
6048 and navigation and selectable support by TSY. |
|
6049 |
|
6050 Note: Some RMobileCall function members must be supported by the TSY while |
|
6051 others are part of optional "functional unit" and only need to be supported |
|
6052 if the TSY supports that functional unit. When a functional unit is mandatory |
|
6053 then the TSY should at least support the Get...Caps() member function to indicate |
|
6054 the member functions that are supported for this unit. |
|
6055 */ |
|
6056 { |
|
6057 public: |
|
6058 IMPORT_C RMobileCall(); |
|
6059 /***********************************************************************************/ |
|
6060 // |
|
6061 // Mobile call parameters - used within Dial/Answer API |
|
6062 // |
|
6063 /***********************************************************************************/ |
|
6064 |
|
6065 // used to set iExtensionId in RCall::TCallParams |
|
6066 /** The mobile call parameter extension IDs. |
|
6067 |
|
6068 Modes: Common */ |
|
6069 enum TMobileCallParamsExtensionId |
|
6070 { |
|
6071 /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV1. */ |
|
6072 KETelMobileCallParamsV1=KETelExtMultimodeV1, |
|
6073 /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV1. |
|
6074 |
|
6075 Modes: Common */ |
|
6076 KETelMobileDataCallParamsV1, |
|
6077 /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV1. |
|
6078 |
|
6079 Modes: GSM/WCDMA */ |
|
6080 KETelMobileHscsdCallParamsV1, |
|
6081 /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV2. |
|
6082 |
|
6083 Modes: Common */ |
|
6084 KETelMobileCallParamsV2=KETelExtMultimodeV2, |
|
6085 /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV2. |
|
6086 |
|
6087 Modes: Common */ |
|
6088 KETelMobileDataCallParamsV2, |
|
6089 /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV2. |
|
6090 |
|
6091 Modes: GSM/WCDMA */ |
|
6092 KETelMobileHscsdCallParamsV2, |
|
6093 /** The iExtensionId contents indicate that the packaged class is a TEtel3rdPartyMobileCallParamsV1. |
|
6094 |
|
6095 Modes: Common */ |
|
6096 KETel3rdPartyCallParamsV1=KETelExt3rdPartyV1 |
|
6097 }; |
|
6098 |
|
6099 /** Caller Id restriction settings. |
|
6100 |
|
6101 Modes: Common |
|
6102 |
|
6103 @see TMobileCallParamsV1 */ |
|
6104 enum TMobileCallIdRestriction |
|
6105 { |
|
6106 /** The default setting should be used if the user has not explicitly requested |
|
6107 their identity to be restricted/allowed. */ |
|
6108 EIdRestrictDefault, |
|
6109 /** The user has explicitly requested their identity to be sent for this call. */ |
|
6110 ESendMyId, |
|
6111 /** The user has explicitly requested their identity not to be sent for this call. */ |
|
6112 EDontSendMyId |
|
6113 }; |
|
6114 |
|
6115 class TMobileCallCugV1 : public RMobilePhone::TMultimodeType |
|
6116 /** This class is used to set up a CUG (Closed User Group) call. |
|
6117 |
|
6118 TMobileCallCugV1() is valid in GSM/WCDMA mode only. The client application |
|
6119 should set the CUG settings for the call depending on the user's choice. If |
|
6120 the user has not explicitly requested a CUG call then this parameter should |
|
6121 indicate that explicit CUG invoke is false. The TSY ignores this parameter |
|
6122 if in CDMA mode. |
|
6123 */ |
|
6124 { |
|
6125 public: |
|
6126 IMPORT_C TMobileCallCugV1(); |
|
6127 public: |
|
6128 /** A boolean indicating whether Closed User Group is being explicitly invoked by |
|
6129 the client or not. If this parameter is false, the other entries in this structure |
|
6130 will be ignored. */ |
|
6131 TBool iExplicitInvoke; |
|
6132 /** The Closed User Group index that the user has specified for this call (if no |
|
6133 index has been specified then this element will equal -1). */ |
|
6134 TInt iCugIndex; |
|
6135 /** A boolean indicating whether the user has suppressed their Outgoing Access option |
|
6136 or not. */ |
|
6137 TBool iSuppressOA; |
|
6138 /** A boolean indicating whether the user has suppressed the use of their preferential |
|
6139 Closed User Group or not. */ |
|
6140 TBool iSuppressPrefCug; |
|
6141 }; |
|
6142 |
|
6143 /** Multicall Operation set-up. |
|
6144 |
|
6145 Mode: WCDMA */ |
|
6146 enum TMobileCallMulticallBearerMode |
|
6147 { |
|
6148 /** Multicall is not supported. */ |
|
6149 EMulticallNotSupported, |
|
6150 /** MS will accept incoming call and establish a connection using an existing bearer. */ |
|
6151 EMulticallShareBearer, |
|
6152 /** MS will accept incoming call and establish a connection by creating a new bearer. */ |
|
6153 EMulticallNewBearer |
|
6154 }; |
|
6155 |
|
6156 |
|
6157 |
|
6158 class TMobileCallParamsV1 : public RCall::TCallParams |
|
6159 /** Defines the parameters used for set-up of a call of any type. |
|
6160 */ |
|
6161 { |
|
6162 public: |
|
6163 IMPORT_C TMobileCallParamsV1(); |
|
6164 public: |
|
6165 /** Call Id restriction setting to be used for this call. |
|
6166 |
|
6167 @see TMobileCallIdRestriction */ |
|
6168 TMobileCallIdRestriction iIdRestrict; |
|
6169 /** Closed User Group setting to be used for this call. |
|
6170 |
|
6171 @see TMobileCallCugV1 */ |
|
6172 TMobileCallCugV1 iCug; |
|
6173 /** Specifies whether this call attempt is user initiated (EFalse) or a client initiated |
|
6174 redial (ETrue). */ |
|
6175 TBool iAutoRedial; |
|
6176 }; |
|
6177 |
|
6178 /** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API function |
|
6179 member. */ |
|
6180 typedef TPckg<TMobileCallParamsV1> TMobileCallParamsV1Pckg; |
|
6181 |
|
6182 |
|
6183 |
|
6184 class TMobileCallParamsV2 : public TMobileCallParamsV1 |
|
6185 /** Defines the parameters used for set-up of a call of any type |
|
6186 for version v2.0 of the API. |
|
6187 A new parameter (iBearerMode) is required to support Multicall. |
|
6188 @publishedPartner |
|
6189 @released |
|
6190 */ |
|
6191 { |
|
6192 public: |
|
6193 IMPORT_C TMobileCallParamsV2(); |
|
6194 public: |
|
6195 /** The bearer mode. */ |
|
6196 TMobileCallMulticallBearerMode iBearerMode; |
|
6197 }; |
|
6198 |
|
6199 /** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API |
|
6200 function member. */ |
|
6201 typedef TPckg<TMobileCallParamsV2> TMobileCallParamsV2Pckg; |
|
6202 |
|
6203 /***********************************************************************************/ |
|
6204 // |
|
6205 // Mobile Call Data Functional Unit |
|
6206 // |
|
6207 /***********************************************************************************/ |
|
6208 |
|
6209 /** In GSM mode, maps to list of supported speeds returned in response to AT+CBST=?. |
|
6210 In CDMA mode, maps to data rates supported by supported service options. |
|
6211 |
|
6212 @see TMobileCallDataCapsV1 */ |
|
6213 enum TMobileCallDataSpeedCaps |
|
6214 { |
|
6215 /** Call can support autobauding. */ |
|
6216 KCapsSpeedAutobauding = 0x00000001, |
|
6217 /** Call can support a speed of 2400bps. */ |
|
6218 KCapsSpeed2400 = 0x00000002, |
|
6219 /** Call can support a speed of 4800bps. */ |
|
6220 KCapsSpeed4800 = 0x00000004, |
|
6221 /** Call can support a speed of 9600bps. */ |
|
6222 KCapsSpeed9600 = 0x00000008, |
|
6223 /** Call can support a speed of 14400bps. */ |
|
6224 KCapsSpeed14400 = 0x00000010, |
|
6225 /** Call can support a speed of 19200bps. */ |
|
6226 KCapsSpeed19200 = 0x00000020, |
|
6227 /** Call can support a speed of 28800bps. */ |
|
6228 KCapsSpeed28800 = 0x00000040, |
|
6229 /** Call can support a speed of 32000bps. */ |
|
6230 KCapsSpeed32000 = 0x00000080, |
|
6231 /** Call can support a speed of 33600bps. */ |
|
6232 KCapsSpeed33600 = 0x00000100, |
|
6233 /** Call can support a speed of 38400bps. */ |
|
6234 KCapsSpeed38400 = 0x00000200, |
|
6235 /** Call can support a speed of 43200bps. */ |
|
6236 KCapsSpeed43200 = 0x00000400, |
|
6237 /** Call can support a speed of 48000bps. */ |
|
6238 KCapsSpeed48000 = 0x00000800, |
|
6239 /** Call can support a speed of 56000bps. */ |
|
6240 KCapsSpeed56000 = 0x00001000, |
|
6241 /** Call can support a speed of 57600bps. */ |
|
6242 KCapsSpeed57600 = 0x00002000, |
|
6243 /** Call can support a speed of 64000bps. */ |
|
6244 KCapsSpeed64000 = 0x00004000, |
|
6245 /** Call can support extended data speed capabilities. This flag is reserved for |
|
6246 future expansion of API and should always be set to zero. */ |
|
6247 KCapsSpeedExtended = 0x80000000 |
|
6248 }; |
|
6249 |
|
6250 /** List of supported values of the <speed> parameter returned in response to AT+CBST=? |
|
6251 |
|
6252 Not applicable to CDMA mode |
|
6253 |
|
6254 @see TMobileDataCallParamsV1 */ |
|
6255 enum TMobileCallDataProtocolCaps |
|
6256 { |
|
6257 /** Call can support V.22bis standard |
|
6258 |
|
6259 Modes: COMMON */ |
|
6260 KCapsProtocolV22bis = 0x00000001, |
|
6261 /** Call can support V.32 standard. |
|
6262 |
|
6263 Modes: COMMON */ |
|
6264 KCapsProtocolV32 = 0x00000002, |
|
6265 /** Call can support V.34 standard. |
|
6266 |
|
6267 Modes: COMMON */ |
|
6268 KCapsProtocolV34 = 0x00000004, |
|
6269 /** Call can support V.110 standard. |
|
6270 |
|
6271 Modes: GSM/WCDMA */ |
|
6272 KCapsProtocolV110 = 0x00000008, |
|
6273 /** Call can support V.120 standard. |
|
6274 |
|
6275 Modes: GSM/WCDMA */ |
|
6276 KCapsProtocolV120 = 0x00000010, |
|
6277 /** Call can support bit transparent service. |
|
6278 |
|
6279 Modes: GSM/WCDMA */ |
|
6280 KCapsProtocolBitTransparent = 0x00000020, |
|
6281 /** Call can support X31 flag stuffing standard. |
|
6282 |
|
6283 Modes: GSM/WCDMA */ |
|
6284 KCapsProtocolX31FlagStuffing = 0x00000040, |
|
6285 /** Call can support both PIAF standards (32000bps and 64000bps). |
|
6286 |
|
6287 Modes: GSM/WCDMA */ |
|
6288 KCapsProtocolPIAFS = 0x00000080, |
|
6289 /** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN |
|
6290 with voice fallback. |
|
6291 |
|
6292 Modes: WCDMA */ |
|
6293 KCapsPstnMultimediaVoiceFallback = 0x00000100, |
|
6294 /** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN |
|
6295 without voice fallback |
|
6296 |
|
6297 Modes: WCDMA */ |
|
6298 KCapsPstnMultimedia = 0x00000200, |
|
6299 /** Call can support request for Multimedia protocol (3G-324M) over a call to ISDN |
|
6300 (voice fallback not possible). |
|
6301 |
|
6302 Modes: WCDMA */ |
|
6303 KCapsIsdnMultimedia = 0x00000400, |
|
6304 /** Call can support extended data carrier capabilities. This flag is reserved for |
|
6305 future expansion and should always be set to zero for v1.0 of this API. |
|
6306 |
|
6307 Modes: COMMON */ |
|
6308 KCapsProtocolExtended = 0x80000000 |
|
6309 }; |
|
6310 |
|
6311 /** In GSM mode, maps to list of supported <name> returned in response to AT+CBST=? |
|
6312 In CDMA mode, maps to supported service options. |
|
6313 |
|
6314 Modes: COMMON |
|
6315 |
|
6316 @see TMobileCallDataCapsV1 */ |
|
6317 enum TMobileCallDataServiceCaps |
|
6318 { |
|
6319 KCapsDataCircuitAsynchronous = 0x00000001, |
|
6320 KCapsDataCircuitAsynchronousRDI = 0x00000002, |
|
6321 KCapsDataCircuitSynchronous = 0x00000004, |
|
6322 KCapsDataCircuitSynchronousRDI = 0x00000008, |
|
6323 /** Call can support "PAD Access (asynchronous) (UDI)". |
|
6324 |
|
6325 Modes: GSM/WCDMA */ |
|
6326 KCapsPADAsyncUDI = 0x00000010, |
|
6327 /** Call can support "PAD Access (asynchronous) (RDI)" |
|
6328 |
|
6329 Modes: GSM/WCDMA */ |
|
6330 KCapsPADAsyncRDI = 0x00000020, |
|
6331 /** Call can support "Packet Access (synchronous) (UDI)" |
|
6332 |
|
6333 Modes: GSM/WCDMA */ |
|
6334 KCapsPacketAccessSyncUDI = 0x00000040, |
|
6335 /** Call can support "Packet Access (synchronous) (RDI)". |
|
6336 |
|
6337 Modes: GSM/WCDMA */ |
|
6338 KCapsPacketAccessSyncRDI = 0x00000080, |
|
6339 /** Call can support extended data service capabilities. This flag is reserved for |
|
6340 future expansion of this API and should always be set to zero for v1.0 of |
|
6341 this API. |
|
6342 |
|
6343 Modes: COMMON */ |
|
6344 KCapsServiceExtended = 0x80000000 |
|
6345 }; |
|
6346 |
|
6347 /** Maps to list of supported <ce> returned in response to AT+CBST=? |
|
6348 |
|
6349 Not applicable to CDMA mode. |
|
6350 |
|
6351 @see TMobileCallDataCapsV1 */ |
|
6352 enum TMobileCallDataQoSCaps |
|
6353 { |
|
6354 /** Call can support a request for "transparent only" connection. */ |
|
6355 KCapsTransparent = 0x00000001, |
|
6356 /** Call can support a request for "non-transparent only" connection. */ |
|
6357 KCapsNonTransparent = 0x00000002, |
|
6358 /** Call can support a request for "transparent preferred" connection. */ |
|
6359 KCapsTransparentPreferred = 0x00000004, |
|
6360 /** Call can support a request for "non-transparent preferred" connection. */ |
|
6361 KCapsNonTransparentPreferred = 0x00000008 |
|
6362 }; |
|
6363 |
|
6364 /** Supported Air Interface User Rates. */ |
|
6365 enum TMobileCallAiurCodingCaps |
|
6366 { |
|
6367 /** Air interface user rate of 4.8k is supported. */ |
|
6368 KCapsAiurCoding48 = 0x01, |
|
6369 /** Air interface user rate of 9.6k is supported. */ |
|
6370 KCapsAiurCoding96 = 0x04, |
|
6371 /** Air interface user rate of 14.4k is supported. */ |
|
6372 KCapsAiurCoding144 = 0x08 |
|
6373 }; |
|
6374 |
|
6375 /** HSCSD coding capabilities. |
|
6376 |
|
6377 Modes: GSM/WCDMA */ |
|
6378 enum TMobileCallTchCodingsCaps |
|
6379 { |
|
6380 /** Call supports HSCSD coding on 4.8K full rate data traffic channel. */ |
|
6381 KCapsTchCoding48 = 0x00000001, |
|
6382 /** Call supports HSCSD coding on 9.6K full rate data traffic channel. */ |
|
6383 KCapsTchCoding96 = 0x00000004, |
|
6384 /** Call supports HSCSD coding on 14.4K full rate data traffic channel. */ |
|
6385 KCapsTchCoding144 = 0x00000008, |
|
6386 /** Call supports HSCSD coding on 28.8K full rate data traffic channel (only possible |
|
6387 when 14.4K is supported). */ |
|
6388 KCapsTchCoding288 = 0x00000010, |
|
6389 /** Call supports HSCSD coding on 32.0K full rate data traffic channel (only possible |
|
6390 in a two-timeslot configuration). */ |
|
6391 KCapsTchCoding320 = 0x00000020, |
|
6392 /** Call supports HSCSD coding on 43.2K full rate data traffic channel (only possible |
|
6393 when 14.4K is supported). */ |
|
6394 KCapsTchCoding432 = 0x00000040 |
|
6395 }; |
|
6396 |
|
6397 /** The call asymmetry capabilities. |
|
6398 |
|
6399 Modes: GSM/WCDMA |
|
6400 |
|
6401 @see TMobileCallDataCapsV1 */ |
|
6402 enum TMobileCallAsymmetryCaps |
|
6403 { |
|
6404 /** Call supports "No Preference" option for asymmetry bias of a Non-Transparent |
|
6405 ECSD call. */ |
|
6406 KCapsAsymmetryNoPreference= 0x00000001, |
|
6407 /** Call supports "Downlink bias" option for asymmetry bias of a Non-Transparent |
|
6408 ECSD call. |
|
6409 |
|
6410 This means 8-PSK modulation is preferred downlink and GMSK modulation uplink. */ |
|
6411 KCapsAsymmetryDownlink = 0x00000002, |
|
6412 /** Call supports "Uplink bias" option for asymmetry bias of a Non-Transparent ECSD |
|
6413 call. |
|
6414 |
|
6415 This means 8-PSK modulation is preferred uplink and GMSK modulation downlink. */ |
|
6416 KCapsAsymmetryUplink = 0x00000004 |
|
6417 }; |
|
6418 |
|
6419 /** The supported Call RLP versions. |
|
6420 |
|
6421 Modes: GSM/WCDMA |
|
6422 |
|
6423 @see TMobileCallDataCapsV1 */ |
|
6424 enum TMobileCallRLPVersionCaps |
|
6425 { |
|
6426 /** Call supports the single link, basic RLP version 0. */ |
|
6427 KCapsRLPSingleLinkVersion0 = 0x00000001, |
|
6428 /** Call supports the single link, extended RLP version 1. */ |
|
6429 KCapsRLPSingleLinkVersion1 = 0x00000002, |
|
6430 /** Call supports the multi link, RLP version 2. */ |
|
6431 KCapsRLPMultiLinkVersion2 = 0x00000004 |
|
6432 }; |
|
6433 |
|
6434 /** The supported V42bis options. |
|
6435 |
|
6436 Modes: GSM/WCDMA |
|
6437 |
|
6438 @see TMobileCallDataCapsV1 */ |
|
6439 enum TMobileCallV42bisCaps |
|
6440 { |
|
6441 /** Call supports V42bis compression in initiator-responder direction. */ |
|
6442 KCapsV42bisTxDirection = 0x00000001, |
|
6443 /** Call supports V42bis compression in responder-initiator direction. */ |
|
6444 KCapsV42bisRxDirection = 0x00000002, |
|
6445 /** Call supports V42bis compression in both directions. */ |
|
6446 KCapsV42bisBothDirections = 0x00000004 |
|
6447 }; |
|
6448 |
|
6449 |
|
6450 |
|
6451 class TMobileCallDataCapsV1 : public RMobilePhone::TMultimodeType |
|
6452 /** Defines the capabilities of a circuit switched data call. |
|
6453 @publishedPartner |
|
6454 @released |
|
6455 */ |
|
6456 { |
|
6457 public: |
|
6458 IMPORT_C TMobileCallDataCapsV1(); |
|
6459 public: |
|
6460 /** Data speed capabilities - a bit wise sum of the caps defined in TMobileCallDataSpeedCaps. */ |
|
6461 TUint32 iSpeedCaps; |
|
6462 /** Data protocol capabilities - a bit wise sum of the caps defined in TMobileCallDataProtocolCaps. */ |
|
6463 TUint32 iProtocolCaps; |
|
6464 /** Data service capabilities - a bit wise sum of the caps defined in TMobileCallDataServiceCaps. */ |
|
6465 TUint32 iServiceCaps; |
|
6466 /** Data QoS capabilities - a bit wise sum of the caps defined in TMobileCallDataQoSCaps. |
|
6467 |
|
6468 Note: Only available in GSM/WCDMA mode. */ |
|
6469 TUint32 iQoSCaps; |
|
6470 /** A boolean indicating whether or not the MS supports HSCSD for this call. If |
|
6471 this attribute equals EFalse all the following attributes are invalid. |
|
6472 |
|
6473 Note: Only available in GSM/WCDMA mode. */ |
|
6474 TBool iHscsdSupport; |
|
6475 /** For HSCSD: The multi-slot class supported. */ |
|
6476 TInt iMClass; |
|
6477 /** For HSCSD: The maximum supported number of time-slots in the receive (down-link) |
|
6478 direction. */ |
|
6479 TInt iMaxRxTimeSlots; |
|
6480 /** For HSCSD: The maximum supported number of time-slots in the transmit (up-link) |
|
6481 direction. */ |
|
6482 TInt iMaxTxTimeSlots; |
|
6483 /** For HSCSD: The maximum supported total number of receive and transmit time-slots |
|
6484 that can be used at same time. */ |
|
6485 TInt iTotalRxTxTimeSlots; |
|
6486 /** For HSCSD: A bit-wise sum of the supported air interface channel codings defined |
|
6487 in TMobileCallAiurCodingCaps. */ |
|
6488 TUint32 iCodingCaps; |
|
6489 /** For HSCSD: A bit-wise sum of the supported asymmetry bias defined in TMobileCallAsymmetryCaps. */ |
|
6490 TUint32 iAsymmetryCaps; |
|
6491 /** For HSCSD: A boolean indicating whether or not the MS supports automatic user |
|
6492 initiated service level upgrading. */ |
|
6493 TBool iUserInitUpgrade; |
|
6494 /** For HSCSD and CSD: A bit-wise sum of the supported Radio Link Protocol versions |
|
6495 defined in TMobileCallRLPVersionCaps. */ |
|
6496 TUint32 iRLPVersionCaps; |
|
6497 /** For HSCSD and CSD: A bit-wise sum of the supported V42bis compression capabilities |
|
6498 defined in TMobileCallV42bisCaps . */ |
|
6499 TUint32 iV42bisCaps; |
|
6500 }; |
|
6501 |
|
6502 /** A typedef'd packaged TMobileCallDataCapsV1 for passing through a generic API |
|
6503 function member. */ |
|
6504 typedef TPckg<TMobileCallDataCapsV1> TMobileCallDataCapsV1Pckg; |
|
6505 |
|
6506 IMPORT_C TInt GetMobileDataCallCaps(TDes8& aCaps) const; |
|
6507 IMPORT_C void NotifyMobileDataCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const; |
|
6508 |
|
6509 /** The call setup requested data speed. |
|
6510 |
|
6511 @see TMobileDataCallParamsV1 */ |
|
6512 enum TMobileCallDataSpeed |
|
6513 { |
|
6514 /** Call set-up will request speed depending on data carrier chosen. */ |
|
6515 ESpeedUnspecified, |
|
6516 /** Call set-up will request autobauding. */ |
|
6517 ESpeedAutobauding, |
|
6518 /** Call set-up will request 2400bps. */ |
|
6519 ESpeed2400, |
|
6520 /** Call set-up will request 4800bps. */ |
|
6521 ESpeed4800, |
|
6522 /** Call set-up will request 9600bps. */ |
|
6523 ESpeed9600, |
|
6524 /** Call set-up will request 14400bps. */ |
|
6525 ESpeed14400, |
|
6526 /** Call set-up will request 19200bps. */ |
|
6527 ESpeed19200, |
|
6528 /** Call set-up will request 28800bps. */ |
|
6529 ESpeed28800, |
|
6530 /** Call set-up will request 32000bps. */ |
|
6531 ESpeed32000, |
|
6532 /** Call set-up will request 33600bps. */ |
|
6533 ESpeed33600, |
|
6534 /** Call set-up will request 38400bps. */ |
|
6535 ESpeed38400, |
|
6536 /** Call set-up will request 43200bps. */ |
|
6537 ESpeed43200, |
|
6538 /** Call set-up will request 48000bps. */ |
|
6539 ESpeed48000, |
|
6540 /** Call set-up will request 56000bps. */ |
|
6541 ESpeed56000, |
|
6542 /** Call set-up will request 57600bps. */ |
|
6543 ESpeed57600, |
|
6544 /** Call set-up will request 64000bps. */ |
|
6545 ESpeed64000 |
|
6546 }; |
|
6547 |
|
6548 /** The call set-up requested data protocol. |
|
6549 |
|
6550 Modes: GSM/WCDMA */ |
|
6551 enum TMobileCallDataProtocol |
|
6552 { |
|
6553 /** Call set-up will request carrier depending on data speed chosen. */ |
|
6554 EProtocolUnspecified, |
|
6555 /** Call set-up will request the V.22bis standard. */ |
|
6556 EProtocolV22bis, |
|
6557 /** Call set-up will request the V.32 standard. */ |
|
6558 EProtocolV32, |
|
6559 /** Call set-up will request the V.34 standard. */ |
|
6560 EProtocolV34, |
|
6561 /** Call set-up will request the V.110 standard. */ |
|
6562 EProtocolV110, |
|
6563 /** Call set-up will request the V.120 standard. */ |
|
6564 EProtocolV120, |
|
6565 /** Call set-up will request the X31FlagStuffing standard. */ |
|
6566 EProtocolX31FlagStuffing, |
|
6567 /** Call set-up will request the PIAFS standard. */ |
|
6568 EProtocolPIAFS, |
|
6569 /** Call set-up will request the bit transparent service. */ |
|
6570 EProtocolBitTransparent, |
|
6571 /** Call set-up will request a PSTN multimedia call with voice fallback if multimedia |
|
6572 fails. |
|
6573 |
|
6574 WCDMA mode only. */ |
|
6575 EProtocolPstnMultimediaVoiceFallback, |
|
6576 /** Call set-up will request a PSTN multimedia call. |
|
6577 |
|
6578 WCDMA mode only. */ |
|
6579 EProtocolPstnMultimedia, |
|
6580 /** Call set-up will request a ISDN multimedia call. |
|
6581 |
|
6582 WCDMA mode only. */ |
|
6583 EProtocolIsdnMultimedia |
|
6584 }; |
|
6585 |
|
6586 /** The call setup requested data services. |
|
6587 |
|
6588 Modes: Common |
|
6589 |
|
6590 @see TMobileDataCallParamsV1 */ |
|
6591 enum TMobileCallDataService |
|
6592 { |
|
6593 /** Call set-up will request its default service type. |
|
6594 |
|
6595 Modes: Common */ |
|
6596 EServiceUnspecified, |
|
6597 /** Call set-up will request: |
|
6598 |
|
6599 GSM mode - Data circuit asynchronous (UDI or 3.1 KHz, ex PLMN) service |
|
6600 |
|
6601 In CDMA mode - Async Data service |
|
6602 |
|
6603 Modes: Common */ |
|
6604 EServiceDataCircuitAsync, |
|
6605 /** Call set-up will request Data circuit asynchronous (RDI) service. |
|
6606 |
|
6607 Modes: GSM/WCDMA */ |
|
6608 EServiceDataCircuitAsyncRdi, |
|
6609 /** Call set-up will request Data circuit synchronous (UDI or 3.1 KHz, ex PLMN) |
|
6610 service. |
|
6611 |
|
6612 Modes: GSM/WCDMA */ |
|
6613 EServiceDataCircuitSync, |
|
6614 /** Call set-up will request Data circuit synchronous (RDI) service. |
|
6615 |
|
6616 Modes: GSM/WCDMA */ |
|
6617 EServiceDataCircuitSyncRdi, |
|
6618 /** Call set-up will request PAD asynchronous (UDI) service. |
|
6619 |
|
6620 Modes: GSM/WCDMA */ |
|
6621 EServicePADAsyncUDI, |
|
6622 /** Call set-up will request PAD asynchronous (RDI) service. |
|
6623 |
|
6624 Modes: GSM/WCDMA */ |
|
6625 EServicePADAsyncRDI, |
|
6626 /** Call set-up will request Packet Access synchronous (UDI) service. |
|
6627 |
|
6628 Modes: GSM/WCDMA */ |
|
6629 EServicePacketAccessSyncUDI, |
|
6630 /** Call set-up will request Packet Access synchronous (RDI) service. |
|
6631 |
|
6632 Modes: GSM/WCDMA */ |
|
6633 EServicePacketAccessSyncRDI |
|
6634 }; |
|
6635 |
|
6636 /** The call set-up requested quality of service (QoS). |
|
6637 |
|
6638 Modes: GSM/WCDMA |
|
6639 |
|
6640 @see TMobileDataCallParamsV1 */ |
|
6641 enum TMobileCallDataQoS |
|
6642 { |
|
6643 /** Call set-up will request its default connection. */ |
|
6644 EQoSUnspecified, |
|
6645 /** Call set-up will request a transparent connection. */ |
|
6646 EQoSTransparent, |
|
6647 /** Call set-up will request a non-transparent connection. */ |
|
6648 EQoSNonTransparent, |
|
6649 /** Call set-up will prefer a transparent connection. */ |
|
6650 EQosTransparentPreferred, |
|
6651 /** Call set-up will prefer a non-transparent connection. */ |
|
6652 EQosNonTransparentPreferred |
|
6653 }; |
|
6654 |
|
6655 /** The call set-up requested RLP version. |
|
6656 |
|
6657 @see TMobileDataCallParamsV1 */ |
|
6658 enum TMobileCallDataRLPVersion |
|
6659 { |
|
6660 /** Call set-up will request no RLP version. */ |
|
6661 ERLPNotRequested, |
|
6662 /** Call set-up will request single link basic RLP (version 0). */ |
|
6663 ERLPSingleLinkVersion0, |
|
6664 /** Call set-up will request single link extended RLP (version 1). */ |
|
6665 ERLPSingleLinkVersion1, |
|
6666 /** Call set-up will prefer multi link RLP (version 2). */ |
|
6667 ERLPMultiLinkVersion2 |
|
6668 }; |
|
6669 |
|
6670 /** The V.42bis parameters used in the call set-up of a V.42bis data call. |
|
6671 |
|
6672 @see TMobileDataCallParamsV1 */ |
|
6673 enum TMobileCallDataV42bis |
|
6674 { |
|
6675 /** Call set-up will not request V.42bis compression. */ |
|
6676 EV42bisNeitherDirection, |
|
6677 /** Call set-up will request V.42bis compression in initiator-responder direction |
|
6678 only. */ |
|
6679 EV42bisTxDirection, |
|
6680 /** Call set-up will request V.42bis compression in responder-initiator direction |
|
6681 only. */ |
|
6682 EV42bisRxDirection, |
|
6683 /** Call set-up will request V.42bis compression in both directions. */ |
|
6684 EV42bisBothDirections |
|
6685 }; |
|
6686 |
|
6687 |
|
6688 |
|
6689 |
|
6690 class TMobileDataCallParamsV1 : public TMobileCallParamsV1 |
|
6691 /** Defines the parameters used for setup of a circuit switched data call. |
|
6692 */ |
|
6693 { |
|
6694 public: |
|
6695 IMPORT_C TMobileDataCallParamsV1(); |
|
6696 public: |
|
6697 /** The type of data service. |
|
6698 |
|
6699 @see TMobileCallDataService */ |
|
6700 TMobileCallDataService iService; |
|
6701 /** The data transfer rate. |
|
6702 |
|
6703 @see TMobileCallDataSpeed */ |
|
6704 TMobileCallDataSpeed iSpeed; |
|
6705 /** The ITU-T standard modulation protocol or higher application protocol. */ |
|
6706 TMobileCallDataProtocol iProtocol; |
|
6707 /** The quality of data service. |
|
6708 |
|
6709 @see TMobileCallDataQoS */ |
|
6710 TMobileCallDataQoS iQoS; |
|
6711 /** The version of Radio Link Protocol. |
|
6712 |
|
6713 Modes: GSM/WCDMA |
|
6714 |
|
6715 @see TMobileCallDataRLPVersion */ |
|
6716 TMobileCallDataRLPVersion iRLPVersion; |
|
6717 /** The IWF to MS windows size. |
|
6718 |
|
6719 Modes: GSM/WCDMA */ |
|
6720 TInt iModemToMSWindowSize; |
|
6721 /** The MS window to IWF size. |
|
6722 |
|
6723 Modes: GSM/WCDMA */ |
|
6724 TInt iMSToModemWindowSize; |
|
6725 /** The acknowledgement timer. |
|
6726 |
|
6727 Modes: GSM/WCDMA */ |
|
6728 TInt iAckTimer; |
|
6729 /** The number of retransmission attempts. |
|
6730 |
|
6731 Modes: GSM/WCDMA */ |
|
6732 TInt iRetransmissionAttempts; |
|
6733 /** The resequencing period in integer format. |
|
6734 |
|
6735 Modes: GSM/WCDMA */ |
|
6736 TInt iResequencingPeriod; |
|
6737 /** The V42bis compression request parameter. |
|
6738 |
|
6739 @see TMobileCallDataV42bis */ |
|
6740 TMobileCallDataV42bis iV42bisReq; |
|
6741 /** The number of codewords in the algorithm. */ |
|
6742 TInt iV42bisCodewordsNum; |
|
6743 /** The maximum encodable data string length. */ |
|
6744 TInt iV42bisMaxStringLength; |
|
6745 TBool iUseEdge; // True for ECSD |
|
6746 }; |
|
6747 |
|
6748 /** A typedef'd packaged TMobileDataCallParamsV1 for passing through a generic API |
|
6749 function member. */ |
|
6750 typedef TPckg<TMobileDataCallParamsV1> TMobileDataCallParamsV1Pckg; |
|
6751 |
|
6752 |
|
6753 |
|
6754 |
|
6755 class TMobileDataCallParamsV2 : public TMobileDataCallParamsV1 |
|
6756 /** Defines the parameters used for setup of a circuit switched data call for version |
|
6757 v2.0 of the API. |
|
6758 */ |
|
6759 { |
|
6760 public: |
|
6761 IMPORT_C TMobileDataCallParamsV2(); |
|
6762 public: |
|
6763 /** The bearer mode. */ |
|
6764 TMobileCallMulticallBearerMode iBearerMode; |
|
6765 }; |
|
6766 |
|
6767 /** A typedef'd packaged TMobileDataCallParamsV2 for passing through a generic |
|
6768 API function member. */ |
|
6769 typedef TPckg<TMobileDataCallParamsV2> TMobileDataCallParamsV2Pckg; |
|
6770 |
|
6771 /** The Air interface user rate. |
|
6772 |
|
6773 Modes: GSM/WCDMA. */ |
|
6774 enum TMobileCallAiur |
|
6775 { |
|
6776 /** Air interface user rate is not set. */ |
|
6777 EAiurBpsUnspecified, |
|
6778 /** Air interface user rate of 9.6Kbps. */ |
|
6779 EAiurBps9600, |
|
6780 /** Air interface user rate of 14.4Kbps. */ |
|
6781 EAiurBps14400, |
|
6782 /** Air interface user rate of 19.2Kbps. */ |
|
6783 EAiurBps19200, |
|
6784 /** Air interface user rate of 28.8Kbps. */ |
|
6785 EAiurBps28800, |
|
6786 /** Air interface user rate of 38.4Kbps. */ |
|
6787 EAiurBps38400, |
|
6788 /** Air interface user rate of 43.2Kbps. */ |
|
6789 EAiurBps43200, |
|
6790 /** Air interface user rate of 57.6Kbps. */ |
|
6791 EAiurBps57600 |
|
6792 }; |
|
6793 |
|
6794 /** Call Asymmetry preferences. |
|
6795 |
|
6796 Modes: GSM/WCDMA |
|
6797 |
|
6798 @see TMobileHscsdCallParamsV1 */ |
|
6799 enum TMobileCallAsymmetry |
|
6800 { |
|
6801 /** There is no preference for Asymmetry Bias. */ |
|
6802 EAsymmetryNoPreference, |
|
6803 /** Downlink Bias is preferred. */ |
|
6804 EAsymmetryDownlink, |
|
6805 /** Uplink Bias is preferred. */ |
|
6806 EAsymmetryUplink |
|
6807 }; |
|
6808 |
|
6809 /** The call channel coding used. |
|
6810 |
|
6811 Modes: GSM/WCDMA */ |
|
6812 enum TMobileCallTchCoding |
|
6813 { |
|
6814 /** Channel coding is unspecified. */ |
|
6815 ETchCodingUnspecified, |
|
6816 /** 4.8K full rate data traffic channel is used. */ |
|
6817 ETchCoding48, |
|
6818 /** 9.6K full rate data traffic channel is used. */ |
|
6819 ETchCoding96, |
|
6820 /** 14.4K full rate data traffic channel is used. */ |
|
6821 ETchCoding144, |
|
6822 /** 28.8K full rate data traffic channel is used. */ |
|
6823 ETchCoding288, |
|
6824 /** 32.0K full rate data traffic channel is used. */ |
|
6825 ETchCoding320, |
|
6826 /** 43.2K full rate data traffic channel is used. */ |
|
6827 ETchCoding432 |
|
6828 }; |
|
6829 |
|
6830 |
|
6831 |
|
6832 class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType |
|
6833 /** Defines the parameters for minimum and maximum RLP parameter ranges. |
|
6834 |
|
6835 Modes: GSM/WCDMA |
|
6836 |
|
6837 */ |
|
6838 { |
|
6839 public: |
|
6840 IMPORT_C TMobileDataRLPRangesV1(); |
|
6841 public: |
|
6842 /** Maximum modem to MS window size value. */ |
|
6843 TInt iIWSMax; |
|
6844 /** Minimum modem to MS window size value. */ |
|
6845 TInt iIWSMin; |
|
6846 /** Maximum MS to modem window size value. */ |
|
6847 TInt iMWSMax; |
|
6848 /** Minimum MS to modem window size value. */ |
|
6849 TInt iMWSMin; |
|
6850 /** Maximum acknowledgement timer value. */ |
|
6851 TInt iT1Max; |
|
6852 /** Minimum acknowledgement timer value. */ |
|
6853 TInt iT1Min; |
|
6854 /** Maximum retransmission attempts value. */ |
|
6855 TInt iN2Max; |
|
6856 /** Minimum retransmission attempts value. */ |
|
6857 TInt iN2Min; |
|
6858 /** Maximum resequencing period value. */ |
|
6859 TInt iT4Max; |
|
6860 /** Minimum resequencing period value. */ |
|
6861 TInt iT4Min; |
|
6862 }; |
|
6863 |
|
6864 /** A typedef'd packaged TMobileDataRLPRangesV1 for passing through a generic API |
|
6865 function member. */ |
|
6866 typedef TPckg<TMobileDataRLPRangesV1> TMobileDataRLPRangesV1Pckg; |
|
6867 |
|
6868 IMPORT_C void GetMobileDataCallRLPRange(TRequestStatus& aReqStatus, TInt aRLPVersion, TDes8& aRLPRange) const; |
|
6869 |
|
6870 class TMobileHscsdCallParamsV1 : public TMobileDataCallParamsV1 |
|
6871 /** The High Speed Circuit Switched Data parameters. |
|
6872 */ |
|
6873 { |
|
6874 public: |
|
6875 IMPORT_C TMobileHscsdCallParamsV1(); |
|
6876 public: |
|
6877 /** The wanted Air Interface Rate for the HSCSD call being set-up. |
|
6878 |
|
6879 Modes: GSM/WCDMA |
|
6880 |
|
6881 @see TMobileCallAiur */ |
|
6882 TMobileCallAiur iWantedAiur; |
|
6883 /** The wanted number of receive timeslots for the HSCSD call being set-up. |
|
6884 |
|
6885 Modes: GSM/WCDMA */ |
|
6886 TInt iWantedRxTimeSlots; |
|
6887 TInt iMaxTimeSlots; |
|
6888 /** Bit-wise sum of acceptable air interface channel codings TMobileCallAiurCodingCaps |
|
6889 for the HSCSD call being set-up. |
|
6890 |
|
6891 Modes: GSM/WCDMA */ |
|
6892 TUint iCodings; |
|
6893 /** The wanted asymmetry bias for the HSCSD call being set-up. |
|
6894 |
|
6895 Modes: GSM/WCDMA |
|
6896 |
|
6897 @see TMobileCallAsymmetry */ |
|
6898 TMobileCallAsymmetry iAsymmetry; |
|
6899 /** A boolean indicating whether or not automatic user initiated service level upgrading |
|
6900 is active for the HSCSD call being set-up. ETrue means enabled, EFalse means |
|
6901 disabled. |
|
6902 |
|
6903 Modes: GSM/WCDMA */ |
|
6904 TBool iUserInitUpgrade; |
|
6905 }; |
|
6906 |
|
6907 /** A typedef'd packaged TMobileHscsdCallParamsV1 for passing through a generic |
|
6908 API function member. */ |
|
6909 typedef TPckg<TMobileHscsdCallParamsV1> TMobileHscsdCallParamsV1Pckg; |
|
6910 |
|
6911 class TMobileHscsdCallParamsV2 : public TMobileHscsdCallParamsV1 |
|
6912 /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v2.0 |
|
6913 of the API. |
|
6914 |
|
6915 */ |
|
6916 { |
|
6917 public: |
|
6918 IMPORT_C TMobileHscsdCallParamsV2(); |
|
6919 public: |
|
6920 /** The bearer mode. */ |
|
6921 TMobileCallMulticallBearerMode iBearerMode; |
|
6922 }; |
|
6923 |
|
6924 /** A typedef'd packaged TMobileHscsdCallParamsV2 for passing through a generic |
|
6925 API function member. */ |
|
6926 typedef TPckg<TMobileHscsdCallParamsV2> TMobileHscsdCallParamsV2Pckg; |
|
6927 |
|
6928 IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const; |
|
6929 |
|
6930 class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType |
|
6931 /** The HSCSD settings. |
|
6932 |
|
6933 Modes: GSM/WCDMA |
|
6934 |
|
6935 */ |
|
6936 { |
|
6937 public: |
|
6938 IMPORT_C TMobileCallHscsdInfoV1(); |
|
6939 public: |
|
6940 /** Current AIUR for the HSCSD call. |
|
6941 |
|
6942 @see TMobileCallAiur */ |
|
6943 TMobileCallAiur iAiur; |
|
6944 /** Current number of receive timeslots for the HSCSD call. */ |
|
6945 TInt iRxTimeSlots; |
|
6946 /** Current number of transmit time slots for the HSCSD call. */ |
|
6947 TInt iTxTimeSlots; |
|
6948 /** Current channel coding for the HSCSD call. */ |
|
6949 TMobileCallTchCoding iCodings; |
|
6950 }; |
|
6951 |
|
6952 /** A typedef'd packaged TMobileCallHscsdInfoV1 for passing through a generic API |
|
6953 function member. */ |
|
6954 typedef TPckg<TMobileCallHscsdInfoV1> TMobileCallHscsdInfoV1Pckg; |
|
6955 |
|
6956 IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const; |
|
6957 IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const; |
|
6958 |
|
6959 /***********************************************************************************/ |
|
6960 // |
|
6961 // Multimedia Calls |
|
6962 // |
|
6963 /***********************************************************************************/ |
|
6964 |
|
6965 IMPORT_C void AnswerMultimediaCallAsVoice(TRequestStatus& aReqStatus, const TDesC8& aCallParams, TName& aCallName) const; |
|
6966 IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const; |
|
6967 |
|
6968 // |
|
6969 // Mobile Alternating Call Functional Unit |
|
6970 // |
|
6971 |
|
6972 IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const; |
|
6973 IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const; |
|
6974 |
|
6975 /***********************************************************************************/ |
|
6976 // |
|
6977 // MobileCallControl functional unit |
|
6978 // |
|
6979 /***********************************************************************************/ |
|
6980 |
|
6981 /** Mobile call control capabilites. |
|
6982 |
|
6983 Modes: Common */ |
|
6984 enum TMobileCallControlCaps |
|
6985 { |
|
6986 //KCapsData=0x00000001, // taken from etel.h |
|
6987 //KCapsFax=0x00000002, |
|
6988 //KCapsVoice=0x00000004, |
|
6989 //KCapsDial=0x00000008, |
|
6990 //KCapsConnect=0x00000010, |
|
6991 //KCapsHangUp=0x00000020, |
|
6992 //KCapsAnswer=0x00000040, |
|
6993 //KCapsLoanDataPort=0x00000080, |
|
6994 //KCapsRecoverDataPort=0x00000100 |
|
6995 /** Indicates that this call can be put on hold. This implies that the call is currently |
|
6996 active and that there is no other held call. */ |
|
6997 KCapsHold = 0x00000200, |
|
6998 /** Indicates that this call can be resumed. This implies that the call is currently |
|
6999 on hold and that there is no other active call. |
|
7000 |
|
7001 Modes: Common */ |
|
7002 KCapsResume = 0x00000400, |
|
7003 /** Indicates that this call's state can be swapped to the opposite state. This |
|
7004 implies that this call is either active or held. There may be another call |
|
7005 in the opposite state and if this is the case then both calls will be simultaneously |
|
7006 swapped to their opposite state. |
|
7007 |
|
7008 Modes: Common */ |
|
7009 KCapsSwap = 0x00000800, |
|
7010 /** Indicates that this incoming call can be deflected to another destination. |
|
7011 |
|
7012 Modes: GSM/WCDMA */ |
|
7013 KCapsDeflect = 0x00001000, |
|
7014 /** Indicates that this call can be transferred to the remote party of another call. |
|
7015 For this capability to be set there must be one active call and one held or |
|
7016 dialing call. |
|
7017 |
|
7018 Modes: GSM/WCDMA */ |
|
7019 KCapsTransfer = 0x00002000, |
|
7020 /** Indicates that this call can be joined either to another single call to form |
|
7021 a conference call or to an existing conference call. |
|
7022 |
|
7023 Modes: Common */ |
|
7024 KCapsJoin = 0x00004000, |
|
7025 /** Indicates that this call (within a conference call) can go into One to One mode. |
|
7026 This action would put the rest of the conference call on hold. |
|
7027 |
|
7028 Modes: GSM/WCDMA */ |
|
7029 KCapsOneToOne = 0x00008000, |
|
7030 /** Indicates that the user can activate a CCBS request on this failed call set-up. |
|
7031 |
|
7032 Modes: GSM/WCDMA */ |
|
7033 KCapsActivateCCBS = 0x00010000, |
|
7034 /** Indicates that this call is part of an alternating call and the client can call |
|
7035 SwitchAlternatingCall() on this call in order to switch it to its other mode. |
|
7036 |
|
7037 Modes: GSM/WCDMA */ |
|
7038 KCapsSwitchAlternatingCall = 0x00020000, |
|
7039 /** Indicates that this call can use/create a new bearer. This means that multiple |
|
7040 calls (multicall) can be active at the same time using no more that 7 bearers |
|
7041 simultaneously. The other option is to swap with an active call, therefore |
|
7042 it becomes held and shares the same bearer. |
|
7043 |
|
7044 Modes: WCDMA */ |
|
7045 KCapsMulticall = 0x00040000 |
|
7046 }; |
|
7047 |
|
7048 |
|
7049 /** Mobile call events capabilities. |
|
7050 |
|
7051 Modes: Common */ |
|
7052 enum TMobileCallEventCaps |
|
7053 { |
|
7054 /** Indicates that local hold notifications are supported. |
|
7055 |
|
7056 Modes: Common */ |
|
7057 KCapsLocalHold = 0x00000001, |
|
7058 /** Indicates that local resume notifications are supported. |
|
7059 |
|
7060 Modes: Common */ |
|
7061 KCapsLocalResume = 0x00000002, |
|
7062 /** Indicates that local deflect transfer notifications are supported. |
|
7063 |
|
7064 Modes: GSM/WCDMA */ |
|
7065 KCapsLocalDeflectCall = 0x00000004, |
|
7066 /** Indicates that local explicit transfer notifications are supported. |
|
7067 |
|
7068 Modes: GSM/WCDMA */ |
|
7069 KCapsLocalTransfer = 0x00000008, |
|
7070 /** Indicates that remote hold notifications are supported. |
|
7071 |
|
7072 Modes: GSM/WCDMA */ |
|
7073 KCapsRemoteHold = 0x00000010, |
|
7074 /** Indicates that remote resume notifications are supported. |
|
7075 |
|
7076 Modes: GSM/WCDMA */ |
|
7077 KCapsRemoteResume = 0x00000020, |
|
7078 /** Indicates that remote termination notifications are supported. |
|
7079 |
|
7080 Modes: Common */ |
|
7081 KCapsRemoteTerminate = 0x00000040, |
|
7082 /** Indicates that remote conference invocation notifications are supported. |
|
7083 |
|
7084 Modes: GSM/WCDMA */ |
|
7085 KCapsRemoteConferenceCreate = 0x00000080 |
|
7086 }; |
|
7087 |
|
7088 |
|
7089 |
|
7090 class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType |
|
7091 /** Defines the dynamic capabilities of a mobile call. |
|
7092 */ |
|
7093 { |
|
7094 public: |
|
7095 IMPORT_C TMobileCallCapsV1(); |
|
7096 public: |
|
7097 /** Call control capability information - a bit wise sum of TMobileCallControlCaps |
|
7098 constants */ |
|
7099 TUint32 iCallControlCaps; |
|
7100 /** Call event capability information - a bit wise sum of TMobileCallEventCaps constants. */ |
|
7101 TUint32 iCallEventCaps; |
|
7102 }; |
|
7103 |
|
7104 /** A typedef'd packaged TMobileCallCapsV1 for passing through a generic API function |
|
7105 member. */ |
|
7106 typedef TPckg<TMobileCallCapsV1> TMobileCallCapsV1Pckg; |
|
7107 |
|
7108 IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const; |
|
7109 IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const; |
|
7110 |
|
7111 IMPORT_C void Hold(TRequestStatus& aReqStatus) const; |
|
7112 IMPORT_C void Resume(TRequestStatus& aReqStatus) const; |
|
7113 IMPORT_C void Swap(TRequestStatus& aReqStatus) const; |
|
7114 IMPORT_C void DialISV(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber); |
|
7115 IMPORT_C void AnswerIncomingCallISV(TRequestStatus& aStatus,const TDesC8& aCallParams); |
|
7116 |
|
7117 /** The type of call deflection requested. |
|
7118 |
|
7119 @see Deflect() */ |
|
7120 enum TMobileCallDeflect |
|
7121 { |
|
7122 /** Destination is not specified. */ |
|
7123 EDeflectUnspecified, |
|
7124 /** Call will be deflected to voicemail. */ |
|
7125 EDeflectVoicemail, |
|
7126 /** Call will be deflected to the pre-registered number for the call forwarding |
|
7127 service. */ |
|
7128 EDeflectRegisteredNumber, |
|
7129 /** Call will be deflected to the number supplied in the aDestination parameter. */ |
|
7130 EDeflectSuppliedNumber |
|
7131 }; |
|
7132 |
|
7133 IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const; |
|
7134 IMPORT_C void Transfer(TRequestStatus& aReqStatus) const; |
|
7135 IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const; |
|
7136 |
|
7137 /** The mobile call events. |
|
7138 |
|
7139 Modes: Common */ |
|
7140 enum TMobileCallEvent |
|
7141 { |
|
7142 /** The call has been placed on hold as a result of a local action. |
|
7143 |
|
7144 Modes: Common */ |
|
7145 ELocalHold, |
|
7146 /** The call has been resumed as a result of a local action. |
|
7147 |
|
7148 Modes: Common */ |
|
7149 ELocalResume, |
|
7150 /** The call has been deflected to another remote party as a result of a local action. |
|
7151 |
|
7152 |
|
7153 Modes: GSM/WCDMA */ |
|
7154 ELocalDeflectCall, |
|
7155 /** The call has been transferred to another remote party as a result of a local |
|
7156 action. |
|
7157 |
|
7158 Modes: Common */ |
|
7159 ELocalTransfer, |
|
7160 /** The call has been placed on hold by the remote connected party. |
|
7161 |
|
7162 Modes: GSM/WCDMA */ |
|
7163 ERemoteHold, |
|
7164 /** The call has been resumed by the remote connected party. |
|
7165 |
|
7166 Modes: GSM/WCDMA */ |
|
7167 ERemoteResume, |
|
7168 /** The call has been terminated by the remote party. |
|
7169 |
|
7170 Modes: Common */ |
|
7171 ERemoteTerminated, |
|
7172 /** The call has been joined by the remote connected party to other call(s) to create/add |
|
7173 to a conference call. |
|
7174 |
|
7175 Modes: GSM/WCDMA */ |
|
7176 ERemoteConferenceCreate, |
|
7177 ERemoteTransferring, |
|
7178 ERemoteTransferAlerting, |
|
7179 /** The outgoing call has been barred by the remote party. |
|
7180 |
|
7181 Modes: GSM/WCDMA */ |
|
7182 ERemoteBarred, |
|
7183 /** The call is being forwarded by the remote party. |
|
7184 |
|
7185 Modes: GSM/WCDMA */ |
|
7186 ERemoteForwarding, |
|
7187 /** The call is waiting at the remote end. |
|
7188 |
|
7189 Modes: GSM/WCDMA */ |
|
7190 ERemoteWaiting, |
|
7191 /** The outgoing call has been barred by the local party. |
|
7192 |
|
7193 Modes: GSM/WCDMA */ |
|
7194 ELocalBarred |
|
7195 }; |
|
7196 |
|
7197 IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const; |
|
7198 |
|
7199 /** Describes the possible call states. */ |
|
7200 enum TMobileCallStatus |
|
7201 { |
|
7202 /** Indicates that the call status is unknown. */ |
|
7203 EStatusUnknown, // same as RCall::EStatusUnknown |
|
7204 /** Indicates that the call is idle. */ |
|
7205 EStatusIdle, // same as RCall::EStatusIdle |
|
7206 EStatusDialling, // same as RCall::EStatusDialling |
|
7207 /** Indicates that the MT call is ringing but not answered yet by the local user. */ |
|
7208 EStatusRinging, // same as RCall::EStatusRinging |
|
7209 /** Indicates that the local user has answered the MT call but the network has not |
|
7210 acknowledged the call connection yet. */ |
|
7211 EStatusAnswering, // same as RCall::EStatusAnswering |
|
7212 /** MO Call: the network notifies to the MS that the remote party is now ringing. */ |
|
7213 EStatusConnecting, // same as RCall::EStatusConnecting |
|
7214 /** Indicates that call is connected and active. */ |
|
7215 EStatusConnected, // same as RCall::EStatusConnected |
|
7216 /** Indicates that call is disconnecting. */ |
|
7217 EStatusDisconnecting, // same as RCall::EStatusHangingUp |
|
7218 /** Indicates that the call is disconnecting with inband data (to enable the network |
|
7219 to send an audio tone), signifying that the call is not to be released until |
|
7220 the user terminates the call. */ |
|
7221 EStatusDisconnectingWithInband, |
|
7222 /** Indicates that call is undergoing temporary channel loss and it may or may not |
|
7223 be reconnected. */ |
|
7224 EStatusReconnectPending, |
|
7225 /** Indicates that the call is connected but on hold. */ |
|
7226 EStatusHold, |
|
7227 /** Indicates that the call is the non-active half of an alternating call. This |
|
7228 call is waiting for its active half or the remote end to switch alternating |
|
7229 call mode. */ |
|
7230 EStatusWaitingAlternatingCallSwitch, |
|
7231 EStatusTransferring, |
|
7232 EStatusTransferAlerting |
|
7233 }; |
|
7234 |
|
7235 IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const; |
|
7236 IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const; |
|
7237 |
|
7238 IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC& aTelNumber) const; |
|
7239 IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC8& aCallParams,const TDesC& aTelNumber) const; |
|
7240 |
|
7241 /** |
|
7242 Contains audio tone events. |
|
7243 */ |
|
7244 enum TMobileCallAudioToneEvent |
|
7245 { |
|
7246 /** |
|
7247 Stop audio tone. |
|
7248 */ |
|
7249 EAudioStop, |
|
7250 /** |
|
7251 Start audio tone. |
|
7252 */ |
|
7253 EAudioStart |
|
7254 }; |
|
7255 |
|
7256 /** |
|
7257 List of 3GPP defined supervisory audio tones taken from technical specification 3GPP TS 22.001 v4.0.0 Annex F. |
|
7258 |
|
7259 This enumeration is based on the signal information element specified in Table 10.5.130/3GPP TS 24.008 v5.15.0 |
|
7260 */ |
|
7261 enum TMobileCallAudioTones |
|
7262 { |
|
7263 /** |
|
7264 No tone. Not defined in specification used for initialisation of |
|
7265 iTone class member variable during TAudioToneV3 construction. |
|
7266 */ |
|
7267 ENoTone, |
|
7268 /** |
|
7269 Dial tone. |
|
7270 */ |
|
7271 EDialTone, |
|
7272 /** |
|
7273 Subscriber busy tone. |
|
7274 */ |
|
7275 ESubscriberBusyTone, |
|
7276 /** |
|
7277 Congestion tone. |
|
7278 */ |
|
7279 ECongestionTone, |
|
7280 /** |
|
7281 Radio path acknowledgement tone. |
|
7282 */ |
|
7283 ERadioPathAcknowledgement, |
|
7284 /** |
|
7285 Radio path not available tone. |
|
7286 */ |
|
7287 ERadioPathNotAvailable, |
|
7288 /** |
|
7289 Call dropped (Mobile Originated only). |
|
7290 */ |
|
7291 EMOCallDropped, |
|
7292 /** |
|
7293 Error special information. |
|
7294 */ |
|
7295 EErrorSpecialInformation, |
|
7296 /** |
|
7297 Number unobtainable. |
|
7298 */ |
|
7299 ENumberUnobtainable, |
|
7300 /** |
|
7301 Authentication failure. |
|
7302 */ |
|
7303 EAuthenticationFailure, |
|
7304 /** |
|
7305 Call waiting. |
|
7306 */ |
|
7307 ECallWaiting, |
|
7308 /** |
|
7309 Ringback tone. |
|
7310 */ |
|
7311 ERingback |
|
7312 }; |
|
7313 |
|
7314 class TAudioToneV3 : public RMobilePhone::TMultimodeType |
|
7315 /** |
|
7316 Audio tone version 1 class. Contains information relating to the call control playing of audio tones. |
|
7317 Tones maybe generated by the network (in-band) or signalled to be played locally by the ME. |
|
7318 @publishedPartner |
|
7319 @released |
|
7320 */ |
|
7321 { |
|
7322 public: |
|
7323 IMPORT_C TAudioToneV3(); |
|
7324 |
|
7325 public: |
|
7326 /** |
|
7327 Indicates whether the tone is starting or stopping playing. |
|
7328 */ |
|
7329 TMobileCallAudioToneEvent iEvent; |
|
7330 /** |
|
7331 Indicates which tone is to be played. |
|
7332 */ |
|
7333 TMobileCallAudioTones iTone; |
|
7334 /** |
|
7335 Indicates whether the tone is played by the network or is to be played locally by the ME. |
|
7336 */ |
|
7337 TBool iPlayedLocally; |
|
7338 }; |
|
7339 |
|
7340 /** |
|
7341 Packaging typedef for TAudioToneV3 class. |
|
7342 */ |
|
7343 typedef TPckg<TAudioToneV3> TAudioToneV3Pckg; |
|
7344 |
|
7345 IMPORT_C void NotifyAudioToneEvent(TRequestStatus& aReqStatus, TDes8& aToneInfo) const; |
|
7346 |
|
7347 /***********************************************************************************/ |
|
7348 // |
|
7349 // MobilePrivacy functional unit |
|
7350 // |
|
7351 /***********************************************************************************/ |
|
7352 |
|
7353 IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const; |
|
7354 IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const; |
|
7355 |
|
7356 /***********************************************************************************/ |
|
7357 // |
|
7358 // MobileTrafficChannel function unit |
|
7359 // |
|
7360 /***********************************************************************************/ |
|
7361 |
|
7362 /** Call traffic channels. |
|
7363 |
|
7364 Modes: CDMA */ |
|
7365 enum TMobileCallTch |
|
7366 { |
|
7367 /** The traffic channel of the call is unknown. */ |
|
7368 ETchUnknown, |
|
7369 /** The call has a digital traffic channel */ |
|
7370 ETchDigital, |
|
7371 /** The call has an analog traffic channel */ |
|
7372 ETchAnalog |
|
7373 }; |
|
7374 |
|
7375 IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const; |
|
7376 IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const; |
|
7377 |
|
7378 /***********************************************************************************/ |
|
7379 // |
|
7380 // MobileCallInformation functional unit |
|
7381 // |
|
7382 /***********************************************************************************/ |
|
7383 |
|
7384 /** |
|
7385 Remote party Identity status. |
|
7386 |
|
7387 Modes: Common |
|
7388 |
|
7389 @see TMobileCallRemotePartyInfoV1 |
|
7390 */ |
|
7391 enum TMobileCallRemoteIdentityStatus |
|
7392 { |
|
7393 /** |
|
7394 The remote party's identity can not be determined. Calling |
|
7395 party's Binary Coded Decimal (BCD) number is not available. |
|
7396 Cause of No CLI is "unavailable". |
|
7397 */ |
|
7398 ERemoteIdentityUnknown, |
|
7399 |
|
7400 /** |
|
7401 The remote party's identity, or BCD number, is available. |
|
7402 However, cause of No CLI has not been set. |
|
7403 */ |
|
7404 ERemoteIdentityAvailable, |
|
7405 |
|
7406 /** |
|
7407 The remote party has suppressed the transmission of its |
|
7408 identity; i.e. their BCD number is not available. Cause of No |
|
7409 CLI is "reject by user". |
|
7410 */ |
|
7411 ERemoteIdentitySuppressed, |
|
7412 /** |
|
7413 The remote party's identity, or BCD number, is available. The |
|
7414 cause of No CLI is "reject by user". |
|
7415 |
|
7416 To be used where the network has specified that displaying of |
|
7417 CLI information of the remote party has been rejected by the |
|
7418 caller but the TMobileCallRemotePartyInfoV1::iRemoteNumber |
|
7419 parameter has been populated with some other string which may |
|
7420 be of use to the client. |
|
7421 */ |
|
7422 ERemoteIdentityAvailableNoCliRejectedByUser, |
|
7423 |
|
7424 /** |
|
7425 The remote party's identity is available; a BCD number is |
|
7426 available. The cause of No CLI is "Interaction with other |
|
7427 service". |
|
7428 |
|
7429 To be used where the network has specified that CLI information |
|
7430 of the remote party is not available due to ineraction with |
|
7431 another service. However, the |
|
7432 TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been |
|
7433 populated with some other string which may be of use to the |
|
7434 client. |
|
7435 */ |
|
7436 ERemoteIdentityAvailableNoCliInteractionWithOtherService, |
|
7437 /** |
|
7438 The remote party's identity, or BCD number, is unavailable. |
|
7439 Cause of No CLI is "interaction with other service". |
|
7440 */ |
|
7441 ERemoteIdentityUnavailableNoCliInteractionWithOtherService, |
|
7442 |
|
7443 /** |
|
7444 The remote party's identity, or BCD number, is available. |
|
7445 Cause of No CLI is "Coin Line/ Payphone". |
|
7446 |
|
7447 To be used where the network has specified that CLI information |
|
7448 of the remote party is not available as the caller is calling |
|
7449 from a coin/ payphone. However, the |
|
7450 TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been |
|
7451 populated with some other string which may be of use to the |
|
7452 client. |
|
7453 */ |
|
7454 ERemoteIdentityAvailableNoCliCoinOrPayphone, |
|
7455 /** |
|
7456 The remote party's identity, or BCD number, is not available. |
|
7457 Cause of No CLI is "Coin Line/ Payphone". |
|
7458 */ |
|
7459 ERemoteIdentityUnavailableNoCliCoinOrPayphone, |
|
7460 |
|
7461 /** |
|
7462 The remote party's identity, or BCD number, is available. |
|
7463 Cause of No CLI is "unavailable". |
|
7464 |
|
7465 To be used where the network has specified that the CLI |
|
7466 information of the remote party is not available but the |
|
7467 TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been |
|
7468 populated with some other string which may be of use to the |
|
7469 client. |
|
7470 */ |
|
7471 ERemoteIdentityAvailableNoCliUnavailable |
|
7472 }; |
|
7473 |
|
7474 |
|
7475 /** |
|
7476 The direction of the mobile call. |
|
7477 |
|
7478 Modes: Common |
|
7479 |
|
7480 @see TMobileCallRemotePartyInfoV1 |
|
7481 */ |
|
7482 enum TMobileCallDirection |
|
7483 { |
|
7484 /** The direction of the call is unknown. */ |
|
7485 EDirectionUnknown, |
|
7486 /** The call was originated by this phone, i.e. it is an outgoing call. */ |
|
7487 EMobileOriginated, |
|
7488 /** The call was terminated by this phone, i.e. it is an incoming call. */ |
|
7489 EMobileTerminated |
|
7490 }; |
|
7491 |
|
7492 enum { KCallingNameSize=80 }; |
|
7493 |
|
7494 |
|
7495 |
|
7496 class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType |
|
7497 /** Defines information about the remote party of a mobile call. |
|
7498 */ |
|
7499 { |
|
7500 public: |
|
7501 IMPORT_C TMobileCallRemotePartyInfoV1(); |
|
7502 public: |
|
7503 /** Indicates whether the remote party information in the rest of this structure |
|
7504 is valid or not. |
|
7505 |
|
7506 Modes: Common |
|
7507 |
|
7508 @see TMobileCallRemoteIdentityStatus */ |
|
7509 TMobileCallRemoteIdentityStatus iRemoteIdStatus; |
|
7510 /** The direction of the call and hence the role of the remote party, i.e. if the |
|
7511 call is mobile originated then the remote party is the called party whereas |
|
7512 if the call is mobile terminated then the remote party is the calling party. |
|
7513 |
|
7514 Modes: Common |
|
7515 |
|
7516 @see TMobileCallDirection */ |
|
7517 static TMobileCallDirection iDirection; |
|
7518 /** The phone number of the remote party if available. |
|
7519 |
|
7520 Modes: Common |
|
7521 |
|
7522 @see RMobilePhone::TMobileAddress */ |
|
7523 RMobilePhone::TMobileAddress iRemoteNumber; |
|
7524 /** Calling party name available through the CNAP supplementary service (if provisioned). |
|
7525 |
|
7526 |
|
7527 Modes: Common */ |
|
7528 TBuf<KCallingNameSize> iCallingName; |
|
7529 }; |
|
7530 |
|
7531 /** A typedef'd packaged TMobileCallRemotePartyInfoV1 for passing through a generic |
|
7532 API function member. */ |
|
7533 typedef TPckg<TMobileCallRemotePartyInfoV1> TMobileCallRemotePartyInfoV1Pckg; |
|
7534 |
|
7535 IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const; |
|
7536 |
|
7537 /** Determines which fields in the class are valid. |
|
7538 |
|
7539 @see TMobileCallInfoV1 */ |
|
7540 enum TMobileCallInfoFlags |
|
7541 { |
|
7542 /** The iStartTime field is valid in the call info class. |
|
7543 |
|
7544 Modes: COMMON */ |
|
7545 KCallStartTime = 0x00000001, |
|
7546 /** The iDuration field is valid in the call info class. |
|
7547 |
|
7548 Modes: COMMON */ |
|
7549 KCallDuration = 0x00000002, |
|
7550 /** The iCallId field is valid in the call info class. |
|
7551 |
|
7552 Modes: COMMON */ |
|
7553 KCallId = 0x00000004, |
|
7554 /** The iRemoteParty field is valid in the call info class. |
|
7555 |
|
7556 Modes: COMMON */ |
|
7557 KCallRemoteParty = 0x00000008, |
|
7558 /** The iDialledParty field is valid in the call info class. |
|
7559 |
|
7560 Modes: COMMON */ |
|
7561 KCallDialledParty = 0x00000010, |
|
7562 /** The iExitCode field is valid in the call info class. |
|
7563 |
|
7564 Modes: COMMON */ |
|
7565 KCallExitCode = 0x00000020, |
|
7566 /** The iEmergency field is valid in the call info class. |
|
7567 |
|
7568 Modes: COMMON */ |
|
7569 KCallEmergency = 0x00000040, |
|
7570 /** The iForwarded field is valid in the call info class. |
|
7571 |
|
7572 Modes: COMMON */ |
|
7573 KCallForwarded = 0x00000080, |
|
7574 /** The iPrivacy field is valid in the call info class. |
|
7575 |
|
7576 Modes: CDMA */ |
|
7577 KCallPrivacy = 0x00000100, |
|
7578 /** The iTch field is valid in the call info class. |
|
7579 |
|
7580 Modes: CDMA */ |
|
7581 KCallTch = 0x00000200, |
|
7582 /** The iAlternatingCall field is valid in the call info class. |
|
7583 |
|
7584 Modes: GSM/WCDMA */ |
|
7585 KCallAlternating = 0x00000400, |
|
7586 KCallSecurity = 0x00000800 |
|
7587 }; |
|
7588 |
|
7589 |
|
7590 |
|
7591 class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType |
|
7592 /** Defines general information about a mobile call. |
|
7593 */ |
|
7594 { |
|
7595 public: |
|
7596 IMPORT_C TMobileCallInfoV1(); |
|
7597 public: |
|
7598 /** A bit-wise sum of TMobileCallInfoFlags indicating which of the following optional |
|
7599 fields contain valid data. */ |
|
7600 TUint32 iValid; |
|
7601 /** The call service (voice, data, fax, aux. voice) that this call provides. |
|
7602 |
|
7603 @see RMobilePhone::TMobileService */ |
|
7604 RMobilePhone::TMobileService iService; |
|
7605 /** The mobile call status. |
|
7606 |
|
7607 @see TMobileCallStatus */ |
|
7608 static TMobileCallStatus iStatus; |
|
7609 /** The call ID number assigned to an ongoing call. Will equal -1 if the call does |
|
7610 not have an allocated ID. */ |
|
7611 TInt iCallId; |
|
7612 /** The reason for termination of a finished call. Will equal KErrNone if the call |
|
7613 ended normally and KErrNotFound if the call has not ended. */ |
|
7614 TInt iExitCode; |
|
7615 /** ETrue if the call is an emergency call or EFalse if it is not. */ |
|
7616 static TBool iEmergency; |
|
7617 /** For a MT call, this attribute equals ETrue if the call has been forwarded to |
|
7618 this phone or EFalse if it has not. For a MO call, this attribute equals ETrue |
|
7619 if the call has been forwarded to another destination or EFalse if it has |
|
7620 not. If the phone can not determine whether the call has been forwarded or |
|
7621 not then the attribute will return EFalse. */ |
|
7622 TBool iForwarded; |
|
7623 /** This attribute indicates whether privacy is on or off for this call. |
|
7624 |
|
7625 @see RMobilePhone::TMobilePhonePrivacy */ |
|
7626 RMobilePhone::TMobilePhonePrivacy iPrivacy; |
|
7627 /** This attribute indicates whether this call is an alternating call or not. |
|
7628 |
|
7629 @see RMobilePhone::TMobilePhoneAlternatingCallMode */ |
|
7630 RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall; |
|
7631 /** The current duration of the call. |
|
7632 |
|
7633 @see TTimeIntervalSeconds */ |
|
7634 TTimeIntervalSeconds iDuration; |
|
7635 /** This attribute indicates whether a digital or analog traffic channel is being |
|
7636 used for this call. |
|
7637 |
|
7638 @see TMobileCallTch */ |
|
7639 TMobileCallTch iTch; |
|
7640 /** Information about remote party of a connected call. |
|
7641 |
|
7642 @see TMobileCallRemotePartyInfoV1 */ |
|
7643 TMobileCallRemotePartyInfoV1 iRemoteParty; |
|
7644 /** The original number (including DTMF) dialled for an outgoing call. |
|
7645 |
|
7646 @see RMobilePhone::TMobileAddress */ |
|
7647 RMobilePhone::TMobileAddress iDialledParty; |
|
7648 /** The time and date the call started. |
|
7649 |
|
7650 @see TDateTime */ |
|
7651 TDateTime iStartTime; |
|
7652 /** The name of the call. |
|
7653 |
|
7654 @see TName */ |
|
7655 TName iCallName; |
|
7656 /** The name of the line on which the call is open. |
|
7657 |
|
7658 @see TName */ |
|
7659 TName iLineName; |
|
7660 }; |
|
7661 |
|
7662 /** A typedef'd packaged TMobileCallInfoV1 for passing through a generic API function |
|
7663 member. */ |
|
7664 typedef TPckg<TMobileCallInfoV1> TMobileCallInfoV1Pckg; |
|
7665 |
|
7666 class TMobileCallInfoV3 : public TMobileCallInfoV1 |
|
7667 /** |
|
7668 Extends the TMobileCallInfoV1 claass to include extra call info parameter relating to network security. |
|
7669 @publishedPartner |
|
7670 @released |
|
7671 */ |
|
7672 { |
|
7673 public: |
|
7674 IMPORT_C TMobileCallInfoV3(); |
|
7675 public: |
|
7676 /** |
|
7677 Indicates whether Ciphering Status of a call is enabled or disabled. |
|
7678 */ |
|
7679 RMobilePhone::TMobilePhoneNetworkSecurity iSecurity; |
|
7680 }; |
|
7681 |
|
7682 typedef TPckg<TMobileCallInfoV3> TMobileCallInfoV3Pckg; |
|
7683 |
|
7684 IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const; |
|
7685 |
|
7686 /***********************************************************************************/ |
|
7687 // |
|
7688 // MobileCallEmergency functional unit |
|
7689 // |
|
7690 /***********************************************************************************/ |
|
7691 |
|
7692 IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const; |
|
7693 |
|
7694 /***********************************************************************************/ |
|
7695 // |
|
7696 // MobileCallCompletion |
|
7697 // |
|
7698 /***********************************************************************************/ |
|
7699 |
|
7700 IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus, TInt& aIndex) const; |
|
7701 IMPORT_C TInt RejectCCBS() const; |
|
7702 // |
|
7703 // User-To-User Signalling Functional Unit |
|
7704 // |
|
7705 /***********************************************************************************/ |
|
7706 |
|
7707 /** The UUS capabilities of the call. |
|
7708 |
|
7709 Modes: GSM/WCDMA. */ |
|
7710 enum TMobileCallUUSCaps // UUS capabilities of the call |
|
7711 { |
|
7712 /** Indicates that MS supports UUS1 implicit request. */ |
|
7713 KCapsSetupUUS1Implicit=0x00000001, |
|
7714 /** Indicates that MS supports UUS1 explicit request. */ |
|
7715 KCapsSetupUUS1Explicit=0x00000002, |
|
7716 /** Indicates that MS supports UUS2 request. */ |
|
7717 KCapsSetupUUS2=0x00000004, |
|
7718 /** Indicates that MS supports UUS3 request. */ |
|
7719 KCapsSetupUUS3=0x00000008, |
|
7720 /** Indicates that MS supports activating more than one UUS request at a time. */ |
|
7721 KCapsSetupMultipleUUS=0x00000010, |
|
7722 /** Indicates that UUS1 is active for this call. */ |
|
7723 KCapsActiveUUS1=0x00000020, |
|
7724 /** Indicates that UUS2 is active for this call. */ |
|
7725 KCapsActiveUUS2=0x00000040, |
|
7726 /** Indicates that UUS3 is active for this call. */ |
|
7727 KCapsActiveUUS3=0x00000080 |
|
7728 }; |
|
7729 |
|
7730 IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const; |
|
7731 IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
7732 |
|
7733 /** UUS Service requests. |
|
7734 |
|
7735 Modes: GSM/WCDMA */ |
|
7736 enum TMobileCallUUSReqs // UUS Service requests |
|
7737 { |
|
7738 /** UUS1 is implicitly requested. */ |
|
7739 KUUS1Implicit=0x00000001, |
|
7740 /** UUS1 is explicitly requested, but it is not mandatory for this call to proceed. */ |
|
7741 KUUS1ExplicitRequested=0x00000002, |
|
7742 /** UUS1 is explicitly requested and it is mandatory for this call to proceed. */ |
|
7743 KUUS1ExplicitRequired=0x00000004, |
|
7744 /** UUS2 is (explicitly) requested, but it is not mandatory for this call to proceed. */ |
|
7745 KUUS2Requested=0x00000008, |
|
7746 /** UUS2 is (explicitly) requested and it is mandatory for this call to proceed. */ |
|
7747 KUUS2Required=0x00000010, |
|
7748 /** UUS3 is (explicitly) requested, but it is not mandatory for this call to proceed. */ |
|
7749 KUUS3Requested=0x00000020, |
|
7750 /** UUS3 is (explicitly) requested and it is mandatory for this call to proceed. */ |
|
7751 KUUS3Required=0x00000040 |
|
7752 }; |
|
7753 |
|
7754 enum |
|
7755 { |
|
7756 KMaxUUISize = 129, |
|
7757 }; |
|
7758 |
|
7759 /** Buffer for the UUI element. */ |
|
7760 typedef TBuf<KMaxUUISize> TMobileCallUUI; |
|
7761 |
|
7762 class TMobileCallUUSRequestV1 : public RMobilePhone::TMultimodeType |
|
7763 /** The mobile Call User-to-User Signaling request. |
|
7764 */ |
|
7765 { |
|
7766 public: |
|
7767 IMPORT_C TMobileCallUUSRequestV1(); |
|
7768 public: |
|
7769 /** This field indicates whether the specified service is requested or required |
|
7770 for the call. */ |
|
7771 TUint iServiceReq; |
|
7772 /** The UUI element. This field only contains data if iServiceReq indicates UUS1. |
|
7773 |
|
7774 @see TMobileCallUUI */ |
|
7775 TMobileCallUUI iUUI; |
|
7776 }; |
|
7777 |
|
7778 /** A typedef'd packaged TMobileCallUUSRequestV1 for passing through a generic API |
|
7779 function member. */ |
|
7780 typedef TPckg<TMobileCallUUSRequestV1> TMobileCallUUSRequestV1Pckg; |
|
7781 |
|
7782 IMPORT_C void ActivateUUS(TRequestStatus& aReqStatus, const TDesC8& aUUSRequest) const; |
|
7783 IMPORT_C void SendUUI(TRequestStatus& aReqStatus, TBool aMore, const TMobileCallUUI& aUUI) const; |
|
7784 IMPORT_C void ReceiveUUI(TRequestStatus& aReqStatus, TMobileCallUUI& aUUI) const; |
|
7785 IMPORT_C void HangupWithUUI(TRequestStatus& aReqStatus, const TMobileCallUUI& aUUI) const; |
|
7786 IMPORT_C void AnswerIncomingCallWithUUI(TRequestStatus& aReqStatus, const TDesC8& aCallParams, const TMobileCallUUI& aUUI) const; |
|
7787 |
|
7788 /***********************************************************************************/ |
|
7789 // |
|
7790 // Etel 3rd Party v1.0 Parameter classes |
|
7791 // |
|
7792 /***********************************************************************************/ |
|
7793 |
|
7794 class TEtel3rdPartyMobileCallParamsV1 : public RCall::TCallParams |
|
7795 /** Defines the parameters used to set-up of a call originated from an ETel 3rd Party client. |
|
7796 @publishedPartner |
|
7797 @released |
|
7798 */ |
|
7799 { |
|
7800 public: |
|
7801 IMPORT_C TEtel3rdPartyMobileCallParamsV1(); |
|
7802 public: |
|
7803 /** Call Id restriction setting to be used for this call. |
|
7804 |
|
7805 @see TMobileCallIdRestriction */ |
|
7806 TMobileCallIdRestriction iIdRestrict; |
|
7807 /** Specifies whether this call attempt is user initiated (EFalse) or a client initiated |
|
7808 redial (ETrue). */ |
|
7809 TBool iAutoRedial; |
|
7810 }; |
|
7811 |
|
7812 /** A typedef'd packaged TEtel3rdPartyMobileCallParamsV1 for passing through a generic API |
|
7813 function member. */ |
|
7814 typedef TPckg<TEtel3rdPartyMobileCallParamsV1>TEtel3rdPartyMobileCallParamsV1Pckg; |
|
7815 |
|
7816 |
|
7817 private: |
|
7818 RMobileCall(const RMobileCall& aCall); |
|
7819 CMobileCallPtrHolder* iMmPtrHolder; |
|
7820 protected: |
|
7821 IMPORT_C void ConstructL(); |
|
7822 IMPORT_C void Destruct(); |
|
7823 }; |
|
7824 |
|
7825 |
|
7826 /*********************************************************/ |
|
7827 // |
|
7828 // Line based functionality (RMobileLine) |
|
7829 // |
|
7830 /*********************************************************/ |
|
7831 |
|
7832 |
|
7833 |
|
7834 class CMobileLinePtrHolder; |
|
7835 |
|
7836 class RMobileLine : public RLine |
|
7837 /** Provides access to the functionality associated with a specific mobile line. |
|
7838 */ |
|
7839 { |
|
7840 public: |
|
7841 IMPORT_C RMobileLine(); |
|
7842 |
|
7843 /***********************************************************************************/ |
|
7844 // |
|
7845 // MobileLineStatus functional unit |
|
7846 // |
|
7847 /***********************************************************************************/ |
|
7848 |
|
7849 IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const; |
|
7850 IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const; |
|
7851 |
|
7852 // |
|
7853 // Additional Caps |
|
7854 // |
|
7855 /** Enumerated auxiliary capabilities. */ |
|
7856 enum TMobileLineAdditionalCaps |
|
7857 { |
|
7858 /** Indicates whether the line is a Primary or Auxiliary voice line offset added |
|
7859 so that core Etel and additional line caps can be returned in one TUint. */ |
|
7860 KCapsAuxVoice=0x00000008 |
|
7861 }; |
|
7862 |
|
7863 private: |
|
7864 RMobileLine(const RMobileLine& aLine); |
|
7865 CMobileLinePtrHolder* iMmPtrHolder; |
|
7866 protected: |
|
7867 IMPORT_C void ConstructL(); |
|
7868 IMPORT_C void Destruct(); |
|
7869 }; |
|
7870 |
|
7871 |
|
7872 /*********************************************************/ |
|
7873 // |
|
7874 // SMS Messaging (RMobileSmsMessaging) |
|
7875 // |
|
7876 /*********************************************************/ |
|
7877 |
|
7878 |
|
7879 |
|
7880 class CMobilePhoneSmspList; |
|
7881 class CSmsMessagingPtrHolder; |
|
7882 |
|
7883 class RMobileSmsMessaging : public RTelSubSessionBase |
|
7884 /** Provides client access to SMS messaging functionality provided by TSY. |
|
7885 @publishedPartner |
|
7886 @released |
|
7887 */ |
|
7888 { |
|
7889 public: |
|
7890 |
|
7891 friend class CRetrieveMobilePhoneSmspList; |
|
7892 |
|
7893 IMPORT_C RMobileSmsMessaging(); |
|
7894 |
|
7895 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
7896 IMPORT_C void Close(); |
|
7897 |
|
7898 /** Defines capabilities of SMS messaging. |
|
7899 |
|
7900 Modes: GSM/WCDMA */ |
|
7901 enum TMobileSmsModeCaps |
|
7902 { |
|
7903 /** SMS is supported in GSM and WCDMA modes. SMS are sent across MM ETel API in |
|
7904 a GSM 03.40 TPDU format. |
|
7905 |
|
7906 Modes: GSM/WCDMA */ |
|
7907 KCapsGsmSms=0x00000001, |
|
7908 /** SMS is supported in CDMA mode. SMS are sent across MM ETel API in a IS-637 |
|
7909 Teleservice message PDU format. |
|
7910 |
|
7911 Modes: CDMA */ |
|
7912 KCapsCdmaSms=0x00000002 |
|
7913 }; |
|
7914 |
|
7915 /** Defines SMS control capabilities. |
|
7916 |
|
7917 Modes: Common */ |
|
7918 enum TMobileSmsControlCaps |
|
7919 { |
|
7920 /** TSY supports receiving incoming SMS that have been stored and acknowledged |
|
7921 by the phone prior to forwarding to the TSY. If this flag is set then KCapsReceiveEither |
|
7922 will not be set and the client can receive stored messages only while the |
|
7923 TSY-phone link is in "receive stored" mode. |
|
7924 |
|
7925 Modes: Common */ |
|
7926 KCapsReceiveStored=0x00000001, |
|
7927 /** TSY supports receiving incoming SMS that have been acknowledged by the phone |
|
7928 but have NOT already been stored. It is the client's responsibility to do |
|
7929 the storage. If this flag is set then KCapsReceiveEither will not be set and |
|
7930 the client can receive unstored messages only while the TSY-phone link is |
|
7931 in "receive unstored with phone ack" mode. |
|
7932 |
|
7933 Modes: Common */ |
|
7934 KCapsReceiveUnstoredPhoneAck=0x00000002, |
|
7935 /** TSY supports receiving incoming SMS that have NOT already been stored and acknowledged |
|
7936 by the phone. It is the client's responsibility to do both the storage and |
|
7937 the acknowledgment or rejection. If this flag is set then KCapsReceiveEither |
|
7938 will not be set and the client can receive unstored messages only while the |
|
7939 TSY-phone link is in "receive unstored with client ack" mode. |
|
7940 |
|
7941 Modes: Common */ |
|
7942 KCapsReceiveUnstoredClientAck=0x00000004, |
|
7943 /** TSY supports receiving either stored or unstored incoming SMS at any time. |
|
7944 If this flag is set then any other KCapsReceive... flags will not be set and |
|
7945 the client can receive stored or unstored messages while the TSY-phone link |
|
7946 is in "receive either" mode. |
|
7947 |
|
7948 Modes: Common */ |
|
7949 KCapsReceiveEither=0x00000008, |
|
7950 /** TSY supports creating a default acknowledgment or rejection TPDU using only |
|
7951 a "cause code" supplied by the client. If this flag is not set then the client |
|
7952 must supply the full ack or nack TPDU if it calls RMobileSmsMessaging::AckSmsStored() |
|
7953 or RMobileSmsMessaging::NackSmsStored(). |
|
7954 |
|
7955 Modes: Common */ |
|
7956 KCapsCreateAck=0x00000010, |
|
7957 /** TSY supports sending SMS messages but does not support returning the service |
|
7958 centre's acknowledgment of the submitted message to the client. |
|
7959 |
|
7960 Modes: Common */ |
|
7961 KCapsSendNoAck=0x00000020, |
|
7962 /** TSY supports sending SMS messages and also supports returning the service centre's |
|
7963 acknowledgment of the submitted message to the client. |
|
7964 |
|
7965 Modes: GSM/WCDMA */ |
|
7966 KCapsSendWithAck=0x00000040, |
|
7967 /** TSY supports retrieval of the SMS parameter list. |
|
7968 |
|
7969 Modes: GSM/WCDMA */ |
|
7970 KCapsGetSmspList=0x00000080, |
|
7971 /** TSY supports storage of the SMS parameter list |
|
7972 |
|
7973 Modes: GSM/WCDMA */ |
|
7974 KCapsSetSmspList=0x00000100 |
|
7975 }; |
|
7976 |
|
7977 class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType |
|
7978 /** Defines capabilities of SMS messaging. |
|
7979 */ |
|
7980 { |
|
7981 public: |
|
7982 IMPORT_C TMobileSmsCapsV1(); |
|
7983 |
|
7984 /** Sum of TMobileSmsModeCaps constants. |
|
7985 |
|
7986 Modes: Common */ |
|
7987 TUint32 iSmsMode; |
|
7988 /** Sum of TMobileSmsControlCaps constants. |
|
7989 |
|
7990 Modes: Common */ |
|
7991 TUint32 iSmsControl; |
|
7992 }; |
|
7993 |
|
7994 /** A typedef'd packaged TMobileSmsCapsV1 for passing through a generic API member |
|
7995 function. */ |
|
7996 typedef TPckg<TMobileSmsCapsV1> TMobileSmsCapsV1Pckg; |
|
7997 |
|
7998 IMPORT_C TInt GetCaps(TDes8& aCaps) const; |
|
7999 |
|
8000 // Definitions for sizes of TPDU and User Data fields |
|
8001 enum |
|
8002 { |
|
8003 KGsmTpduSize = 165, // 140 bytes user data + 25 bytes TPDU header |
|
8004 KCdmaTpduSize = 256 // Max size of Bearer Data in Transport Layer message |
|
8005 }; |
|
8006 |
|
8007 /** A typedef'd buffer for GSM or WCDMA message data. */ |
|
8008 typedef TBuf8<KGsmTpduSize> TMobileSmsGsmTpdu; |
|
8009 /** A typedef'd buffer for CDMA message data. */ |
|
8010 typedef TBuf8<KCdmaTpduSize> TMobileSmsCdmaTpdu; |
|
8011 |
|
8012 /***********************************************************************************/ |
|
8013 // |
|
8014 // Enum used by TSY to distinguish which SMS attribute class is used by client |
|
8015 // |
|
8016 /***********************************************************************************/ |
|
8017 |
|
8018 /** Used by TSY to distinguish which SMS attribute class is used by client. |
|
8019 |
|
8020 Modes: Common |
|
8021 |
|
8022 @see RMobileSmsMessaging::TMobileSmsSendAttributesV1 */ |
|
8023 enum TMobileSmsAttributeExtensionId |
|
8024 { |
|
8025 /** The iExtensionId contents indicate that the packaged class is a TMobileSmsAttributesV1. */ |
|
8026 KETelMobileSmsAttributesV1=KETelExtMultimodeV1, |
|
8027 /** The iExtensionId contents indicate that the packaged class is a TMobileSmsReceiveAttributesV1. */ |
|
8028 KETelMobileSmsReceiveAttributesV1, |
|
8029 /** The iExtensionId contents indicate that the packaged class is a TMobileSmsSendAttributesV1. */ |
|
8030 KETelMobileSmsSendAttributesV1, |
|
8031 /** The iExtensionId contents indicate that the packaged class is a TMobileSmsCdmaSendAttributesV4. */ |
|
8032 KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4 |
|
8033 }; |
|
8034 |
|
8035 /** Defines common attributes of all SMS messages. |
|
8036 |
|
8037 Modes: CDMA |
|
8038 |
|
8039 @see TMobileSmsAttributesV1 */ |
|
8040 enum TMobileSmsAttributeFlags |
|
8041 { |
|
8042 /** The iCdmaTeleservice field is valid in the attribute class. |
|
8043 |
|
8044 Modes: CDMA */ |
|
8045 KCdmaTeleservice = 0x00000001, |
|
8046 /** The iCdmaServiceCategory field is valid in the attribute class. |
|
8047 |
|
8048 Modes: CDMA */ |
|
8049 KCdmaServiceCategory = 0x00000002, |
|
8050 /** The iGsmServiceCentre field is valid in the attribute class. |
|
8051 |
|
8052 Modes: GSM/WCDMA */ |
|
8053 KGsmServiceCentre = 0x00000004, |
|
8054 /** The iDataFormat field is valid in the attribute class. |
|
8055 |
|
8056 Modes: Common */ |
|
8057 KSmsDataFormat = 0x00000008, |
|
8058 /** The iOriginator or iDestination field is valid in the attribute class. |
|
8059 |
|
8060 Modes: Common */ |
|
8061 KRemotePartyInfo = 0x00000010, |
|
8062 /** The iStatus field is valid in the attribute class. |
|
8063 |
|
8064 Modes: Common */ |
|
8065 KIncomingStatus = 0x00000020, |
|
8066 /** The iStore and iStoreIndex fields are valid in the attribute class. |
|
8067 |
|
8068 Modes: Common */ |
|
8069 KStorageLocation = 0x00000040, |
|
8070 /** The iMsgRef field is valid in the attribute class. |
|
8071 |
|
8072 Modes: Common */ |
|
8073 KMessageReference = 0x00000080, |
|
8074 /** The iSubmitReport field is valid in the attribute class. |
|
8075 |
|
8076 Modes: GSM/WCDMA */ |
|
8077 KGsmSubmitReport = 0x00000100, |
|
8078 /** The iMore field is valid in the attribute class. |
|
8079 |
|
8080 Modes: Common */ |
|
8081 KMoreToSend = 0x00000200, |
|
8082 /** Indicates to the TSY that it should keep the traffic channel open since there is |
|
8083 another message ready to be sent immediately after this one (typically used when |
|
8084 sending messages to multiple recipients). TSY should then keep the channel open |
|
8085 until a message is sent with this bit cleared. |
|
8086 |
|
8087 Modes: CDMA */ |
|
8088 KCdmaKeepChannelOpen = 0x00000400, |
|
8089 /** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network |
|
8090 |
|
8091 Modes: CDMA */ |
|
8092 KCdmaTLAckRequired = 0x00000800, |
|
8093 /** The iAddressAuthentication field is valid in the attribute class. |
|
8094 |
|
8095 Modes: CDMA */ |
|
8096 KCdmaAddressAuthentication = 0x00001000 |
|
8097 }; |
|
8098 |
|
8099 /** Defines the SMS data format. |
|
8100 |
|
8101 Modes: Common */ |
|
8102 enum TMobileSmsDataFormat |
|
8103 { |
|
8104 /** The format is not specified. |
|
8105 |
|
8106 Modes: Common */ |
|
8107 EFormatUnspecified, |
|
8108 /** The message data format complies to a SMS TPDU coded as octets according to |
|
8109 GSM 03.40. |
|
8110 |
|
8111 Modes: GSM/WCDMA */ |
|
8112 EFormatGsmTpdu, |
|
8113 /** The message data format complies to a SMS Teleservice PDU coded as octets according |
|
8114 to IS-637. |
|
8115 |
|
8116 Modes: CDMA */ |
|
8117 EFormatCdmaTpdu |
|
8118 }; |
|
8119 |
|
8120 class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType |
|
8121 /** Defines common attributes of all SMS messages. |
|
8122 @publishedPartner |
|
8123 @released |
|
8124 */ |
|
8125 { |
|
8126 protected: |
|
8127 TMobileSmsAttributesV1(); |
|
8128 public: |
|
8129 /** The bit-mask flags from TMobileSmsAttributeFlags indicating which attributes |
|
8130 are present in this instance. |
|
8131 |
|
8132 Modes: Common */ |
|
8133 TUint32 iFlags; |
|
8134 /** The format of the message data buffer . |
|
8135 |
|
8136 Modes: Common |
|
8137 |
|
8138 @see TMobileSmsDataFormat */ |
|
8139 TMobileSmsDataFormat iDataFormat; |
|
8140 /** The teleservice this message belongs to, coded according to SMS teleservice |
|
8141 identifier values table in TIA/EIA-41-D. |
|
8142 |
|
8143 Modes: CDMA */ |
|
8144 TInt iCdmaTeleservice; |
|
8145 /** The service category this message belongs to. |
|
8146 |
|
8147 Modes: CDMA */ |
|
8148 TInt iCdmaServiceCategory; |
|
8149 /** The GSM service centre used for this SMS. |
|
8150 |
|
8151 Modes: GSM/WCDMA |
|
8152 |
|
8153 @see RMobilePhone::TMobileAddress */ |
|
8154 RMobilePhone::TMobileAddress iGsmServiceCentre; |
|
8155 }; |
|
8156 |
|
8157 /** A typedef'd packaged TMobileSmsAttributesV1 for passing through a generic |
|
8158 API member function. */ |
|
8159 typedef TPckg<TMobileSmsAttributesV1> TMobileSmsAttributesV1Pckg; |
|
8160 |
|
8161 /** Defines attributes of incoming SMS messages. |
|
8162 |
|
8163 Modes: Common */ |
|
8164 enum TMobileSmsIncomingStatus |
|
8165 { |
|
8166 /** The status of the incoming SMS is unknown. */ |
|
8167 EMtMessageUnknownStatus, |
|
8168 /** The incoming SMS is not stored phone-side but has already been acknowledged |
|
8169 by the phone. */ |
|
8170 EMtMessageUnstoredPhoneAck, |
|
8171 /** The incoming SMS is not stored phone-side and needs to be acknowledged by the |
|
8172 client. */ |
|
8173 EMtMessageUnstoredClientAck, |
|
8174 /** The incoming SMS is stored phone-side. */ |
|
8175 EMtMessageStored |
|
8176 }; |
|
8177 |
|
8178 class TMobileSmsReceiveAttributesV1 : public TMobileSmsAttributesV1 |
|
8179 /** Defines attributes of incoming SMS messages. |
|
8180 @publishedPartner |
|
8181 @released |
|
8182 */ |
|
8183 { |
|
8184 public: |
|
8185 IMPORT_C TMobileSmsReceiveAttributesV1(); |
|
8186 public: |
|
8187 /** Indicates the status of the incoming message -whether it is stored phone-side |
|
8188 or has been acknowledged by the phone. |
|
8189 |
|
8190 Modes: Common |
|
8191 |
|
8192 @see TMobileSmsIncomingStatus */ |
|
8193 TMobileSmsIncomingStatus iStatus; // indicates if MT message is stored phone-side |
|
8194 /** If the message is stored phone-side, indicates the index (within the phone-side |
|
8195 store) where the message is stored. |
|
8196 |
|
8197 Modes: Common */ |
|
8198 TInt iStoreIndex;// used if MT message is stored phone-side |
|
8199 /** If the message is stored phone-side, indicates the name of the appropriate |
|
8200 phone-side store. |
|
8201 |
|
8202 Modes: Common |
|
8203 |
|
8204 @see RMobilePhone::TMobileName */ |
|
8205 RMobilePhone::TMobileName iStore; // used if MT message is stored phone-side |
|
8206 /** The address of the originator of the SMS. |
|
8207 |
|
8208 Modes: Common |
|
8209 |
|
8210 @see RMobilePhone::TMobileAddress */ |
|
8211 RMobilePhone::TMobileAddress iOriginator; |
|
8212 }; |
|
8213 |
|
8214 /** A typedef'd packaged TMobileSmsReceiveAttributesV1 for passing through a generic |
|
8215 API member function. */ |
|
8216 typedef TPckg<TMobileSmsReceiveAttributesV1> TMobileSmsReceiveAttributesV1Pckg; |
|
8217 |
|
8218 |
|
8219 |
|
8220 class TMobileSmsSendAttributesV1 : public TMobileSmsAttributesV1 |
|
8221 /** Defines attributes of sent SMS messages. |
|
8222 @publishedPartner |
|
8223 @released */ |
|
8224 { |
|
8225 public: |
|
8226 IMPORT_C TMobileSmsSendAttributesV1(); |
|
8227 public: |
|
8228 /** The message reference assigned to a sent message. |
|
8229 |
|
8230 Modes: Common */ |
|
8231 TUint16 iMsgRef; |
|
8232 /** A boolean indicating whether the client is going to send another SMS immediately |
|
8233 after this one. Equals ETrue if this is the case, EFalse if it is not. |
|
8234 |
|
8235 Modes: Common */ |
|
8236 TBool iMore; |
|
8237 /** The SMS-SUBMIT-REPORT TPDU received from network in response to a sent message. |
|
8238 |
|
8239 Modes: GSM/WCDMA |
|
8240 |
|
8241 @see TMobileSmsGsmTpdu */ |
|
8242 TMobileSmsGsmTpdu iSubmitReport; |
|
8243 /** The address of the destination of the SMS. |
|
8244 |
|
8245 Modes: Common |
|
8246 |
|
8247 @see RMobilePhone::TMobileAddress */ |
|
8248 RMobilePhone::TMobileAddress iDestination; |
|
8249 }; |
|
8250 |
|
8251 /** A typedef'd packaged TMobileSmsSendAttributesV1 for passing through a generic |
|
8252 API member function. */ |
|
8253 typedef TPckg<TMobileSmsSendAttributesV1> TMobileSmsSendAttributesV1Pckg; |
|
8254 |
|
8255 class TMobileSmsCdmaSendAttributesV4 : public TMobileSmsAttributesV1 |
|
8256 /** |
|
8257 Defines attributes of sent SMS messages (CDMA only). |
|
8258 |
|
8259 @publishedPartner |
|
8260 @released |
|
8261 */ |
|
8262 { |
|
8263 public: |
|
8264 IMPORT_C TMobileSmsCdmaSendAttributesV4(); |
|
8265 public: |
|
8266 /** |
|
8267 The message id allocated by the SMS stack. The TSY should |
|
8268 retrieve the value from iCdmaTeleserviceId to determine |
|
8269 which teleservice this message id corresponds to. |
|
8270 */ |
|
8271 TUint16 iMsgRef; |
|
8272 /** Indicates whether the client is going to send another |
|
8273 PDU immediately after this one (typically used when sending |
|
8274 messages of more than one PDU). Equals ETrue if at least |
|
8275 one more PDU is needed to complete the message and EFalse |
|
8276 otherwise. |
|
8277 */ |
|
8278 TBool iMore; |
|
8279 /** TPDU received from network in response to a sent message */ |
|
8280 TMobileSmsCdmaTpdu iTLAck; |
|
8281 /** The address of the destination of the SMS. */ |
|
8282 RMobilePhone::TMobileAddress iDestination; |
|
8283 /** Transport layer authentication parameter */ |
|
8284 TUint32 iAddressAuthentication; |
|
8285 }; |
|
8286 |
|
8287 /** A typedef'd packaged TMobileSmsCdmaSendAttributesV4 for passing through a generic |
|
8288 API member function. */ |
|
8289 typedef TPckg<TMobileSmsCdmaSendAttributesV4> TMobileSmsCdmaSendAttributesV4Pckg; |
|
8290 |
|
8291 // |
|
8292 // Setting up the storage & acknowledgement mode |
|
8293 // |
|
8294 |
|
8295 /** Defines the SMS receive modes. |
|
8296 |
|
8297 Modes: Common */ |
|
8298 enum TMobileSmsReceiveMode |
|
8299 { |
|
8300 /** Receive mode is unspecified and phone will use its default. */ |
|
8301 EReceiveModeUnspecified, |
|
8302 /** Phone will store and acknowledge all incoming messages before passing them |
|
8303 onto TSY. */ |
|
8304 EReceiveUnstoredPhoneAck, // client stores but phone acknowledges message |
|
8305 /** Phone will acknowledge but NOT store all incoming messages before passing them |
|
8306 onto TSY. It is client's responsibility to store the message. */ |
|
8307 EReceiveUnstoredClientAck, // client acknowledges and stores message |
|
8308 /** Phone will NOT acknowledge or store any incoming messages before passing them |
|
8309 onto TSY. It is client's responsibility to attempt storage and then either |
|
8310 acknowledge or reject the message. */ |
|
8311 EReceiveStored, // phone acknowledges and store message |
|
8312 /** Phone may pass on either stored or unstored messages to TSY. It is client's |
|
8313 responsibility to check RMobileSmsMessaging::TMobileSmsReceiveAttributesV1::iStatus |
|
8314 to determine what action(s) the client needs to take for a message. */ |
|
8315 EReceiveEither // client deals with stored & unstored messages |
|
8316 }; |
|
8317 |
|
8318 IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const; |
|
8319 IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const; |
|
8320 IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode); |
|
8321 |
|
8322 /***********************************************************************************/ |
|
8323 // |
|
8324 // Incoming SMS |
|
8325 // |
|
8326 /***********************************************************************************/ |
|
8327 |
|
8328 IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; |
|
8329 |
|
8330 /***********************************************************************************/ |
|
8331 // |
|
8332 // Responding to incoming SMS |
|
8333 // |
|
8334 /***********************************************************************************/ |
|
8335 |
|
8336 IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const; |
|
8337 IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TInt aRpCause) const; |
|
8338 IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const; |
|
8339 |
|
8340 /***********************************************************************************/ |
|
8341 // |
|
8342 // Outgoing SMS |
|
8343 // |
|
8344 /***********************************************************************************/ |
|
8345 |
|
8346 IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const; |
|
8347 IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const; |
|
8348 |
|
8349 /** Defines the SMS bearer. |
|
8350 |
|
8351 Modes: GSM */ |
|
8352 enum TMobileSmsBearer |
|
8353 { |
|
8354 /** SMS messages will only be sent over a packet-switched (GPRS) network. */ |
|
8355 ESmsBearerPacketOnly, |
|
8356 /** SMS messages will only be sent over a circuit-switched (GSM) network. */ |
|
8357 ESmsBearerCircuitOnly, |
|
8358 /** SMS messages will be sent over the packet-switched (GPRS) network if possible, |
|
8359 otherwise over circuit-switched (GSM) network. */ |
|
8360 ESmsBearerPacketPreferred, |
|
8361 /** SMS messages will be sent over the circuit-switched (GSM) network if possible, |
|
8362 otherwise over packet-switched (GPRS) network. */ |
|
8363 ESmsBearerCircuitPreferred |
|
8364 }; |
|
8365 |
|
8366 IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const; |
|
8367 IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const; |
|
8368 IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer); |
|
8369 |
|
8370 /***********************************************************************************/ |
|
8371 // |
|
8372 // Get information on phone-side SMS storage |
|
8373 // |
|
8374 /***********************************************************************************/ |
|
8375 |
|
8376 IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const; |
|
8377 IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const; |
|
8378 |
|
8379 /***********************************************************************************/ |
|
8380 // |
|
8381 // Read/Write SMS parameters to phone-side storage |
|
8382 // |
|
8383 /***********************************************************************************/ |
|
8384 |
|
8385 enum { KMaxSmspTextSize=30 }; |
|
8386 |
|
8387 /** Defines the valid SMS parameters store. |
|
8388 |
|
8389 Modes: GSM/WCDMA |
|
8390 |
|
8391 @see TMobileSmspEntryV1 */ |
|
8392 enum TMobileSmspStoreValidParams |
|
8393 { |
|
8394 /** The entry includes a valid iDestination field. */ |
|
8395 KDestinationIncluded=0x00000001, |
|
8396 /** The entry includes a valid iServiceCentre field. */ |
|
8397 KSCAIncluded=0x00000002, |
|
8398 /** The entry includes a valid iProtocolId field. */ |
|
8399 KProtocolIdIncluded=0x00000004, |
|
8400 /** The entry includes a valid iDcs field. */ |
|
8401 KDcsIncluded=0x00000008, |
|
8402 /** The entry includes a valid iValidityPeriod field. */ |
|
8403 KValidityPeriodIncluded=0x00000010 |
|
8404 }; |
|
8405 |
|
8406 class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType |
|
8407 |
|
8408 /** Defines a set of SMS parameters. |
|
8409 @publishedPartner |
|
8410 @released |
|
8411 */ |
|
8412 { |
|
8413 public: |
|
8414 IMPORT_C TMobileSmspEntryV1(); |
|
8415 public: |
|
8416 void InternalizeL(RReadStream& aStream); |
|
8417 void ExternalizeL(RWriteStream& aStream) const; |
|
8418 public: |
|
8419 /** The slot index where this SMSP entry is stored in the SIM's SMSP file. */ |
|
8420 TInt iIndex; |
|
8421 /** A bit-wise sum of the constants defined in TMobileSmspStoreValidParams, that |
|
8422 specifies which parameters are valid within this entry. */ |
|
8423 TUint32 iValidParams; |
|
8424 /** Default protocol ID. Coded according to GSM 03.40. */ |
|
8425 TUint8 iProtocolId; |
|
8426 /** Default data coding scheme. Coded according to GSM 03.40. */ |
|
8427 TUint8 iDcs; |
|
8428 /** Default validity period, in relative format and coded on 8 bits as defined |
|
8429 by GSM 03.40. */ |
|
8430 TUint8 iValidityPeriod; |
|
8431 /** Reserved for future use. */ |
|
8432 TUint8 iReservedFiller; |
|
8433 /** Default destination for outgoing SMS. |
|
8434 |
|
8435 @see RMobilePhone::TMobileAddress */ |
|
8436 RMobilePhone::TMobileAddress iDestination; |
|
8437 /** Default service centre for outgoing SMS. |
|
8438 |
|
8439 @see RMobilePhone::TMobileAddress */ |
|
8440 RMobilePhone::TMobileAddress iServiceCentre; |
|
8441 /** The alpha-tag associated with this SMSP entry, expressed as Unicode characters. */ |
|
8442 TBuf<KMaxSmspTextSize> iText; |
|
8443 }; |
|
8444 |
|
8445 /** A typedef'd packaged TMobileSmspEntryV1 for passing through a generic API member |
|
8446 function. */ |
|
8447 typedef TPckg<TMobileSmspEntryV1> TMobileSmspEntryV1Pckg; |
|
8448 IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const; |
|
8449 IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const; |
|
8450 |
|
8451 private: |
|
8452 RMobileSmsMessaging(const RMobileSmsMessaging&); |
|
8453 CSmsMessagingPtrHolder* iSmsMessagingPtrHolder; |
|
8454 protected: |
|
8455 IMPORT_C void ConstructL(); |
|
8456 IMPORT_C void Destruct(); |
|
8457 }; |
|
8458 |
|
8459 |
|
8460 /*********************************************************/ |
|
8461 // |
|
8462 // Broadcast Messaging (RMobileBroadcastMessaging) |
|
8463 // |
|
8464 /*********************************************************/ |
|
8465 |
|
8466 |
|
8467 |
|
8468 class CMobilePhoneBroadcastIdList; |
|
8469 |
|
8470 class CCbsMessagingPtrHolder; |
|
8471 class RMobileBroadcastMessaging : public RTelSubSessionBase |
|
8472 /** This sub-session provides access to the broadcast message services provided |
|
8473 by GSM/WCDMA and CDMA networks. |
|
8474 |
|
8475 Clients will open a RMobileBroadcastMessaging sub-session and then wait for |
|
8476 incoming broadcast messages. The broadcast messages received can depend upon |
|
8477 a "message filter" which defines the languages and/or identifiers of acceptable |
|
8478 (or unacceptable) messages. This sub-session and the function members within |
|
8479 this section must be supported if the TSY indicates that it supports the MobileBroadcastMessaging |
|
8480 functional unit. |
|
8481 |
|
8482 @publishedPartner |
|
8483 @released*/ |
|
8484 { |
|
8485 public: |
|
8486 |
|
8487 friend class CRetrieveMobilePhoneBroadcastIdList; |
|
8488 |
|
8489 IMPORT_C RMobileBroadcastMessaging(); |
|
8490 |
|
8491 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
8492 IMPORT_C void Close(); |
|
8493 |
|
8494 /***********************************************************************************/ |
|
8495 // |
|
8496 // Broadcast messaging capabilities |
|
8497 // |
|
8498 /***********************************************************************************/ |
|
8499 |
|
8500 /** Broadcast capabilities. |
|
8501 |
|
8502 Modes:GSM/WCDMA */ |
|
8503 enum TMobileBroadcastModeCaps |
|
8504 { |
|
8505 /** GSM 03.41 cell broadcast messages are supported. |
|
8506 |
|
8507 Modes:GSM/WCDMA */ |
|
8508 KCapsGsmTpduFormat = 0x00000001, |
|
8509 /** IS-637-A broadcast messages are supported. |
|
8510 |
|
8511 Modes:CDMA */ |
|
8512 KCapsCdmaTpduFormat = 0x00000002, |
|
8513 /** 3GPP 25.324 Release 4 cell broadcast messages are supported. |
|
8514 |
|
8515 Modes: WCDMA */ |
|
8516 KCapsWcdmaTpduFormat = 0x00000004 |
|
8517 }; |
|
8518 |
|
8519 /** Broadcast message filter capabilities. |
|
8520 |
|
8521 Modes: Common |
|
8522 |
|
8523 @see RMobileBroadcastMessaging::GetLanguageFilter() */ |
|
8524 enum TBroadcastMessagingFilterCaps |
|
8525 { |
|
8526 /** Phone supports switching broadcast messages on or off. This means the EbroadcastAcceptNone |
|
8527 and EBroadcastAcceptAll settings of TMobilePhoneBroadcastFilter are supported. |
|
8528 |
|
8529 Modes: Common */ |
|
8530 KCapsSimpleFilter = 0x00000001, |
|
8531 /** Phone supports filtering of broadcast messages depending upon their language. |
|
8532 The language filter is a list of languages used only for broadcast filtering. |
|
8533 |
|
8534 Modes: Common |
|
8535 |
|
8536 @see RMobileBroadcastMessaging::GetLanguageFilter() */ |
|
8537 KCapsLangFilter = 0x00000002, |
|
8538 /** Phone supports filtering of broadcast messages depending upon their subject. |
|
8539 The subject of a message is identified in GSM/WCDMA mode by the Cell Broadcast |
|
8540 Message Identifier (CBMI) and in CDMA mode by the Service Category. |
|
8541 |
|
8542 Modes: Common */ |
|
8543 KCapsIdFilter = 0x00000004 |
|
8544 }; |
|
8545 |
|
8546 |
|
8547 |
|
8548 class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType |
|
8549 /** Defines capabilities of Broadcast messaging. |
|
8550 @publishedPartner |
|
8551 @released |
|
8552 */ |
|
8553 { |
|
8554 public: |
|
8555 IMPORT_C TMobileBroadcastCapsV1(); |
|
8556 public: |
|
8557 /** Sum of TMobileBroadcastModeCaps constants. |
|
8558 |
|
8559 Modes: GSM/WCDMA */ |
|
8560 TUint32 iModeCaps; |
|
8561 /** Sum of TBroadcastMessagingFilterCaps constants. |
|
8562 |
|
8563 Modes: GSM/WCDMA */ |
|
8564 TUint32 iFilterCaps; |
|
8565 }; |
|
8566 |
|
8567 /** A typedef'd packaged TMobileBroadcastCapsV1 for passing through a generic API |
|
8568 function member. */ |
|
8569 typedef TPckg<TMobileBroadcastCapsV1> TMobileBroadcastCapsV1Pckg; |
|
8570 |
|
8571 IMPORT_C TInt GetCaps(TDes8& aCaps) const; |
|
8572 |
|
8573 /** Defines the broadcast attributes. |
|
8574 |
|
8575 Modes: Common */ |
|
8576 enum TMobileBroadcastAttributeFlags |
|
8577 { |
|
8578 /** The iFormat field is valid in the attribute class. |
|
8579 |
|
8580 Modes: Common */ |
|
8581 KBroadcastDataFormat = 0x00000001, |
|
8582 /** The iServiceCategory field is valid in the attribute class. |
|
8583 |
|
8584 Modes: CDMA */ |
|
8585 KCdmaServiceCategory = 0x00000002 |
|
8586 }; |
|
8587 |
|
8588 /** The mobile broadcast data format, used byTMobileBroadcastAttributesV1. |
|
8589 |
|
8590 Modes: Common */ |
|
8591 enum TMobileBroadcastDataFormat |
|
8592 { |
|
8593 /** The message data format is not specified. |
|
8594 |
|
8595 Modes: Common */ |
|
8596 EFormatUnspecified, |
|
8597 /** The message data format complies to a Cell Broadcast TPDU coded as 88 octets |
|
8598 (6 for header and 82 for message data) according to GSM 03.41. |
|
8599 |
|
8600 Modes: GSM/WCDMA */ |
|
8601 EFormatGsmTpdu, |
|
8602 /** The message data format complies to IS-637-A encoding of the Bearer Data parameter |
|
8603 within the Transport Layer's SMS-Broadcast message. |
|
8604 |
|
8605 Modes: CDMA */ |
|
8606 EFormatCdmaTpdu, |
|
8607 /** The message data format complies to a Cell Broadcast TPDU coded as 1252 octets |
|
8608 (6 for header and a maximum of 1246 for message data) according to 3GPP 25.324. |
|
8609 |
|
8610 Modes: WCDMA */ |
|
8611 EFormatWcdmaTpdu |
|
8612 }; |
|
8613 |
|
8614 |
|
8615 |
|
8616 class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType |
|
8617 /** Defines attributes of a Broadcast message. |
|
8618 @publishedPartner |
|
8619 @released |
|
8620 */ |
|
8621 { |
|
8622 public: |
|
8623 IMPORT_C TMobileBroadcastAttributesV1(); |
|
8624 public: |
|
8625 /** The bit-mask flags indicating which attributes are present in this instance. |
|
8626 |
|
8627 Modes: Common |
|
8628 |
|
8629 @see TMobileBroadcastAttributeFlags */ |
|
8630 TUint32 iFlags; |
|
8631 /** Format of the message data buffer. |
|
8632 |
|
8633 Modes: Common |
|
8634 |
|
8635 @see TMobileBroadcastDataFormat */ |
|
8636 TMobileBroadcastDataFormat iFormat; |
|
8637 /** Service category of the message. |
|
8638 |
|
8639 Modes: CDMA */ |
|
8640 TInt iServiceCategory; |
|
8641 }; |
|
8642 |
|
8643 /** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic |
|
8644 API function member. */ |
|
8645 typedef TPckg<TMobileBroadcastAttributesV1> TMobileBroadcastAttributesV1Pckg; |
|
8646 |
|
8647 |
|
8648 |
|
8649 |
|
8650 class TMobileBroadcastAttributesV2 : public TMobileBroadcastAttributesV1 |
|
8651 /** Defines attributes of a UMTS Broadcast message for version v2.0 of the API. |
|
8652 @publishedPartner |
|
8653 @released |
|
8654 */ |
|
8655 { |
|
8656 public: |
|
8657 IMPORT_C TMobileBroadcastAttributesV2(); |
|
8658 public: |
|
8659 /** The number of pages that the current broadcast message consists of. The maximum |
|
8660 number of pages for WCDMA Broadcast messages is 15. */ |
|
8661 TInt iNumberOfPages; |
|
8662 /** This parameter is used to store the message type for this broadcast message. */ |
|
8663 TUint8 iMessageType; |
|
8664 /** This parameter is used to store the message id for this broadcast message. |
|
8665 |
|
8666 This parameter is used to store the serial number for this broadcast message. |
|
8667 |
|
8668 This parameter is used to store the data coding scheme for this broadcast |
|
8669 message. */ |
|
8670 TUint16 iMessageId; |
|
8671 /** This parameter is used to store the serial number for this broadcast message. */ |
|
8672 TUint16 iSerialNum; |
|
8673 /** This parameter is used to store the data coding scheme for this broadcast message. */ |
|
8674 TUint8 iDCS; |
|
8675 }; |
|
8676 |
|
8677 /** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic |
|
8678 API function member. */ |
|
8679 typedef TPckg<TMobileBroadcastAttributesV2> TMobileBroadcastAttributesV2Pckg; |
|
8680 |
|
8681 /***********************************************************************************/ |
|
8682 // |
|
8683 // Receiving broadcast messages |
|
8684 // |
|
8685 /***********************************************************************************/ |
|
8686 |
|
8687 /** A constant which defines the length of the buffer to be passed to ReceiveMessage. |
|
8688 |
|
8689 This constant should be used for all message types: GSM, CDMA and WCDMA.*/ |
|
8690 enum |
|
8691 { |
|
8692 KBroadcastPageSize = 88 |
|
8693 }; |
|
8694 |
|
8695 /** Buffer for received messages. |
|
8696 |
|
8697 This buffer should be used for all message types: GSM, CDMA and WCDMA.*/ |
|
8698 typedef TBuf8<KBroadcastPageSize> TBroadcastPageData; |
|
8699 |
|
8700 /** Old buffer sizes. KBroadcastPageSize should be used instead. */ |
|
8701 enum |
|
8702 { |
|
8703 KGsmBroadcastDataSize = KBroadcastPageSize, |
|
8704 KCdmaBroadcastDataSize = KBroadcastPageSize, |
|
8705 KWCdmaBroadcastPageSize = KBroadcastPageSize |
|
8706 }; |
|
8707 |
|
8708 /** Buffer for GSM messages. TBroadcastPageData should be used instead. */ |
|
8709 typedef TBuf8<KGsmBroadcastDataSize> TGsmBroadcastMessageData; |
|
8710 /** Buffer for CDMA messages. TBroadcastPageData should be used instead. */ |
|
8711 typedef TBuf8<KCdmaBroadcastDataSize> TCdmaBroadcastMessageData; |
|
8712 /** Buffer for WCDMA messages. TBroadcastPageData should be used instead. */ |
|
8713 typedef TBuf8<KWCdmaBroadcastPageSize> TWCdmaBroadcastPageData; |
|
8714 |
|
8715 IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; |
|
8716 |
|
8717 /***********************************************************************************/ |
|
8718 // |
|
8719 // Filters |
|
8720 // |
|
8721 /***********************************************************************************/ |
|
8722 |
|
8723 /** The filter settings of the mobile phone. |
|
8724 |
|
8725 Modes: Common */ |
|
8726 enum TMobilePhoneBroadcastFilter |
|
8727 { |
|
8728 /** The phone does not have a filter setting. */ |
|
8729 EBroadcastFilterUnspecified, |
|
8730 /** The phone is not accepting any broadcast messages. */ |
|
8731 EBroadcastAcceptNone, |
|
8732 /** The phone is accepting all broadcast messages. */ |
|
8733 EBroadcastAcceptAll, |
|
8734 /** The phone is accepting those broadcast messages included within the language |
|
8735 and identifier filters. */ |
|
8736 EBroadcastAcceptFilter, |
|
8737 /** The phone is rejecting those broadcast messages included within the language |
|
8738 or identifier filters. */ |
|
8739 EBroadcastRejectFilter |
|
8740 }; |
|
8741 |
|
8742 IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const; |
|
8743 IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const; |
|
8744 IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const; |
|
8745 |
|
8746 IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const; |
|
8747 IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const; |
|
8748 IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const; |
|
8749 |
|
8750 class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType |
|
8751 /** In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry. In |
|
8752 CDMA - defines a Service Category list entry. |
|
8753 @publishedPartner |
|
8754 @released |
|
8755 */ |
|
8756 { |
|
8757 public: |
|
8758 void InternalizeL(RReadStream& aStream); |
|
8759 void ExternalizeL(RWriteStream& aStream) const; |
|
8760 IMPORT_C TMobileBroadcastIdEntryV1(); |
|
8761 public: |
|
8762 /** The value of the message identifier. */ |
|
8763 TUint16 iId; |
|
8764 }; |
|
8765 |
|
8766 /** Defines the broadcast types. */ |
|
8767 enum TMobileBroadcastIdType |
|
8768 { |
|
8769 /** GSM broadcast. */ |
|
8770 EGsmBroadcastId, |
|
8771 /** CDMA broadcast. */ |
|
8772 ECdmaBroadcastId |
|
8773 }; |
|
8774 |
|
8775 IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType); |
|
8776 IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const; |
|
8777 |
|
8778 private: |
|
8779 RMobileBroadcastMessaging(const RMobileBroadcastMessaging&); |
|
8780 CCbsMessagingPtrHolder* iCbsMessagingPtrHolder; |
|
8781 protected: |
|
8782 IMPORT_C void ConstructL(); |
|
8783 IMPORT_C void Destruct(); |
|
8784 }; |
|
8785 |
|
8786 /*********************************************************/ |
|
8787 // |
|
8788 // USSD Messaging (RMobileUssdMessaging) |
|
8789 // |
|
8790 /*********************************************************/ |
|
8791 |
|
8792 |
|
8793 |
|
8794 class CUssdMessagingPtrHolder; |
|
8795 class RMobileUssdMessaging : public RTelSubSessionBase |
|
8796 /** Provides client access to USSD functionality provided by TSY. |
|
8797 */ |
|
8798 { |
|
8799 public: |
|
8800 IMPORT_C RMobileUssdMessaging(); |
|
8801 |
|
8802 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
8803 IMPORT_C void Close(); |
|
8804 |
|
8805 /** Defines the USSD Messaging Format Capabilities. |
|
8806 |
|
8807 Modes: GSM/WCDMA */ |
|
8808 enum TMobileUssdFormatCaps |
|
8809 { |
|
8810 /** USSD messages coded as a packed string within 160 octets, as defined for a |
|
8811 ussd-String within GSM 04.80 and GSM 03.38. |
|
8812 |
|
8813 Modes: GSM/WCDMA */ |
|
8814 KCapsPackedString=0x00000001 |
|
8815 }; |
|
8816 |
|
8817 /** Defines the USSD Messaging Type Capabilities. |
|
8818 |
|
8819 Modes: GSM/WCDMA */ |
|
8820 enum TMobileUssdTypeCaps |
|
8821 { |
|
8822 /** Outgoing USSD messages are supported. |
|
8823 |
|
8824 Modes: GSM/WCDMA */ |
|
8825 KCapsMOUssd=0x00000001, |
|
8826 /** Incoming USSD messages are supported. |
|
8827 |
|
8828 Modes: GSM/WCDMA */ |
|
8829 KCapsMTUssd=0x00000002 |
|
8830 }; |
|
8831 |
|
8832 |
|
8833 |
|
8834 class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType |
|
8835 /** Defines capabilities of USSD messaging. |
|
8836 @publishedPartner |
|
8837 @released |
|
8838 */ |
|
8839 { |
|
8840 public: |
|
8841 IMPORT_C TMobileUssdCapsV1(); |
|
8842 /** Sum of TMobileUssdFormatCaps constants. |
|
8843 |
|
8844 Modes: GSM/WCDMA |
|
8845 |
|
8846 @see TMobileUssdFormatCaps */ |
|
8847 TUint32 iUssdFormat; |
|
8848 /** Sum of TMobileUssdTypeCaps constants. |
|
8849 |
|
8850 Modes: GSM/WCDMA |
|
8851 |
|
8852 @see TMobileUssdTypeCaps */ |
|
8853 TUint32 iUssdTypes; |
|
8854 }; |
|
8855 |
|
8856 /** A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member |
|
8857 function. */ |
|
8858 typedef TPckg<TMobileUssdCapsV1> TMobileUssdCapsV1Pckg; |
|
8859 |
|
8860 IMPORT_C TInt GetCaps(TDes8& aCaps) const; |
|
8861 |
|
8862 /** Defines the USSD Messaging Attributes. |
|
8863 |
|
8864 Modes: GSM/WCDMA |
|
8865 |
|
8866 @see TMobileUssdAttributesV1 */ |
|
8867 enum TMobileUssdAttributeFlags |
|
8868 { |
|
8869 /** The iFormat field is valid in the attribute class. */ |
|
8870 KUssdDataFormat = 0x00000001, |
|
8871 /** The iType field is valid in the attribute class. */ |
|
8872 KUssdMessageType = 0x00000002, |
|
8873 /** The iDcs field is valid in the attribute class. */ |
|
8874 KUssdMessageDcs = 0x00000004 |
|
8875 }; |
|
8876 |
|
8877 /** Defines the USSD Data Formats. |
|
8878 |
|
8879 Modes: Common */ |
|
8880 enum TMobileUssdDataFormat |
|
8881 { |
|
8882 /** The message data format is unspecified. |
|
8883 |
|
8884 Modes: Common */ |
|
8885 EFormatUnspecified, |
|
8886 /** The message data format complies to a USSD coded as 160 octets as defined for |
|
8887 a ussd-String within GSM 04.80 and GSM 03.38. |
|
8888 |
|
8889 Modes: GSM/WCDMA */ |
|
8890 EFormatPackedString |
|
8891 }; |
|
8892 |
|
8893 /** Defines the USSD Message Types. |
|
8894 |
|
8895 Modes: GSM/WCDMA */ |
|
8896 enum TMobileUssdMessageType |
|
8897 { |
|
8898 /** Message is an unknown type. */ |
|
8899 EUssdUnknown, |
|
8900 /** Message is a mobile originated USSD request. The MS expects the network to |
|
8901 send a USSD MT reply. */ |
|
8902 EUssdMORequest, |
|
8903 /** Message is a reply to a previously received network initiated USSD request. |
|
8904 It is a USSD MO reply. */ |
|
8905 EUssdMOReply, |
|
8906 /** Message is a one-off network initiated USSD notification. The network expects the MS to |
|
8907 send a USSD MO acknowledgement with empty message content. */ |
|
8908 EUssdMTNotify, |
|
8909 /** Message is a network initiated USSD request. The network expects |
|
8910 the MS to send a USSD MO reply. */ |
|
8911 EUssdMTRequest, |
|
8912 /** Message is a network initiated reply to a previously sent MO USSD request. */ |
|
8913 EUssdMTReply, |
|
8914 /** For acknowledging MT USSD notifications (empty message content). */ |
|
8915 EUssdMOAcknowledgement |
|
8916 }; |
|
8917 |
|
8918 |
|
8919 |
|
8920 class TMobileUssdAttributesV1 : public RMobilePhone::TMultimodeType |
|
8921 /** Defines attributes of a USSD message. |
|
8922 @publishedPartner |
|
8923 @released |
|
8924 */ |
|
8925 { |
|
8926 public: |
|
8927 IMPORT_C TMobileUssdAttributesV1(); |
|
8928 public: |
|
8929 /** The TMobileUssdAttributeFlags bit-mask flags indicating which attributes are |
|
8930 present in this instance. |
|
8931 |
|
8932 Modes: GSM/WCDMA |
|
8933 |
|
8934 @see TMobileUssdAttributeFlags */ |
|
8935 TUint32 iFlags; |
|
8936 /** Format of the message data buffer. |
|
8937 |
|
8938 Modes: GSM/WCDMA |
|
8939 |
|
8940 @see TMobileUssdDataFormat */ |
|
8941 TMobileUssdDataFormat iFormat; |
|
8942 /** The type of USSD message. |
|
8943 |
|
8944 Modes: GSM/WCDMA |
|
8945 |
|
8946 @see TMobileUssdMessageType */ |
|
8947 TMobileUssdMessageType iType; |
|
8948 /** The Data Coding Scheme of the USSD message. |
|
8949 |
|
8950 Modes: GSM/WCDMA */ |
|
8951 TUint8 iDcs; |
|
8952 }; |
|
8953 |
|
8954 /** A typedef'd packaged TMobileUssdAttributesV1 for passing through a generic |
|
8955 API member function. */ |
|
8956 typedef TPckg<TMobileUssdAttributesV1> TMobileUssdAttributesV1Pckg; |
|
8957 |
|
8958 /***********************************************************************************/ |
|
8959 // |
|
8960 // Receiving USSD messages |
|
8961 // |
|
8962 /***********************************************************************************/ |
|
8963 |
|
8964 enum |
|
8965 { |
|
8966 KGsmUssdDataSize = 160 |
|
8967 }; |
|
8968 |
|
8969 /** A typedef'd buffer to hold the message data. */ |
|
8970 typedef TBuf8<KGsmUssdDataSize> TGsmUssdMessageData; |
|
8971 |
|
8972 IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; |
|
8973 |
|
8974 /***********************************************************************************/ |
|
8975 // |
|
8976 // Sending USSD messages |
|
8977 // |
|
8978 /***********************************************************************************/ |
|
8979 |
|
8980 IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const; |
|
8981 IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const; |
|
8982 |
|
8983 IMPORT_C void SendRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const; |
|
8984 IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const; |
|
8985 IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; |
|
8986 |
|
8987 private: |
|
8988 RMobileUssdMessaging(const RMobileUssdMessaging&); |
|
8989 CUssdMessagingPtrHolder* iUssdMessagingPtrHolder; |
|
8990 protected: |
|
8991 IMPORT_C void ConstructL(); |
|
8992 IMPORT_C void Destruct(); |
|
8993 }; |
|
8994 |
|
8995 |
|
8996 |
|
8997 /*********************************************************/ |
|
8998 // |
|
8999 // SMS Message Storage (RMobileSmsStore) |
|
9000 // |
|
9001 /*********************************************************/ |
|
9002 |
|
9003 |
|
9004 |
|
9005 class CSmsStorePtrHolder; |
|
9006 class CMobilePhoneSmsList; |
|
9007 class RMobileSmsStore : public RMobilePhoneStore |
|
9008 /** Provides client access to SMS storage functionality provided by TSY. |
|
9009 @publishedPartner |
|
9010 @released |
|
9011 */ |
|
9012 { |
|
9013 public: |
|
9014 |
|
9015 IMPORT_C RMobileSmsStore(); |
|
9016 IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName); |
|
9017 IMPORT_C void Close(); |
|
9018 |
|
9019 /** Defines the SMS Store Capabilities. |
|
9020 |
|
9021 Modes: Common */ |
|
9022 enum TMobileSmsStoreCaps |
|
9023 { |
|
9024 /** The store contains unread, incoming SMS entries. |
|
9025 |
|
9026 Modes: Common */ |
|
9027 KCapsUnreadMessages = 0x00000001, |
|
9028 /** The store contains read, incoming SMS entries. |
|
9029 |
|
9030 Modes: Common */ |
|
9031 KCapsReadMessages = 0x00000002, |
|
9032 /** The store contains sent SMS entries. |
|
9033 |
|
9034 Modes: Common */ |
|
9035 KCapsSentMessages = 0x00000004, |
|
9036 /** The store contains un sent SMS entries. */ |
|
9037 KCapsUnsentMessages = 0x00000008, |
|
9038 /** The store contains GSM SMS message entries – so TMobileGsmSmsEntryV1 class |
|
9039 should be used. |
|
9040 |
|
9041 Modes: GSM/WCDMA */ |
|
9042 KCapsGsmMessages = 0x00000010, |
|
9043 /** The store contains CDMA SMS message entries – so TMobileCdmaSmsEntryV1 class |
|
9044 should be used. |
|
9045 |
|
9046 Modes: CDMA */ |
|
9047 KCapsCdmaMessages = 0x00000020 |
|
9048 }; |
|
9049 |
|
9050 /** Defines contents of a fixed-size, stored SMS entry. |
|
9051 |
|
9052 Modes: Common */ |
|
9053 enum TMobileSmsStoreStatus |
|
9054 { |
|
9055 /** The status of the SMS is unknown. */ |
|
9056 EStoredMessageUnknownStatus, |
|
9057 /** The SMS is stored phone-side. It is an incoming message that has not been read |
|
9058 yet. */ |
|
9059 EStoredMessageUnread, |
|
9060 /** The SMS is stored phone-side. It is an incoming message that has already been |
|
9061 read. */ |
|
9062 EStoredMessageRead, |
|
9063 /** The SMS is stored phone-side. It is an outgoing message that has not been sent |
|
9064 yet. */ |
|
9065 EStoredMessageUnsent, |
|
9066 /** The SMS is stored phone-side. It is an outgoing message that has already been |
|
9067 sent but a delivery/status report has either not been received yet or was |
|
9068 not requested in the first place. */ |
|
9069 EStoredMessageSent, |
|
9070 /** The SMS is stored phone-side. It is an outgoing message that has already been |
|
9071 sent and a delivery/status report has been received */ |
|
9072 EStoredMessageDelivered |
|
9073 }; |
|
9074 |
|
9075 // |
|
9076 // Enum used by TSY to distinguish which SMS entry class is used by client |
|
9077 // |
|
9078 |
|
9079 /** Used by TSY to distinguish which SMS entry class is used by client. */ |
|
9080 enum TMobileSmsEntryExtensionId |
|
9081 { |
|
9082 /** Type is unknown. */ |
|
9083 KETelMobileSmsEntryV1=KETelExtMultimodeV1, |
|
9084 /** The iExtensionId contents indicate that the packaged class is a TMobileGsmSmsEntryV1. |
|
9085 |
|
9086 Also used to indicate that GSM SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */ |
|
9087 KETelMobileGsmSmsEntryV1, |
|
9088 /** The iExtensionId contents indicate that the packaged class is a TMobileCdmaSmsEntryV1. |
|
9089 |
|
9090 Also used to indicate that CDMA SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */ |
|
9091 KETelMobileCdmaSmsEntryV1 |
|
9092 }; |
|
9093 |
|
9094 class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 |
|
9095 /** Defines contents of a fixed-size, stored SMS entry. |
|
9096 @publishedPartner |
|
9097 @released |
|
9098 */ |
|
9099 { |
|
9100 public: |
|
9101 void InternalizeL(RReadStream& aStream); |
|
9102 void ExternalizeL(RWriteStream& aStream) const; |
|
9103 protected: |
|
9104 TMobileSmsEntryV1(); |
|
9105 public: |
|
9106 /** The status of the stored message. |
|
9107 |
|
9108 Modes: Common |
|
9109 |
|
9110 @see TMobileSmsStoreStatus */ |
|
9111 TMobileSmsStoreStatus iMsgStatus; |
|
9112 }; |
|
9113 |
|
9114 /** A typedef'd packaged TMobileSmsEntryV1 for passing through a generic API |
|
9115 member function. */ |
|
9116 typedef TPckg<TMobileSmsEntryV1> TMobileSmsEntryV1Pckg; |
|
9117 |
|
9118 class TMobileGsmSmsEntryV1 : public TMobileSmsEntryV1 |
|
9119 /** Defines contents of a fixed-size, stored GSM SMS entry. |
|
9120 @publishedPartner |
|
9121 @released */ |
|
9122 { |
|
9123 public: |
|
9124 void InternalizeL(RReadStream& aStream); |
|
9125 void ExternalizeL(RWriteStream& aStream) const; |
|
9126 public: |
|
9127 IMPORT_C TMobileGsmSmsEntryV1(); |
|
9128 public: |
|
9129 /** The service centre to use (or used) for the message. |
|
9130 |
|
9131 Modes: GSM/WCDMA |
|
9132 |
|
9133 @see RMobilePhone::TMobileAddress */ |
|
9134 RMobilePhone::TMobileAddress iServiceCentre; |
|
9135 /** The GSM 03.40 TPDU. |
|
9136 |
|
9137 Modes: GSM/WCDMA |
|
9138 |
|
9139 @see RMobileSmsMessaging::TMobileSmsGsmTpdu */ |
|
9140 RMobileSmsMessaging::TMobileSmsGsmTpdu iMsgData; |
|
9141 }; |
|
9142 |
|
9143 /** A typedef'd packaged TMobileGsmSmsEntryV1 for passing through a generic API |
|
9144 member function. */ |
|
9145 typedef TPckg<TMobileGsmSmsEntryV1> TMobileGsmSmsEntryV1Pckg; |
|
9146 |
|
9147 class TMobileCdmaSmsEntryV1 : public TMobileSmsEntryV1 |
|
9148 /** Defines contents of a fixed-size, stored CDMA SMS entry. |
|
9149 @publishedPartner |
|
9150 @released |
|
9151 */ |
|
9152 { |
|
9153 public: |
|
9154 void InternalizeL(RReadStream& aStream); |
|
9155 void ExternalizeL(RWriteStream& aStream) const; |
|
9156 public: |
|
9157 IMPORT_C TMobileCdmaSmsEntryV1(); |
|
9158 public: |
|
9159 /** The teleservice identifier of the stored message. |
|
9160 |
|
9161 Modes: CDMA */ |
|
9162 TInt iTeleservice; |
|
9163 /** The service category of the stored message. |
|
9164 |
|
9165 Modes: CDMA */ |
|
9166 TInt iServiceCategory; |
|
9167 /** The remote party (destination or originator) of the stored message. |
|
9168 |
|
9169 Modes: CDMA |
|
9170 |
|
9171 @see RMobilePhone::TMobileAddress */ |
|
9172 RMobilePhone::TMobileAddress iRemoteParty; |
|
9173 /** The teleservice layer bearer data of the stored message. |
|
9174 |
|
9175 Modes: CDMA |
|
9176 |
|
9177 @see RMobileSmsMessaging::TMobileSmsCdmaTpdu */ |
|
9178 RMobileSmsMessaging::TMobileSmsCdmaTpdu iMsgData; |
|
9179 }; |
|
9180 |
|
9181 /** A typedef'd packaged TMobileCdmaSmsEntryV1 for passing through a generic API |
|
9182 member function. */ |
|
9183 typedef TPckg<TMobileCdmaSmsEntryV1> TMobileCdmaSmsEntryV1Pckg; |
|
9184 |
|
9185 protected: |
|
9186 IMPORT_C void ConstructL(); |
|
9187 private: |
|
9188 RMobileSmsStore(const RMobileSmsStore&); |
|
9189 }; |
|
9190 |
|
9191 /*********************************************************/ |
|
9192 // |
|
9193 // NAM Storage (RMobileNamStore) |
|
9194 // |
|
9195 /*********************************************************/ |
|
9196 |
|
9197 |
|
9198 |
|
9199 class CNamStorePtrHolder; |
|
9200 class CMobilePhoneNamList; |
|
9201 class CMobilePhoneNamListV4; |
|
9202 |
|
9203 class RMobileNamStore : public RMobilePhoneStore |
|
9204 /** |
|
9205 Provides client access to NAM storage functionality provided by TSY |
|
9206 |
|
9207 */ |
|
9208 { |
|
9209 public: |
|
9210 IMPORT_C RMobileNamStore(); |
|
9211 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
9212 IMPORT_C void Close(); |
|
9213 |
|
9214 |
|
9215 |
|
9216 class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1 |
|
9217 /** |
|
9218 Defines information about a NAM store |
|
9219 |
|
9220 @publishedPartner |
|
9221 @released |
|
9222 */ |
|
9223 { |
|
9224 public: |
|
9225 IMPORT_C TMobileNamStoreInfoV1(); |
|
9226 public: |
|
9227 /** The number of enabled NAMs within the NAM store. |
|
9228 |
|
9229 Modes: CDMA */ |
|
9230 TInt iNamCount; |
|
9231 /** The index of the NAM that is currently the active NAM, will be between 0 and |
|
9232 iNamCount-1. |
|
9233 |
|
9234 Modes: CDMA */ |
|
9235 TInt iActiveNam; |
|
9236 }; |
|
9237 |
|
9238 /** A typedef'd packaged TMobileNamStoreInfoV1 for passing through a generic API |
|
9239 member function. */ |
|
9240 typedef TPckg<TMobileNamStoreInfoV1> TMobileNamStoreInfoV1Pckg; |
|
9241 |
|
9242 IMPORT_C void SetActiveNam(TRequestStatus& aReqStatus, TInt aNamId) const; |
|
9243 |
|
9244 enum |
|
9245 { |
|
9246 /* The original maximum NAM parameter size for a TMobileNamEntryV1 */ |
|
9247 KMaxNamParamSize = 64, |
|
9248 /* Updated maximum NAM parameter size for TMobileNamEntryV4 */ |
|
9249 KMaxNamParamSizeV4 = 256 |
|
9250 }; |
|
9251 |
|
9252 class TMobileNamEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 |
|
9253 /** |
|
9254 Defines contents of a NAM store entry |
|
9255 |
|
9256 @publishedPartner |
|
9257 @released |
|
9258 */ |
|
9259 { |
|
9260 public: |
|
9261 IMPORT_C TMobileNamEntryV1(); |
|
9262 public: |
|
9263 void InternalizeL(RReadStream& aStream); |
|
9264 void ExternalizeL(RWriteStream& aStream) const; |
|
9265 public: |
|
9266 /** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfoV1::iNamCount-1. |
|
9267 |
|
9268 Modes: CDMA */ |
|
9269 TInt iNamId; |
|
9270 /** The identifier of the NAM parameter to be accessed. |
|
9271 |
|
9272 TSY must define values of parameter identifiers. |
|
9273 |
|
9274 Modes: CDMA */ |
|
9275 TInt iParamIdentifier; |
|
9276 /** The data contents of the selected parameter. |
|
9277 |
|
9278 Modes: CDMA |
|
9279 |
|
9280 @see KMaxNamParamSize */ |
|
9281 TBuf8<KMaxNamParamSize> iData; |
|
9282 }; |
|
9283 |
|
9284 /** A typedef'd packaged TMobileNamEntryV1 for passing through a generic API member |
|
9285 function. */ |
|
9286 typedef TPckg<TMobileNamEntryV1> TMobileNamEntryV1Pckg; |
|
9287 |
|
9288 /** Enumeration for the standard NAM parameters (see 3GPP2 C.S0005-A appendix F.3) |
|
9289 Modes: CDMA */ |
|
9290 enum TStandardNamParameters |
|
9291 { |
|
9292 /** The 64-bit pattern stored in the Mobile Station and |
|
9293 Home Location Register/Authentication Centre used to generate/update the |
|
9294 mobile station’s Shared Secret Data |
|
9295 Corresponds to NAM Indicator 'A_KEY' */ |
|
9296 EAKey, |
|
9297 /** 64-bit key used for authentication |
|
9298 Corresponds to NAM Indicator 'SSD_A(s-p)' */ |
|
9299 ESharedSecretDataA, |
|
9300 /** 64-bit key used as input to generate encryption mask and long code |
|
9301 Corresponds to NAM Indicator 'SSD_B(s-p)' */ |
|
9302 ESharedSecretDataB, |
|
9303 /** Modulo-64 event counter maintained by the mobile station and Authentication Center |
|
9304 used for clone detection |
|
9305 Corresponds to NAM Indicator 'COUNT(s-p)' */ |
|
9306 EParameterUpdateReceivedCount, |
|
9307 /** Class of the International Mobile Station Identity (IMSI) containing a MIN as |
|
9308 the lower 10 digits |
|
9309 Corresponds to NAM Indicator 'IMSI_M_CLASS(p)' */ |
|
9310 EMinBasedImsiClass, |
|
9311 /** The class of the International Mobile Station Identity (IMSI) not containing a MIN as |
|
9312 the lower 10 digits |
|
9313 Corresponds to NAM Indicator 'IMSI_T_CLASS(p)' */ |
|
9314 ETrueImsiClass, |
|
9315 /** 34-bit number derived from the IMSI M used as input for authentication |
|
9316 Corresponds to NAM Indicator 'IMSI_M_S(p)' */ |
|
9317 EMinBasedImsiS, |
|
9318 /** 34-bit number derived from the IMSI T used as input for authentication |
|
9319 Corresponds to NAM Indicator 'IMSI_T_S(p)' */ |
|
9320 ETrueImsiS, |
|
9321 /** Number of digits in the IMSI M minus 4 |
|
9322 Corresponds to NAM Indicator 'IMSI_M_ADDR_NUM(p)' */ |
|
9323 EMinBasedImsiAddressNum, |
|
9324 /** The number of digits in the IMSI T minus 4 |
|
9325 Corresponds to NAM Indicator 'IMSI_T_ADDR_NUM(p)' */ |
|
9326 ETrueImsiAddressNum, |
|
9327 /** The 11th and 12th digits in the IMSI M |
|
9328 Corresponds to NAM Indicator 'IMSI_M_11_12(p)' */ |
|
9329 EMinBasedImsiDigits11and12, |
|
9330 /** The 11th and 12th digits in the IMSI T |
|
9331 Corresponds to NAM Indicator 'IMSI_T_11_12(p)' */ |
|
9332 ETrueImsiDigits11and12, |
|
9333 /** The country code for the IMSI M |
|
9334 Corresponds to NAM Indicator 'MCC_M(p)' */ |
|
9335 EMinBasedMobileCountryCode, |
|
9336 /** The country code for the IMSI T |
|
9337 Corresponds to NAM Indicator 'MCC_T(p)' */ |
|
9338 ETrueMobileCountryCode, |
|
9339 /** Up to 15 digit dialable number associated with the mobile station through a service |
|
9340 subscription |
|
9341 Corresponds to NAM Indicator 'MDN(p)' */ |
|
9342 EMobileDirectoryNumber, |
|
9343 /** 4-bit number giving the length of the assigning Temporary Mobile Station Identity (TMSI) zone |
|
9344 (can range from 1 to 8 octets) |
|
9345 Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE_LEN(s-p)' */ |
|
9346 EAssigningTmsiZoneLen, |
|
9347 /** Temporary Mobile Station Identity (TMSI) zone is an arbitrary set of base stations |
|
9348 for the administrative assignment of TMSI |
|
9349 Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE(s-p)' */ |
|
9350 EAssigningTmsiZone, |
|
9351 /** The uniquely assigned number to a mobile station inside a TMSI zone |
|
9352 Corresponds to NAM Indicator 'TMSI_CODE(s-p)' */ |
|
9353 ETmsiCode, |
|
9354 /** The expiration time used to automatically delete the assigned TMSI |
|
9355 Corresponds to NAM Indicator 'TMSI_EXP_TIME(s-p)' */ |
|
9356 ETmsiExpTime, |
|
9357 /** Mobile station's home System Id for 800MHz analog operation |
|
9358 Corresponds to NAM Indicator 'HOME_SID(p)' */ |
|
9359 EHomeSystemIdAnalog, |
|
9360 /** Mobile station's home System Id |
|
9361 Corresponds to NAM Indicator 'SID(p)' */ |
|
9362 EHomeSystemId, |
|
9363 /** Mobile station's home Network Id |
|
9364 Corresponds to NAM Indicator 'NID(p)' */ |
|
9365 EHomeNetworkId, |
|
9366 /** Mobile station is configured to receive mobile station terminated calls when |
|
9367 using a home (SID, NID) pair |
|
9368 Corresponds to NAM Indicator 'MOB_TERM_HOME(p)' */ |
|
9369 EReceiveCallsHome, |
|
9370 /** The mobile station is configured to receive mobile station terminated calls when |
|
9371 it is a foreign SID roamer |
|
9372 Corresponds to NAM Indicator 'MOB_TERM_FOR_SID(p)' */ |
|
9373 EReceiveCallsForeignSystem, |
|
9374 /** The mobile station is configured to receive mobile station terminated calls when |
|
9375 it is a foreign NID roamer |
|
9376 Corresponds to NAM Indicator 'MOB_TERM_FOR_NID(p)' */ |
|
9377 EReceiveCallsForeignNetwork, |
|
9378 /** A TSY may use this as the first TSY-defined non-standard NAM parameter */ |
|
9379 ENumStandardNamParameters |
|
9380 }; |
|
9381 |
|
9382 class TMobileNamEntryV4 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 |
|
9383 /** |
|
9384 Defines contents of a NAM store entry |
|
9385 |
|
9386 The differences between the original TMobileNamEntryV1, and updated TMobileNamEntryV4 are: |
|
9387 - the maximum mobile NAM parameter size is KMaxNamParamSize(64) for TMobileNamEntryV1 |
|
9388 and KMaxNamParamSizeV4(256) for TMobileNamEntryV4 |
|
9389 - TMobileNamEntryV4 defines a set of standard NAM parameters for the iParamIdentifier as |
|
9390 described in 3GPP2 C.S0005-A appendix F.3 |
|
9391 |
|
9392 @publishedPartner |
|
9393 @released |
|
9394 */ |
|
9395 { |
|
9396 public: |
|
9397 IMPORT_C TMobileNamEntryV4(); |
|
9398 public: |
|
9399 void InternalizeL(RReadStream& aStream); |
|
9400 void ExternalizeL(RWriteStream& aStream) const; |
|
9401 public: |
|
9402 /** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfo::iNamCount-1. |
|
9403 |
|
9404 Modes: CDMA */ |
|
9405 TInt iNamId; |
|
9406 |
|
9407 /** The identifier of the NAM parameter to be accessed. |
|
9408 iParamIdentifier will be a TStandardNamParameters value if a standard NAM parameter is being accessed, |
|
9409 however a TSY may support and define NAM parameters in addition to those given by TStandardNamParameters |
|
9410 Modes: CDMA */ |
|
9411 TInt iParamIdentifier; |
|
9412 |
|
9413 /** The data contents of the selected parameter. |
|
9414 |
|
9415 Modes: CDMA |
|
9416 |
|
9417 @see KMaxNamParamSizeV4 */ |
|
9418 TBuf8<KMaxNamParamSizeV4> iData; |
|
9419 }; |
|
9420 |
|
9421 /** A typedef'd packaged TMobileNamEntryV4 for passing through a generic API member |
|
9422 function. */ |
|
9423 typedef TPckg<TMobileNamEntryV4> TMobileNamEntryV4Pckg; |
|
9424 |
|
9425 IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamList* aNamList) const; |
|
9426 IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamListV4* aNamList) const; |
|
9427 |
|
9428 protected: |
|
9429 IMPORT_C void ConstructL(); |
|
9430 private: |
|
9431 RMobileNamStore(const RMobileNamStore&); |
|
9432 }; |
|
9433 |
|
9434 |
|
9435 /*********************************************************/ |
|
9436 // |
|
9437 // Own Number Storage (RMobileONStore) |
|
9438 // |
|
9439 /*********************************************************/ |
|
9440 |
|
9441 |
|
9442 |
|
9443 class CONStorePtrHolder; |
|
9444 class CMobilePhoneONList; |
|
9445 |
|
9446 class RMobileONStore : public RMobilePhoneStore |
|
9447 /** |
|
9448 Provides client access to Own Number storage functionality provided by TSY |
|
9449 |
|
9450 */ |
|
9451 { |
|
9452 public: |
|
9453 IMPORT_C RMobileONStore(); |
|
9454 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
9455 IMPORT_C void Close(); |
|
9456 |
|
9457 |
|
9458 |
|
9459 class TMobileONStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1 |
|
9460 /** |
|
9461 Defines information about an Own Number store |
|
9462 |
|
9463 @publishedPartner |
|
9464 @released |
|
9465 */ |
|
9466 { |
|
9467 public: |
|
9468 IMPORT_C TMobileONStoreInfoV1(); |
|
9469 public: |
|
9470 /** The maximum length of the own phone number can be. */ |
|
9471 TInt iNumberLen; |
|
9472 /** The maximum length the text field can be. */ |
|
9473 TInt iTextLen; |
|
9474 }; |
|
9475 |
|
9476 /** A typedef'd packaged TMobileONStoreInfoV1 for passing through a generic API |
|
9477 member function. */ |
|
9478 typedef TPckg<TMobileONStoreInfoV1> TMobileONStoreInfoV1Pckg; |
|
9479 |
|
9480 enum |
|
9481 { |
|
9482 KOwnNumberTextSize = 20 |
|
9483 }; |
|
9484 |
|
9485 |
|
9486 |
|
9487 class TMobileONEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 |
|
9488 /** |
|
9489 Defines contents of a Own Number store entry |
|
9490 |
|
9491 @publishedPartner |
|
9492 @released |
|
9493 */ |
|
9494 { |
|
9495 public: |
|
9496 IMPORT_C TMobileONEntryV1(); |
|
9497 public: |
|
9498 void InternalizeL(RReadStream& aStream); |
|
9499 void ExternalizeL(RWriteStream& aStream) const; |
|
9500 public: |
|
9501 /** Network mode. */ |
|
9502 RMobilePhone::TMobilePhoneNetworkMode iMode; |
|
9503 /** Mobile call service type. |
|
9504 |
|
9505 @see RMobilePhone::TMobileService */ |
|
9506 RMobilePhone::TMobileService iService; |
|
9507 /** Own number. |
|
9508 |
|
9509 @see RMobilePhone::TMobileAddress */ |
|
9510 RMobilePhone::TMobileAddress iNumber; |
|
9511 /** The name-tag associated with own number (e.g. "Voice Number"). */ |
|
9512 TBuf<KOwnNumberTextSize> iText; |
|
9513 }; |
|
9514 |
|
9515 /** A typedef'd packaged TMobileONEntryV1 for passing through a generic API member |
|
9516 function. */ |
|
9517 typedef TPckg<TMobileONEntryV1> TMobileONEntryV1Pckg; |
|
9518 |
|
9519 IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, CMobilePhoneONList* aONList) const; |
|
9520 |
|
9521 protected: |
|
9522 IMPORT_C void ConstructL(); |
|
9523 private: |
|
9524 RMobileONStore(const RMobileONStore&); |
|
9525 }; |
|
9526 |
|
9527 /*********************************************************/ |
|
9528 // |
|
9529 // Emergency Number Storage (RMobileENStore) |
|
9530 // |
|
9531 /*********************************************************/ |
|
9532 |
|
9533 |
|
9534 |
|
9535 class CMobilePhoneENList; |
|
9536 |
|
9537 class RMobileENStore : public RMobilePhoneStore |
|
9538 /** |
|
9539 Provides client access to Emergency Number storage functionality provided by TSY |
|
9540 |
|
9541 */ |
|
9542 { |
|
9543 public: |
|
9544 IMPORT_C RMobileENStore(); |
|
9545 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
9546 IMPORT_C void Close(); |
|
9547 |
|
9548 enum |
|
9549 { |
|
9550 KEmergencyNumberSize = 6, |
|
9551 KEmergencyAlphaTagSize = 20 |
|
9552 }; |
|
9553 |
|
9554 /** Enumerated list of Emergency Number entries. |
|
9555 |
|
9556 Mode: WCDMA */ |
|
9557 enum TMobilePhoneENServiceCategory |
|
9558 { |
|
9559 /** This number provides emergency care by the police department. */ |
|
9560 KServiceCatPolice =0x0001, |
|
9561 /** This number provides emergency care by the ambulance department. */ |
|
9562 KServiceCatAmbulance =0x0002, |
|
9563 /** This number provides emergency care by the fire brigade department. */ |
|
9564 KServiceCatFireBrigade =0x0004, |
|
9565 /** This number provides emergency care by the marine guard department. */ |
|
9566 KServiceCatMarineGuard =0x0008, |
|
9567 /** This number provides emergency care by the mountain rescue department. */ |
|
9568 KServiceCatMountainRescue =0x0010 |
|
9569 // Reserved types: 0x0020,0x0040, |
|
9570 }; |
|
9571 |
|
9572 |
|
9573 |
|
9574 /** Buffer to hold the emergency number in. */ |
|
9575 typedef TBuf<KEmergencyNumberSize> TEmergencyNumber; |
|
9576 |
|
9577 class TMobileENEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 |
|
9578 /** |
|
9579 Defines contents of a Emergency Number store entry |
|
9580 @publishedPartner |
|
9581 @released |
|
9582 */ |
|
9583 { |
|
9584 public: |
|
9585 IMPORT_C TMobileENEntryV1(); |
|
9586 public: |
|
9587 void InternalizeL(RReadStream& aStream); |
|
9588 void ExternalizeL(RWriteStream& aStream) const; |
|
9589 public: |
|
9590 /** Indicates whether the emergency number is applicable in all situations (=EFalse) |
|
9591 or only when the MS is registered to a specific GSM or CDMA network (=ETrue). */ |
|
9592 TBool iNetworkSpecific; |
|
9593 /** The network mode. Only applicable if iNetworkSpecific equals ETrue. |
|
9594 |
|
9595 Modes: Common |
|
9596 |
|
9597 @see RMobilePhone::TMobilePhoneNetworkMode */ |
|
9598 RMobilePhone::TMobilePhoneNetworkMode iMode; |
|
9599 /** Country code. Only applicable if iNetworkSpecific equals ETrue. |
|
9600 |
|
9601 Modes: Common |
|
9602 |
|
9603 @see RMobilePhone::TMobilePhoneNetworkCountryCode */ |
|
9604 RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode; |
|
9605 /** Network identity. Only applicable if iNetworkSpecific equals ETrue. |
|
9606 |
|
9607 Modes: Common |
|
9608 |
|
9609 @see RMobilePhone::TMobilePhoneNetworkIdentity */ |
|
9610 RMobilePhone::TMobilePhoneNetworkIdentity iIdentity; |
|
9611 /** Emergency number. |
|
9612 |
|
9613 Modes: Common |
|
9614 |
|
9615 @see TEmergencyNumber */ |
|
9616 TEmergencyNumber iNumber; |
|
9617 /** Emergency call number type. It is used to display information about the dialed |
|
9618 emergency number (e.g. "Police", "Ambulance", "Fire brigade", etc.) |
|
9619 |
|
9620 Modes: WCDMA */ |
|
9621 TBuf<KEmergencyAlphaTagSize> iAlphaId; |
|
9622 //TInt should map to TMobilePhoneENServiceCategory. |
|
9623 //It was not changed to maintain source compatibility |
|
9624 |
|
9625 /** Emergency call type indicator, which contains information to be sent to the |
|
9626 network indicating the type of emergency call. |
|
9627 |
|
9628 The field is for future reference only and it is set to RFU (Reserved for |
|
9629 Future Use) as it is currently not being used, as specified in section 4.2.21 |
|
9630 TS 31.102 v3.3.0 Rel 99. |
|
9631 |
|
9632 Modes: WCDMA */ |
|
9633 TInt iCallType; |
|
9634 }; |
|
9635 |
|
9636 typedef TPckg<TMobileENEntryV1> TMobileENEntryV1Pckg; |
|
9637 |
|
9638 protected: |
|
9639 IMPORT_C void ConstructL(); |
|
9640 private: |
|
9641 RMobileENStore(const RMobileENStore&); |
|
9642 }; |
|
9643 |
|
9644 |
|
9645 /*********************************************************/ |
|
9646 // |
|
9647 // RMobilePhoneBookStore |
|
9648 // |
|
9649 /*********************************************************/ |
|
9650 |
|
9651 |
|
9652 |
|
9653 class CPhoneBookStorePtrHolder; |
|
9654 class CMobilePhoneBookList; |
|
9655 |
|
9656 class RMobilePhoneBookStore : public RMobilePhoneStore |
|
9657 /** Provides member functions for clients to access phone |
|
9658 books that are stored in ICC memory or in non-volatile memory on the phone |
|
9659 itself. This sub-session and the member functions within this section must |
|
9660 be supported if the TSY indicates that it supports the MobilePhonebookStore |
|
9661 functional unit. |
|
9662 @publishedPartner |
|
9663 @released |
|
9664 */ |
|
9665 { |
|
9666 public: |
|
9667 IMPORT_C RMobilePhoneBookStore(); |
|
9668 IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore); |
|
9669 IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore, const TDesC& aMode); |
|
9670 IMPORT_C void Close(); |
|
9671 |
|
9672 /** Describes the specialized phone book capabilities. |
|
9673 |
|
9674 Modes: Common */ |
|
9675 enum TMobilePhoneBookCaps |
|
9676 { |
|
9677 /** New entries can only be written to (or deleted from) the phone book with the |
|
9678 PIN2 password or equivalent. |
|
9679 |
|
9680 Modes: Common */ |
|
9681 KCapsRestrictedWriteAccess = 0x00000001, |
|
9682 /** The phonebook supports the second name field. |
|
9683 |
|
9684 Modes: WCDMA */ |
|
9685 KCapsSecondNameUsed = 0x00000002, |
|
9686 /** The phonebook supports the additional number (with optional Text, TON, NPI |
|
9687 and Bearer Capability) field. |
|
9688 |
|
9689 Modes: WCDMA */ |
|
9690 KCapsAdditionalNumUsed = 0x00000004, |
|
9691 /** The phonebook supports the group name field. |
|
9692 |
|
9693 Modes: WCDMA */ |
|
9694 KCapsGroupingUsed = 0x00000008, |
|
9695 /** The phonebook supports entry control and hidden flag fields. |
|
9696 |
|
9697 Modes: WCDMA */ |
|
9698 KCapsEntryControlUsed = 0x00000010, |
|
9699 /** The phonebook supports the email address field. |
|
9700 |
|
9701 Modes: WCDMA */ |
|
9702 KCapsEmailAddressUsed = 0x00000020, |
|
9703 /** The phonebook supports the bearer capability IE field. |
|
9704 |
|
9705 Modes: WCDMA */ |
|
9706 KCapsBearerCapUsed = 0x00000040, |
|
9707 /** The phonebook supports retrieval of the phonebook's PBID and Change Counter |
|
9708 - and for each entry its UID field. |
|
9709 |
|
9710 Modes: WCDMA */ |
|
9711 KCapsSynchronisationUsed = 0x00000080 |
|
9712 }; |
|
9713 |
|
9714 /** Described the location of the phone book. |
|
9715 |
|
9716 Modes: Common for all */ |
|
9717 enum TMobilePhoneBookLocation |
|
9718 { |
|
9719 /** The phonebook's location is unknown. */ |
|
9720 ELocationUnknown, |
|
9721 /** The phonebook is located in ICC (SIM/R-UIM) memory. */ |
|
9722 ELocationIccMemory, |
|
9723 /** The phonebook is located in Phone (ME) memory. */ |
|
9724 ELocationPhoneMemory, |
|
9725 /** The phonebook is located in an external memory. */ |
|
9726 ELocationExternalMemory, |
|
9727 /** The phonebook entries are dispersed over a combination of memory locations. */ |
|
9728 ELocationCombinedMemory |
|
9729 }; |
|
9730 |
|
9731 enum |
|
9732 { |
|
9733 KMaxPBIDSize=15 |
|
9734 }; |
|
9735 |
|
9736 /** Defines a modifiable buffer descriptor to contain the phone book identity. |
|
9737 Used in TMobilePhoneBookInfoV1. */ |
|
9738 typedef TBuf8<KMaxPBIDSize> TMobilePhoneBookIdentity; |
|
9739 |
|
9740 |
|
9741 |
|
9742 class TMobilePhoneBookInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1 |
|
9743 /** |
|
9744 Defines information about a Phonebook store. |
|
9745 @publishedPartner |
|
9746 @released |
|
9747 */ |
|
9748 { |
|
9749 public: |
|
9750 /** Trivial constructor. Initializes iMaxNumLength=-1; iMaxTextLength=-1; iLocation=ELocationUnknown; |
|
9751 iChangeCounter=0; iExtensionId=KETelMobilePhonebookStoreV1; */ |
|
9752 IMPORT_C TMobilePhoneBookInfoV1(); |
|
9753 public: |
|
9754 /** The maximum number of characters for the number in a phonebook entry. |
|
9755 |
|
9756 Modes: Common */ |
|
9757 TInt iMaxNumLength; |
|
9758 /** The maximum number of characters for the text tag in a phonebook entry. |
|
9759 |
|
9760 Modes: Common */ |
|
9761 TInt iMaxTextLength; |
|
9762 /** The memory location of this phonebook. |
|
9763 |
|
9764 Modes: Common |
|
9765 |
|
9766 @see TMobilePhoneBookLocation */ |
|
9767 TMobilePhoneBookLocation iLocation; |
|
9768 /** The contents of the Change Counter file in a USIM phonebook. |
|
9769 |
|
9770 Modes: WCDMA */ |
|
9771 TUint16 iChangeCounter; |
|
9772 /** A unique identity for this type of phonebook. |
|
9773 |
|
9774 If this is a SIM or R-UIM phonebook then it will equal the ICCID of the card. |
|
9775 |
|
9776 If this is a USIM phonebook then it will equal the PBID of the phonebook. |
|
9777 |
|
9778 Modes: Common |
|
9779 |
|
9780 @see TMobilePhoneBookIdentity */ |
|
9781 TMobilePhoneBookIdentity iIdentity; |
|
9782 }; |
|
9783 |
|
9784 /** Packages the TMobilePhoneBookInfoV1 into a TMobilePhoneBookInfoV1Pckg. */ |
|
9785 typedef TPckg<TMobilePhoneBookInfoV1> TMobilePhoneBookInfoV1Pckg; |
|
9786 |
|
9787 |
|
9788 class TMobilePhoneBookInfoV2 : public TMobilePhoneBookInfoV1 |
|
9789 /** Defines information about a Phonebook store for version v2.0 of the API. |
|
9790 @publishedPartner |
|
9791 @released */ |
|
9792 { |
|
9793 public: |
|
9794 IMPORT_C TMobilePhoneBookInfoV2(); |
|
9795 public: |
|
9796 /** The type of the phonebook which relates to its location (ICC/UICC/CDMA). |
|
9797 |
|
9798 Mode: Common */ |
|
9799 TName iPhBkMode; |
|
9800 }; |
|
9801 |
|
9802 /** Packages the TMobilePhoneBookInfoV2 into a TMobilePhoneBookInfoV1Pckg. */ |
|
9803 typedef TPckg<TMobilePhoneBookInfoV2> TMobilePhoneBookInfoV2Pckg; |
|
9804 |
|
9805 |
|
9806 /** Defines information about a Phonebook store for version v5.0 of the API. |
|
9807 |
|
9808 Extends the v2.0 API to allow additional information about the phonebook |
|
9809 (Maximum number of second name fields, Maximum number of additional number fields, |
|
9810 Maximum number of additional group name fields, Maximum number of email address fields) |
|
9811 to be retieved where available. |
|
9812 |
|
9813 @publishedPartner |
|
9814 @released*/ |
|
9815 class TMobilePhoneBookInfoV5 : public TMobilePhoneBookInfoV2 |
|
9816 { |
|
9817 public: |
|
9818 IMPORT_C TMobilePhoneBookInfoV5(); |
|
9819 public: |
|
9820 /** The maximum number of Second Name fields that can be used. */ |
|
9821 TInt iMaxSecondNames; |
|
9822 |
|
9823 /** The maximum text length for Second Name fields. */ |
|
9824 TInt iMaxTextLengthSecondName; |
|
9825 |
|
9826 /** The maximum number of additional number fields that can be used. */ |
|
9827 TInt iMaxAdditionalNumbers; |
|
9828 |
|
9829 /** The maximum number length for Additional Number fields. */ |
|
9830 TInt iMaxNumLengthAdditionalNumber; |
|
9831 |
|
9832 /** The maximum text length for Additonal Number fields. */ |
|
9833 TInt iMaxTextLengthAdditionalNumber; |
|
9834 |
|
9835 /** The maximum number of additional Group Name fields that can be used. */ |
|
9836 TInt iMaxGroupNames; |
|
9837 |
|
9838 /** The maximum text length for Group Name fields. */ |
|
9839 TInt iMaxTextLengthGroupName; |
|
9840 |
|
9841 /** The maximum number of additional E-Mail address fields that can be used. */ |
|
9842 TInt iMaxEmailAddr; |
|
9843 |
|
9844 /** The maximum text length for Email Address fields. */ |
|
9845 TInt iMaxTextLengthEmailAddr; |
|
9846 }; |
|
9847 |
|
9848 /** Packages the TMobilePhoneBookInfoV5 into a TMobilePhoneBookInfoV5Pckg. */ |
|
9849 typedef TPckg<TMobilePhoneBookInfoV5> TMobilePhoneBookInfoV5Pckg; |
|
9850 |
|
9851 |
|
9852 // check these fields - not sure all are correct |
|
9853 /** The following Tag IDs are used to encode/decode the phonebook entries to/from |
|
9854 the TLV format. Each field will have a unique identifier and will be followed |
|
9855 by the field length. The type of data associated with the field is also specified |
|
9856 below. |
|
9857 |
|
9858 Some fields do not have any data and just serve as separators within the buffer |
|
9859 - in these cases the Data Type column is set to not applicable (n/a). |
|
9860 |
|
9861 Modes: Common */ |
|
9862 enum TMobilePBFieldTags |
|
9863 { |
|
9864 /** Tag id for the beginning of a new phonebook entry. |
|
9865 |
|
9866 Data type: n/a. |
|
9867 |
|
9868 Modes: Common */ |
|
9869 ETagPBNewEntry =0xA0, |
|
9870 /** Tag id for the Unique ID field. |
|
9871 |
|
9872 Data type: TUint16 |
|
9873 |
|
9874 Modes: WCDMA */ |
|
9875 ETagPBUniqueId =0xB0, |
|
9876 /** Tag id for the Index within the ADN record. |
|
9877 |
|
9878 Data type: TUint16 |
|
9879 |
|
9880 Modes: Common */ |
|
9881 ETagPBAdnIndex =0xC0, |
|
9882 /** Tag id for a Text field within the ADN/ANR record. |
|
9883 |
|
9884 Data type: TDes16 |
|
9885 |
|
9886 Modes: Common */ |
|
9887 ETagPBText =0xC1, |
|
9888 /** Tag id for a Number field within the ADN/ANR record. |
|
9889 |
|
9890 Data type: TDes16 |
|
9891 |
|
9892 Modes: Common */ |
|
9893 ETagPBNumber =0xC2, |
|
9894 /** Tag id for a TON/NPI byte within the ADN/ANR record. |
|
9895 |
|
9896 Data type: TUint8 |
|
9897 |
|
9898 Modes: Common */ |
|
9899 ETagPBTonNpi =0xC3, |
|
9900 /** Tag id for a Bearer Capability IE associated to the ADN/ANR record. |
|
9901 |
|
9902 Data type: TDes8 |
|
9903 |
|
9904 Modes: GSM/WCDMA */ |
|
9905 ETagPBBearerCap =0xC4, |
|
9906 /** Tag id for the beginning of an Additional Number entry within the phonebook |
|
9907 entry. |
|
9908 |
|
9909 Data type: n/a |
|
9910 |
|
9911 Modes: WCDMA */ |
|
9912 ETagPBAnrStart =0xC5, |
|
9913 /** Tag id for the Second Name associated to the ADN record. |
|
9914 |
|
9915 Data type: TDes16 |
|
9916 |
|
9917 Modes: WCDMA */ |
|
9918 ETagPBSecondName =0xC6, |
|
9919 /** Tag id for a Group Name associated to the ADN record. |
|
9920 |
|
9921 Data type:TDes16 |
|
9922 |
|
9923 Modes: WCDMA */ |
|
9924 ETagPBGroupName =0xC7, |
|
9925 /** Tag id for an Email Address associated to the ADN record. |
|
9926 |
|
9927 Data type: TDes16 |
|
9928 |
|
9929 Modes: WCDMA */ |
|
9930 ETagPBEmailAddress =0xC8, |
|
9931 /** Tag id for the Entry Control byte associated to the ADN record. |
|
9932 |
|
9933 Data type: TUint8 |
|
9934 |
|
9935 Modes: WCDMA */ |
|
9936 ETagPBEntryControl =0xC9, |
|
9937 /** Tag id for the Hidden Information byte associated to the ADN record. |
|
9938 |
|
9939 Data type: TUint8 |
|
9940 |
|
9941 Modes: WCDMA */ |
|
9942 ETagPBHiddenInfo =0xCA, |
|
9943 ETagPBDateTime =0xCB, |
|
9944 ETagPBDuration =0xCC, |
|
9945 ETagPBCallStatus =0xCD, |
|
9946 ETagPBEntryStatus =0xCE |
|
9947 }; |
|
9948 |
|
9949 |
|
9950 // API/TSY internal type |
|
9951 struct TPBIndexAndNumEntries |
|
9952 /** A structure to hold the phone book index and number of entries. */ |
|
9953 { |
|
9954 /** Index for the phone book. */ |
|
9955 TInt iIndex; |
|
9956 TInt iNumSlots; |
|
9957 }; |
|
9958 |
|
9959 IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumSlots, TDes8& aPBData) const; |
|
9960 IMPORT_C void Write(TRequestStatus& aReqStatus, const TDesC8& aPBData, TInt& aIndex) const; |
|
9961 |
|
9962 protected: |
|
9963 IMPORT_C void ConstructL(); |
|
9964 private: |
|
9965 RMobilePhoneBookStore(const RMobilePhoneBookStore&); |
|
9966 }; |
|
9967 |
|
9968 /*********************************************************/ |
|
9969 // |
|
9970 // RMobileConferenceCall |
|
9971 // |
|
9972 /*********************************************************/ |
|
9973 |
|
9974 |
|
9975 |
|
9976 class CMobileConferenceCallPtrHolder; |
|
9977 |
|
9978 class RMobileConferenceCall : public RTelSubSessionBase |
|
9979 /** Provides access to conference call functionality provided by TSY. |
|
9980 |
|
9981 Conference calls allow users to conduct multi-connection voice calls, for example |
|
9982 simultaneous communication to more than one remote party. All participants |
|
9983 within a conference call can hear and speak to each other. There is a controlling |
|
9984 party that initiates and manages the conference. |
|
9985 |
|
9986 Conference calling is possible in both GSM and CDMA mode and the actions to |
|
9987 initiate a 3-way conference are the same in either mode. However, GSM conference |
|
9988 calls offer more functionality and the number of remote parties is limited |
|
9989 in CDMA mode to 2 and in GSM mode to 5. |
|
9990 |
|
9991 The Multimode ETel API uses a new sub-session called RMobileConferenceCall |
|
9992 as a model for a conference call. The conference call object will be an aggregation |
|
9993 of all the RMobileCall objects that are part of the conference call. It will |
|
9994 be possible for clients to manipulate both the conference call as a whole |
|
9995 and individual calls within a conference call depending on the dynamic capabilities |
|
9996 of each of these objects. |
|
9997 |
|
9998 Please note that RMobileConferenceCall is replacing the RCallGroup abstraction |
|
9999 used in the GSM API. This was an optimisation decision. The call group abstraction |
|
10000 placed a large burden on a TSY to create call groups, monitor the calls in |
|
10001 each group and trigger notification when calls were added or moved, probably |
|
10002 even when a conference call was not ongoing. Clients will probably only open |
|
10003 a RMobileConferenceCall when the user has decided to make a conference call |
|
10004 and by having just one object replace three call groups it will also reduce |
|
10005 the number of notifications that would trigger in response to conference call |
|
10006 events. With a view to the future, without call groups there are also no longer |
|
10007 any restrictions to the allowed types of active calls (simultaneous, separate |
|
10008 voice and data calls are possible). |
|
10009 |
|
10010 The methods within this section must be supported if the TSY supports MobileConferenceCall |
|
10011 functional unit. |
|
10012 |
|
10013 */ |
|
10014 { |
|
10015 public: |
|
10016 IMPORT_C RMobileConferenceCall(); |
|
10017 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
10018 IMPORT_C void Close(); |
|
10019 |
|
10020 /** Conference call capabilities. */ |
|
10021 enum TMobileConferenceCallCaps |
|
10022 { |
|
10023 /** Indicates that a conference call can be created. */ |
|
10024 KCapsCreate = 0x00000001, |
|
10025 /** Indicates that a conference call can be terminated. */ |
|
10026 KCapsHangUp = 0x00000002, |
|
10027 /** Indicates that a conference call exists and can be swapped to the opposite |
|
10028 state (active or hold). */ |
|
10029 KCapsSwap = 0x00000004 |
|
10030 }; |
|
10031 |
|
10032 IMPORT_C TInt GetCaps(TUint32& aCaps) const; |
|
10033 IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; |
|
10034 |
|
10035 IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const; |
|
10036 IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const; |
|
10037 IMPORT_C void Swap(TRequestStatus& aReqStatus) const; |
|
10038 IMPORT_C void HangUp(TRequestStatus& aReqStatus) const; |
|
10039 IMPORT_C TInt EnumerateCalls(TInt& aCount) const; |
|
10040 IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const; |
|
10041 |
|
10042 /** Conference call status. */ |
|
10043 enum TMobileConferenceStatus |
|
10044 { |
|
10045 /** The conference call is in the idle state. */ |
|
10046 EConferenceIdle, |
|
10047 /** The conference call is in the active, connected state. */ |
|
10048 EConferenceActive, |
|
10049 /** The conference call is in the held, connected state. */ |
|
10050 EConferenceHold |
|
10051 }; |
|
10052 |
|
10053 IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const; |
|
10054 IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const; |
|
10055 |
|
10056 /** Conference events. */ |
|
10057 enum TMobileConferenceEvent |
|
10058 { |
|
10059 /** A call has been added to the conference. */ |
|
10060 EConferenceCallAdded, // Name of the call added returned in aCallName |
|
10061 /** A call has been removed from the conference. */ |
|
10062 EConferenceCallRemoved, // Name of the call terminated returned in aCallName |
|
10063 /** Names of the two calls used to build the conference call returned in aCallName. */ |
|
10064 EConferenceBuilt, // Names of the two calls used to build the conference call returned in aCallName |
|
10065 /** No name provided */ |
|
10066 EConferenceTerminated, // No name provided |
|
10067 /** No name provided. */ |
|
10068 EConferenceSwapped, // No name provided |
|
10069 /** Name of the call being seperated. */ |
|
10070 EConferenceSplit // Name of the call being seperated |
|
10071 }; |
|
10072 |
|
10073 IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const; |
|
10074 |
|
10075 private: |
|
10076 CMobileConferenceCallPtrHolder* iMmPtrHolder; |
|
10077 RMobileConferenceCall(const RMobileConferenceCall&); |
|
10078 protected: |
|
10079 IMPORT_C void ConstructL(); |
|
10080 IMPORT_C void Destruct(); |
|
10081 }; |
|
10082 |
|
10083 |
|
10084 ///////////////////////////////////////////////////////////////////////////////////// |
|
10085 // |
|
10086 // EAP-SIM Authentication functional unit |
|
10087 // |
|
10088 ///////////////////////////////////////////////////////////////////////////////////// |
|
10089 |
|
10090 class CMobileSmartCardEapPtrHolder; |
|
10091 |
|
10092 /** |
|
10093 This sub-session opens under RMobilePhone. |
|
10094 |
|
10095 RMobileSmartCardEap provides the client with access to a Smart Card |
|
10096 Application's EAP-capability (if one exists). |
|
10097 |
|
10098 (See ETSI TS 102.310 v6.2.0 and RFC3748) |
|
10099 |
|
10100 To submit authentication challenges or requests, a client must use |
|
10101 CAsyncSmartCardEapAuthentication in conjunction with this sub-session. |
|
10102 |
|
10103 @see CAsyncSmartCardEapAuthentication |
|
10104 @publishedPartner |
|
10105 @prototype |
|
10106 */ |
|
10107 class RMobileSmartCardEap : public RTelSubSessionBase |
|
10108 { |
|
10109 friend class CAsyncSmartCardEapAuthentication; |
|
10110 |
|
10111 public: |
|
10112 /** |
|
10113 Class encapsulates EAP request packet data for authentication. |
|
10114 |
|
10115 @see CAsyncSmartCardEapAuthentication |
|
10116 |
|
10117 @publishedPartner |
|
10118 @prototype |
|
10119 */ |
|
10120 class CEapAuthenticateRequestDataV6 : public CBase |
|
10121 { |
|
10122 public: |
|
10123 IMPORT_C static CEapAuthenticateRequestDataV6* NewL(); |
|
10124 IMPORT_C virtual void ExternalizeL(TPtr8& aBuffer); |
|
10125 IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer); |
|
10126 IMPORT_C TUint VersionId() const; |
|
10127 IMPORT_C TPtr8 GetEapReqPacket() const; |
|
10128 IMPORT_C void SetEapReqPacketL(const TDesC8& aData); |
|
10129 IMPORT_C ~CEapAuthenticateRequestDataV6(); |
|
10130 |
|
10131 private: |
|
10132 CEapAuthenticateRequestDataV6(); |
|
10133 void ConstructL(); |
|
10134 |
|
10135 protected: |
|
10136 /** |
|
10137 ETelMM's supported version. |
|
10138 */ |
|
10139 TUint iVersionId; |
|
10140 |
|
10141 public: |
|
10142 /** |
|
10143 EAP-request packet in a flat buffer. |
|
10144 */ |
|
10145 CBufFlat* iEapReqPacket; |
|
10146 }; |
|
10147 |
|
10148 IMPORT_C RMobileSmartCardEap(); |
|
10149 |
|
10150 /** |
|
10151 EAP types are represented by one byte for standard EAP methods, and |
|
10152 eight bytes for extended methods. Each byte specified in the |
|
10153 TEapType buffer should represent one semi-octet. Therefore, a |
|
10154 maximum of 16-chars are needed for representing any possible EAP |
|
10155 type. (See section 5.2 of ETSI TS 102.310 v6.2.0.) |
|
10156 |
|
10157 @see RMobileSmartCardEap::TEapType |
|
10158 |
|
10159 @publishedPartner |
|
10160 @prototype |
|
10161 */ |
|
10162 enum { KEapTypeSize = 16 }; |
|
10163 |
|
10164 /** |
|
10165 A typedef'd buffer to hold the EAP type for the subsequent |
|
10166 authentication that will be carried out on the Smart Card |
|
10167 Application. |
|
10168 |
|
10169 The value specified must correspond to the pre-allocated type |
|
10170 identifiers for various EAPs (see |
|
10171 http://www.iana.org/assignments/eap-numbers). Some known values |
|
10172 are given in etelmm.h. |
|
10173 |
|
10174 The type must be specified in hexadecimal format, where each |
|
10175 character represents one semi-octet. |
|
10176 |
|
10177 @see KETelSmartCardEapTypeMD5 |
|
10178 @see KETelSmartCardEapTypeTLS |
|
10179 @see KETelSmartCardEapTypeSIM |
|
10180 @see KETelSmartCardEapTypeAKA |
|
10181 @see KETelSmartCardEapTypeTTLS |
|
10182 @see RMobileSmartCardEap::Open() |
|
10183 |
|
10184 @publishedPartner |
|
10185 @prototype |
|
10186 */ |
|
10187 typedef TBuf8<KEapTypeSize> TEapType; |
|
10188 |
|
10189 IMPORT_C TInt Open(RMobilePhone& aPhone, const RMobilePhone::TAID& aAID, const TEapType& aEapType); |
|
10190 IMPORT_C void InitialiseEapMethod(TRequestStatus& aReqStatus); |
|
10191 IMPORT_C void Close(); |
|
10192 |
|
10193 /** |
|
10194 Authentication status of the EAP supporting UICC application (See |
|
10195 section 7.2 of ETSI TS 102.310 v6.2.0). One of these values is |
|
10196 returned on completion of an |
|
10197 RMobileSmartCardEap::GetAuthenticationStatus() request. |
|
10198 |
|
10199 @see RMobileSmartCardEap::GetAuthenticationStatus() |
|
10200 |
|
10201 @publishedPartner |
|
10202 @prototype |
|
10203 */ |
|
10204 enum TEapAuthStatus |
|
10205 { |
|
10206 /** |
|
10207 No authentication started |
|
10208 */ |
|
10209 ENoAuthStarted, // 0 |
|
10210 /** |
|
10211 Authenticating |
|
10212 */ |
|
10213 EAuthenticating, // 1 |
|
10214 /** |
|
10215 Authentication complete |
|
10216 */ |
|
10217 EAuthenticated, // 2 |
|
10218 /** |
|
10219 Held (authentication failure) |
|
10220 */ |
|
10221 EHeld // 3 |
|
10222 }; |
|
10223 |
|
10224 IMPORT_C void GetAuthenticationStatus(TRequestStatus& aReqStatus, TEapAuthStatus& aAuthStatus); |
|
10225 |
|
10226 /** |
|
10227 TEapUserIdType should be used to request an identity from EF_PUId |
|
10228 or EF_Ps, when making an RMobileSmartCardEap::GetUserIdentity() |
|
10229 request. |
|
10230 (See sections 7.3 and 7.4, respectively, of ETSI TS 102.310 v6.2.0, |
|
10231 and RFC2486 - The Network Access Identifier). |
|
10232 |
|
10233 @see RMobileSmartCardEap::GetUserIdentity() |
|
10234 @see RMobileSmartCardEap::TEapUserIdentityV6 |
|
10235 |
|
10236 @publishedPartner |
|
10237 @prototype |
|
10238 */ |
|
10239 enum TEapUserIdType |
|
10240 { |
|
10241 /** Identity is permanent type */ |
|
10242 EPermanentIdentity, // 0 |
|
10243 /** Identity is pseudonym type */ |
|
10244 EPseudonymIdentity // 1 |
|
10245 }; |
|
10246 |
|
10247 /** |
|
10248 Maximum permitted size of identity data. |
|
10249 */ |
|
10250 enum { KEapIdentityMaxSize = 255 }; |
|
10251 |
|
10252 /** |
|
10253 EAP User Identity data. Ids are stored in EF_PUId or EF_Ps |
|
10254 (specified in sections 7.3 and 7.4, respectively, of ETSI TS |
|
10255 102.310 v6.2.0). |
|
10256 |
|
10257 @see RMobileSmartCardEap::GetUserIdentity() |
|
10258 |
|
10259 @publishedPartner |
|
10260 @prototype |
|
10261 */ |
|
10262 class TEapUserIdentityV6 : public RMobilePhone::TMultimodeType |
|
10263 { |
|
10264 public: |
|
10265 IMPORT_C TEapUserIdentityV6(); |
|
10266 public: |
|
10267 /** |
|
10268 EAP-IDENTITY Data. |
|
10269 */ |
|
10270 TBuf8<KEapIdentityMaxSize> iEapId; |
|
10271 }; |
|
10272 |
|
10273 /** |
|
10274 A typedef'd packaged TEapUserIdentityV6 for passing through a |
|
10275 generic API method. |
|
10276 |
|
10277 @publishedPartner |
|
10278 @prototype |
|
10279 */ |
|
10280 typedef TPckg<TEapUserIdentityV6> TEapUserIdentityV6Pckg; |
|
10281 |
|
10282 IMPORT_C void GetUserIdentity(TRequestStatus& aReqStatus, |
|
10283 TEapUserIdType aRequestedIdType, |
|
10284 TDes8& aUserId); |
|
10285 |
|
10286 /** |
|
10287 TEapKeyV6 should be used to request one of (currently) two keys |
|
10288 available on the EF_EAPKEYS of the UICC application (see section |
|
10289 7.1 of ETSI TS 102.310 v6.2.0). This enumeration type should be |
|
10290 used in RMobileSmartCardEap::GetEapKey() to specify the key to be |
|
10291 retrieved. |
|
10292 |
|
10293 @see RMobileSmartCardEap::TEapKeyV6 |
|
10294 @see RMobileSmartCardEap::GetEapKey() |
|
10295 |
|
10296 @publishedPartner |
|
10297 @prototype |
|
10298 */ |
|
10299 enum TEapKeyTag |
|
10300 { |
|
10301 /** |
|
10302 Used to request Master Session Key. |
|
10303 */ |
|
10304 EEapKeyMSK = 0x80, |
|
10305 /** |
|
10306 Used to request Extended Master Session Key. |
|
10307 */ |
|
10308 EEapKeyEMSK = 0x81 |
|
10309 }; |
|
10310 |
|
10311 /** |
|
10312 Maximum size of an EAP Key stored on the DF_EAP's EF_EAPKEYS. |
|
10313 255 as each key has a length that can be specified by exactly one |
|
10314 byte (see section 7.1 of ETSI TS 102.310 v6.2.0). |
|
10315 |
|
10316 @publishedPartner |
|
10317 @prototype |
|
10318 */ |
|
10319 enum { KEapKeyMaxSize = 255 }; |
|
10320 |
|
10321 /** |
|
10322 EAP authentication key data. |
|
10323 |
|
10324 @see RMobileSmartCardEap::GetEapKey() |
|
10325 |
|
10326 @publishedPartner |
|
10327 @prototype |
|
10328 */ |
|
10329 class TEapKeyV6 : public RMobilePhone::TMultimodeType |
|
10330 { |
|
10331 public: |
|
10332 IMPORT_C TEapKeyV6(); |
|
10333 public: |
|
10334 /** |
|
10335 EAP-KEY Data. |
|
10336 */ |
|
10337 TBuf8<KEapKeyMaxSize> iEapKey; |
|
10338 }; |
|
10339 |
|
10340 /** |
|
10341 A typedef'd packaged TEapKeyV6 for passing through a generic API |
|
10342 method. |
|
10343 |
|
10344 @publishedPartner |
|
10345 @prototype |
|
10346 */ |
|
10347 typedef TPckg<TEapKeyV6> TEapKeyV6Pckg; |
|
10348 |
|
10349 IMPORT_C void GetEapKey(TRequestStatus& aReqStatus, const TEapKeyTag aRequestedKey, TDes8& aKey); |
|
10350 |
|
10351 /** |
|
10352 Status of the DF_EAP this subsession refers to. The status is |
|
10353 basically an indication of whether the DF is in use by another sub- |
|
10354 session client instance. |
|
10355 |
|
10356 NotifyEapMethodAccessStatusChange() will give a notification when |
|
10357 the status changes. |
|
10358 |
|
10359 Status will change when the first client calls |
|
10360 InitialiseEapMethod() on this sub-session. When the same client |
|
10361 calls ReleaseEapMethod() (or Close()), the status will change |
|
10362 again. This allows mutually exclusive access to the DF_EAP. All |
|
10363 other RMobileSmartCardEap hanles will get an error if they attempt |
|
10364 to make requests that access the same DF_EAP. |
|
10365 |
|
10366 @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange() |
|
10367 @see RMobileSmartCardEap::ReleaseEapMethod() |
|
10368 @see RMobileSmartCardEap::InitialiseEapMethod() |
|
10369 |
|
10370 @publishedPartner |
|
10371 @prototype |
|
10372 */ |
|
10373 enum TEapMethodAccessStatus |
|
10374 { |
|
10375 /** |
|
10376 AID/DF_EAP has been reset, and the DF_EAP has not been |
|
10377 initialised by any other instance of RMobileSmartCardEap. |
|
10378 */ |
|
10379 EEapMethodAvailable, |
|
10380 /** |
|
10381 Another instance of RMobileSmartCardEap has initialised first |
|
10382 and taken ownership of the DF_EAP. The DF_EAP is currently |
|
10383 active and EAP requests can be made. |
|
10384 */ |
|
10385 EEapMethodInUseApplicationActive, |
|
10386 /** |
|
10387 This instance of RMobileSmartCardEap still owns the lock on the |
|
10388 DF_EAP, but the application has been deactivated elsewhere. |
|
10389 The client should re-initialise before making further EAP |
|
10390 requests. |
|
10391 |
|
10392 @see RMobileSmartCardEap::InitialiseEapMethod() |
|
10393 */ |
|
10394 EEapMethodInUseApplicationInactive, |
|
10395 /** |
|
10396 Lock on the DF_EAP has been released, but another DF_EAP method |
|
10397 is in use under the same AID, thus, cannot reset/initialise |
|
10398 this subsessions EAP method. Client can only post a |
|
10399 notification and wait till status changes to |
|
10400 EEapMethodAvailable. |
|
10401 |
|
10402 @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange() |
|
10403 */ |
|
10404 EEapMethodUnableToInitialise |
|
10405 }; |
|
10406 |
|
10407 IMPORT_C TInt ReleaseEapMethod(); |
|
10408 IMPORT_C TInt GetEapMethodAccessStatus(TEapMethodAccessStatus& aEapMethodStatus); |
|
10409 IMPORT_C void NotifyEapMethodAccessStatusChange(TRequestStatus& aReqStatus, TEapMethodAccessStatus& aEapMethodStatus); |
|
10410 IMPORT_C TBool IsEapMethodOwner() const; |
|
10411 |
|
10412 protected: |
|
10413 IMPORT_C void ConstructL(); |
|
10414 IMPORT_C void Destruct(); |
|
10415 |
|
10416 private: |
|
10417 RMobileSmartCardEap(const RMobileSmartCardEap&); |
|
10418 |
|
10419 TChar SeptChar(TInt aDigit); |
|
10420 void ConvertBinToText(const TDesC8& aBinData, TDes& aText); |
|
10421 |
|
10422 private: |
|
10423 /** |
|
10424 Pointer Holder for the RMobileSmartCardEap sub-session requests. |
|
10425 */ |
|
10426 CMobileSmartCardEapPtrHolder* iMmPtrHolder; |
|
10427 /** |
|
10428 True if this object is the first to request InitialiseEapMethod() |
|
10429 on its <AID,EAPType> when the status is EEapMethodAvailable. |
|
10430 I.e. True only for the instance of RMobileSmartCardEap that |
|
10431 successfully passes the Wait() on iSemaphore. |
|
10432 */ |
|
10433 TBool iOwnsEapMethodLock; |
|
10434 /** |
|
10435 Semaphore is actually owned by TSY, and used by all instances of |
|
10436 RMobileSmartCardEap to stop multiple access to the same EAP method |
|
10437 on any one application. |
|
10438 */ |
|
10439 RSemaphore iSemaphore; |
|
10440 |
|
10441 }; // RMobileSmartCardEap |
|
10442 |
|
10443 ///////////////////////////////////////////////////////////////////////////////////// |
|
10444 // |
|
10445 // LCS-MO-LR AND LCS-MT-LR |
|
10446 // |
|
10447 ///////////////////////////////////////////////////////////////////////////////////// |
|
10448 class CMobileLocationServicesPtrHolder; |
|
10449 |
|
10450 /** |
|
10451 This sub-session opens under RMobilePhone. |
|
10452 |
|
10453 A new RMobileLocationServices class is used to add the ETelMM Support for Mobile Terminating Location Request, |
|
10454 Mobile Originating Location Requests, A-Gps assistance data for the LBS Framework. |
|
10455 |
|
10456 RMobileLocationServices is derived from RTelSubSessionBase.RMobileLocationServices lists the |
|
10457 APIs,which provided the support for Mtlr, Molr, A-Gps assistance data requests. |
|
10458 */ |
|
10459 class RMobileLocationServices : public RTelSubSessionBase |
|
10460 { |
|
10461 public: |
|
10462 |
|
10463 IMPORT_C RMobileLocationServices(); |
|
10464 IMPORT_C TInt Open(RMobilePhone& aPhone); |
|
10465 IMPORT_C void Close(); |
|
10466 /** |
|
10467 Maximum length of the array used for TLcsRequestorIdString. |
|
10468 */ |
|
10469 enum { KLcsMaxRequestorIdStringSize = 256 }; |
|
10470 /** |
|
10471 Maximum length of the array used for TLcsClientBufferName. |
|
10472 */ |
|
10473 enum { KLcsMaxClientNameBufferSize = 256 }; |
|
10474 /** |
|
10475 Maximum length of the array used for TLcsClientExternalID. |
|
10476 */ |
|
10477 enum { KLcsMaxClientExternalIdSize = 64 }; |
|
10478 /** |
|
10479 Maximum length of the array used for TLcsLocationEstimate. |
|
10480 */ |
|
10481 enum { KLcsMaxLocationEstimateSize = 64 }; |
|
10482 /** |
|
10483 Maximum length of the array used for TLcsVelocityEstimate. |
|
10484 */ |
|
10485 enum { KLcsMaxVelocityEstimateSize = 64 }; |
|
10486 /** |
|
10487 Maximum length of the array used for TLcsGpsAssistanceData. |
|
10488 */ |
|
10489 enum { KLcsMaxGpsAssistanceDataSize = 64 }; |
|
10490 /** |
|
10491 A typedef'd buffer which holds the External ClientName Buffer. |
|
10492 @see KLcsMaxClientNameBufferSize |
|
10493 */ |
|
10494 typedef TBuf8<KLcsMaxClientNameBufferSize> TLcsClientNameBuffer; |
|
10495 /** |
|
10496 A typedef'd buffer which holds the RequestorId String. |
|
10497 @see KLcsMaxRequestorIdStringSize |
|
10498 */ |
|
10499 typedef TBuf8<KLcsMaxRequestorIdStringSize> TLcsRequestorIdString; |
|
10500 /** |
|
10501 A typedef'd buffer which holds the Gps Assistance Data. |
|
10502 @see KLcsMaxGpsAssistanceDataSize |
|
10503 */ |
|
10504 typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData; |
|
10505 /** |
|
10506 A typedef'd buffer which holds the External ClientId. |
|
10507 @see KLcsMaxClientExternalIdSize |
|
10508 */ |
|
10509 typedef TBuf8<KLcsMaxClientExternalIdSize> TLcsClientExternalID; |
|
10510 /** |
|
10511 A typedef'd TUint8 which holds the Data Coding Scheme information. |
|
10512 */ |
|
10513 typedef TUint8 TLcsDataCodingScheme; |
|
10514 /** |
|
10515 A typedef'd buffer which holds the Location Estimate. |
|
10516 @see KLcsMaxLocationEstimateSize |
|
10517 */ |
|
10518 typedef TBuf8<KLcsMaxLocationEstimateSize> TLcsLocationEstimate; |
|
10519 /** |
|
10520 A typedef'd buffer which holds the Velocity Estimate. |
|
10521 @see KLcsMaxVelocityEstimateSize |
|
10522 */ |
|
10523 typedef TBuf8<KLcsMaxVelocityEstimateSize> TLcsVelocityEstimate; |
|
10524 /** |
|
10525 A typedef'd buffer which holds the GpsAssistanceData type. |
|
10526 @see KLcsMaxGpsAssistanceDataSize |
|
10527 */ |
|
10528 typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData; |
|
10529 typedef TUint8 TTransactionIdentifier; |
|
10530 typedef TUint8 TGPSI; |
|
10531 /** |
|
10532 Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)), |
|
10533 3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and |
|
10534 3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding) |
|
10535 for further details of MTLR and MOLR member data. |
|
10536 */ |
|
10537 /*********************************************************************/ |
|
10538 // MTLR // |
|
10539 /*********************************************************************/ |
|
10540 /** |
|
10541 TNotificationType lists the various types of Notification |
|
10542 that can be expected from any MTLR-Location Notification coming from the Network, |
|
10543 These types depend on the Subscription Profile of the UE. |
|
10544 |
|
10545 One of the TNotificationType is expected to be retrieved from the Network, |
|
10546 when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY. |
|
10547 @internalAll |
|
10548 */ |
|
10549 enum TNotificationType |
|
10550 { |
|
10551 /** |
|
10552 Notification Type Unknown |
|
10553 */ |
|
10554 ENotificationTypeUnknown, |
|
10555 /** |
|
10556 The Location Request is accepted by default |
|
10557 */ |
|
10558 ENotifyLocationAllowed, |
|
10559 /** |
|
10560 This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, |
|
10561 and that the user is expected to respond by granting/denying the request. By defualt, if the user |
|
10562 does not provide a response, the request is granted |
|
10563 */ |
|
10564 ENotifyAndVerify_LocationAllowedIfNoResponse, |
|
10565 /** |
|
10566 This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, |
|
10567 and that the user is expected to respond by granting/denying the request. By defualt, if the |
|
10568 user does not provide a response, the request is denied. |
|
10569 */ |
|
10570 ENotifyAndVerify_LocationNotAllowedIfNoResponse, |
|
10571 /** |
|
10572 The network sends the information to the UE that the external client has privacy overide capability, |
|
10573 This indicator is received when an authenticated or emergency client had sent the request. |
|
10574 */ |
|
10575 ELocationPrivacyOverride, |
|
10576 /** |
|
10577 This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various |
|
10578 reasons. |
|
10579 */ |
|
10580 ELocationNotAllowed |
|
10581 }; |
|
10582 |
|
10583 |
|
10584 /** |
|
10585 TLocationEstimateType lists the various types of LocationEstimate |
|
10586 that can be expected from any MTLR-Location Notification request coming from the Network, |
|
10587 These types depend on the Subscription Profile of the UE. |
|
10588 |
|
10589 One of the TLocationEstimateType is expected to be retrieved from the Network, |
|
10590 when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY. |
|
10591 @internalAll |
|
10592 */ |
|
10593 enum TLocationEstimateType |
|
10594 { |
|
10595 /** |
|
10596 Location Estimate Type Unknown. |
|
10597 */ |
|
10598 ELocationEstimateTypeUnknown, |
|
10599 /** |
|
10600 The External Client has requested for the Current Location of |
|
10601 the UE. |
|
10602 */ |
|
10603 ECurrentLocation, |
|
10604 /** |
|
10605 The External Client has requested for the Current Location of |
|
10606 the UE.Incase,if the request is accepted,But still it fails to |
|
10607 generate the Location report because of Measurement Control Failure. |
|
10608 The Client receives the Last Known Location. |
|
10609 */ |
|
10610 ECurrentOrLastKnownLocation, |
|
10611 /** |
|
10612 The External Client has requested for the initial location of the UE. The current |
|
10613 location of the UE may or may not be the initial location. |
|
10614 */ |
|
10615 EInitialLocation |
|
10616 }; |
|
10617 |
|
10618 /** |
|
10619 TLcsClientNameV1 holds the details of the name of the External client, |
|
10620 who is making the request via Network. |
|
10621 TLcsClientNameV1 is used by RMobileLocationServices::NotifyMtlr() request. |
|
10622 @see TLcsDataCodingScheme |
|
10623 @see TLcsClientNameBuffer |
|
10624 @internalAll |
|
10625 */ |
|
10626 class TLcsClientNameV1 |
|
10627 { |
|
10628 public: |
|
10629 /** |
|
10630 TLcsDataCodingScheme holds the Data Coding Scheme information which is used |
|
10631 to extract the ExternalClient name. |
|
10632 */ |
|
10633 TLcsDataCodingScheme iLcsDataCodingScheme; |
|
10634 /** |
|
10635 TLcsClientNameBuffer holds the Client name |
|
10636 */ |
|
10637 TLcsClientNameBuffer iLcsClientNameBuffer; |
|
10638 }; |
|
10639 |
|
10640 /** |
|
10641 TLcsRequestorIDV1 holds the details of the RequestorId i.e the details of the |
|
10642 Network,Which is carrying the request of External Client to UE |
|
10643 TLcsRequestorIDV1 is used by RMobileLocationServices::NotifyMtlr() request. |
|
10644 @see TLcsDataCodingScheme |
|
10645 @see TLcsRequestorIdString |
|
10646 @internalAll |
|
10647 */ |
|
10648 class TLcsRequestorIDV1 |
|
10649 { |
|
10650 public: |
|
10651 /** |
|
10652 TLcsDataCodingScheme holds the Data Coding Scheme information which is used |
|
10653 to extract the RequestorId String. |
|
10654 */ |
|
10655 TLcsDataCodingScheme iLcsDataCodingScheme; |
|
10656 /** |
|
10657 TLcsRequestorIdString holds the RequestorId String |
|
10658 */ |
|
10659 TLcsRequestorIdString iLcsRequestorIdString; |
|
10660 }; |
|
10661 |
|
10662 /** |
|
10663 TLocationExternalInfoV1 holds the details of the External client and the Requestor |
|
10664 TLocationExternalInfoV1 is used by RMobileLocationServices::NotifyMtlr() request |
|
10665 @see TLcsClientExternalID |
|
10666 @see TLcsClientNameV1 |
|
10667 @see TLcsRequestorIDV1 |
|
10668 @internalAll |
|
10669 */ |
|
10670 class TLocationExternalInfoV1 |
|
10671 { |
|
10672 public: |
|
10673 /** |
|
10674 TLcsClientExternalID gives the id of the External client. |
|
10675 */ |
|
10676 TLcsClientExternalID iLcsClientID; |
|
10677 /** |
|
10678 TLcsClientNameV1 holds the name of the External Client. |
|
10679 */ |
|
10680 TLcsClientNameV1 iLcsClientName; |
|
10681 /** |
|
10682 TLcsRequestorIDV1 gives the details of requestor id |
|
10683 */ |
|
10684 TLcsRequestorIDV1 iLcsRequestorID; |
|
10685 }; |
|
10686 |
|
10687 /** |
|
10688 TNotifyMtlrV7 holds the details of the MTLR request made by the External client. |
|
10689 TNotifyMtlrV7 is used by RMobileLocationServices::NotifyMtlr() request |
|
10690 @see TNotificationType |
|
10691 @see TLocationEstimateType |
|
10692 @see TLocationExternalInfoV1 |
|
10693 @internalAll |
|
10694 */ |
|
10695 class TNotifyMtlrV7: public RMobilePhone::TMultimodeType |
|
10696 { |
|
10697 public: |
|
10698 IMPORT_C TNotifyMtlrV7(); |
|
10699 public: |
|
10700 /** |
|
10701 TNotificationType holds the type of notification request being made |
|
10702 */ |
|
10703 TNotificationType iNotificationType; |
|
10704 /** |
|
10705 TLocationEstimateType holds the type of LocationEstimate is requested |
|
10706 */ |
|
10707 TLocationEstimateType iMtlrLocationEstimateType; |
|
10708 /** |
|
10709 TLocationExternalInfoV7 holds the details of the External client. |
|
10710 */ |
|
10711 TLocationExternalInfoV1 iLocationInfo; |
|
10712 }; |
|
10713 |
|
10714 /** |
|
10715 A typedef'd packaged TNotifyMtlrV7 for passing through a |
|
10716 generic API method. |
|
10717 |
|
10718 @internalAll |
|
10719 */ |
|
10720 typedef TPckg<TNotifyMtlrV7> TNotifyMtlrV7Pckg; |
|
10721 |
|
10722 //MTLR-RESPONSE |
|
10723 /** |
|
10724 TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API |
|
10725 It holds the type of response being sent back for the MTLR request made. |
|
10726 @internalAll |
|
10727 */ |
|
10728 |
|
10729 enum TMtlrResponse |
|
10730 { |
|
10731 /** |
|
10732 Mtlr Response Unknown. |
|
10733 */ |
|
10734 EMtlrResponseUnknown, |
|
10735 /** |
|
10736 The UE has denied the Location Request of the External client. |
|
10737 @see RMobileLocationServices::SendMtlrResponse() |
|
10738 */ |
|
10739 EPermissionDenied , |
|
10740 /** |
|
10741 The UE has granted the Location Request of the External client. |
|
10742 @see RMobileLocationServices::SendMtlrResponse() |
|
10743 */ |
|
10744 EPermissionGranted |
|
10745 }; |
|
10746 |
|
10747 /** |
|
10748 TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API |
|
10749 It holds the type of Error response being sent back for the MTLR request made. |
|
10750 @internalAll |
|
10751 */ |
|
10752 enum TMtlrError |
|
10753 { |
|
10754 /** |
|
10755 Mtlr Error Unknown. |
|
10756 */ |
|
10757 EMtlrErrorUnknown, |
|
10758 /** |
|
10759 This response is sent back to the network when System has failed to |
|
10760 do the privacy check due to some Miscellaneous reasons |
|
10761 */ |
|
10762 ESystemFailure , |
|
10763 /** |
|
10764 The response is sent when the privacy verification has failed because of Unexpected data |
|
10765 values retrieved from the Location Notification request generated by the Network. |
|
10766 This generates an Error-Prone response from UE |
|
10767 */ |
|
10768 EUnexpectedDataValue |
|
10769 }; |
|
10770 |
|
10771 /** |
|
10772 TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API |
|
10773 It holds the details of the Response being rejected due to one of the problems reported to the UE |
|
10774 for the MTLR request being made. |
|
10775 @internalAll |
|
10776 */ |
|
10777 enum TMtlrReject |
|
10778 { |
|
10779 /** |
|
10780 Mtlr Reject Unknown. |
|
10781 */ |
|
10782 EMtlrRejectUnknown, |
|
10783 /** |
|
10784 This indication is given under a scenario where the UE wants to reject a request, |
|
10785 It is done by invoking Duplicate ID's. |
|
10786 */ |
|
10787 EDuplicateInvokeID, |
|
10788 /** |
|
10789 This indication is given under a scenario where the UE wants to reject a request, |
|
10790 It is done by saying the operation is not recognized |
|
10791 */ |
|
10792 EUnrecognizedOperation, |
|
10793 /** |
|
10794 This invokes a problem indicating Resource Limitation. |
|
10795 */ |
|
10796 EResourceLimitation, |
|
10797 /** |
|
10798 This Invokes a problem initiating release. |
|
10799 */ |
|
10800 EInitiatingRelease, |
|
10801 /** |
|
10802 This invokes a problem indicating that the ID linked with the Client information |
|
10803 is unrecognized |
|
10804 */ |
|
10805 EUnrecognizedLinkedID, |
|
10806 /** |
|
10807 This invokes a problem of Linked Response Unexpected |
|
10808 */ |
|
10809 ELinkedResponseUnexpected, |
|
10810 /** |
|
10811 This invokes a problem of Unexpected Linked Operation |
|
10812 */ |
|
10813 EUnexpectedLinkedOperation, |
|
10814 /** |
|
10815 This invokes a problem of Mistyped Parameter. |
|
10816 */ |
|
10817 EMistypedParameter |
|
10818 }; |
|
10819 |
|
10820 /**************************************************************/ |
|
10821 // MOLR // |
|
10822 /**************************************************************/ |
|
10823 |
|
10824 /** |
|
10825 TMolrType is used by the SendMolr() API. |
|
10826 This gives an indication of type of Molr request the UE wants to invoke |
|
10827 @internalAll |
|
10828 */ |
|
10829 enum TMolrType |
|
10830 { |
|
10831 /** |
|
10832 MolrType UnKnown |
|
10833 */ |
|
10834 EMolrTypeUnknown, |
|
10835 /** |
|
10836 UE is requesting the Network for its Location Estimate |
|
10837 */ |
|
10838 ELocationEstimate, |
|
10839 /** |
|
10840 UE is requesting the Network for GPS Assistance data |
|
10841 */ |
|
10842 EAssistanceData, |
|
10843 /** |
|
10844 UE is requesting the Network for DecipheringKeys |
|
10845 */ |
|
10846 EDecipheringKeys |
|
10847 }; |
|
10848 |
|
10849 /** |
|
10850 TResponseTime is used by SendMolr() API |
|
10851 This enum holds the various types of delay that an UE is expecting. |
|
10852 @internalAll |
|
10853 */ |
|
10854 enum TResponseTime |
|
10855 { |
|
10856 /** |
|
10857 Response Time Unknown. |
|
10858 */ |
|
10859 EResponseTimeunknown, |
|
10860 /** |
|
10861 This enum value indicates that the UE expects a Less Time Delay |
|
10862 from Network in responding to its request |
|
10863 */ |
|
10864 ELowDelay, |
|
10865 /** |
|
10866 This enum value indicates that the UE expects a Long Time Delay |
|
10867 from Network in responding to its request and is tolerant to it. |
|
10868 */ |
|
10869 EDelayTolerant |
|
10870 }; |
|
10871 |
|
10872 /** |
|
10873 TLocationMethod is used by SendMolr() API |
|
10874 This is an enum which lists out all different types of Location methods that an UE can request |
|
10875 @internalAll |
|
10876 */ |
|
10877 enum TLocationMethod |
|
10878 { |
|
10879 /** |
|
10880 Location Method Unknown |
|
10881 */ |
|
10882 ELocationMethodunknown, |
|
10883 /** |
|
10884 This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix. |
|
10885 This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference). |
|
10886 */ |
|
10887 EMSBasedEOTD, |
|
10888 /** |
|
10889 This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix. |
|
10890 This can be termed out as UE based location fix. |
|
10891 */ |
|
10892 EMSAssistedEOTD, |
|
10893 /** |
|
10894 This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data. |
|
10895 */ |
|
10896 EMSAssistedGPS, |
|
10897 /** |
|
10898 This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix |
|
10899 (OTDOA-Observed time difference of arrival). |
|
10900 */ |
|
10901 EMSBasedOTDOA |
|
10902 }; |
|
10903 |
|
10904 /** |
|
10905 TQosV1 is used by SendMolr() API |
|
10906 This is a class with details of accuracy of Position information, Response Time, |
|
10907 expected to be received from the network. |
|
10908 @see TResponseTime |
|
10909 @internalAll |
|
10910 */ |
|
10911 class TQosV1 |
|
10912 { |
|
10913 public: |
|
10914 /** |
|
10915 This gives an information of the amount of Horizontal accuracy that the UE is expecting. |
|
10916 */ |
|
10917 TUint8 iHorizontalAccuracy; |
|
10918 /** |
|
10919 This gives an information of the amount of Vertical accuracy that the UE is expecting. |
|
10920 */ |
|
10921 TUint8 iVerticalAccuracy; |
|
10922 /** |
|
10923 This enum indicates the Response Time expected by the UE to receive a response for its MOlr request. |
|
10924 */ |
|
10925 TResponseTime iResponseTime; |
|
10926 }; |
|
10927 |
|
10928 /** |
|
10929 TMolrErrors is used by SendMolr() API |
|
10930 This is an enum which lists out all the possible errors that can be |
|
10931 reported to UE by an External Client or the Network. |
|
10932 @internalAll |
|
10933 */ |
|
10934 enum TMolrErrors |
|
10935 { |
|
10936 /** |
|
10937 Molr Error Unknown |
|
10938 */ |
|
10939 EMolrErrorUnknown, |
|
10940 /** |
|
10941 This indication is given to the UE when the Location Report is unable to reach the |
|
10942 External Client due to some failure in the Network Connections. |
|
10943 */ |
|
10944 EMolrSystemFailure, |
|
10945 /** |
|
10946 This indication is given back to the UE by the Network to the UE or by the |
|
10947 External Client to the UE,where the UE generated MOLR has some unexpected values. |
|
10948 */ |
|
10949 EMolrUnexpectedDataValue, |
|
10950 /** |
|
10951 This indication is given back to the UE by the Network to the UE or by the |
|
10952 External Client to the UE,where the UE generated MOLR had a data discrepancy |
|
10953 */ |
|
10954 EMolrDataMissing, |
|
10955 /** |
|
10956 This indication is given by the Network to the UE, |
|
10957 when the UE is not given a facility to make a MOLR request |
|
10958 */ |
|
10959 EMolrFacilityNotSupported, |
|
10960 /** |
|
10961 This indication is given by the Network to the UE, |
|
10962 when the subscription profile of the UE doesn't match with the requests made by it. |
|
10963 */ |
|
10964 EMolrSS_SubscriptionViolation, |
|
10965 /** |
|
10966 This indication is given by the Network to the UE, |
|
10967 when the UE or the Network failed to generate the Location estimate |
|
10968 */ |
|
10969 EMolrPositionMethodFailure |
|
10970 }; |
|
10971 |
|
10972 /** |
|
10973 TStartMolrV7 is used by SendMolr() API |
|
10974 This class lists the details send by UE to Network when a Molr request is being made. |
|
10975 @see TMolrType |
|
10976 @see TQosV1 |
|
10977 @see TLocationEstimateType |
|
10978 @see TLcsClientExternalID |
|
10979 @see TGpsAssistanceData |
|
10980 @see TLocationMethod |
|
10981 @internalAll |
|
10982 */ |
|
10983 class TStartMolrV7: public RMobilePhone::TMultimodeType |
|
10984 { |
|
10985 public: |
|
10986 IMPORT_C TStartMolrV7(); |
|
10987 public: |
|
10988 /** |
|
10989 TMolrType holds the type of Molr request being made |
|
10990 */ |
|
10991 TMolrType iMolrType; |
|
10992 /** |
|
10993 TQosV1 lists out the Quality of Service expected by UE |
|
10994 */ |
|
10995 TQosV1 iQos; |
|
10996 /** |
|
10997 Type of Location Estimate requested |
|
10998 */ |
|
10999 TLocationEstimateType iMolrLocationEstimateType; |
|
11000 /** |
|
11001 Id of the External client |
|
11002 */ |
|
11003 TLcsClientExternalID iLcsClientExternalID; |
|
11004 /** |
|
11005 Type of GpsAssistanceData |
|
11006 */ |
|
11007 TGpsAssistanceData iGpsAssistanceData; |
|
11008 /** |
|
11009 Type of Location method requested |
|
11010 */ |
|
11011 TLocationMethod iLocationMethod ; |
|
11012 /** |
|
11013 Type of Service requested |
|
11014 */ |
|
11015 TUint8 iLcsServiceTypeID; |
|
11016 }; |
|
11017 /** |
|
11018 A typedef'd packaged TStartMolrV7 for passing through a |
|
11019 generic API method. |
|
11020 |
|
11021 @internalAll |
|
11022 */ |
|
11023 typedef TPckg<TStartMolrV7> TStartMolrV7Pckg; |
|
11024 |
|
11025 /** |
|
11026 TMolrReturnResultV7 is used by SendMolr() API |
|
11027 This class lists all the Molr return results that can be expected for the Molr request |
|
11028 being made. |
|
11029 @see TLcsLocationEstimate |
|
11030 @see TLcsVelocityEstimate |
|
11031 @see TMolrErrors |
|
11032 @internalAll |
|
11033 */ |
|
11034 class TMolrReturnResultV7: public RMobilePhone::TMultimodeType |
|
11035 { |
|
11036 public: |
|
11037 IMPORT_C TMolrReturnResultV7(); |
|
11038 public: |
|
11039 /** |
|
11040 This gives the Location Estimate of the UE |
|
11041 */ |
|
11042 TLcsLocationEstimate iLocationEstimate; |
|
11043 /** |
|
11044 This gives the Velocity Estimate of the UE |
|
11045 */ |
|
11046 TLcsVelocityEstimate iVelocityEstimate; |
|
11047 /** |
|
11048 This gives the indication of the type of error occured |
|
11049 */ |
|
11050 TMolrErrors iMolrErrors; |
|
11051 }; |
|
11052 |
|
11053 /** |
|
11054 A typedef'd packaged TMolrReturnResultV7 for passing through a |
|
11055 generic API method. |
|
11056 |
|
11057 @internalAll |
|
11058 */ |
|
11059 typedef TPckg<TMolrReturnResultV7> TMolrReturnResultV7Pckg; |
|
11060 |
|
11061 //**************************************// |
|
11062 // Measurement Control Data structures // |
|
11063 //**************************************// |
|
11064 |
|
11065 enum |
|
11066 { |
|
11067 /**Maximum number of monitored cells RACH*/ |
|
11068 KMaxMonitoredCells = 8, |
|
11069 /**Maximum number of satellites*/ |
|
11070 KMaxSat = 16, |
|
11071 /**GlobalHealth size. 364 bits =46 bytes (Rounded) */ |
|
11072 KGlobalHealthSize = 46 |
|
11073 }; |
|
11074 |
|
11075 /**This enum contains the possible types of measurement commands.*/ |
|
11076 enum TMeasurementCmd |
|
11077 { |
|
11078 /**Measurement Command Unknown*/ |
|
11079 EMeasCommandUnknown, |
|
11080 /**Setup a new measurement*/ |
|
11081 ESetup, |
|
11082 /**Modify a previously defined measurement, e.g. to change the reporting criteria*/ |
|
11083 EModify, |
|
11084 /**Indicates to stop a measurement and clear all information in the UE that are related to that measurement */ |
|
11085 ERelease, |
|
11086 }; |
|
11087 |
|
11088 /**This enum contains the possible positioning method types*/ |
|
11089 enum TUePosMethodType |
|
11090 { |
|
11091 /**Positioning Method Type unknown*/ |
|
11092 EPosMethodTypeUnknown, |
|
11093 /**UE Assisted : The network computes the location of the UE.*/ |
|
11094 EUeAssisted, |
|
11095 /**UE Based : The UE computes the location of itself*/ |
|
11096 EUeBased, |
|
11097 }; |
|
11098 |
|
11099 /**This enum contains the possible positioning methods*/ |
|
11100 enum TPosMethod |
|
11101 { |
|
11102 /**Positioning Method unknown*/ |
|
11103 EPosMethodUnknown, |
|
11104 /**OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN */ |
|
11105 EOtdoa, |
|
11106 /**These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals*/ |
|
11107 EGps, |
|
11108 /**Use either OTDOA or GPS positioning method.*/ |
|
11109 EOtdoaOrGps, |
|
11110 /** |
|
11111 In the cell ID based (i.e. cell coverage) method, the position of an UE is |
|
11112 estimated with the knowledge of its serving Node B. The information about the serving |
|
11113 Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update. |
|
11114 */ |
|
11115 ECellID |
|
11116 }; |
|
11117 |
|
11118 /** |
|
11119 This class contains the information which is part of the Navigation Model. |
|
11120 This can be requested by the UE as part of additional request. |
|
11121 */ |
|
11122 class TSatDataV1 |
|
11123 { |
|
11124 public: |
|
11125 /**Satellite identity*/ |
|
11126 TUint8 iSatID; |
|
11127 /**Issue of Data Ephemeris for SatID*/ |
|
11128 TUint8 iIode; |
|
11129 }; |
|
11130 |
|
11131 /** |
|
11132 This class contains the additional information that can be requested by the UE. |
|
11133 */ |
|
11134 class TNavModelAddlDataReqV1 |
|
11135 { |
|
11136 public: |
|
11137 /**GPS time in weeks*/ |
|
11138 TUint16 iGpsWeek; |
|
11139 /**GPS time of ephemeris in hours of the latest ephemeris set contained by the UE.*/ |
|
11140 TUint8 iGpsToe; |
|
11141 /**Ephemeris age tolerance of the UE to UTRAN in hours.*/ |
|
11142 TUint8 iTToeLimit; |
|
11143 /**Satellite Identities |
|
11144 @see TSatDataV1*/ |
|
11145 TSatDataV1 iSatData[KMaxSat]; |
|
11146 }; |
|
11147 |
|
11148 /**This class contains the indicators to request for additional assistance data from the network.*/ |
|
11149 class TGpsAddlAssistDataReqV1 |
|
11150 { |
|
11151 public: |
|
11152 /**ETrue indicates Almanac Data is requested |
|
11153 @see TAlmanacV1*/ |
|
11154 TBool iAlmanacRequest; |
|
11155 /**ETrue indicates UTC model Data is requested |
|
11156 @see TUtcModelV1*/ |
|
11157 TBool iUtcModelRequest; |
|
11158 /**ETrue indicates Ionospheric Model Data is requested |
|
11159 @see TUtcModelV1*/ |
|
11160 TBool iIonosphericModelRequest; |
|
11161 /**ETrue indicates Navigation model Data is requested |
|
11162 @see TIonosphericModelV1*/ |
|
11163 TBool iNavigationModelRequest; |
|
11164 /**ETrue indicates DGPS corrections Data is requested |
|
11165 @see TNavigationModelSatInfoV1*/ |
|
11166 TBool iDgpsCorrectionsRequest; |
|
11167 /**ETrue indicates Reference location Data is requested |
|
11168 @see TDgpsCorrectionsV1*/ |
|
11169 TBool iReferenceLocationRequest; |
|
11170 /**ETrue indicates Reference time Data is requested |
|
11171 @see TReferenceLocationV1*/ |
|
11172 TBool iReferenceTimeRequest; |
|
11173 /**ETrue indicates Acquisition assistance Data is requested |
|
11174 @see TReferenceTimeV1*/ |
|
11175 TBool iAcquisitionAssistanceReq; |
|
11176 /**ETrue indicates Realtime integrity Data is requested |
|
11177 @see TAcquisitionAssistanceV1*/ |
|
11178 TBool iRealTimeIntegrityRequest; |
|
11179 /**This member is included only if Navigagion Model Data is requested (iNavigationModelRequest is ETrue). |
|
11180 @see TNavModelAddlDataReqV1*/ |
|
11181 TNavModelAddlDataReqV1 iNavModelAddlDataReq; |
|
11182 }; |
|
11183 |
|
11184 /**This class contains the UE positioning reporting quantity*/ |
|
11185 class TUePosReportingQuantityV1 |
|
11186 { |
|
11187 public: |
|
11188 /**Holds the positioning method type*/ |
|
11189 TUePosMethodType iUePosMethodType; |
|
11190 /**Holds the positioning method*/ |
|
11191 TPosMethod iPosMethod; |
|
11192 /**Holds the horizontal accuracy*/ |
|
11193 TInt8 iHorzAccuracy; |
|
11194 /**Holds the vertical accuracy*/ |
|
11195 TInt8 iVertAccuracy; |
|
11196 /**If true the SRNC wants the UE to report the SFN-GPS timing of the reference cell.*/ |
|
11197 TBool iGpsTimingOfCellWanted; |
|
11198 /**ETrue indicates that the UE is requested to send the IE "Additional assistance Data Request" |
|
11199 when the IE "UE positioning Error" is present in the UE positioning measured results. |
|
11200 EFalse indicates that the UE shall use the assistance data available. |
|
11201 */ |
|
11202 TBool iAddlAssistanceDataReq; |
|
11203 }; |
|
11204 |
|
11205 /**This enum contains the states in which measurements are valid*/ |
|
11206 enum TMeasurementValidity |
|
11207 { |
|
11208 /**Measurement Validity Unknown*/ |
|
11209 EMeasValidityUnknown, |
|
11210 /**Indicates measurement is valid in CellDCH state*/ |
|
11211 ECellDCH, |
|
11212 /**Indicates measurement is valid except in CellDCH state*/ |
|
11213 EAllButCellDCH, |
|
11214 /**Indicates measurement is valid in all state*/ |
|
11215 EAllStates |
|
11216 }; |
|
11217 |
|
11218 /**This enum list the SfnTow uncertainity*/ |
|
11219 enum TSfnTowUncertainity |
|
11220 { |
|
11221 /**Sfn Tow Uncertainity unknown*/ |
|
11222 ESfnTowUncertainityUnknown, |
|
11223 /**SfnTowUncertainity < 10*/ |
|
11224 ELessThan10, |
|
11225 /**SfnTowUncertainity > 10*/ |
|
11226 EMoreThan10 |
|
11227 }; |
|
11228 |
|
11229 /**This enum lists the different GPS drift rates*/ |
|
11230 enum TUtranGpsDriftRate |
|
11231 { |
|
11232 /**GPS Drift rate unknown*/ |
|
11233 EDriftRateUnknown, |
|
11234 /**Drift = 0*/ |
|
11235 EUtranGpsDrift0, |
|
11236 /**Drift = 1*/ |
|
11237 EUtranGpsDrift1, |
|
11238 /**Drift = 2*/ |
|
11239 EUtranGpsDrift2, |
|
11240 /**Drift = 5*/ |
|
11241 EUtranGpsDrift5, |
|
11242 /**Drift = 10*/ |
|
11243 EUtranGpsDrift10, |
|
11244 /**Drift = 15*/ |
|
11245 EUtranGpsDrift15, |
|
11246 /**Drift = 25*/ |
|
11247 EUtranGpsDrift25, |
|
11248 /**Drift = 50*/ |
|
11249 EUtranGpsDrift50, |
|
11250 /**Drift = -1*/ |
|
11251 EUtranGpsDriftMinus1, |
|
11252 /**Drift = -2*/ |
|
11253 EUtranGpsDriftMinus2, |
|
11254 /**Drift = -5*/ |
|
11255 EUtranGpsDriftMinus5, |
|
11256 /**Drift = -10*/ |
|
11257 EUtranGpsDriftMinus10, |
|
11258 /**Drift = -15*/ |
|
11259 EUtranGpsDriftMinus15, |
|
11260 /**Drift = -25*/ |
|
11261 EUtranGpsDriftMinus25, |
|
11262 /**Drift = -50*/ |
|
11263 EUtranGpsDriftMinus50, |
|
11264 }; |
|
11265 |
|
11266 /**This enum lists the different Udre values*/ |
|
11267 enum TDiffCorrectionsStatus |
|
11268 { |
|
11269 /**Diff Corrections Status unknown*/ |
|
11270 ECorrectionStatusUnknown, |
|
11271 /**UDRE 1.0 */ |
|
11272 EUdre1Point0, |
|
11273 /**UDRE 0.75 */ |
|
11274 EUdre0Point75, |
|
11275 /**UDRE 0.5 */ |
|
11276 EUdre0Point5, |
|
11277 /**UDRE 0.3 */ |
|
11278 EUdre0Point3, |
|
11279 /**UDRE 0.2 */ |
|
11280 EUdre0Point2, |
|
11281 /**UDRE 0.1 */ |
|
11282 EUdre0Point1, |
|
11283 /**UDRE No Data */ |
|
11284 ENoData, |
|
11285 /**UDRE Invalid Data */ |
|
11286 EInvalidData |
|
11287 }; |
|
11288 |
|
11289 /**This class reserves members for future use*/ |
|
11290 class TSubFrame1ReservedV1 |
|
11291 { |
|
11292 public: |
|
11293 /**Reserve member 1*/ |
|
11294 TUint iReserved1; |
|
11295 /**Reserve member 2*/ |
|
11296 TUint iReserved2; |
|
11297 /**Reserve member 3*/ |
|
11298 TUint iReserved3; |
|
11299 /**Reserve member 4*/ |
|
11300 TUint iReserved4; |
|
11301 }; |
|
11302 |
|
11303 /**This class contains information for GPS ephemeris and clock correction.*/ |
|
11304 class TEphemerisParameterV1 |
|
11305 { |
|
11306 public: |
|
11307 /**Code(s) on L2 Channel */ |
|
11308 TUint8 iCodeOnL2; |
|
11309 /**User Range Accuracy */ |
|
11310 TUint8 iUraIndex; |
|
11311 /**Health of Satellite*/ |
|
11312 TUint8 iSatHealth; |
|
11313 /**Issue of Data, Clock */ |
|
11314 TUint16 iIodc; |
|
11315 /**L2 channel flag*/ |
|
11316 TUint8 iL2Flag; |
|
11317 TSubFrame1ReservedV1 iSubFrame1Reserved; |
|
11318 /**Estimated group delay differential */ |
|
11319 TUint8 iTGd; |
|
11320 /**Apparent clock correction*/ |
|
11321 TUint16 iTOc; |
|
11322 /**Apparent clock correction*/ |
|
11323 TUint8 iAf2; |
|
11324 /**Apparent clock correction*/ |
|
11325 TUint16 iAf1; |
|
11326 /**Apparent clock correction*/ |
|
11327 TUint iAf0; |
|
11328 /**Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (meters)*/ |
|
11329 TUint16 iCRs; |
|
11330 /**Mean Motion Difference From Computed Value (semi-circles/sec)*/ |
|
11331 TUint16 iDeltaN; |
|
11332 /**Mean Anomaly at Reference Time (semi-circles)*/ |
|
11333 TUint iM0; |
|
11334 /**Amplitude of the Cosine Harmonic Correction Term To The Argument Of Latitude (radians)*/ |
|
11335 TUint16 iCUc; |
|
11336 /**Eccentricity*/ |
|
11337 TUint iE; |
|
11338 /**Amplitude of the Sine Harmonic Correction Term To The Argument Of Latitude (radians)*/ |
|
11339 TUint16 iCUs; |
|
11340 /**Semi-Major Axis in squareroot(meters) */ |
|
11341 TUint iASqrt; |
|
11342 /**Reference Time Ephemeris */ |
|
11343 TUint16 iTOe; |
|
11344 /** |
|
11345 Fit interval flag |
|
11346 @see ICD-GPS-200 |
|
11347 */ |
|
11348 TUint8 iFitInterval; |
|
11349 /**Age Of Data Offset */ |
|
11350 TUint8 iAodo; |
|
11351 /**Amplitude of the Cosine Harmonic Correction Term To The Angle Of Inclination (radians)*/ |
|
11352 TUint16 iCIc; |
|
11353 /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */ |
|
11354 TUint iOmega0; |
|
11355 /**Amplitude of the Sine Harmonic Correction Term To The Angle Of Inclination (radians) */ |
|
11356 TUint16 iCIs; |
|
11357 /**Inclination Angle at Reference Time (semi-circles) */ |
|
11358 TUint i0; |
|
11359 /**Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (meters) */ |
|
11360 TUint16 iCRc; |
|
11361 /**Argument of Perigee (semi-circles) */ |
|
11362 TUint iOmega; |
|
11363 /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */ |
|
11364 TUint iOmegaDot; |
|
11365 /**Rate of Inclination Angle (semi-circles/sec) */ |
|
11366 TUint16 iDot; |
|
11367 }; |
|
11368 |
|
11369 /**This enum specifies the possible status of a satellite*/ |
|
11370 enum TSatelliteStatus |
|
11371 { |
|
11372 /**Satellite Status unknown*/ |
|
11373 ESatStatusUnknown, |
|
11374 /**New satellite, new Navigation Model*/ |
|
11375 ENsNnU, |
|
11376 /**Existing satellite, same Navigation Model*/ |
|
11377 EEsSn, |
|
11378 /**Existing satellite, new Navigation Model*/ |
|
11379 EEsNnU, |
|
11380 /**Reserved*/ |
|
11381 ERev2, |
|
11382 /**Reserved*/ |
|
11383 ERev |
|
11384 }; |
|
11385 |
|
11386 /**This class contains the navigation model satellite information*/ |
|
11387 class TNavigationModelSatInfoV1 |
|
11388 { |
|
11389 public: |
|
11390 /**Satellite identification*/ |
|
11391 TUint8 iSatID; |
|
11392 /**Status of the satellite*/ |
|
11393 TSatelliteStatus iSatelliteStatus; |
|
11394 /**Contains information for GPS ephemeris and clock correction.*/ |
|
11395 TEphemerisParameterV1 iEphemerisParameter; |
|
11396 }; |
|
11397 |
|
11398 /** |
|
11399 This class contains the ionospheric model information needed to model |
|
11400 the propagation delays of the GPS signals through the ionosphere |
|
11401 */ |
|
11402 class TIonosphericModelV1 |
|
11403 { |
|
11404 public: |
|
11405 /** |
|
11406 The parameters *n are the coefficients of a cubic equation |
|
11407 representing the amplitude of the vertical delay. |
|
11408 @see ICD-GPS-200 |
|
11409 */ |
|
11410 /**Alfa = 0*/ |
|
11411 TUint8 iAlfa0; |
|
11412 /**Alfa = 1*/ |
|
11413 TUint8 iAlfa1; |
|
11414 /**Alfa = 2*/ |
|
11415 TUint8 iAlfa2; |
|
11416 /**Alfa = 3*/ |
|
11417 TUint8 iAlfa3; |
|
11418 /** |
|
11419 The parameters *n are the coefficients of a cubic equation |
|
11420 representing the period of the ionospheric model |
|
11421 @see ICD-GPS-200 |
|
11422 */ |
|
11423 /**Beta = 0*/ |
|
11424 TUint8 iBeta0; |
|
11425 /**Beta = 1*/ |
|
11426 TUint8 iBeta1; |
|
11427 /**Beta = 2*/ |
|
11428 TUint8 iBeta2; |
|
11429 /**Beta = 3*/ |
|
11430 TUint8 iBeta3; |
|
11431 }; |
|
11432 |
|
11433 /** |
|
11434 This class contains the UTC model information needed to relate GPS time to Universal Time Coordinate (UTC) |
|
11435 @see ICD-GPS-200 |
|
11436 */ |
|
11437 class TUtcModelV1 |
|
11438 { |
|
11439 public: |
|
11440 /** |
|
11441 Time in seconds. |
|
11442 @see ICD-GPS-200. |
|
11443 */ |
|
11444 TUint iA1; |
|
11445 /** |
|
11446 Time in seconds. |
|
11447 @see ICD-GPS-200. |
|
11448 */ |
|
11449 TUint iA2; |
|
11450 /**Time in seconds |
|
11451 @see ICD-GPS-200 |
|
11452 */ |
|
11453 TUint8 iTOt; |
|
11454 /**weeks |
|
11455 @see ICD-GPS-200 |
|
11456 */ |
|
11457 TUint8 iWnT; |
|
11458 /**Time in seconds |
|
11459 @see ICD-GPS-200 |
|
11460 */ |
|
11461 TUint8 iDeltaTLs; |
|
11462 /**Weeks |
|
11463 @see ICD-GPS-200 |
|
11464 */ |
|
11465 TUint8 iWnLsf; |
|
11466 /**Days |
|
11467 @see ICD-GPS-200 |
|
11468 */ |
|
11469 TUint8 iDn; |
|
11470 /**Seconds |
|
11471 @see ICD-GPS-200 |
|
11472 */ |
|
11473 TUint8 iDeltaTLsf; |
|
11474 }; |
|
11475 |
|
11476 /**This class contains a reduced-precision subset of the ephemeris and clock correction parameters.*/ |
|
11477 class TAlmanacSatInfoV1 |
|
11478 { |
|
11479 public: |
|
11480 /**Data identification*/ |
|
11481 TUint8 iDataID; |
|
11482 /**Eccentricity*/ |
|
11483 TUint16 iE; |
|
11484 /**Reference Time of Almanac */ |
|
11485 TUint8 iTOa; |
|
11486 /**@see ICD-GPS-200*/ |
|
11487 TUint16 iDeltaI; |
|
11488 /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */ |
|
11489 TUint16 iOmegaDot; |
|
11490 /**Satellite health*/ |
|
11491 TUint8 iSatHealth; |
|
11492 /**Semi-Major Axis in squareroot(meters)*/ |
|
11493 TUint iASqrt; |
|
11494 /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */ |
|
11495 TUint iOmega0; |
|
11496 /**Mean Anomaly at Reference Time (semi-circles) */ |
|
11497 TUint iM0; |
|
11498 /**Argument of Perigee (semi-circles) */ |
|
11499 TUint iOmega; |
|
11500 /**Apparent clock correction */ |
|
11501 TUint16 iAf0; |
|
11502 /**Apparent clock correction */ |
|
11503 TUint16 iAf1; |
|
11504 }; |
|
11505 |
|
11506 /**This class holds the coarse, long-term model of the satellite positions and clocks.*/ |
|
11507 class TAlmanacV1 |
|
11508 { |
|
11509 public: |
|
11510 /**Almanac Reference Week */ |
|
11511 TUint8 iWnA; |
|
11512 TAlmanacSatInfoV1 iAlmanacSatInfoList[KMaxSat]; |
|
11513 /**This enables GPS time recovery and possibly extended GPS correlation intervals.*/ |
|
11514 TUint16 iSvGlobalHealth[KGlobalHealthSize]; |
|
11515 }; |
|
11516 |
|
11517 /**This union contains the information specific to mode - FDD/TDD*/ |
|
11518 union TModeSpecificInfoV1 |
|
11519 { |
|
11520 /**Used in FDD mode*/ |
|
11521 TUint16 iPrimaryScramblingCode; |
|
11522 /**Used in TDD mode*/ |
|
11523 TUint16 iCellParametersID; |
|
11524 }; |
|
11525 |
|
11526 /**This class contains parameters that enable fast acquisition of the GPS |
|
11527 signals in UE-assisted GPS positioning.*/ |
|
11528 class TAcquisitionAssistanceV1 |
|
11529 { |
|
11530 public: |
|
11531 /**Specifies GPS reference time*/ |
|
11532 TUint iGpsReferenceTime; |
|
11533 /**Specifies GPS reference time specific to mode - FDD/TDD*/ |
|
11534 TModeSpecificInfoV1 iUtranGpsReferenceTime; |
|
11535 /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. |
|
11536 EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/ |
|
11537 TBool iUtranGpsRefTimeStatus; |
|
11538 }; |
|
11539 |
|
11540 /** |
|
11541 The UDRE provides an estimate of the uncertainty (1-*) in the corrections for |
|
11542 the particular satellite. The value in this field shall be multiplied by the |
|
11543 UDRE Scale Factor in the common Corrections Status/Health field to determine the |
|
11544 final UDRE estimate for the particular satellite. |
|
11545 @see 3GPP TS 25.305 |
|
11546 */ |
|
11547 enum TUdre |
|
11548 { |
|
11549 /**Udre unknown*/ |
|
11550 EUdreUnknown, |
|
11551 /** UDRE < 1*/ |
|
11552 ELessThan1, |
|
11553 /** 1> UDRE < 4*/ |
|
11554 EBtw1And4, |
|
11555 /** 1> UDRE < 8*/ |
|
11556 EBtw1And8, |
|
11557 /** UDRE > 8*/ |
|
11558 EOver8 |
|
11559 }; |
|
11560 |
|
11561 /**This class contains DGPS corrections to be used by the UE*/ |
|
11562 class TDgpsCorrectionSatInfoV1 |
|
11563 { |
|
11564 public: |
|
11565 /**Satellite identification*/ |
|
11566 TUint8 iSatID; |
|
11567 /**Issue of Data Ephemeris for SatID.*/ |
|
11568 TUint8 iIode; |
|
11569 /** |
|
11570 The UDRE provides an estimate of the uncertainty (1-*) in the corrections for |
|
11571 the particular satellite. The value in this field shall be multiplied by the |
|
11572 UDRE Scale Factor in the common Corrections Status/Health field to determine the |
|
11573 final UDRE estimate for the particular satellite. |
|
11574 @see 3GPP TS 25.305 |
|
11575 */ |
|
11576 TUdre iUdre; |
|
11577 /**The PRC indicates the correction to the pseudorange for the particular satellite at the GPS Reference Time*/ |
|
11578 TInt16 iPrc; |
|
11579 /** |
|
11580 This information indicates the rate-of-change of the pseudorange correction for the particular satellite, |
|
11581 using the satellite ephemeris identified by the IODE IE |
|
11582 */ |
|
11583 TInt8 iRrc; |
|
11584 /**For future use*/ |
|
11585 TInt8 iDummy1; |
|
11586 /**For future use*/ |
|
11587 TInt8 iDummy2; |
|
11588 }; |
|
11589 |
|
11590 /**This class contains the DGPS corrections information*/ |
|
11591 class TDgpsCorrectionsV1 |
|
11592 { |
|
11593 public: |
|
11594 /**GPS time of week*/ |
|
11595 TUint16 iGpsTow; |
|
11596 /**This information indicates the status of the differential corrections contained in the message.*/ |
|
11597 TDiffCorrectionsStatus iStatusHealth; |
|
11598 /**This member data contains DGPS corrections of the satellites to be used by the UE*/ |
|
11599 TDgpsCorrectionSatInfoV1 iDgpsCorrectionSatInfoList[KMaxSat]; |
|
11600 }; |
|
11601 |
|
11602 /**This enum containst the possible signs of latitude*/ |
|
11603 enum TLatitudeSign |
|
11604 { |
|
11605 /**Latitude Sign Unknown*/ |
|
11606 ELatitudeSignUnknown, |
|
11607 /**Latitude sign is north*/ |
|
11608 ENorth, |
|
11609 /**Latitude sign is south*/ |
|
11610 ESouth |
|
11611 }; |
|
11612 |
|
11613 /**This enum contains the possible directions of altitudes for reference location*/ |
|
11614 enum TAltDirection |
|
11615 { |
|
11616 /**Altitude Direction Unknown*/ |
|
11617 EAltDirectionUnknown, |
|
11618 /**Indicates Altitude direction is height-wise*/ |
|
11619 EHeight, |
|
11620 /**Indicates Altitude direction is depth-wise*/ |
|
11621 EDepth |
|
11622 }; |
|
11623 |
|
11624 /**This class contains a 3-D location (with uncertainty)*/ |
|
11625 class TReferenceLocationV1 |
|
11626 { |
|
11627 public: |
|
11628 /**Specifies the sign - North/South*/ |
|
11629 TLatitudeSign iLatitudeSign; |
|
11630 /**Degree of latitude*/ |
|
11631 TUint16 iLatitude; |
|
11632 /**Degree of longitude*/ |
|
11633 TInt16 iLongitude; |
|
11634 /**Direction of altitude*/ |
|
11635 TAltDirection iAltDirection; |
|
11636 /**Degree of altitude*/ |
|
11637 TUint16 iAltitude; |
|
11638 /**Uncertainty semi major axis*/ |
|
11639 TUint8 iUncertainitySemiMajor; |
|
11640 /**Uncertainty semi minor axis*/ |
|
11641 TUint8 iUncertainitySemiMinor; |
|
11642 /**Orientation of major axis*/ |
|
11643 TUint8 iOrientationMajorAxis; |
|
11644 /**The uncertainty in altitude, h, expressed in metres*/ |
|
11645 TUint8 iUncertainityAltitude; |
|
11646 /**The confidence by which the position of a target entity is known to be within the shape description*/ |
|
11647 TUint8 iConfidence; |
|
11648 }; |
|
11649 |
|
11650 /** |
|
11651 Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) |
|
11652 that are currently being broadcast by the respective GPS satellites. Combining this information |
|
11653 with GPS TOW helps the UE with time-recovery needed to predict satellite signal. |
|
11654 */ |
|
11655 class TGpsTowAssistV1 |
|
11656 { |
|
11657 public: |
|
11658 /**Satellite identification*/ |
|
11659 TUint8 iSatID; |
|
11660 /** |
|
11661 Contains a 14-bit value representing the Telemetry Message (TLM) |
|
11662 being broadcast by the GPS satellite identified by the particular SatID, |
|
11663 with the MSB occurring first in the satellite transmission. |
|
11664 */ |
|
11665 TUint16 iTlmMsg; |
|
11666 /** |
|
11667 Contains the two reserved bits in the TLM Word |
|
11668 being broadcast by the GPS satellite identified by SatID, |
|
11669 with the MSB occurring first in the satellite transmission. |
|
11670 */ |
|
11671 TUint8 iTlmReserved; |
|
11672 /**Contain the Alert flags that are being broadcast by the GPS satellite identified by SatID.*/ |
|
11673 TBool iAlert; |
|
11674 /**Contain the Anti-Spoof that are being broadcast by the GPS satellite identified by SatID.*/ |
|
11675 TBool iAntiSpoof; |
|
11676 }; |
|
11677 |
|
11678 /**This class contains information that may be used to provide a mapping between UTRAN and GPS time*/ |
|
11679 class TUtranGpsRefTimeV1 |
|
11680 { |
|
11681 public: |
|
11682 /**UE-GPS timing of cell ms-part*/ |
|
11683 TUint16 iMsPart; |
|
11684 /**UE-GPS timing of cell ls-part*/ |
|
11685 TUint16 iLsPart; |
|
11686 /**System frame number*/ |
|
11687 TUint16 iSfn; |
|
11688 /**Specifies GPS reference time specific to mode - FDD/TDD*/ |
|
11689 TModeSpecificInfoV1 iModeSpecificInfo; |
|
11690 /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. |
|
11691 EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/ |
|
11692 TBool iModeSpecificInfoStatus; |
|
11693 }; |
|
11694 |
|
11695 /** |
|
11696 This class contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) |
|
11697 that are currently being broadcast by the respective GPS satellites. Combining this information |
|
11698 with GPS TOW helps the UE with time-recovery needed to predict satellite signal. |
|
11699 */ |
|
11700 class TReferenceTimeV1 |
|
11701 { |
|
11702 public: |
|
11703 /**GPS time in weeks*/ |
|
11704 TUint16 iGpsWeek; |
|
11705 /**GPS Time of Week in milliseconds */ |
|
11706 TUint16 iGpsTowOneMsec; |
|
11707 /**GPS reference time may be used to provide a mapping between UTRAN and GPS time*/ |
|
11708 TUtranGpsRefTimeV1 iUtranGpsRefTime; |
|
11709 /** |
|
11710 This field indicates the uncertainty of the relation GPS TOW/SFN. |
|
11711 ELessThan10 means the relation is accurate to at least 10 ms. |
|
11712 */ |
|
11713 TSfnTowUncertainity iSfnTowUncertainity; |
|
11714 /**Drift rate of the NODE B clock relative to GPS time.*/ |
|
11715 TUtranGpsDriftRate iUtranGpsDriftRate; |
|
11716 /** |
|
11717 Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) |
|
11718 that are currently being broadcast by the respective GPS satellites. Combining this information |
|
11719 with GPS TOW helps the UE with time-recovery needed to predict satellite signal. |
|
11720 */ |
|
11721 TGpsTowAssistV1 iGpsTowAssistList[KMaxSat]; |
|
11722 }; |
|
11723 |
|
11724 /**This class contains the GPS Assistance Data received from network*/ |
|
11725 class TUePosGpsAssistanceDataV1 |
|
11726 { |
|
11727 public: |
|
11728 /**GPS reference time may be used to provide a mapping between UTRAN and GPS time.*/ |
|
11729 TReferenceTimeV1 iReferencTime; |
|
11730 /**The Reference Location contains a 3-D location (with uncertainty)*/ |
|
11731 TReferenceLocationV1 iReferenceLocation; |
|
11732 /** |
|
11733 Holds information to allow a UE to estimate its position more accurate, |
|
11734 biases in the pseudorange measurements may be provided to the UE. |
|
11735 */ |
|
11736 TDgpsCorrectionsV1 iDgpsCorrections; |
|
11737 /**Holds navigation model satellite information*/ |
|
11738 TNavigationModelSatInfoV1 iNavigationModel; |
|
11739 /** |
|
11740 The Ionospheric Model contains information needed to model |
|
11741 the propagation delays of the GPS signals through the ionosphere. |
|
11742 */ |
|
11743 TIonosphericModelV1 iIonosphericModel; |
|
11744 /**UTC parameters may be used to provide Coordinated Universal Time to the UE.*/ |
|
11745 TUtcModelV1 iUtcModel; |
|
11746 /**Holds the coarse, long-term model of the satellite positions and clocks.*/ |
|
11747 TAlmanacV1 iAlmanac; |
|
11748 /**Holds the acquistions assistance information of the UE*/ |
|
11749 TAcquisitionAssistanceV1 iAcquisitionAssistance; |
|
11750 /**Holds the list of bad satellites*/ |
|
11751 TUint8 iBadSatList[KMaxSat]; |
|
11752 /** |
|
11753 This member specifies which of the above additional data structures are populated. |
|
11754 */ |
|
11755 TGpsAddlAssistDataReqV1 iGpsAddlDataStatus; |
|
11756 }; |
|
11757 |
|
11758 /**This class contains the GPS assistance data required to compute the UE Postioning information*/ |
|
11759 class TUePosMeasurementV1 |
|
11760 { |
|
11761 public: |
|
11762 /** |
|
11763 The purpose of the element is to express the allowed/required location method(s), |
|
11764 and to provide information desired QoS. |
|
11765 */ |
|
11766 TUePosReportingQuantityV1 iUePosReportingQuantity; |
|
11767 /**This member data defines in which UE states the measurement is valid.*/ |
|
11768 TMeasurementValidity iMeasurementValidity; |
|
11769 /**This member data holds the GPS Assistance Data sent by the network*/ |
|
11770 TUePosGpsAssistanceDataV1 iUePosGpsAssistanceData; |
|
11771 }; |
|
11772 |
|
11773 /**This holds the possible types of measurement commands that can be specified*/ |
|
11774 union TMeasurementCommandV1 |
|
11775 { |
|
11776 /**Setup a new measurement*/ |
|
11777 TUePosMeasurementV1 iSetup; |
|
11778 /**Modify a previously defined measurement*/ |
|
11779 TUePosMeasurementV1 iModify; |
|
11780 /**Stop the measurement and clear all information in the UE that are related to that measurement.*/ |
|
11781 TBool iRelease; |
|
11782 }; |
|
11783 |
|
11784 /**This enum specifies the mode the UE shall use to transmit the measurement report*/ |
|
11785 enum TMeasReportTransferMode |
|
11786 { |
|
11787 /**Transfer mode unknown*/ |
|
11788 ETransferModeUnknown, |
|
11789 /**The UE shall transmit the measurement report using Acknowledged RLC mode*/ |
|
11790 EAckModeRlc, |
|
11791 /**The UE shall transmit the measurement report using Unacknowledged RLC mode*/ |
|
11792 EUnAckModeRlc |
|
11793 }; |
|
11794 |
|
11795 /** |
|
11796 This class contains the GPS assistance data needed by the UE to compute the location |
|
11797 of the UE. The UE computes the location once it receives all required information. |
|
11798 */ |
|
11799 class TMeasurementControlV7 : public RMobilePhone::TMultimodeType |
|
11800 { |
|
11801 public: |
|
11802 IMPORT_C TMeasurementControlV7(); |
|
11803 public: |
|
11804 /** |
|
11805 A reference number that should be used by the UTRAN when setting up, |
|
11806 modifying or releasing the measurement and by the UE in the measurement report. |
|
11807 */ |
|
11808 TUint8 iMeasurementIdentity; |
|
11809 /**Specifies the Measurement Setup / Modify / Release*/ |
|
11810 TMeasurementCommandV1 iMeasurementCommand; |
|
11811 /**This specifies whether the UE shall transmit the measurement report using AM or UM RLC.*/ |
|
11812 TMeasReportTransferMode iMeasReportTransferMode; |
|
11813 /**ETrue indicates velocity estimate is requested. EFalse indicates velocity estimate is not requested*/ |
|
11814 TBool iVelocityRequested; |
|
11815 /**Holds the type of measurement command being used*/ |
|
11816 TMeasurementCmd iMeasurementCmdStatus; |
|
11817 }; |
|
11818 /** |
|
11819 A typedef'd packaged TMeasurementControlV7 for passing through a |
|
11820 generic API method. |
|
11821 |
|
11822 @internalAll |
|
11823 */ |
|
11824 typedef TPckg<TMeasurementControlV7> TMeasurementControlV7Pckg; |
|
11825 |
|
11826 //**************************************// |
|
11827 // Measurement Report Data structures // |
|
11828 //**************************************// |
|
11829 |
|
11830 |
|
11831 /** |
|
11832 This enum contains the indicators thta specify which |
|
11833 union members of TMeasurementQuantityV1 are included |
|
11834 */ |
|
11835 enum TMeasQnty |
|
11836 { |
|
11837 /**Measurement Quantity unknown*/ |
|
11838 EMeasQntyUnknown, |
|
11839 /**Indicates that CpichEcN0 is present*/ |
|
11840 EMeasQntyCpichEcN0Present, |
|
11841 /**Indicates that CpichRscp is present*/ |
|
11842 EMeasQntyCpichRscpPresent, |
|
11843 /**Indicates that path loss is present*/ |
|
11844 EMeasQntyPathLossPresent, |
|
11845 }; |
|
11846 |
|
11847 /** |
|
11848 This enum contains the indicators that specify which |
|
11849 union members of TPosEstimateRefTime and TPositionEstimateV1 are included |
|
11850 */ |
|
11851 enum TPosEstimateInfo |
|
11852 { |
|
11853 /**Position Estimate Info Unknown*/ |
|
11854 EPosEstimateInfoUnknown, |
|
11855 /** |
|
11856 NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime |
|
11857 Indicates that UE positioning estimate reference time is populated |
|
11858 */ |
|
11859 EUtranGpsRefTimeResultPresent, |
|
11860 /**Indicates that GPS reference time is populated*/ |
|
11861 EGpsRefTimeOnlyPresent, |
|
11862 /**Indicates that cell timing is populated*/ |
|
11863 ECellTimingPresent, |
|
11864 /** |
|
11865 NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1. |
|
11866 Indicates EllipsoidPoint is populated |
|
11867 */ |
|
11868 EEllipsoidPointPresent, |
|
11869 /**Indicates EllipsoidPoint with uncertainty circle is populated*/ |
|
11870 EEllipsoidPointUncertCirclePresent, |
|
11871 /**Indicates EllipsoidPoint with uncertainty ellipse is populated*/ |
|
11872 EEllipsoidPointUncertEllipsePresent, |
|
11873 /**Indicates EllipsoidPoint with altitude is populated*/ |
|
11874 EEllipsoidPointAltitudePresent, |
|
11875 /**Indicates EllipsoidPoint with altitude and ellipse is populated*/ |
|
11876 EEllipsoidPointAltEllipsePresent, |
|
11877 }; |
|
11878 |
|
11879 /**This enum contains the possible types of velocity estimates*/ |
|
11880 enum TVelEstimate |
|
11881 { |
|
11882 /**Velocity Estimate Unknown*/ |
|
11883 EVelEstimateUnknown, |
|
11884 /**Velocity Estimate is not present*/ |
|
11885 EVelEstimateNotPresent, |
|
11886 /**Horizontal velocity is included*/ |
|
11887 EHorzVelPresent, |
|
11888 /**Horizontal and vertical velocity is included*/ |
|
11889 EHorzWithVertVelPresent, |
|
11890 /**Horizontal velocity with uncertainty is included*/ |
|
11891 EHorzVelWithUncertPresent, |
|
11892 /**Horizontal and vertical velocity with uncertainty is included*/ |
|
11893 EHorzWithVertVelAndUncertPresent, |
|
11894 }; |
|
11895 |
|
11896 /**This contains the measurement quantities of the UE*/ |
|
11897 union TMeasurementQuantityV1 |
|
11898 { |
|
11899 public: |
|
11900 /** |
|
11901 @see 3GPP TS 25.133. |
|
11902 @see 3GPP TS 25.123. |
|
11903 */ |
|
11904 TUint8 iCpichEcN0; |
|
11905 /** |
|
11906 @see 3GPP TS 25.133. |
|
11907 @see 3GPP TS 25.123. |
|
11908 */ |
|
11909 TUint8 iCpichRscp; |
|
11910 /**Measurement path loss in dB.*/ |
|
11911 TUint8 iPathLoss; |
|
11912 /**Extra for future use*/ |
|
11913 TBool iSpare; |
|
11914 }; |
|
11915 |
|
11916 /**This class contains the current cell informations in TDD mode*/ |
|
11917 class TTddV1 |
|
11918 { |
|
11919 public: |
|
11920 /** |
|
11921 Time slot Interference on Signal Code Power |
|
11922 @see 3GPP TS 25.123 |
|
11923 */ |
|
11924 TUint8 iTimeSlotIscp; |
|
11925 /**Primary Common Control Physical CHannel received signal code power*/ |
|
11926 TUint8 iPrimaryCcpchRscp; |
|
11927 }; |
|
11928 |
|
11929 /**This class contains the information in FDD mode*/ |
|
11930 class TFddV1 |
|
11931 { |
|
11932 public: |
|
11933 /**Holds the measurement quantities of the UE*/ |
|
11934 TMeasurementQuantityV1 iMeasurementQuantity; |
|
11935 /**Holds the field that would be populated in iMeasurementQuantity*/ |
|
11936 TMeasQnty iMeasQntyStatus; |
|
11937 }; |
|
11938 |
|
11939 /**This contains the current cell information in specific modes - FDD/TDD*/ |
|
11940 union TCurrentCellV1 |
|
11941 { |
|
11942 /**Current cell information in FDD mode*/ |
|
11943 TFddV1 iFdd; |
|
11944 /**Current cell information in TDD mode*/ |
|
11945 TTddV1 iTdd; |
|
11946 }; |
|
11947 |
|
11948 /**This contains the type of sfn-sfn observed time difference*/ |
|
11949 union TSfnSfnObsTimeDifferenceV1 |
|
11950 { |
|
11951 /**Sfn-Sfn observed time difference -type1*/ |
|
11952 TUint16 iSfnSfnObsTimeDiff1; |
|
11953 /**Sfn-Sfn observed time difference -type2*/ |
|
11954 TUint16 iSfnSfnObsTimeDiff2; |
|
11955 }; |
|
11956 |
|
11957 /**This class contains the FDD mode information of monitored cells*/ |
|
11958 class TMonitoredCellFddV1 |
|
11959 { |
|
11960 public: |
|
11961 /**Primary Common Control Physical CHannel information*/ |
|
11962 TUint16 iPrimaryCpichInfo; |
|
11963 /**Holds the measurement quantities of the UE*/ |
|
11964 TMeasurementQuantityV1 iMeasurementQuantity; |
|
11965 /**Holds the field that would be populated in iMeasurementQuantity*/ |
|
11966 TMeasQnty iMeasQntyStatus; |
|
11967 }; |
|
11968 |
|
11969 /**This class contains the TDD mode information of monitored cells*/ |
|
11970 class TMonitoredCellTddV1 |
|
11971 { |
|
11972 public: |
|
11973 /**Cell identification*/ |
|
11974 TUint8 iCellParametersID; |
|
11975 /**Primary Common Control Physical CHannel received signal code power*/ |
|
11976 TUint8 iPrimaryCcpchRscp; |
|
11977 }; |
|
11978 |
|
11979 /**This contains the monitored cells information in specific mode - FDD/TDD*/ |
|
11980 union TMonitoredCellModeSpecificInfoV1 |
|
11981 { |
|
11982 /**Monitored Cell information in FDD mode*/ |
|
11983 TMonitoredCellFddV1 iMonitoredCellFdd; |
|
11984 /**Monitored Cell information in TDD mode*/ |
|
11985 TMonitoredCellTddV1 iMonitoredCellTdd; |
|
11986 }; |
|
11987 |
|
11988 /**This class contains the measured results for monitored cells on Random Access Channel*/ |
|
11989 class TMonitoredCellRachResultV1 |
|
11990 { |
|
11991 public: |
|
11992 /**Holds the sfn-sfn observed time difference*/ |
|
11993 TSfnSfnObsTimeDifferenceV1 iSfnSfnObsTimeDiff; |
|
11994 /**Holds the monitored cells specific info mode - FDD/TDD*/ |
|
11995 TMonitoredCellModeSpecificInfoV1 iMonitoredCellModeSpecificInfo; |
|
11996 /**ETrue indicates iMonitoredCellModeSpecificInfo is iMonitoredCellFdd. |
|
11997 EFalse indicates iMonitoredCellModeSpecificInfo is iMonitoredCellTdd*/ |
|
11998 TBool iSfnSfnObsTimeDiffStatus; |
|
11999 }; |
|
12000 /** |
|
12001 Horizontal velocity is characterised by the horizontal speed and bearing. |
|
12002 The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. |
|
12003 The bearing provides the direction of the horizontal component of velocity taken clockwise from North. |
|
12004 @see 3GPP TS 23.032 |
|
12005 */ |
|
12006 class THorzVelocityV1 |
|
12007 { |
|
12008 public: |
|
12009 /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ |
|
12010 TUint16 iBearing; |
|
12011 /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ |
|
12012 TUint16 iHorzSpeed; |
|
12013 }; |
|
12014 |
|
12015 /**This enum holds vertical speed direction*/ |
|
12016 enum TVertSpeedDirection |
|
12017 { |
|
12018 /**Speed direction unknown*/ |
|
12019 ESpeedDirectionUnknown, |
|
12020 /**Upward direction*/ |
|
12021 EUpward, |
|
12022 /**Downward direction*/ |
|
12023 EDownward |
|
12024 }; |
|
12025 |
|
12026 /** |
|
12027 Horizontal velocity is characterised by the horizontal speed and bearing. |
|
12028 The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. |
|
12029 The vertical speed and direction provides the component of velocity of a UE in a vertical direction. |
|
12030 The bearing provides the direction of the horizontal component of velocity taken clockwise from North. |
|
12031 @see 3GPP TS 23.032 |
|
12032 */ |
|
12033 class THorzWithVertVelocityV1 |
|
12034 { |
|
12035 public: |
|
12036 /**Direction of vertical speed*/ |
|
12037 TVertSpeedDirection iVertSpeedDirection; |
|
12038 /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ |
|
12039 TUint16 iBearing; |
|
12040 /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ |
|
12041 TUint16 iHorzSpeed; |
|
12042 /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/ |
|
12043 TUint8 iVertSpeed; |
|
12044 }; |
|
12045 |
|
12046 /** |
|
12047 Horizontal velocity with uncertainty is characterised by a horizontal speed and bearing, |
|
12048 giving a horizontal velocity vector V, and an uncertainty speed s. |
|
12049 @see 3GPP TS 23.032 |
|
12050 */ |
|
12051 class THorzVelocityWithUncertaintyV1 |
|
12052 { |
|
12053 public: |
|
12054 /** The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ |
|
12055 TUint16 iBearing; |
|
12056 /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ |
|
12057 TUint16 iHorzSpeed; |
|
12058 /** |
|
12059 Horizontal speed uncertainty. |
|
12060 */ |
|
12061 TUint8 iHorzSpeedUncertainty; |
|
12062 }; |
|
12063 |
|
12064 /** |
|
12065 Horizontal and vertical velocity with uncertainty is characterised by a horizontal speed and bearing, |
|
12066 giving a horizontal velocity vector Vx,y, a vertical speed and direction giving a vertical velocity component Vz, |
|
12067 and uncertainty speeds s1 and s2. |
|
12068 @see 3GPP TS 23.032 |
|
12069 */ |
|
12070 class THorzWithVertVelocityAndUncertaintyV1 |
|
12071 { |
|
12072 public: |
|
12073 /** |
|
12074 The direction of movement is given in degrees where '0' represents North, '90' represents East, etc. |
|
12075 */ |
|
12076 TUint16 iBearing; |
|
12077 /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ |
|
12078 TUint16 iHorzSpeed; |
|
12079 /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/ |
|
12080 TUint8 iVertSpeed; |
|
12081 /**Horizontal speed uncertainty.*/ |
|
12082 TUint8 iHorzSpeedUncertainty; |
|
12083 }; |
|
12084 |
|
12085 /** |
|
12086 This class contains the possible ways of velocity estimates |
|
12087 @see 3GPP TS 23.032 |
|
12088 */ |
|
12089 union TVelocityEstimateV1 |
|
12090 { |
|
12091 /**Horizontal velocity*/ |
|
12092 THorzVelocityV1 iHorzVelocity; |
|
12093 /**Horizontal velockity and vertical velocity*/ |
|
12094 THorzWithVertVelocityV1 iHorzWithVertVelocity; |
|
12095 /**Horizontal velocity with uncertainty*/ |
|
12096 THorzVelocityWithUncertaintyV1 iHorzVelocityWithUncertainty; |
|
12097 /**Horizontal and vertical velocity with uncertainty*/ |
|
12098 THorzWithVertVelocityAndUncertaintyV1 iHorzWithVertVelocityAndUncertainty; |
|
12099 }; |
|
12100 |
|
12101 /**This class contains the measured results on Random Access Channel*/ |
|
12102 class TMeasuredResultsOnRachV1 |
|
12103 { |
|
12104 public: |
|
12105 /**Current cell information*/ |
|
12106 TCurrentCellV1 iCurrentCell; |
|
12107 /**Monitored Cell information*/ |
|
12108 TMonitoredCellRachResultV1 iMonitoredCellsRachList[KMaxMonitoredCells]; |
|
12109 /**ETrue indicates iCurrentCell is iFdd. |
|
12110 EFalse indicates iCurrentCell is iTdd*/ |
|
12111 TBool iCurrentCellStatus; |
|
12112 }; |
|
12113 |
|
12114 /** |
|
12115 Identifies the channel in combination with the Midamble shift and slot number. |
|
12116 It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver. |
|
12117 */ |
|
12118 enum TBurstType |
|
12119 { |
|
12120 /**Burst type 1*/ |
|
12121 EType1, |
|
12122 /**Burst type 2*/ |
|
12123 EType2 |
|
12124 }; |
|
12125 |
|
12126 /**This class contains UE positioning estimates specific to TDD*/ |
|
12127 class TPosEstimateTddV1 |
|
12128 { |
|
12129 public: |
|
12130 /**Identifies the channel in combination with the Midamble shift and slot number.*/ |
|
12131 TBurstType iBurstType; |
|
12132 /**Midamble shift*/ |
|
12133 TUint8 iMidambleShift; |
|
12134 /** |
|
12135 This member data is present only if no IPDL scheme is configured in the reference cell. |
|
12136 Otherwise the slot is defined by the IPDL configuration. |
|
12137 */ |
|
12138 TUint8 iTimeSlotNumber; |
|
12139 /** |
|
12140 Cell identification |
|
12141 */ |
|
12142 TUint8 iCellParametersID; |
|
12143 }; |
|
12144 |
|
12145 /**This class contains UE positioning estimates specific to FDD/TDD*/ |
|
12146 union TPosEstimateModeSpecificInfoV1 |
|
12147 { |
|
12148 /**Identifies the reference cell for the GPS TOW-SFN relationship.*/ |
|
12149 TUint16 iPrimaryCpichInfo; |
|
12150 /**Holds the cell and channel identification*/ |
|
12151 TPosEstimateTddV1 iCellAndChannelID; |
|
12152 }; |
|
12153 |
|
12154 /**This class contains the cell timing information*/ |
|
12155 class TCellTimingV1 |
|
12156 { |
|
12157 public: |
|
12158 /** |
|
12159 SFN during which the position was calculated. |
|
12160 */ |
|
12161 TUint16 iSfn; |
|
12162 /**Holds the UE positioning estimates specific to mode - FDD or TDD*/ |
|
12163 TPosEstimateModeSpecificInfoV1 iPosEstimateModeSpecificInfo; |
|
12164 /**ETrue indicates iPosEstimateModeSpecificInfo is iPrimaryCpichInfo. |
|
12165 EFalse indicates iPosEstimateModeSpecificInfo is iCellAndChannelID.*/ |
|
12166 TBool iPosEstimateModeStatus; |
|
12167 }; |
|
12168 |
|
12169 /**This class captures the GPS measurement specific to FDD or TDD*/ |
|
12170 union TGpsMeasModeSpecificInfoV1 |
|
12171 { |
|
12172 /**Frequency Division Duplex identification*/ |
|
12173 TUint16 iFddRefID; |
|
12174 /**Time Division Duplex identification*/ |
|
12175 TUint8 iTddRefID; |
|
12176 }; |
|
12177 |
|
12178 /**This class contains results of the GPS reference time*/ |
|
12179 class TUtranGpsRefTimeResultV1 |
|
12180 { |
|
12181 public: |
|
12182 /**UE-GPS timing of cell ms-part*/ |
|
12183 TUint16 iMsPart; |
|
12184 /**UE-GPS timing of cell ls-part*/ |
|
12185 TUint16 iLsPart; |
|
12186 /**Holds the GPS measurement specific to FDD or TDD*/ |
|
12187 TGpsMeasModeSpecificInfoV1 iGpsMeasModeSpecificInfo; |
|
12188 /**Cell System Frame Number*/ |
|
12189 TUint16 iSfn; |
|
12190 /**ETrue indicates iGpsMeasModeSpecificInfo is iFddRefID. |
|
12191 EFalse indicates iGpsMeasModeSpecificInfo is iTddRefID*/ |
|
12192 TBool iGpsMeasModeStatus; |
|
12193 }; |
|
12194 |
|
12195 /**This union contains the UE positioning reference time*/ |
|
12196 union TPosReferenceTimeV1 |
|
12197 { |
|
12198 /**Contains the results of GPS reference time*/ |
|
12199 TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult; |
|
12200 /**Contains the GPS reference time*/ |
|
12201 TUint16 iGpsRefTimeOnly; |
|
12202 }; |
|
12203 |
|
12204 /** |
|
12205 This class contains the information of ellipsoid. |
|
12206 It consists of a latitude and a longitude. |
|
12207 @see 3GPP TS 23.032 |
|
12208 */ |
|
12209 class TEllipsoidPointV1 |
|
12210 { |
|
12211 public: |
|
12212 /**Specifies the sign - North/South*/ |
|
12213 TLatitudeSign iLatitudeSign; |
|
12214 /** |
|
12215 A north/south angular measurement of position relative to the equator, |
|
12216 in the meridian plane which contains the earth's rotation axis |
|
12217 */ |
|
12218 TUint16 iLatitude; |
|
12219 /** |
|
12220 An east/west angular measurement of position in relation to the Prime Meridian. |
|
12221 The angle between the two great circles, one being the Prime (or Greenwich) Meridian |
|
12222 and the other a meridian passing through the point of interest. |
|
12223 */ |
|
12224 TInt16 iLongitude; |
|
12225 }; |
|
12226 |
|
12227 /** |
|
12228 It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r |
|
12229 @see 3GPP TS 23.032 |
|
12230 */ |
|
12231 class TEllipsoidPointUncertCircleV1 |
|
12232 { |
|
12233 public: |
|
12234 /**Specifies the sign - North/South*/ |
|
12235 TLatitudeSign iLatitudeSign; |
|
12236 /** |
|
12237 A north/south angular measurement of position relative to the equator, |
|
12238 in the meridian plane which contains the earth's rotation axis |
|
12239 */ |
|
12240 TUint16 iLatitude; |
|
12241 /** |
|
12242 An east/west angular measurement of position in relation to the Prime Meridian. |
|
12243 The angle between the two great circles, one being the Prime (or Greenwich) Meridian |
|
12244 and the other a meridian passing through the point of interest. |
|
12245 */ |
|
12246 TInt16 iLongitude; |
|
12247 /**Uncertainty code*/ |
|
12248 TUint8 iUncertaintyCode; |
|
12249 }; |
|
12250 |
|
12251 /** |
|
12252 It is characterised by the co-ordinates of an ellipsoid point (the origin), |
|
12253 distances r1 and r2 and an angle of orientation A |
|
12254 @see 3GPP TS 23.032 |
|
12255 */ |
|
12256 class TEllipsoidPointUncertEllipseV1 |
|
12257 { |
|
12258 public: |
|
12259 /**Specifies the sign - North/South*/ |
|
12260 TLatitudeSign iLatitudeSign; |
|
12261 /** |
|
12262 A north/south angular measurement of position relative to the equator, |
|
12263 in the meridian plane which contains the earth's rotation axis |
|
12264 */ |
|
12265 TUint16 iLatitude; |
|
12266 /** |
|
12267 An east/west angular measurement of position in relation to the Prime Meridian. |
|
12268 The angle between the two great circles, one being the Prime (or Greenwich) Meridian |
|
12269 and the other a meridian passing through the point of interest. |
|
12270 */ |
|
12271 TInt16 iLongitude; |
|
12272 /**Uncertainty semi major axis*/ |
|
12273 TUint8 iUncertaintySemiMajor; |
|
12274 /**Uncertainty semi minor axis*/ |
|
12275 TUint8 iUncertaintySemiMinor; |
|
12276 /**Orientation of major axis*/ |
|
12277 TUint8 iOrientationMajorAxis; |
|
12278 /**The confidence by which the position of a target entity is known to be within the shape description*/ |
|
12279 TUint8 iConfidence; |
|
12280 }; |
|
12281 |
|
12282 /** |
|
12283 The description of an ellipsoid point with altitude is that of a point at a specified distance |
|
12284 above or below a point on the earth's surface. This is defined by an ellipsoid point |
|
12285 with the given longitude and latitude and the altitude above or below the ellipsoid point. |
|
12286 @see 3GPP TS 23.032 |
|
12287 */ |
|
12288 class TEllipsoidPointAltitudeV1 |
|
12289 { |
|
12290 public: |
|
12291 /**Specifies the sign - North/South*/ |
|
12292 TLatitudeSign iLatitudeSign; |
|
12293 /** |
|
12294 A north/south angular measurement of position relative to the equator, |
|
12295 in the meridian plane which contains the earth's rotation axis |
|
12296 */ |
|
12297 TUint16 iLatitude; |
|
12298 /** |
|
12299 An east/west angular measurement of position in relation to the Prime Meridian. |
|
12300 The angle between the two great circles, one being the Prime (or Greenwich) Meridian |
|
12301 and the other a meridian passing through the point of interest. |
|
12302 */ |
|
12303 TInt16 iLongitude; |
|
12304 /**Direction of altitude*/ |
|
12305 TAltDirection iAltDirection; |
|
12306 /**Degree of altitude*/ |
|
12307 TUint16 iAltitude; |
|
12308 }; |
|
12309 |
|
12310 /** |
|
12311 characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"), |
|
12312 r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A |
|
12313 (the "angle of the major axis") |
|
12314 @see 3GPP TS 23.032 |
|
12315 */ |
|
12316 class TEllipsoidPointAltitudeEllipseV1 |
|
12317 { |
|
12318 public: |
|
12319 /**Specifies the sign - North/South*/ |
|
12320 TLatitudeSign iLatitudeSign; |
|
12321 /** |
|
12322 A north/south angular measurement of position relative to the equator, |
|
12323 in the meridian plane which contains the earth's rotation axis |
|
12324 */ |
|
12325 TUint16 iLatitude; |
|
12326 /** |
|
12327 An east/west angular measurement of position in relation to the Prime Meridian. |
|
12328 The angle between the two great circles, one being the Prime (or Greenwich) Meridian |
|
12329 and the other a meridian passing through the point of interest. |
|
12330 */ |
|
12331 TInt16 iLongitude; |
|
12332 /**Direction of altitude*/ |
|
12333 TAltDirection iAltDirection; |
|
12334 /**Degree of latitude*/ |
|
12335 TUint16 iAltitude; |
|
12336 /**Uncertainty semi major axis*/ |
|
12337 TUint8 iUncertaintySemiMajor; |
|
12338 /**Uncertainty semi minor axis*/ |
|
12339 TUint8 iUncertaintySemiMinor; |
|
12340 /**Orientation of major axis*/ |
|
12341 TUint8 iOrientationMajorAxis; |
|
12342 /**The confidence by which the position of a target entity is known to be within the shape description*/ |
|
12343 TUint8 iConfidence; |
|
12344 }; |
|
12345 |
|
12346 /**This union holds the possible forms of position estimate of the UE that can be captured.*/ |
|
12347 union TPositionEstimateV1 |
|
12348 { |
|
12349 /** |
|
12350 The description of an ellipsoid point is that of a point |
|
12351 on the surface of the ellipsoid, and consists of a latitude and a longitude. |
|
12352 @see 3GPP TS 23.032 |
|
12353 */ |
|
12354 TEllipsoidPointV1 iEllipsoidPoint; |
|
12355 /** |
|
12356 It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r |
|
12357 @see 3GPP TS 23.032 |
|
12358 */ |
|
12359 TEllipsoidPointUncertCircleV1 iEllipsoidPointUncertCircle; |
|
12360 /** |
|
12361 It is characterised by the co-ordinates of an ellipsoid point (the origin), |
|
12362 distances r1 and r2 and an angle of orientation A |
|
12363 @see 3GPP TS 23.032 |
|
12364 */ |
|
12365 TEllipsoidPointUncertEllipseV1 iEllipsoidPointUncertEllipse; |
|
12366 /** |
|
12367 The description of an ellipsoid point with altitude is that of a point at a specified distance |
|
12368 above or below a point on the earth's surface. This is defined by an ellipsoid point |
|
12369 with the given longitude and latitude and the altitude above or below the ellipsoid point. |
|
12370 @see 3GPP TS 23.032 |
|
12371 */ |
|
12372 TEllipsoidPointAltitudeV1 iEllipsoidPointAltitude; |
|
12373 /** |
|
12374 characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"), |
|
12375 r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A |
|
12376 (the "angle of the major axis") |
|
12377 @see 3GPP TS 23.032 |
|
12378 */ |
|
12379 TEllipsoidPointAltitudeEllipseV1 iEllipsoidPointAltitudeEllipsoide; |
|
12380 }; |
|
12381 |
|
12382 /**This contains the positioning estimate reference time*/ |
|
12383 union TPosEstimateRefTime |
|
12384 { |
|
12385 /**Contains results of the GPS reference time*/ |
|
12386 TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult; |
|
12387 /**Contains the GPS reference time */ |
|
12388 TUint16 iGpsRefTimeOnly; |
|
12389 /**Contains the cell timing*/ |
|
12390 TCellTimingV1 iCellTiming; |
|
12391 }; |
|
12392 |
|
12393 /** |
|
12394 Provides the position estimate from the UE to the network, |
|
12395 if the UE is capable of determining its own position. |
|
12396 */ |
|
12397 class TUePosPositionEstimateInfoV1 |
|
12398 { |
|
12399 public: |
|
12400 /**UE positioning estimate reference time*/ |
|
12401 TPosEstimateRefTime iPosEstimateRefTime; |
|
12402 /**Holds the UE's position estimate |
|
12403 @see TPositionEstimateV1 |
|
12404 */ |
|
12405 TPositionEstimateV1 iPostionEstimate; |
|
12406 /**Holds the field that would be populated in iPosEstimateRefTime*/ |
|
12407 TPosEstimateInfo iPosEstimateRefTimeStatus; |
|
12408 /**Holds the field that would be populated in iPosEstimate*/ |
|
12409 TPosEstimateInfo iPosEstimateStatus; |
|
12410 }; |
|
12411 |
|
12412 /**This enum contains the multipath indicators*/ |
|
12413 enum TMultipathIndicator |
|
12414 { |
|
12415 /** |
|
12416 Multipath indicator unknown |
|
12417 This is an invalid indicator. |
|
12418 */ |
|
12419 EMPUnknown, |
|
12420 /**Not measured*/ |
|
12421 ENm, |
|
12422 /**MP error < 5m*/ |
|
12423 ELow, |
|
12424 /**5m < MP error < 43m*/ |
|
12425 EMedium, |
|
12426 /**MP error > 43m*/ |
|
12427 EHigh |
|
12428 }; |
|
12429 |
|
12430 /**This class contains the GPS measurement parameters of the UE*/ |
|
12431 class TGpsMeasMeasurementParamV1 |
|
12432 { |
|
12433 public: |
|
12434 /**Satellite Identification*/ |
|
12435 TUint8 iSatID; |
|
12436 /** |
|
12437 The estimate of the carrier-to-noise ratio of the received signal from the particular |
|
12438 satellite used in the measurement. It is given in units of dB-Hz (typical levels will |
|
12439 be in the range of 20 - 50 dB-Hz). |
|
12440 */ |
|
12441 TUint8 iCN0; |
|
12442 /** |
|
12443 It is the instantaneous frequency difference between the receiver's internal oscillator |
|
12444 and the received carrier from the satellite. Hz, scale factor 0.2. |
|
12445 */ |
|
12446 TInt16 iDoppler; |
|
12447 /** |
|
12448 Unit in GPS chips. |
|
12449 Whole value of the UE GPS code-phase measurement, where increasing binary values of the field |
|
12450 signify increasing measured pseudoranges. |
|
12451 */ |
|
12452 TUint16 iWholeGpsChips; |
|
12453 /** |
|
12454 The UE GPS code-phase measurement is divided into the fields "Whole GPS Chips" and "Fractional GPS Chips". |
|
12455 Scale factor 2-10 Fractional value of the UE GPS code-phase measurement. |
|
12456 */ |
|
12457 TUint16 iFractionalGpsChips; |
|
12458 /** |
|
12459 Contains the possible multipath indicators. Multipath error is usually caused by one path being bounced or |
|
12460 reflected. The impact on a pseudo-range measurement may be up to a few metres. In the case of carrier phase, |
|
12461 this is of the order of a few centimetres. |
|
12462 */ |
|
12463 TMultipathIndicator iMultipathIndicator; |
|
12464 /** |
|
12465 A distance measurement based on the correlation of a satellite's transmitted code (may be the C/A-Code or |
|
12466 the encrypted P-Code) and the local receiver's reference code (for that PRN satellite number), |
|
12467 that has not been corrected for errors in synchronisation between the transmitter's clock and the receiver's clock. |
|
12468 Hence a pseudo-range measurement is a time-error biased distance measurement. |
|
12469 */ |
|
12470 TUint8 iPseudorangeRmsError; |
|
12471 }; |
|
12472 |
|
12473 /**This class contains the GPS measurement parameters and the positioning reference time*/ |
|
12474 class TUePosGpsMeasurementResultsV1 |
|
12475 { |
|
12476 public: |
|
12477 /**UE positioning reference time*/ |
|
12478 TPosReferenceTimeV1 iPosGpsMeasRefTime; |
|
12479 /**Holds the GPS measurement parameters from all the active satellites*/ |
|
12480 TGpsMeasMeasurementParamV1 iGpsMeasurementParamList[KMaxSat]; |
|
12481 /**ETrue indicates TPosReferenceTimeV1::iUtranGpsRefTimeResult is populated. |
|
12482 EFalse indicates TPosReferenceTimeV1::iGpsRefTimeOnly is populated*/ |
|
12483 TBool iPosGpsMeasRefTimeStatus; |
|
12484 }; |
|
12485 |
|
12486 /** |
|
12487 This enum lists all the possible errors that UE can report to the network |
|
12488 */ |
|
12489 enum TPosErrorCause |
|
12490 { |
|
12491 /** |
|
12492 Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with |
|
12493 any of the underlying valid error causes |
|
12494 */ |
|
12495 EErrorCauseUnknown, |
|
12496 /**Indicates that enought number of GPS satellites are healthy and active.*/ |
|
12497 ENotEnoughGpsSatellites, |
|
12498 /**Assistance data required to compute location of the UE is missing in the measurement control. |
|
12499 If the Additional data request flag is true in the measurement control only then additional assistance |
|
12500 data can be requested otherwise measurements need to be done using the existing assistance data |
|
12501 @see TGpsAddlAssistDataReqV1 |
|
12502 @see TUePosReportingQuantityV1 |
|
12503 */ |
|
12504 EAssistanceDataMissing, |
|
12505 /** |
|
12506 Cell Frames Timings are not accomplished |
|
12507 */ |
|
12508 ENotAccomplishedGpsTimingOfCellFrames, |
|
12509 /** |
|
12510 UE can set this error in case other than the above mentioned is encountered |
|
12511 */ |
|
12512 EUndefinedError, |
|
12513 /** |
|
12514 UE denies Location information |
|
12515 */ |
|
12516 ERequestDeniedByUser, |
|
12517 }; |
|
12518 |
|
12519 /** |
|
12520 This class contains the positioning errors that might have encountered during |
|
12521 measurement of location of the UE. |
|
12522 */ |
|
12523 class TUePosError |
|
12524 { |
|
12525 public: |
|
12526 /**Indicates the error cause encountered while computing GPS Assistance data*/ |
|
12527 TPosErrorCause iPosErrorCause; |
|
12528 /**If error cause is "Assistance Data Missing" and iAddlAssistanceDataReq is set to ETrue then |
|
12529 then this member shall indicate what additional assistance data is needed. |
|
12530 If iAddlAssistanceDataReq is set to EFalse then existing assistance data is used to compute location |
|
12531 information of the UE. |
|
12532 @see TUePosReportingQuantityV1::iAddlAssistanceDataReq*/ |
|
12533 TGpsAddlAssistDataReqV1 iGpsAddlAssistDataReq; |
|
12534 }; |
|
12535 |
|
12536 /** |
|
12537 This class contains the measurement results computed by the UE. |
|
12538 */ |
|
12539 class TUePosMeasuredResultsV1 |
|
12540 { |
|
12541 public: |
|
12542 /**The purpose of this is to provide the position estimate from the UE to the network, |
|
12543 if the UE is capable of determining its own position.*/ |
|
12544 TUePosPositionEstimateInfoV1 iUePosPositionEstimateInfo; |
|
12545 /**Contains the GPS measurement parameters and the positioning reference time*/ |
|
12546 TUePosGpsMeasurementResultsV1 iUePosGpsMeasurement; |
|
12547 /**Indicates the error cause and/or additional assistance data is required*/ |
|
12548 TUePosError iUePosError; |
|
12549 /** |
|
12550 ETrue indicates some error has encountered. iUePosError will be populated. |
|
12551 EFalse indicates Gps Assistance Data is received and no error has encountered while processing. |
|
12552 Hence iUePosPositionEstimateInfo and iUePosGpsMeasurement will be populated |
|
12553 */ |
|
12554 TBool iPosErrorStatus; |
|
12555 }; |
|
12556 |
|
12557 /**Contains the measured location information of the UE*/ |
|
12558 union TMeasuredResultsV1 |
|
12559 { |
|
12560 /** |
|
12561 This member either contains the measurement results or the error that might have |
|
12562 encountered during measurements. |
|
12563 */ |
|
12564 TUePosMeasuredResultsV1 iTUePosMeasuredResults; |
|
12565 /** |
|
12566 A spare member for future use. |
|
12567 */ |
|
12568 TBool iSpare; |
|
12569 }; |
|
12570 |
|
12571 /** |
|
12572 This class contains the measurement report expected as response to the measurement control sent by the |
|
12573 network. Veloctiy estimates are included if requested in measurement control. |
|
12574 */ |
|
12575 class TMeasurementReportV7 : public RMobilePhone::TMultimodeType |
|
12576 { |
|
12577 public: |
|
12578 IMPORT_C TMeasurementReportV7(); |
|
12579 public: |
|
12580 /**A reference number that should be used by the UTRAN when setting up, |
|
12581 modifying or releasing the measurement and by the UE in the measurement report. |
|
12582 */ |
|
12583 TUint8 iMeasurementIdentity; |
|
12584 /**Contains the measured location information of the UE*/ |
|
12585 TMeasuredResultsV1 iMeasuredResults; |
|
12586 /**Contains the measured results on Random Access Channel*/ |
|
12587 TMeasuredResultsOnRachV1 iMeasuredResultsOnRach; |
|
12588 /**Contains the velocity estimates of the UE*/ |
|
12589 TVelocityEstimateV1 iVelocityEstimate; |
|
12590 /** |
|
12591 Indicates the populated member in iVelocityEstimate if velocity estimate is computed. |
|
12592 Otherwise indicates that velocity estimate is not computed. |
|
12593 */ |
|
12594 TVelEstimate iVelEstimateStatus; |
|
12595 }; |
|
12596 /** |
|
12597 A typedef'd packaged TMeasurementReportV7 for passing through a |
|
12598 generic API method. |
|
12599 |
|
12600 @internalAll |
|
12601 */ |
|
12602 typedef TPckg<TMeasurementReportV7> TMeasurementReportV7Pckg; |
|
12603 |
|
12604 //*********************************************// |
|
12605 // Measurement Control Failure data structure // |
|
12606 //*********************************************// |
|
12607 |
|
12608 /** |
|
12609 This enum contains the list of errors that the UE can specify. |
|
12610 The Measurement control failure is caused only when the the UE |
|
12611 cannot initiate a measurement as instructed by the network. |
|
12612 */ |
|
12613 enum TMeasurementControlFailure |
|
12614 { |
|
12615 /** |
|
12616 Unknown Measurement Control Failure. |
|
12617 This is an invalid failure state whic will be set if the UE does not set with the |
|
12618 underlying valid error reasons. |
|
12619 */ |
|
12620 EControlFailureUnknown, |
|
12621 /**Indicates ASN1.0 encoding is incorrect*/ |
|
12622 EAsn1ViolationOrEncoding, |
|
12623 /**Messsgae type specified is not existent*/ |
|
12624 EMsgTypeNonExistent, |
|
12625 /**Message is not compatible*/ |
|
12626 EMsgNotCompatibleWithReceiverState, |
|
12627 /**Information sent cannot be understood*/ |
|
12628 EIeValueNotComprehend, |
|
12629 /**Information expected is not present*/ |
|
12630 EInformationElementMissing, |
|
12631 /*Message extension cannot be understood*/ |
|
12632 EMsgExtnNotComprehend |
|
12633 }; |
|
12634 |
|
12635 /** |
|
12636 This enum contains the possible domains used by MOLR |
|
12637 */ |
|
12638 enum TDomain |
|
12639 { |
|
12640 /**Packet switch domain is the default domain that will be used by Molr*/ |
|
12641 EPacketSwitchedDomain, |
|
12642 /**UE shall set the domain to Circuit switch whenever Molr is intended to use it*/ |
|
12643 ECircuitSwitchedDomain |
|
12644 }; |
|
12645 |
|
12646 IMPORT_C void NotifyMtlr(TRequestStatus& aReqStatus,TDes8& aNotifyMtlr); |
|
12647 IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrResponse aMtlrResponse); |
|
12648 IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrError aMtlrResponse); |
|
12649 IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrReject aMtlrResponse); |
|
12650 IMPORT_C void SendMolr(TRequestStatus& aReqStatus,const TDesC8& aStartMolr,TDes8& aMolrReturnResult); |
|
12651 IMPORT_C void NotifyMeasurementControl(TRequestStatus& aReqStatus,TDes8& aMeasurementControl); |
|
12652 IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TDesC8& aMeasurementReport); |
|
12653 IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TMeasurementControlFailure aMeasurementControlFailure); |
|
12654 IMPORT_C TInt SetLcsDomain(const TDomain aDomain); |
|
12655 private: |
|
12656 void ConstructL(); |
|
12657 void Destruct(); |
|
12658 private: |
|
12659 /** |
|
12660 Pointer Holder for the RMobileLocationServices sub-session requests. |
|
12661 */ |
|
12662 CMobileLocationServicesPtrHolder* iMmPtrHolder; |
|
12663 }; |
|
12664 |
|
12665 #endif // __ETELMM_H__ |
|
12666 |