2 * Copyright (c) 2009 Sony Ericsson Mobile Communications AB
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".
9 * Initial Contributors:
10 * Sony Ericsson Mobile Communications AB - initial contribution.
11 * Nokia Corporation - additional changes.
16 * Etel3rdParty.dll interface, using CTelephony class defined here.
17 * Etel 3rd Party API Header file
18 * Describes the Etel 3rd Party API - classes, methods and types.
28 #ifndef ETEL3RDPARTY_H__
29 #define ETEL3RDPARTY_H__
33 const TInt KTelephonyMajorVersionNumber=7; ///< Major version-number
34 const TInt KTelephonyMinorVersionNumber=0; ///< Minor version-number
35 const TInt KTelephonyBuildVersionNumber=0; ///< Build version-number
37 // Panic numbers returned to applications. 0 upwards...
38 const TInt KTelephonyPanicIllegalReuse = 0; ///< Client code has attempted to re-post an asynchronous request before the original request has completed.
40 class CTelephonyFunctions; // forward declaration
43 This class provides a simple interface to the phone's telephony
44 system. It provides two services:
46 1. You can find out information about the phone. This class
47 provides support for retrieving Phone Settings, Line Information, Call
48 Functionality, Network Information and (basic) Supplementary Service
51 2. You can dial, answer and control voice calls. You cannot make fax or data calls.
53 Architecturally, CTelephony provides an interface to the Telephony
54 Multimode API. This interface exposes only a subset of the complete
55 Multimode functionality.
57 Note that a CActiveScheduler is required to be installed for all asynchronous CTelephony calls.
62 class CTelephony : public CBase
66 //////////////////////////////////////////////////////////
67 //General Functionality
68 //////////////////////////////////////////////////////////
71 Unique parameter class identifier.
76 Unique reference identifier for Etel 3rd Party v1.0 parameter classes.
80 Unique reference identifier for Etel 3rd Party v2.0 parameter classes.
87 Specifies which version of an API parameter a client has used.
88 For most ETel ISV v1.0/2.0 parameters this will equal KETelISV1.
92 IMPORT_C TInt VersionId() const;
100 The maximum number of digits allowed in a multimode telephone number.
102 enum { KMaxTelNumberSize = 100 };
110 User or the network has no knowledge of the type of number.
114 International number.
116 EInternationalNumber,
122 Administration/service number specific to the serving network, e.g. used to
125 ENetworkSpecificNumber,
141 Number Plan Indicator.
146 User or the network has no knowledge of the numbering plan.
148 EUnknownNumberingPlan = 0,
150 ISDN/telephony numbering plan.
158 Telex numbering plan.
160 ETelexNumberPlan = 4,
162 Service centre specific plan used to indicate a numbering plan specific to external
163 Short Message entities attached to the SMSC.
165 EServiceCentreSpecificPlan1 = 5,
167 Service centre specific plan used to indicate a numbering plan specific to external
168 Short Message entities attached to the SMSC.
170 EServiceCentreSpecificPlan2 = 6,
172 National numbering plan.
174 ENationalNumberPlan = 8,
176 Private numbering plan.
178 EPrivateNumberPlan = 9,
180 ERMES numbering plan.
182 EERMESNumberPlan = 10
186 A typedef to hold the telephone number.
188 typedef TBuf<KMaxTelNumberSize> TTelNumber;
192 Defines API abstraction of a mobile telephone number.
196 IMPORT_C TTelAddress();
201 TTelNumberTON iTypeOfNumber;
205 TTelNumberNPI iNumberPlan;
209 TTelNumber iTelNumber;
212 //////////////////////////////////////////////////////////
213 // Phone Functionality
214 //////////////////////////////////////////////////////////
217 Max size of Manufacturer Id.
219 enum { KPhoneManufacturerIdSize = 50 };
221 Max size of Phone Model Id.
223 enum { KPhoneModelIdSize = 50 };
225 Max size ofSerial Number.
227 enum { KPhoneSerialNumberSize = 50 };
230 class TPhoneIdV1 : public TEtelISVType
232 Defines the mobile phone identity.
236 IMPORT_C TPhoneIdV1();
239 Phone manufacturer identification, in character string format.
241 TBuf<KPhoneManufacturerIdSize> iManufacturer;
243 Phone model identification, in character string format.
245 TBuf<KPhoneModelIdSize> iModel;
247 Phone serial number (IMEI or ESN), in character string format.
249 TBuf<KPhoneSerialNumberSize> iSerialNumber;
253 A typedef'd packaged CTelephony::TPhoneIdV1 for passing through a generic API method
255 typedef TPckg<TPhoneIdV1> TPhoneIdV1Pckg;
258 Maximum size of IMSI identifier.
260 enum { KIMSISize = 15 };
262 class TSubscriberIdV1 : public TEtelISVType
264 Defines the Subscriber (IMSI) Id
268 IMPORT_C TSubscriberIdV1();
273 TBuf<KIMSISize> iSubscriberId;
277 A typedef'd packaged CTelephony::TSubscriberIdV1 for passing through a generic API method.
279 typedef TPckg<TSubscriberIdV1> TSubscriberIdV1Pckg;
282 The flight mode status.
284 enum TFlightModeStatus
296 class TFlightModeV1 : public TEtelISVType
298 Defines the flight mode status.
302 IMPORT_C TFlightModeV1();
305 The current status of the mobile radio interface and bluetooth.
307 TFlightModeStatus iFlightModeStatus;
311 A typedef'd packaged CTelephony::TFlightModeV1 for passing through a generic API method.
313 typedef TPckg<TFlightModeV1> TFlightModeV1Pckg;
316 The mobile phone indicators.
318 enum TPhoneIndicators
321 If bit-flag is set to '1' indicates that the battery charger
322 is connected to the phone. If bit-flag is set to '0' indicates
323 that the battery charger is disconnected
325 For capability: If bit-flag is set to '0' indicates that the
326 battery charger indication reporting is unavailable.
328 KIndChargerConnected = 0x00000001,
330 If bit-flag is set to '1' indicates that network service is
331 available. If bit-flag is set to '0' indicates that network
332 service is unavailable
334 For capability: If bit-flag is set to '0' indicates that the
335 network availability indication reporting is unavailable.
337 KIndNetworkAvailable = 0x00000002,
339 If bit-flag is set to '1' indicates that a call is in
340 progress. If set to '0' indicates that a call is not in
343 For capability: If bit-flag is set to '0' indicates
344 that the call is in progress indication reporting is
347 KIndCallInProgress = 0x00000004
350 class TIndicatorV1 : public TEtelISVType
352 Contains indicator parameters:
353 @see TPhoneIndicators
357 IMPORT_C TIndicatorV1();
360 The value of the indicators. It is the sum
361 of CTelephony::TPhoneIndicators constants.
365 The supported (available) indicator capability that the telephony service module offers.
366 It is the sum of CTelephony::TPhoneIndicators constants.
368 TUint32 iCapabilities;
372 A typedef'd packaged CTelephony::TIndicatorV1 for passing through a generic API method.
374 typedef TPckg<TIndicatorV1> TIndicatorV1Pckg;
377 The mobile phone battery status.
382 The phone software can not determine the phone's current power status.
386 The phone is powered by the battery.
390 A battery is connected, but the phone is externally powered.
392 EBatteryConnectedButExternallyPowered,
394 No battery is connected.
403 class TBatteryInfoV1 : public TEtelISVType
405 Defines contents of the battery status of the phone.
409 IMPORT_C TBatteryInfoV1();
412 The power and battery status.
414 TBatteryStatus iStatus;
416 The percentage battery charge level.
422 A typedef'd packaged CTelephony::TBatteryInfoV1 for passing through a generic API method.
424 typedef TPckg<TBatteryInfoV1> TBatteryInfoV1Pckg;
426 class TSignalStrengthV1 : public TEtelISVType
428 Defines the phone's current signal strength.
432 IMPORT_C TSignalStrengthV1();
435 The value of signal strength.
437 TInt32 iSignalStrength;
439 The absolute number of signal "bars" that the phone should display.
445 A typedef'd packaged CTelephony::TSignalStrengthV1 for passing through a generic API method.
447 typedef TPckg<TSignalStrengthV1> TSignalStrengthV1Pckg;
455 Lock PIN1 on the ICC.
459 Lock PIN2 on the ICC.
465 Status of an ICC lock.
470 The status of the lock is unknown.
476 User can not access functionality governed by this lock until
477 user correctly enters associated security code.
483 User can access functionality governed by this lock
489 User should enter the unblocking code to be able to switch back to the unlocked mode.
490 Blocking is enabled after a number of unsuccessful attempts to verify PIN1/2.
496 Setting of the ICC lock.
501 The setting of the lock is unknown.
505 Lock is enabled, and is available for use. Its status may be
506 CTelephony::EStatusLocked, CTelephony::EStatusUnlocked,
507 or CTelephony::EStatusBlocked.
509 The associated security code will be required to unlock the lock
510 the next time the lock's status is CTelephony::EStatusLocked.
514 Lock is disabled. It is not available for use, so its status
515 is always CTelephony::EStatusUnlocked.
520 class TIccLockInfoV1 : public TEtelISVType
522 Defines the Icc Lock parameters.
526 IMPORT_C TIccLockInfoV1();
529 The current status of the lock.
531 TIccLockStatus iStatus;
533 The current availability of the lock. When not available (i.e. the
534 lock is not in use) then its status will always be CTelephony::EStatusUnlocked.
536 TIccLockSetting iSetting;
540 A typedef'd packaged CTelephony::TIccLockInfoV1 for passing through a generic API method.
542 typedef TPckg<TIccLockInfoV1> TIccLockInfoV1Pckg;
544 //////////////////////////////////////////////////////////
545 // Line Functionality
546 //////////////////////////////////////////////////////////
568 Describes the possible call or line states.
573 Indicates that the status is unknown.
577 Idle line status (no active calls).
581 Call dialling status .
589 Call answering status.
593 Call connecting status.
597 Call connected status.
601 Call is undergoing temporary channel loss and it may or may not be reconnected.
603 EStatusReconnectPending,
605 Call disconnecting status.
607 EStatusDisconnecting,
613 Call is transferring.
617 Call in transfer is alerting the remote party.
619 EStatusTransferAlerting
622 class TCallStatusV1 : public TEtelISVType
624 Defines the current call or line status.
628 IMPORT_C TCallStatusV1();
631 The current call or line status.
637 A typedef'd packaged CTelephony::TCallStatusV1 for passing through a generic API method.
639 typedef TPckg<TCallStatusV1> TCallStatusV1Pckg;
642 Select a call defined by it current stats.
647 Currently active call.
651 Currently held (applicable only for voice) call.
655 Call during the setup/disconnecting process - (dialling/connecting/answering/hanging up).
660 class TCallSelectionV1 : public TEtelISVType
662 Defines parameters to select a call, determined by its call state for a specific line
666 IMPORT_C TCallSelectionV1();
669 The current phone line selection.
673 The current call selection.
679 A typedef'd packaged CTelephony::TCallSelectionV1 for passing through a generic API method.
681 typedef TPckg<TCallSelectionV1> TCallSelectionV1Pckg;
684 Etel 3rd Party owned call identifiers
689 Call owned by this ISV application.
693 Call owned by this ISV application.
697 Max number of calls supported by Etel 3rd Party.
703 Remote party identity status.
705 enum TCallRemoteIdentityStatus
708 The remote party's identity can not be determined.
710 ERemoteIdentityUnknown,
712 The remote party's identity is available.
714 ERemoteIdentityAvailable,
716 The remote party has suppressed the transmission of its identity.
718 ERemoteIdentitySuppressed
722 The direction of the call.
727 The direction of the call is unknown.
731 The call was originated by this phone, i.e. it is an outgoing call.
735 The call was terminated by this phone, i.e. it is an incoming call.
741 Enumerated network security types.
743 enum TPhoneNetworkSecurity
746 The encryption level is NONE.
750 The encryption level is GSM.(standard encryption algorithms for 2nd Generation Mobile networks).
754 The encryption level is WDCMA.(standard encryption algorithms for 3rd Generation Mobile networks).
759 class TCallInfoV1 : public TEtelISVType
761 Defines general information about a call.
765 IMPORT_C TCallInfoV1();
768 The current status of the call.
772 The time & date the call started.
774 TDateTime iStartTime;
776 The current duration of the call.
778 TTimeIntervalSeconds iDuration;
780 The original number (including DTMF) dialled for an outgoing call.
782 TTelAddress iDialledParty;
784 The reason for termination of a finished call.
785 Will equal KErrNone if the call ended normally and KErrNotFound if the call has not ended.
789 This attribute indicates whether Ciphering Status of a Call is enabled or disabled.
791 TPhoneNetworkSecurity iSecurity;
793 The call id of an ISV application owned call. For calls not owned by this ISV application (-1) is returned.
799 A typedef'd packaged CTelephony::TCallInfoV1 for passing through a generic API method.
801 typedef TPckg<TCallInfoV1> TCallInfoV1Pckg;
804 Maximum size of the calling party name.
806 enum { KCallingNameSize = 80 };
808 class TRemotePartyInfoV1 : public TEtelISVType
811 Defines information about the remote party of a call.
814 IMPORT_C TRemotePartyInfoV1();
817 Indicates whether the remote party information in the rest of this structure is valid or not.
819 TCallRemoteIdentityStatus iRemoteIdStatus;
821 Calling party name available through the CNAP supplementary service (if provisioned).
823 TBuf<KCallingNameSize> iCallingName;
825 The phone number of the remote party if available.
827 TTelAddress iRemoteNumber;
829 The direction of the call and hence the role of the remote party.
830 i.e. if the call is mobile originated then the remote party is the called party.
831 Whereas if the call is mobile terminated then the remote party is the calling party.
833 TCallDirection iDirection;
837 A typedef'd packaged CTelephony::TRemotePartyInfoV1 for passing through a generic API method.
839 typedef TPckg<TRemotePartyInfoV1> TRemotePartyInfoV1Pckg;
841 //////////////////////////////////////////////////////////
842 // Call Functionality
843 //////////////////////////////////////////////////////////
846 Caller Id restriction settings.
848 enum TCallerIdentityRestrict
851 The default setting should be used if the user has not explicitly requested their identity to be restricted/allowed.
855 The user has explicitly requested their identity to be sent for this call.
859 The user has explicitly requested their identity not to be sent for this call.
864 class TCallParamsV1 : public TEtelISVType
867 Defines the parameters used for set-up of a call.
870 IMPORT_C TCallParamsV1();
873 Call Id restriction setting to be used for this call.
875 TCallerIdentityRestrict iIdRestrict;
879 A typedef'd packaged CTelephony::TCallParamsV1 for passing through a generic API method.
881 typedef TPckg<TCallParamsV1> TCallParamsV1Pckg;
884 Mobile call control capabilities.
886 enum TMobileCallControlCaps
889 Indicates that this call can be put on hold.
890 This implies that the call is currently active and that there is no other held call.
892 KCapsHold = 0x00000200,
894 Indicates that this call can be resumed.
895 This implies that the call is currently on hold and that there is no other active call.
897 KCapsResume = 0x00000400,
899 Indicates that this call's state can be swapped to the opposite state.
900 This implies that this call is either active or held.
901 There may be another call in the opposite state and if this is the case then both calls will be simultaneously swapped to their opposite state.
903 KCapsSwap = 0x00000800
906 class TCallCapsV1 : public TEtelISVType
909 Defines the dynamic capabilities of a call.
910 @see TMobileCallControlCaps
913 IMPORT_C TCallCapsV1();
916 Call Id restriction setting to be used for this call.
917 It is the sum of CTelephony::TMobileCallControlCaps constants.
919 TUint32 iControlCaps;
923 A typedef'd packaged CTelephony::TCallParamsV1 for passing through a generic API method.
925 typedef TPckg<TCallCapsV1> TCallCapsV1Pckg;
928 //////////////////////////////////////////////////////////
929 // Network Functionality
930 //////////////////////////////////////////////////////////
933 The registration status of the phone.
935 enum TRegistrationStatus
938 Registration status is unknown.
940 ERegistrationUnknown,
942 Not registered. The ME can not detect any other networks and is not currently searching a new operator to register to.
944 ENotRegisteredNoService,
946 Not registered. The ME can detect other networks on which it is possible to make emergency calls only.
948 ENotRegisteredEmergencyOnly,
950 Not registered, but the ME is currently searching a new operator to register to.
952 ENotRegisteredSearching,
954 Registered, network busy.
958 Registered on home network.
960 ERegisteredOnHomeNetwork,
971 class TNetworkRegistrationV1 : public TEtelISVType
973 Defines the current network registration status
977 IMPORT_C TNetworkRegistrationV1();
980 The current network registration status.
982 TRegistrationStatus iRegStatus;
986 A typedef'd packaged CTelephony::TNetworkRegistrationV1 for passing through a generic API method.
988 typedef TPckg<TNetworkRegistrationV1> TNetworkRegistrationV1Pckg;
990 /***********************************************/
991 // CTelephony::TNetworkInfoV1
994 Maximum size of the network country code.
996 enum { KNetworkCountryCodeSize = 4 };
998 Maximum size of the network identity..
1000 enum { KNetworkIdentitySize = 8 };
1002 Maximum size of the network display tag..
1004 enum { KNetworkDisplayTagSize = 32 };
1006 Maximum size of the short network name.
1008 enum { KNetworkShortNameSize = 8 };
1010 Maximum size of the long network name.
1012 enum { KNetworkLongNameSize = 16 };
1014 Maximum size of the short network name version 2.
1016 enum { KNetworkShortNameSizeV2 = 10 };
1018 Maximum size of the long network name version 2.
1020 enum { KNetworkLongNameSizeV2 = 20 };
1023 Defines Current Network Modes.
1028 Network mode is unknown.
1030 ENetworkModeUnknown,
1032 Mobile device is not registered.
1034 ENetworkModeUnregistered,
1036 GSM/GPRS or DCS1800 network.
1044 CDMA (IS-95) network.
1048 CDMA (cdma2000) network.
1050 ENetworkModeCdma2000,
1052 WCDMA (UTRA Frequency Division Duplex (FDD)) network.
1056 TD-CDMA (UTRA Time Division Duplex (TDD)) network.
1062 The access technology that the network is based on.
1067 This is used when there is no network activity and therefore no RAT active.
1069 ENetworkAccessUnknown,
1071 The access technology is GSM.
1075 The access technology is GSM COMPACT.
1076 However GSM COMPACT systems which use GSM frequency bands but with the CBPCCH broadcast channel are considered as a separate access technology from GSM.
1078 ENetworkAccessGsmCompact,
1080 The access technology is UTRAN (UMTS Network).
1086 Phone network status.
1093 ENetworkStatusUnknown,
1095 A network that the mobile device is allowed to register to.
1097 ENetworkStatusAvailable,
1099 Currently registered network.
1101 ENetworkStatusCurrent,
1103 A network that the ME is not allowed to register to.
1105 ENetworkStatusForbidden
1109 Mobile phone network band information.
1111 enum TNetworkBandInfo
1114 The current band and band class is unknown.
1118 The network operates at 800MHz on Band A.
1122 The network operates at 800MHz on Band B.
1126 The network operates at 800MHz on Band C.
1130 The network operates at 1900MHz on Band A.
1134 The network operates at 1900MHz on Band B.
1138 The network operates at 1900MHz on Band C.
1142 The network operates at 1900MHz on Band D.
1146 The network operates at 1900MHz on Band E.
1150 The network operates at 1900MHz on Band F.
1156 Defines information related to a mobile phone network.
1158 @see CTelephony::TNetworkInfoV2
1160 class TNetworkInfoV1 : public TEtelISVType
1163 IMPORT_C TNetworkInfoV1();
1166 Mode of the network.
1170 Status of the network
1172 TNetworkStatus iStatus;
1174 The MCC of the network.
1176 TBuf<KNetworkCountryCodeSize> iCountryCode;
1178 The network identity (NID in CDMA and MNC in GSM).
1180 TBuf<KNetworkIdentitySize> iNetworkId;
1182 The alpha-tag displayed when this is the serving network.
1184 TBuf<KNetworkDisplayTagSize> iDisplayTag;
1186 On GSM/WCDMA networks, the short name (up to 8 characters) of the network operator.
1188 TBuf<KNetworkShortNameSize> iShortName;
1190 On CDMA networks, the band and band class of the CDMA network operator.
1192 TNetworkBandInfo iBandInfo;
1194 On CDMA networks, the system identity (SID) of the CDMA or AMPS network
1196 TBuf<KNetworkIdentitySize> iCdmaSID;
1198 On GSM/WCDMA networks, the long name (up to 16 characters) of the network operator.
1200 TBuf<KNetworkLongNameSize> iLongName;
1202 On GSM/WCDMA networks, the type of network access.
1204 TNetworkAccess iAccess;
1206 On GSM/WCDMA networks, boolean indicating whether the location area is known.
1210 On GSM/WCDMA networks, the location area code. Only valid when iAreaKnown is true.
1212 TUint iLocationAreaCode;
1214 On GSM/WCDMA networks, the cell identity code. Only valid when iAreaKnown is true.
1220 A typedef'd packaged CTelephony::TNetworkInfoV1 for passing through a generic API method.
1222 typedef TPckg<TNetworkInfoV1> TNetworkInfoV1Pckg;
1224 class TNetworkNameV1 : public TEtelISVType
1226 Defines the name network name.
1228 Note: This information is only available on GSM/WCDMA networks.
1232 IMPORT_C TNetworkNameV1();
1235 The displayed name (up to 16 characters) of the network provider.
1237 TBuf<KNetworkLongNameSize> iNetworkName;
1241 A typedef'd packaged CTelephony::TNetworkNameV1 for passing through a generic API method.
1243 typedef TPckg<TNetworkNameV1> TNetworkNameV1Pckg;
1245 class TOperatorNameV1 : public TEtelISVType
1247 Defines the current operator.
1249 Note: This information is only available on GSM/WCDMA networks.
1253 IMPORT_C TOperatorNameV1();
1256 The displayed name (up to 16 characters) of the network operator.
1258 TBuf<KNetworkLongNameSize> iOperatorName;
1262 A typedef'd packaged CTelephony::TOperatorNameV1 for passing through a generic API method.
1264 typedef TPckg<TOperatorNameV1> TOperatorNameV1Pckg;
1268 Defines information related to a mobile phone network.
1269 TNetworkInfoV2 differs from Version 1 (TNetworkInfoV1) in that the
1270 length of iShortName and iLongName are 10 and 20 respectively
1271 (rather than 8 and 16).
1273 TNetworkInfoV2 should be used in preference to TNetworkInfoV1. The
1274 short and long network names provided in this V2 class are of the
1275 length supplied by the platform. The V1 class's names will be
1276 truncated if the platform provides names longer than its limits.
1278 class TNetworkInfoV2 : public TEtelISVType
1281 IMPORT_C TNetworkInfoV2();
1284 Mode of the network.
1288 Status of the network.
1290 TNetworkStatus iStatus;
1292 The MCC of the network.
1294 TBuf<KNetworkCountryCodeSize> iCountryCode;
1296 The network identity (NID in CDMA and MNC in GSM).
1298 TBuf<KNetworkIdentitySize> iNetworkId;
1300 The alpha-tag displayed when this is the serving network.
1302 TBuf<KNetworkDisplayTagSize> iDisplayTag;
1304 On GSM/WCDMA networks, the short name (up to 10 characters) of the network operator.
1306 TBuf<KNetworkShortNameSizeV2> iShortName;
1308 On CDMA networks, the band and band class of the CDMA network operator.
1310 TNetworkBandInfo iBandInfo;
1312 On CDMA networks, the system identity (SID) of the CDMA or AMPS network.
1314 TBuf<KNetworkIdentitySize> iCdmaSID;
1316 On GSM/WCDMA networks, the long name (up to 20 characters) of the network operator.
1318 TBuf<KNetworkLongNameSizeV2> iLongName;
1320 On GSM/WCDMA networks, the type of network access.
1322 TNetworkAccess iAccess;
1324 On GSM/WCDMA networks, boolean indicating whether the location area is known.
1328 On GSM/WCDMA networks, the location area code. Only valid when iAreaKnown is true.
1330 TUint iLocationAreaCode;
1332 On GSM/WCDMA networks, the cell identity code. Only valid when iAreaKnown is true.
1338 A typedef'd packaged CTelephony::TNetworkInfoV2 for passing
1339 through a generic API method.
1341 typedef TPckg<TNetworkInfoV2> TNetworkInfoV2Pckg;
1344 Defines the name network name.
1345 TNetworkNameV2 differs from Version 1 (TNetworkNameV1) in that the
1346 length of iNetworkName is 20 (rather than 16).
1348 TNetworkNameV2 should be used in preference to TNetworkNameV1. The
1349 network name provided in this V2 class is of the length supplied
1350 by the platform. The V1 class' network name will be truncated if
1351 the platform provides a name longer than V1 name's limit.
1353 Note: This information is only available on GSM/WCDMA networks.
1355 class TNetworkNameV2 : public TEtelISVType
1358 IMPORT_C TNetworkNameV2();
1361 The displayed name (up to 20 characters) of the network provider.
1363 TBuf<KNetworkLongNameSizeV2> iNetworkName;
1367 A typedef'd packaged CTelephony::TNetworkNameV2 for passing through
1368 a generic API method. TNetworkNameV2 differs from Version 1 in
1369 that the length of iNetworkName is 20 rather than 16.
1371 typedef TPckg<TNetworkNameV2> TNetworkNameV2Pckg;
1373 //////////////////////////////////////////////////////////
1374 // (Basic) Supplementary Services Functionality
1375 //////////////////////////////////////////////////////////
1378 Supplementary Service status.
1380 enum TSupplServiceStatus
1383 The supplementary service is currently active and operative.
1387 The supplementary service is currently deactivated or quiescent.
1391 In GSM/WCDMA mode, the supplementary service is not provisioned.
1392 In CDMA mode, this value has no meaning.
1396 In GSM/WCDMA mode, the supplementary service is not available in serving network.
1397 In CDMA mode, the supplementary service is not available in the phone.
1401 The phone can not determine supplementary service status.
1407 Call Forwarding conditions.
1409 enum TCallForwardingCondition
1412 All calls to this subscriber are forwarded.
1414 ECallForwardingUnconditional,
1416 Calls are forwarded when this subscriber is busy.
1418 ECallForwardingBusy,
1420 Calls are forwarded when this subscriber does not reply within a timeout period.
1422 ECallForwardingNoReply,
1424 Calls are forwarded when this subscriber is unreachable.
1426 ECallForwardingNotReachable
1429 class TCallForwardingSupplServicesV1 : public TEtelISVType
1431 Defines information about the call forwarding service.
1433 Note: This information is only available on GSM/WCDMA networks.
1437 IMPORT_C TCallForwardingSupplServicesV1();
1440 The status of the call forwarding supplementary service.
1441 It applies to the condition in iCallForwardingCondition and
1442 to the line specified to CTelephony::GetCallForwardingStatus().
1444 TSupplServiceStatus iCallForwarding;
1446 The provisioned call forwarding condition to which iCallForwarding applies.
1448 TCallForwardingCondition iCallForwardingCondition;
1452 A typedef'd packaged CTelephony::TCallForwardingSupplServicesV1 for passing through a generic API method.
1454 typedef TPckg<TCallForwardingSupplServicesV1> TCallForwardingSupplServicesV1Pckg;
1458 Call Barring conditions.
1460 enum TCallBarringCondition
1463 All incoming calls to this subscriber are barred (BAIC).
1467 All incoming calls to this subscriber are barred when roaming outside the home PLMN country (BAIC-roam).
1469 EBarIncomingRoaming,
1471 All outgoing calls by this subscriber are barred (BAOC).
1475 All outgoing international calls by this subscriber are barred (BOIC).
1477 EBarOutgoingInternational,
1479 All outgoing international calls except those directed to the home PLMN country by this subscriber are barred (BOIC-ExHC).
1481 EBarOutgoingInternationalExHC
1484 class TCallBarringSupplServicesV1 : public TEtelISVType
1486 Defines information about the call barring service.
1490 IMPORT_C TCallBarringSupplServicesV1();
1493 The status of the call barring supplementary service.
1494 It applies to the condition in iCallBarringCondition and
1495 to the service group specified to CTelephony::GetCallBarringStatus().
1497 TSupplServiceStatus iCallBarring;
1499 The provisioned call barring condition to which iCallBarring applies.
1501 TCallBarringCondition iCallBarringCondition;
1505 A typedef'd packaged CTelephony::TCallBarringSupplServicesV1 for passing through a generic API method.
1507 typedef TPckg<TCallBarringSupplServicesV1> TCallBarringSupplServicesV1Pckg;
1509 class TCallWaitingSupplServicesV1 : public TEtelISVType
1511 Defines information about the call waiting service.
1515 IMPORT_C TCallWaitingSupplServicesV1();
1518 The status of the call waiting supplementary service
1519 for the service group specified to CTelephony::GetCallWaitingStatus().
1521 TSupplServiceStatus iCallWaiting;
1525 A typedef'd packaged CTelephony::TCallWaitingSupplServicesV1 for passing through a generic API method.
1527 typedef TPckg<TCallWaitingSupplServicesV1> TCallWaitingSupplServicesV1Pckg;
1532 enum TIdentityService
1535 The identity service is unspecified.
1537 EIdServiceUnspecified,
1539 The caller's ID is presented to the called party.
1541 EIdServiceCallerPresentation,
1543 The caller's ID is restricted to the called party.
1545 EIdServiceCallerRestriction
1549 Service status of the Phone ID services.
1551 enum TIdentityServiceStatus
1554 The interrogated identity service is provisioned and permanently active.
1556 EIdServiceActivePermanent,
1558 The interrogated identity service is provisioned and active.
1559 By default, the number is restricted unless overridden by the user.
1561 EIdServiceActiveDefaultRestricted,
1563 The interrogated identity service is provisioned and active.
1564 By default, the number is displayed unless specifically restricted by the user.
1566 EIdServiceActiveDefaultAllowed,
1568 The interrogated identity service is not provisioned.
1570 EIdServiceNotProvisioned,
1572 The status of the interrogated Identity service is unknown.
1577 class TIdentityServiceV1 : public TEtelISVType
1579 Defines the call identity service status.
1581 Note: This information is only available on GSM/WCDMA networks.
1585 IMPORT_C TIdentityServiceV1();
1588 The status of the call identity service.
1590 TIdentityServiceStatus iIdentityStatus;
1594 A typedef'd packaged CTelephony::TIdentityServiceV1 for passing through a generic API method.
1596 typedef TPckg<TIdentityServiceV1> TIdentityServiceV1Pckg;
1599 Service group identifier.
1618 Cancel apending request
1620 enum TCancellationRequest
1623 Cancel a pending GetPhoneId request.
1625 EGetPhoneIdCancel, // 0
1627 Cancel a pending GetSubscriberId request.
1629 EGetSubscriberIdCancel, // 1
1631 Cancel a pending GetFlightMode request.
1633 EGetFlightModeCancel, // 2
1635 Cancel a pending FlightModeChange request.
1637 EFlightModeChangeCancel, // 3
1639 Cancel a pending GetIndicator request.
1641 EGetIndicatorCancel, // 4
1643 Cancel a pending IndicatorChange request.
1645 EIndicatorChangeCancel, // 5
1647 Cancel a pending GetBatteryInfo request.
1649 EGetBatteryInfoCancel, // 6
1651 Cancel a pending BatteryInfoChange request.
1653 EBatteryInfoChangeCancel, // 7
1655 Cancel a pending GetSignalStrength request.
1657 EGetSignalStrengthCancel, // 8
1659 Cancel a pending SignalStrengthChange request.
1661 ESignalStrengthChangeCancel, // 9
1663 Cancel a pending GetLockInfo request.
1665 EGetLockInfoCancel, // 10
1667 Cancel a pending Pin 1 LockInfoChange request.
1669 EPin1LockInfoChangeCancel, // 11
1671 Cancel a pending Pin 2 LockInfoChange request.
1673 EPin2LockInfoChangeCancel, // 12
1675 Cancel a pending VoiceLineStatusChange request.
1677 EVoiceLineStatusChangeCancel, // 13
1679 Cancel a pending Call1StatusChange request.
1681 EOwnedCall1StatusChangeCancel, // 14
1683 Cancel a pending Call2StatusChange request.
1685 EOwnedCall2StatusChangeCancel, // 15
1687 Cancel a pending OwnedCall1RemotePartyInfoChange request.
1689 EOwnedCall1RemotePartyInfoChangeCancel, // 16
1691 Cancel a pending OwnedCall2RemotePartyInfoChange request.
1693 EOwnedCall2RemotePartyInfoChangeCancel, // 17
1695 Cancel a pending SendDTMFTones request.
1697 ESendDTMFTonesCancel, // 18
1699 Cancel a pending DialNewCall request.
1701 EDialNewCallCancel, // 19
1703 Cancel a pending Hold request.
1707 Cancel a pending Resume request.
1709 EResumeCancel, // 21
1711 Cancel a pending Swap request.
1715 Cancel a pending Hangup request.
1717 EHangupCancel, // 23
1719 Cancel a pending AnswerIncomingCall request.
1721 EAnswerIncomingCallCancel, // 24
1723 Cancel a pending GetNetworkRegistrationStatus request.
1725 EGetNetworkRegistrationStatusCancel, // 25
1727 Cancel a pending NetworkRegistrationStatusChange request.
1729 ENetworkRegistrationStatusChangeCancel, // 26
1731 Cancel a pending GetCurrentNetworkInfo request.
1733 EGetCurrentNetworkInfoCancel, // 27
1735 Cancel a pending CurrentNetworkInfoChange request.
1737 ECurrentNetworkInfoChangeCancel, // 28
1739 Cancel a pending GetCurrentNetworkName request.
1741 EGetCurrentNetworkNameCancel, // 29
1743 Cancel a pending GetOperatorName request.
1745 EGetOperatorNameCancel, // 30
1747 Cancel a pending GetCallForwardingStatus request.
1749 EGetCallForwardingStatusCancel, // 31
1751 Cancel a pending GetCallBarringStatus request.
1753 EGetCallBarringStatusCancel, // 32
1755 Cancel a pending GetCallWaitingStatus request.
1757 EGetCallWaitingStatusCancel, // 33
1759 Cancel a pending GetIdentityServiceStatus request.
1761 EGetIdentityServiceStatusCancel, // 34
1763 Cancel a pending FaxLineStatusChange request.
1765 EFaxLineStatusChangeCancel, // 35
1767 Cancel a pending DataLineStatusChange request.
1769 EDataLineStatusChangeCancel // 36
1772 //////////////////////////////////////////////////////////
1773 // Notification Functionality
1774 //////////////////////////////////////////////////////////
1779 enum TNotificationEvent
1782 Register interest for receiving a notification for flight mode changes.
1784 New flight mode returned in a CTelephony::TFlightModeV1Pckg, a packaged CTelephony::TFlightModeV1.
1786 Pass CancelAsync() CTelephony::EFlightModeChangeCancel to cancel.
1789 @ref CTelephony::NotifyChange
1791 EFlightModeChange, // 0
1793 Register interest for receiving a notification for phone indicator changes.
1795 New indicators returned in a CTelephony::TIndicatorV1Pckg, a packaged CTelephony::TIndicatorV1.
1797 Pass CancelAsync() CTelephony::EIndicatorChangeCancel to cancel.
1800 @ref CTelephony::NotifyChange
1802 EIndicatorChange, // 1
1804 Register interest for receiving a notification for Battery information changes.
1806 New Battery information returned in a CTelephony::TBatteryInfoV1Pckg, a packaged CTelephony::TBatteryInfoV1.
1808 Pass CancelAsync() CTelephony::EBatteryInfoChangeCancel to cancel.
1811 @ref CTelephony::NotifyChange
1813 EBatteryInfoChange, // 2
1815 Register interest for receiving a notification for Signal Strength changes.
1817 New Signal Strength returned in a CTelephony::TSignalStrengthV1Pckg, a packaged CTelephony::TSignalStrengthV1.
1819 Pass CancelAsync() CTelephony::ESignalStrengthChangeCancel to cancel.
1822 @ref CTelephony::NotifyChange
1824 ESignalStrengthChange, // 3
1826 Register interest for receiving a notification for Icc Pin1 Lock Information changes.
1828 New Icc Pin1 Lock Information returned in a CTelephony::TIccLockInfoV1Pckg, a packaged CTelephony::TIccLockInfoV1.
1830 Pass CancelAsync() CTelephony::EPin1LockInfoChangeCancel to cancel.
1832 @capability ReadDeviceData
1833 @ref CTelephony::NotifyChange
1835 EPin1LockInfoChange, // 4
1837 Register interest for receiving a notification for Icc Pin2 Lock Information changes.
1839 New Icc Pin2 Lock Information returned in a CTelephony::TIccLockInfoV1Pckg, a packaged CTelephony::TIccLockInfoV1.
1841 Pass CancelAsync() CTelephony::EPin2LockInfoChangeCancel to cancel.
1843 @capability ReadDeviceData
1844 @ref CTelephony::NotifyChange
1846 EPin2LockInfoChange, // 5
1848 Register interest for receiving a notification for Voice Line Status changes.
1850 New Voice Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
1852 Pass CancelAsync() CTelephony::EVoiceLineStatusChangeCancel to cancel.
1855 @ref CTelephony::NotifyChange
1857 EVoiceLineStatusChange, // 6
1859 Register interest for receiving a notification for owned Call 1 Status changes.
1861 New Call 1 Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
1863 Pass CancelAsync() CTelephony::EOwnedCall1StatusChangeCancel to cancel.
1866 @ref CTelephony::NotifyChange
1868 EOwnedCall1StatusChange, // 7
1870 Register interest for receiving a notification for owned Call 2 Status changes.
1872 New Call 2 Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
1874 Pass CancelAsync() CTelephony::EOwnedCall2StatusChangeCancel to cancel.
1877 @ref CTelephony::NotifyChange
1879 EOwnedCall2StatusChange, // 8
1881 Register interest for receiving a notification for Call 1 Remote Party Info changes.
1883 New Call 1 Remote Party Info returned in a CTelephony::TRemotePartyInfoV1Pckg, a packaged CTelephony::TRemotePartyInfoV1.
1885 Pass CancelAsync() CTelephony::EOwnedCall1RemotePartyInfoChangeCancel to cancel.
1887 @capability ReadUserData
1888 @ref CTelephony::NotifyChange
1890 EOwnedCall1RemotePartyInfoChange, // 9
1892 Register interest for receiving a notification for Call 2 Remote Party Info changes.
1894 New Call 2 Remote Party Info returned in a CTelephony::TRemotePartyInfoV1Pckg, a packaged CTelephony::TRemotePartyInfoV1.
1896 Pass CancelAsync() CTelephony::EOwnedCall2RemotePartyInfoChangeCancel to cancel.
1898 @capability ReadUserData
1899 @ref CTelephony::NotifyChange
1901 EOwnedCall2RemotePartyInfoChange, // 10
1903 Register interest for receiving a notification for Network registration status changes.
1905 New Network registration status returned in a CTelephony::TNetworkRegistrationV1Pckg, a packaged CTelephony::TNetworkRegistrationV1.
1907 Pass CancelAsync() CTelephony::ENetworkRegistrationStatusChangeCancel to cancel.
1910 @ref CTelephony::NotifyChange
1912 ENetworkRegistrationStatusChange, // 11
1914 Register interest for receiving a notification for Network information changes.
1916 New Network information returned in a CTelephony::TNetworkInfoV1Pckg, a packaged CTelephony::TNetworkInfoV1.
1918 Pass CancelAsync() CTelephony::ECurrentNetworkInfoChangeCancel to cancel.
1920 @capability ReadDeviceData
1921 @ref CTelephony::NotifyChange
1923 ECurrentNetworkInfoChange, // 12
1925 Register interest for receiving a notification for Fax Line Status changes.
1927 New Fax Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
1929 Pass CancelAsync() CTelephony::EFaxLineStatusChangeCancel to cancel.
1932 @ref CTelephony::NotifyChange
1934 EFaxLineStatusChange, // 13
1936 Register interest for receiving a notification for Data Line Status changes.
1938 New Data Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
1940 Pass CancelAsync() CTelephony::EDataLineStatusChangeCancel to cancel.
1943 @ref CTelephony::NotifyChange
1945 EDataLineStatusChange // 14
1950 IMPORT_C static CTelephony* NewLC();
1951 IMPORT_C static CTelephony* NewL();
1953 // Destructor - virtual and class not intended
1954 // for derivation, so not exported
1958 // General Functionality
1959 inline TVersion Version() const;
1961 // Phone Functionality
1962 IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TDes8& aId) const;
1963 IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TDes8& aId) const;
1964 IMPORT_C void GetFlightMode(TRequestStatus& aReqStatus, TDes8& aMode) const;
1965 IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const;
1966 IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TDes8& aBatteryInfo) const;
1967 IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TDes8& aSignalStrength) const;
1968 IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, const TIccLock& aLock, TDes8& aLockInfo) const;
1969 IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
1970 // Line Functionality
1971 IMPORT_C TInt GetLineStatus(const TPhoneLine& aLine, TDes8& aStatus) const;
1972 IMPORT_C TInt GetCallInfo(TDes8& aCallSelect, TDes8& aCallInfo, TDes8& aRemoteInfo) const;
1973 // Call Functionality
1974 IMPORT_C void DialNewCall(TRequestStatus& aStatus, TDes8& aCallParams,
1975 const TTelNumber& aTelNumber, TCallId& aCallId, const TPhoneLine aLine=EVoiceLine) const;
1976 IMPORT_C TInt GetCallDynamicCaps(const TCallId& aCallId, TDes8& aCallCaps) const;
1977 IMPORT_C TInt GetCallStatus(const TCallId& aCallId, TDes8& aCallStatus) const;
1978 IMPORT_C void Hold(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
1979 IMPORT_C void Resume(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
1980 IMPORT_C void Swap(TRequestStatus& aReqStatus, const TCallId& aCallId1,
1981 const TCallId& aCallId2) const;
1982 IMPORT_C void Hangup(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
1983 IMPORT_C void AnswerIncomingCall(TRequestStatus& aReqStatus, TCallId& aCallId,
1984 const TPhoneLine aLine=EVoiceLine) const;
1985 // Network Functionality
1986 IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TDes8& aStatus) const;
1987 IMPORT_C void GetCurrentNetworkInfo(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
1988 IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName) const;
1989 IMPORT_C void GetOperatorName(TRequestStatus& aReqStatus, TDes8& aOperator) const;
1990 // (Basic) Supplementary Services Functionality
1991 IMPORT_C void GetCallForwardingStatus(TRequestStatus& aRequestStatus, const TCallForwardingCondition aCondition, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
1992 IMPORT_C void GetCallBarringStatus(TRequestStatus& aRequestStatus, const TCallBarringCondition aCondition, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
1993 IMPORT_C void GetCallWaitingStatus(TRequestStatus& aRequestStatus, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
1994 IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, const TIdentityService& aService, TDes8& aStatus) const;
1995 // Cancel Request Functionality
1996 IMPORT_C TInt CancelAsync(TCancellationRequest aCancel) const;
1997 // Notification Functionality
1998 IMPORT_C void NotifyChange(TRequestStatus& aReqStatus, const TNotificationEvent& aEvent, TDes8& aDes) const;
2000 IMPORT_C TInt FindDeviceStatus(TInt& aCallStatus);
2001 IMPORT_C TInt EstablishDataCall(TInt& aDataChannel, const TDesC& aDialNumber);
2002 IMPORT_C void EstablishDataCall(TRequestStatus& aRequestStatus, TInt& aDataChannel, const TDesC& aDialNumber);
2003 IMPORT_C TInt TerminateDataCall();
2004 IMPORT_C TInt ReceiveDataCall(TInt& aDataChannel);
2005 IMPORT_C void ReceiveDataCall(TRequestStatus& aRequestStatus, TInt& aDataChannel);
2006 IMPORT_C void CancelEstablishDataCall();
2007 IMPORT_C void CancelReceiveDataCall();
2010 CTelephony(); // C++ constructor - not exported. Called from NewLC()
2011 void ConstructL(); // second-phase constructor
2012 CTelephonyFunctions* iTelephonyFunctions; ///< Object to do the real work
2015 #include <telephony.inl>
2016 #endif // ETEL3RDPARTY_H__