upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / include / common / TelNetwork.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 /**
22 * @open
23 * @ingroup      TelephonyAPI
24 * @addtogroup  Network_TAPI     Network
25 * @{
26 *
27 * @file TelNetwork.h
28
29      @brief This file serves as a "C" header file and defines structures for Tapi Network Services\n
30       It contains a sample set of constants, enums, structs that would be required by applications.
31  */
32
33 #ifndef _TEL_NETWORK_H_
34 #define _TEL_NETWORK_H_
35
36 #include <TapiCommon.h>
37
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42
43 #define TAPI_NETWORK_ORDER_MAX                                  5               /**< Maximum network order */
44 #define TAPI_NETWORK_LIST_MAX                                   15              /**< Maximum network list */
45 #define TAPI_NETWORK_NAME_LEN_MAX                               40              /**< Maximum network name or PLMN name length*/
46 #define TAPI_NETWORK_SPN_LEN_MAX                                20              /**< Maximum network service provider name length */
47 #define TAPI_PREFERRED_PLMN_RECORDS_MAX                 150             /**< Maximum record length for preferred plmn list*/
48 #define TAPI_NETWORK_DISPLAY_INFO_ELEMENTS              4               /**< Maximum network Display info element length */
49 #define TAPI_NETWORK_HOMEZONE_TAG_MAX_LEN               13              /**< Maximum Network  Home zone tag  length */
50 #define TAPI_NETWORK_CS_DISP_INDEX                              0               /**< Maximum   Network CS display index length */
51 #define TAPI_NETWORK_PS_DISP_INDEX                              1               /**< Maximum  Network PS display index  length */
52 #define TAPI_NETWORK_SVC_DISP_INDEX                             2               /**< Maximum  Network SVC display index length */
53 #define TAPI_NETWORK_ROAM_DISP_INDEX                    3               /**< Maximum  Network roaming display index length */
54 #define TAPI_NETWORK_SUBS_SVC_NUM_MAX                   6               /**< Maximum number of the Subscriber's services */
55 #define TAPI_NETWORK_SUBS_NUM_LEN_MAX                   40              /**< Maximum Subscriber Number Length */
56 #define TAPI_NETWORK_SUBS_ALPHA_LEN_MAX                 16              /**< Maximum Subscriber Name Length */
57
58 /**
59  * @enum TelNetworkSelectionMode_t
60  *  This enumeration defines the network selection modes.
61  */
62 typedef enum
63 {
64         TAPI_NETWORK_SELECTIONMODE_AUTOMATIC,                           /**< Network selection is in Automatic selection mode*/
65         TAPI_NETWORK_SELECTIONMODE_MANUAL,                              /**< Network selection is in Manual selection mode */
66         TAPI_NETWORK_SELECTIONMODE_GLOBAL_AUTOMAITIC,   /**<Global Automatic */
67         TAPI_NETWORK_SELECTIONMODE_CDMA                 /**<CDMA selection*/
68 } TelNetworkSelectionMode_t;
69
70 /**
71  * @enum TelNetworkSystemIdFormat_t
72  * This enumeration defines the System ID Formats.
73  */
74 typedef enum
75 {
76         TAPI_NETWORK_SYSID_FORMAT_SID,          /**< System ID - Format used  in CDMA. */
77         TAPI_NETWORK_SYSID_FORMAT_PLMN          /**< PLMN id - Format used in GSM/3G */
78 }TelNetworkSystemIdFormat_t;
79
80 /**
81  * @enum TelNetworkServiceDomain_t
82  * This enumeration defines the network service domains .
83  */
84 typedef enum
85 {
86         TAPI_NETWORK_SERVICE_DOMAIN_COMBINED,           /**< This member sets the Circuit switch   and Packet Switch domain */
87         TAPI_NETWORK_SERVICE_DOMAIN_PS,                         /**< This member sets the Packet Switch service domain */
88         TAPI_NETWORK_SERVICE_DOMAIN_CS,                         /**< This member sets the Circuit Switch service domain */
89         TAPI_NETWORK_SERVICE_DOMAIN_AUTOMATIC           /**< This member sets the service domain to Circuit Switch and Packet Switch or Circuit Switch or Packet Switch domain */
90 } TelNetworkServiceDomain_t;
91
92 /**
93  * @enum TelNetworkMode_t
94  * This enumeration defines the network modes.
95  */
96 typedef enum
97 {
98         TAPI_NETWORK_MODE_NONE,                 /**< This member sets the emergency network mode */
99         TAPI_NETWORK_MODE_EMERGENCY,    /**< This member sets the emergency network mode*/
100         TAPI_NETWORK_MODE_AUTOMATIC,    /**< This member sets the automatic network mode. Based on OEM priority, network mode preference will be used */
101         TAPI_NETWORK_MODE_CDMA,                 /**< This member sets the network mode to CDMA */
102         TAPI_NETWORK_MODE_GSM,                  /**< This member sets the network mode to GSM */
103         TAPI_NETWORK_MODE_WCDMA,                /**< This member sets the network mode to WCDMA  */
104         TAPI_NETWORK_MODE_WLAN                  /**< This member sets the network mode to WLAN */
105 }TelNetworkMode_t;
106
107 /**
108  * @enum TelNetworkServiceLevel_t
109  * This enumeration defines the status of network service.
110  */
111 typedef enum
112 {
113         TAPI_NETWORK_SERVICE_LEVEL_NO,                  /**< No service available in the network ME is camped */
114         TAPI_NETWORK_SERVICE_LEVEL_EMERGENCY,   /**< Only emergency service available in the network ME is camped */
115         TAPI_NETWORK_SERVICE_LEVEL_FULL,                /**< FULL service available in the network ME is camped */
116         TAPI_NETWORK_SERVICE_LEVEL_SEARCH               /**< Searching for service */
117 }TelNetworkServiceLevel_t;
118
119 /**
120  * @enum TelNetworkServiceLevel_t
121  * This enumeration defines the service types of TAPI.
122  */
123 typedef enum
124 {
125         TAPI_NETWORK_SERVICE_TYPE_NO_SVE,               /**< No service  (This enumeration is not applicable for OEM_TAPI_NW_select_network_req API) */
126         TAPI_NETWORK_SERVICE_TYPE_LIMITED,              /**< Limited service available in the camped network  (This enumeration is not applicable for OEM_TAPI_NW_select_network_req API) */
127         TAPI_NETWORK_SERVICE_TYPE_CS,                   /**< CS service available in the camped network */
128         TAPI_NETWORK_SERVICE_TYPE_PS,                   /**< PS service available in the camped network */
129         TAPI_NETWORK_SERVICE_TYPE_COMBINED              /**< Both CS and PS services available in the camped network */
130 }TelNetworkServiceType_t;
131
132 /**
133  * @enum TelNetworkSystemType_t
134  * This enumeration defines the system types of TAPI.
135  */
136 typedef enum
137 {
138         TAPI_NETWORK_SYSTEM_NO_SRV,                             /**< No Service available */
139         TAPI_NETWORK_SYSTEM_GSM,                                /**< Available service is GSM  */
140         TAPI_NETWORK_SYSTEM_GPRS,                               /**< Available service is GPRS */
141         TAPI_NETWORK_SYSTEM_EGPRS,                              /**< Available service is EGPRS  */
142         TAPI_NETWORK_SYSTEM_PCS1900,                    /**< Available service is PCS1900 band */
143         TAPI_NETWORK_SYSTEM_UMTS,                               /**< Available service is UMTS  */
144         TAPI_NETWORK_SYSTEM_GSM_AND_UMTS,               /**< Both GSM and UMTS systems available */
145         TAPI_NETWORK_SYSTEM_HSDPA,                              /**< Available service is hsdpa */
146         TAPI_NETWORK_SYSTEM_IS95A,                              /**< Available service is IS95A */
147         TAPI_NETWORK_SYSTEM_IS95B,                              /**< Available service is IS95B */
148         TAPI_NETWORK_SYSTEM_CDMA_1X,                    /**< Available service is CDMA 1X */
149         TAPI_NETWORK_SYSTEM_EVDO_REV_0, /**< Available service is EV-DO rev0 */
150         TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID, /**< Available service is  1X and EV-DO rev0 */
151         TAPI_NETWORK_SYSTEM_EVDO_REV_A, /**< Available service is  EV-DO revA */
152         TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID, /**< Available service is 1X and EV-DO revA */
153         TAPI_NETWORK_SYSTEM_EVDV,               /**< Available service is EV-DV */
154 } TelNetworkSystemType_t;
155
156 /**
157  *  @enum TelNetworkBandPreferred_t
158  * This enumeration defines the operations that can be done on network Band.
159  */
160 typedef enum
161 {
162         TAPI_NETWORK_BAND_MODE_PREFERRED = 0x01,                 /**<  Preferred band. (If preferred Band is not available, then underlying modem can search on other bands) */
163         TAPI_NETWORK_BAND_MODE_ONLY = 0x02,                              /**<   This allows only particular band. */
164 } TelNetworkBandPreferred_t;
165
166 /**
167  * @enum TelNetworkBand_t
168  * This enumeration defines different network Bands.
169  */
170 typedef enum
171 {
172         TAPI_NETWORK_BAND_TYPE_ANY = 0x00,              /**< All bands can be tried. */
173         TAPI_NETWORK_BAND_TYPE_GSM850,                  /**< This member sets the band to GSM 850 */
174         TAPI_NETWORK_BAND_TYPE_GSM_900_1800,    /**< This member sets the band to GSM 900_1800 */
175         TAPI_NETWORK_BAND_TYPE_GSM1900,                 /**< GSM 1900*/
176         TAPI_NETWORK_BAND_TYPE_GSM,                             /**< This member sets all GSM bands */
177         TAPI_NETWORK_BAND_TYPE_WCDMA,                   /**< This member sets all WCDMA bands */
178         TAPI_NETWORK_BAND_TYPE_WCDMA850,                /**< This member sets the band to WCDMA 850 */
179         TAPI_NETWORK_BAND_TYPE_WCDMA1900,               /**< This member sets the band to WCDMA 1900 */
180         TAPI_NETWORK_BAND_TYPE_WCDMA2100,               /**< This member sets the band to WCDMA 2100 */
181         TAPI_NETWORK_BAND_TYPE_GSM900,                  /**< GSM 900*/
182         TAPI_NETWORK_BAND_TYPE_GSM1800, /**< This member sets the band to GSM 1800 */
183         TAPI_NETWORK_BAND_TYPE_GSM_850_1900     /**< This member sets the band to GSM 850_1900 */
184 } TelNetworkBand_t;
185
186 /**
187  * @enum TelNetworkOperationCause_t
188  * This enumeration defines different network operation cause.
189  */
190 typedef enum
191 {
192         TAPI_NETWORK_NO_ERR = 0x00,                                     /**< There is no error for any network operation.  */
193         TAPI_NETWORK_OPERATION_FAILED,                          /**< There is an error for any network operation.  */
194         TAPI_NETWORK_PHONE_IN_USE_ERR,                          /**< This error will be returned when any network operation is tried while phone is in use(eg, Voice / Data call in progress due to which network operation failed) */
195         TAPI_NETWORK_OFFLINE_ERR,                                       /**< This error is sent when any network option is tried when phone is in offline mode */
196         TAPI_NETWORK_CONFIG_SETTINGS_FAILURE_ERR,       /**< This error is sent when modem is unable to process the config settings information. */
197         TAPI_NETWORK_INTERNAL_FAILURE_ERR,                      /**< This error to indicate internal failure */
198         TAPI_NETWORK_MEMORY_FULL_ERR                            /**< This error is caused by memory full */
199 } TelNetworkOperationCause_t;
200
201 /**
202 * @enum TelNetworkDayLightSavingAdj_t
203 * This enumeration defines the day light saving adjustment time.
204 */
205 typedef enum
206 {
207         TAPI_NETWORK_DLS_ADJ_NO_ADJUSTMENT,             /**< No adjustment specified on day light saving */
208         TAPI_NETWORK_DLS_ADJ_PLUS_ONE_HOUR,             /**< Day light saving adjusted for one hour */
209         TAPI_NETWORK_DLS_PLUS_TWO_HOUR                  /**< Day light saving adjusted for two hours */
210 }TelNetworkDayLightSavingAdj_t;
211
212
213 /**
214  * @enum TelNetworkPowerOnAttach_t
215  * This enumeration defines operation that can be done on power on attach.
216  */
217 typedef enum
218 {
219         TAPI_NETWORK_POWERON_ATTACH_DISABLE = 0x00,             /**< Network Power on attach  disable */
220         TAPI_NETWORK_POWERON_ATTACH_ENABLE = 0x01,              /**< Network Power on attach enable */
221 } TelNetworkPowerOnAttach_t;
222
223 /**
224  * @enum TelNetworkPrefferedPlmnOp_t
225  * This enumeration defines the operation that can be done on preferred PLMN.
226  */
227 typedef enum
228 {
229         TAPI_NETWORK_PREF_PLMN_ADD=0x01,                        /**< Addition to  Network Preferred Plmn list*/
230         TAPI_NETWORK_PREF_PLMN_EDIT,                            /**< Edit the network Preferred Plmn list */
231         TAPI_NETWORK_PREF_PLMN_DELETE                           /**< Delete the entry to network Preferred Plmn list*/
232 }TelNetworkPrefferedPlmnOp_t;
233
234 typedef enum
235 {
236         TAPI_NETWORK_NUM_TYPE_UNKNOWN,
237         TAPI_NETWORK_NUM_TYPE_INTERNATIONAL,
238         TAPI_NETWORK_NUM_TYPE_NATIONAL,
239         TAPI_NETWORK_NUM_TYPE_NETWORK,
240         TAPI_NETWORK_NUM_TYPE_DEDICATE,
241         TAPI_NETWORK_NUM_TYPE_OTHER = 0xFF
242 }TelNetworkSubsNumType_t;
243
244 typedef enum
245 {
246         TAPI_NETWORK_NUM_PLAN_UNKNOWN = 0x00,
247         TAPI_NETWORK_NUM_PLAN_ISDN = 0x01,
248         TAPI_NETWORK_NUM_PLAN_DATA = 0x03,
249         TAPI_NETWORK_NUM_PLAN_TELEX = 0x04,
250         TAPI_NETWORK_NUM_PLAN_NATIONAL = 0x08,
251         TAPI_NETWORK_NUM_PLAN_PRIVATE = 0x09,
252         TAPI_NETWORK_NUM_PLAN_RSVD_CTS = 0x0B,
253         TAPI_NETWORK_NUM_PLAN_RSVD_EXT = 0x0F,
254         TAPI_NETWORK_NUM_PLAN_OTHER = 0xFF
255 }TelNetworkSubsNumPlan_t;
256
257 /**
258  * @enum TelNetworkPowerOnAttach_t
259  * This enumeration defines operation that can be done on power on attach.
260  * It is used on CDMA.
261  */
262 typedef enum
263 {
264         TAPI_NETWORK_SERVING_CARRIER_TEST = 0x00,                       /**< TestBed */
265         TAPI_NETWORK_SERVING_CARRIER_SKT,                                       /**< Korea SKT */
266         TAPI_NETWORK_SERVING_CARRIER_KTF,                                       /**< Korea KTF */
267         TAPI_NETWORK_SERVING_CARRIER_LGT,                                       /**< Korea LGT */
268         TAPI_NETWORK_SERVING_CARRIER_VERIZON = 0x11,            /**< US VERIZON */
269         TAPI_NETWORK_SERVING_CARRIER_SPRINT,                            /**< US SPRINT */
270         TAPI_NETWORK_SERVING_CARRIER_ALLTEL,                            /**< US ALLTEL */
271         TAPI_NETWORK_SERVING_CARRIER_METRO_PCS,                 /**< US METRO_PCS */
272         TAPI_NETWORK_SERVING_CARRIER_CELLULAR,                          /**< US CELLULAR */
273         TAPI_NETWORK_SERVING_CARRIER_CRIKET,                            /**< US CRIKET */
274         TAPI_NETWORK_SERVING_CARRIER_TELUS = 0x21,                      /**< CANADA TELUS */
275         TAPI_NETWORK_SERVING_CARRIER_BMC,                                       /**< CANADA BMC */
276         TAPI_NETWORK_SERVING_CARRIER_BWA,                                       /**< CANADA BWA */
277         TAPI_NETWORK_SERVING_CARRIER_CTC = 0x31,                        /**< CHINA CTC */
278         TAPI_NETWORK_SERVING_CARRIER_UNKNOWN = 0xFF             /**< SERVING NETWORK UNKNOWN */
279 } TelNetworkServCarrierType_t;
280
281 /**
282  * @enum TelNetworkPlmnType_t
283  * This structure defines Network Plmn type.
284  */
285 typedef enum
286 {
287         TAPI_UNKNOWN_PLMN=0,                            /**< Network Plmn type Unknown */
288         TAPI_HOME_PLMN ,                                        /**< Network Plmn type Home Plmn */
289         TAPI_AVAILABLE_PLMN,                            /**< Network Plmn Available */
290         TAPI_FORBIDDEN_PLMN,                            /**< Network Plmn Forbidden */
291 }TelNetworkPlmnType_t;
292
293 /**
294  * @enum TelNetworkHomeZoneCommand_t
295  * This enumeration defines network home zone command.
296  */
297 typedef enum
298 {
299         TAPI_NETWORK_ZONEINFO_NONE,                             /**< Network Zone info none */
300         TAPI_NETWORK_ZONEINFO_IND,                              /**< Network Zone info indication */
301         TAPI_NETWORK_ZONEINFO_CLEAR                             /**< Network Zone info clear */
302 }TelNetworkHomeZoneCommand_t;
303
304 /**
305  * @enum TelNetworkHomeZone_t
306  * This enumeration defines network home zone type.
307  */
308 typedef enum
309 {
310         TAPI_NETWORK_ZONE_NONE,                                 /**< Network Zone Type none */
311         TAPI_NETWORK_ZONETYPE_HOMEZONE,         /**< Network Zone Type Home zone */
312         TAPI_NETWORK_ZONETYPE_CITYZONE,                 /**< Network Zone Type City zone */
313 }TelNetworkHomeZone_t;
314
315 /**
316  * @enum TelNetworkNameDispCondition_t
317  * This enumeration defines network name display condition type.
318  */
319 typedef enum
320 {
321         TAPI_NETWORK_DISP_INVALID= 0x00,
322         TAPI_NETWORK_DISP_SPN = 0x01,
323         TAPI_NETWORK_DISP_PLMN = 0x02,
324         TAPI_NETWORK_DISP_SPN_PLMN = 0x03,
325 }TelNetworkNameDispCondition_t;
326
327 /**
328  * @enum TelNetworkPrefNetType_t
329  * This enumeration defines CDMA Preferred Network Type(CDMA only).
330  */
331 typedef enum
332 {
333     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC = 0x01,                /**< 0x01 : AUTOMATIC */
334     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC_A,                     /**<  0x02 : AUTOMATIC A */
335     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC_B,                     /**<  0x03 : AUTOMATIC B */
336     TAPI_NETWORK_PREF_NET_TYPE_HOME_ONLY,                       /**<  0x04 : HOME ONLY */
337     TAPI_NETWORK_PREF_NET_TYPE_ROAM_ONLY,                       /**<  0x05 : ROAM ONLY */
338 } TelNetworkPrefNetType_t;
339
340 /**
341  * @enum TelNetworkPrlPrefOnly_t
342  * This enumeration defines CDMA PRL Preferred Only field stored in the PRL(CDMA only).
343  */
344 typedef enum
345 {
346     TAPI_NETWORK_PRL_PREF_ONLY_OFF,                     /**< Preferred Only is FALSE */
347     TAPI_NETWORK_PRL_PREF_ONLY_ON,                      /**< Preferred Only is TRUE */
348     TAPI_NETWORK_PRL_PREF_ONLY_NONE                     /**< There isn't Preferred Only Option */
349 } TelNetworkPrlPrefOnly_t;
350
351 /**
352  * @enum TelNetworkCDMAHybridMode_t
353  * This enumeration defines CDMA Hybrid Mode State(CDMA only).
354  */
355 typedef enum
356 {
357     TAPI_NETWORK_CDMA_HYBRID = 0x01,    /**< 0x01 : HYBRID(1X + EVDO) */
358     TAPI_NETWORK_CDMA_1X_ONLY,          /**< 0x02 : 1X ONLY */
359     TAPI_NETWORK_CDMA_EVDO_ONLY,                /**< 0x03 : EVDO ONLY */
360 }TelNetworkCDMAHybridMode_t;
361
362 /**
363  * This structure defines the network time and zone information.
364  */
365 typedef struct {
366         unsigned short Year; /**< Year information  */
367         unsigned short Month; /**< Month information */
368         unsigned short Day; /**< Day */
369         unsigned short Hour; /**< Hour */
370         unsigned short Minute; /**< Minute */
371         unsigned short Second; /**< Second */
372         unsigned short TimeZone; /**< Network time zone */
373         TelNetworkDayLightSavingAdj_t DaylightSave; /**< day light saving adjustment time */
374 } TelNetworkTimeAndZone_t;
375
376 /**
377  * This structure defines the network system information.
378  */
379 typedef struct {
380         TelNetworkSystemType_t SystemType; /**< Network system technologies like GSM, CDMA, WCDMA, WLAN etc */
381         TelNetworkServiceType_t ServiceType; /**< Network service type - Cs, Ps or combined */
382         TelNetworkSystemIdFormat_t SysIdFormat; /**< SID or PLMN based on system type */
383         TelNetworkMode_t NetworkMode; /**< Network mode Information */
384         unsigned long SysId; /**< PLMN Information */
385         int bPlmnForbidden; /**< Forbidden PLMN or Not */
386         int bHome; /**< Home PLMN Or not */
387         int bEquivalentPlmn; /**< Equivalent PLMN Or not */
388         int bNetworkIdentityAvail; /**< Network Identity Available or not */
389         int bNetworkTimeAvail; /**< Network Time Available or not */
390         int bNetworkTimeZoneAvail; /**< Network Timezone Available or not */
391         int bNetworkDlsAvail; /**< Network DLS available or not */
392         char szSystemName[TAPI_NETWORK_NAME_LEN_MAX]; /**< PLMN Name or Network Name (Null terminated string) */
393         char szSpn[TAPI_NETWORK_SPN_LEN_MAX]; /**< Service Provider Name (Null Terminated string) */
394         TelNetworkTimeAndZone_t NetworkTimeZone; /**< If NetwotkTimezone present, then timezone value */
395         int bMncIncludesPcsDigit; /**< To determine whether PLMN is US PLMN or not */
396 } TelNetworkSystemId_t;
397
398 /**
399  * This structure has information related to cdma system.
400  */
401 typedef struct {
402         TelNetworkServCarrierType_t carrier; /**< for CDMA, Optional */
403         unsigned short system_id; /**< for CDMA, Mandatory */
404         unsigned short network_id; /**< for CDMA, Mandatory */
405         unsigned short base_station_id; /**< for CDMA, Mandatory */
406         unsigned short base_station_latitude; /**< for CDMA, Mandatory */
407         unsigned short base_station_longitude; /**< for CDMA, Mandatory */
408         unsigned short registration_zone; /**< for CDMA, Optional */
409         unsigned short pilot_offset; /**< for CDMA, Optional */
410 } TelNetworkCDMASysInfo_t;
411
412 /**
413  * This structure has network information.
414  */
415 typedef struct {
416         TelNetworkServiceLevel_t ServiceLevel; /**< Service level available( Full Service or Limited service etc) */
417         TelNetworkSystemId_t SysId; /**< System ID information */
418         int bRoaming; /**< Roaming PLMN or not*/
419         int bDisplaySpn; /**< Service Provider Name should be displayed or not */
420         int bDisplayRplmn; /**< Display of Registered PLMN required or not. */
421         unsigned short lac; /**< Location Area Code */
422         TelNetworkCDMASysInfo_t CdmaSysInfo; /**< CDMA System Information */
423 } TelNetworkInfo_t;
424
425 /**
426  * This structure defines the network list.
427  */
428 typedef struct {
429         unsigned int NumOfNwAvailable; /**< Count for Network list */
430         TelNetworkSystemId_t SystemList[TAPI_NETWORK_LIST_MAX]; /**< List of Networks available */
431 } TelNetworkList_t;
432
433 /**
434  * This structure defines the Radio information.
435  */
436 typedef struct {
437         unsigned short RxLevel; /**< Received radio signal level from the wireless stack.Radio signal strength indicator (RSSI) level.RSSI in positive dBm i.e. 75 means -75dBm.The valid range for AMPS:-110 to -89 dBm800 CDMA:-105 to -90 dBm1900 CDMA: -108 to -93 dBm GSM/WCDMA: -105 to -60 dBm */
438         unsigned short RxQuality; /**< Radio signal quality received from the wireless stack.  */
439         unsigned short RssiBar; /**< Signal bars stating the signal strength */
440 } TelNetworkRadioInfo_t;
441
442 /**
443  * This structure defines the subscriber number information.
444  */
445 typedef struct {
446         TelNetworkSubsNumType_t type;
447         TelNetworkSubsNumPlan_t plan;
448         char number[TAPI_NETWORK_SUBS_NUM_LEN_MAX];
449         char name[TAPI_NETWORK_SUBS_ALPHA_LEN_MAX];
450 } TelNetworkSubscriber_t;
451
452 /**
453  * This structure defines the subscriber number list.
454  */
455 typedef struct {
456         unsigned int NumOfService; /**< Count for Network list */
457         TelNetworkSubscriber_t SubsList[TAPI_NETWORK_SUBS_SVC_NUM_MAX]; /**< List of Networks available */
458 } TelNetworkSubscriberList_t;
459
460 /**
461  *
462  * This structure defines the preferred plmn information.
463  */
464 typedef struct {
465         unsigned char Index; /**< Network Preferred Plmn list index */
466         unsigned char Plmn[6]; /**< Network Preferred Plmn */
467         char network_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network Name  */
468         char service_provider_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Service provider name */
469         TelNetworkSystemType_t SystemType; /**< Network system type */
470 } TelNetworkPrefferedPlmnInfo_t;
471
472 /**
473  *
474  * This structure defines the preferred plmn list.
475  */
476 typedef struct {
477         unsigned int NumOfPreffPlmns; /**< Number of preferred plmns in the list */
478         TelNetworkPrefferedPlmnInfo_t PreffPlmnRecord[TAPI_PREFERRED_PLMN_RECORDS_MAX]; /**< preferred plmns list */
479 } TelNetworkPrefferedPlmnList_t;
480
481 /**
482  * This structure defines the network & time zone information.
483  */
484 typedef struct {
485         int bNetworkIdentityAvail; /* if network name is carried in mm information, this shall be set as TRUE */
486         int bNetworkTimeAvail; /* if this is TURE, networkTime&Zone has a meaning, otherwise it can be ignore */
487         int bNetworkTimeZoneAvail; /* if this is TRUE, only network timezone has a meaning, otherwise it can be ignore*/
488         int bNetworkDlsAvail; /* if true, Daylight saving adjustment is valid */
489         char ShortName[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network short name */
490         char LongName[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network Long name*/
491         TelNetworkTimeAndZone_t NetworkTimeZone; /**< Network Time Zone */
492         unsigned long SysId; /**< PLMN Information */
493 } TelNetworkNitzInfo_t;
494
495 /**
496  *
497  * This structure defines the location area code and cell id.
498  */
499 typedef struct {
500         unsigned short LocationAreaCode; /**< Network Location area code */
501         unsigned long CellId; /**< Network Cell Id */
502 } TelNetworkLocationCellInfo_t;
503
504 /**
505  *
506  * This structure defines the network status .
507  */
508 typedef struct {
509         unsigned char svctype; /**< Network svc type  */
510         unsigned char roaming; /**< Network roaming  */
511 } TelNetworkStatus_t;
512
513 /**
514  *
515  * This structure defines the network Cs,Ps status.
516  */
517 typedef struct {
518         unsigned char cstype; /**< Network Cs type  */
519         unsigned char pstype; /**< Network Ps type  */
520 } TelNetworkCsPsStatus_t;
521
522 /**
523  *   TelNetworkIdentity_t
524  * This structure defines the network identity.
525  */
526 typedef struct {
527         char network_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network Name  */
528         char service_provider_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Service provider name */
529         unsigned int plmn_id; /**< PLMN ID */
530         TelNetworkPlmnType_t type_of_plmn; /**< PLMN type */
531         TelNetworkSystemType_t access_technology; /**< Access technology  */
532 } TelNetworkIdentity_t;
533
534 /**
535  *
536  * This structure defines the network Plmn list.
537  */
538 typedef struct {
539         char networks_count; /**< Network Plmn count  */
540         TelNetworkIdentity_t network_list[TAPI_NETWORK_LIST_MAX]; /**< Network list  */
541 } TelNetworkPlmnList_t;
542
543 /**
544  *
545  * This structure defines the network display info.
546  */
547 typedef struct {
548         int DisplayInfo[TAPI_NETWORK_DISPLAY_INFO_ELEMENTS]; /**< Network display info  */
549 } TelNetworkDisplayInfo_t;
550
551 typedef struct {
552         TelNetworkNameDispCondition_t DispCondition; /*Display condition of SPN & PLMN*/
553         unsigned char Spn[TAPI_NETWORK_SPN_LEN_MAX + 1]; /*Spn value*/
554         unsigned char Plmn[TAPI_NETWORK_NAME_LEN_MAX + 1]; /*PLMN value,  In 2G case if DispPlmn is true and the PLMN value is null then Network module has to display registered PLMN*/
555 } TelNetworkSpnPlmnDisplayInfo_t;
556
557 /**
558  *  * @struct TelNetworkSpnMccMncInfo_t
559  * This structure defines the network Spn, Mcc and Mnc info.
560  */
561 typedef struct {
562         int mcc; /**< Network mcc  */
563         int mnc; /**< Network Mnc  */
564         char bDispCondition; /**<Display condition */
565         char short_network_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network short Name  */
566         char spn_name[TAPI_NETWORK_NAME_LEN_MAX]; /**< Network spn Name  */
567 } TelNetworkSpnMccMncInfo_t;
568
569 /**
570  * @struct TelNetworkPrlPrefOnly_t
571  * This structure defines CDMA Preferred Network Setting(CDMA only).
572  */
573 typedef struct {
574         TelNetworkPrefNetType_t pref_net_type; /**< CDMA Network Preferred Type */
575         TelNetworkPrlPrefOnly_t prl_pref_only; /**< CDMA PRL Preferred Only */
576 } TelNetworkRoamingMode_t;
577
578 #ifdef __cplusplus
579 }
580 #endif
581
582 #endif // _TEL_NETWORK_H_
583
584 /**
585 * @}
586 */