tizen 2.3 release
[framework/telephony/libslp-tapi.git] / include / TelNetwork.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2014 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  * @file TelNetwork.h
23  */
24
25 /**
26  * @internal
27  * @addtogroup CAPI_TELEPHONY_SERVICE_NETWORK
28  * @{
29  */
30
31 #ifndef _TEL_NETWORK_H_
32 #define _TEL_NETWORK_H_
33
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38
39 /**
40  * @brief Definition for the maximum network order.
41  * @since_tizen 2.3
42  */
43 #define TAPI_NETWORK_ORDER_MAX                                  5
44
45 /**
46  * @brief Definition for the maximum network list.
47  * @since_tizen 2.3
48  */
49 #define TAPI_NETWORK_LIST_MAX                                   15
50
51 /**
52  * @brief Definition for the maximum length of the network PLMN.
53  * @since_tizen 2.3
54  */
55 #define TAPI_NETWORK_PLMN_LEN_MAX                               6
56
57 /**
58  * @brief Definition for the maximum length of the network name.
59  * @since_tizen 2.3
60  */
61 #define TAPI_NETWORK_NAME_LEN_MAX                               40
62
63 /**
64  * @brief Definition for the maximum length of the network service provider's name.
65  * @since_tizen 2.3
66  */
67 #define TAPI_NETWORK_SPN_LEN_MAX                                20
68 /**
69  * @brief Definition for the maximum records of the preferred PLMN list.
70  * @since_tizen 2.3
71  */
72 #define TAPI_PREFERRED_PLMN_RECORDS_MAX                 150
73
74 /**
75  * @brief Definition for the maximum network display info elements.
76  * @since_tizen 2.3
77  */
78 #define TAPI_NETWORK_DISPLAY_INFO_ELEMENTS              4
79
80 /**
81  * @brief Definition for the maximum length of the network home zone tag.
82  * @since_tizen 2.3
83  */
84 #define TAPI_NETWORK_HOMEZONE_TAG_MAX_LEN               13
85
86 /**
87  * @brief Definition for the maximux network CS display index.
88  * @since_tizen 2.3
89  */
90 #define TAPI_NETWORK_CS_DISP_INDEX                              0
91
92 /**
93  * @brief Definition for the maximum network PS display index.
94  * @since_tizen 2.3
95  */
96 #define TAPI_NETWORK_PS_DISP_INDEX                              1
97
98 /**
99  * @brief Definition for the maximum network SVC display index.
100  * @since_tizen 2.3
101  */
102 #define TAPI_NETWORK_SVC_DISP_INDEX                             2
103
104 /**
105  * @brief Definition for the maximum network roaming display index.
106  * @since_tizen 2.3
107  */
108 #define TAPI_NETWORK_ROAM_DISP_INDEX                    3
109
110 /**
111  * @brief Definition for the maximum number of subscriber services.
112  * @since_tizen 2.3
113  */
114 #define TAPI_NETWORK_SUBS_SVC_NUM_MAX                   6
115
116 /**
117  * @brief Definition for the maximum length of the subscriber number.
118  * @since_tizen 2.3
119  */
120 #define TAPI_NETWORK_SUBS_NUM_LEN_MAX                   40
121
122 /**
123  * @brief Definition for the maximum length of the subscriber name.
124  * @since_tizen 2.3
125  */
126 #define TAPI_NETWORK_SUBS_ALPHA_LEN_MAX                 16
127
128 /**
129  * @brief Definition for the maximum GERAN neighboring cell list.
130  * @since_tizen 2.3
131  */
132 #define TAPI_NETWORK_GERAN_NEIGHBORING_CELL_LIST_MAX 6
133
134 /**
135  * @brief Definition for the maximum UMTS neighboring cell list.
136  * @since_tizen 2.3
137  */
138 #define TAPI_NETWORK_UMTS_NEIGHBORING_CELL_LIST_MAX 24
139
140 /* This value defines the network mode */
141 /**
142  * @brief Definition for the "set network mode to automatic" value.
143  * @since_tizen 2.3
144  */
145 #define TAPI_NETWORK_MODE_AUTO          0x00
146
147 /**
148  * @brief Definition for "set network mode to GSM" value.
149  * @since_tizen 2.3
150  */
151 #define TAPI_NETWORK_MODE_GSM           0x01
152
153 /**
154  * @brief Definition for the "set network mode to WCDMA" value.
155  * @since_tizen 2.3
156  */
157 #define TAPI_NETWORK_MODE_WCDMA         0x02
158
159 /**
160  * @brief Definition for the "set network mode to 1XRTT" value.
161  * @since_tizen 2.3
162  */
163 #define TAPI_NETWORK_MODE_1XRTT         0x04
164
165 /**
166  * @brief Definition for the "set network mode to LTE" value.
167  * @since_tizen 2.3
168  */
169 #define TAPI_NETWORK_MODE_LTE           0x08
170
171 /**
172  * @brief Definition for the "set network mode to EVDO" value.
173  * @since_tizen 2.3
174  */
175 #define TAPI_NETWORK_MODE_EVDO          0x10
176
177 /**
178  * @brief Definition for the "set network mode to CDMA" value.
179  * @since_tizen 2.3
180  */
181 #define TAPI_NETWORK_MODE_CDMA          0x14
182
183 /**
184  * @brief Enumeration for the network selection modes.
185  * @since_tizen 2.3
186  */
187 typedef enum {
188         TAPI_NETWORK_SELECTIONMODE_AUTOMATIC,   /**< Network selection is in the Automatic selection mode */
189         TAPI_NETWORK_SELECTIONMODE_MANUAL       /**< Network selection is in the Manual selection mode (Not applicable to CDMA) */
190 } TelNetworkSelectionMode_t;
191
192 /**
193  * @brief Enumeration for the network emergency callback mode states (3GPP2 specific enum).
194  * @since_tizen 2.3
195  */
196 typedef enum {
197         TAPI_NETWORK_EMERGENCY_CALLBACK_MODE_ENTER,     /**< Enter emergency callback mode */
198         TAPI_NETWORK_EMERGENCY_CALLBACK_MODE_EXIT       /**< Exit emergency callback mode */
199 } TelNetworkEmergencyCallbackMode_t;
200
201 /**
202  * @brief Enumeration for the status of the network service.
203  * @since_tizen 2.3
204  */
205 typedef enum {
206         TAPI_NETWORK_SERVICE_LEVEL_NO,                  /**< No service available in the network ME is camped */
207         TAPI_NETWORK_SERVICE_LEVEL_EMERGENCY,   /**< Only emergency service available in the network ME is camped */
208         TAPI_NETWORK_SERVICE_LEVEL_FULL,                /**< FULL service available in the network ME is camped */
209         TAPI_NETWORK_SERVICE_LEVEL_SEARCH               /**< Searching for service */
210 } TelNetworkServiceLevel_t;
211
212 /**
213  * @brief Enumeration for the service types of TAPI.
214  * @since_tizen 2.3
215  */
216 typedef enum {
217         TAPI_NETWORK_SERVICE_TYPE_UNKNOWN = 0x0,        /**< Service type is Unknown */
218         TAPI_NETWORK_SERVICE_TYPE_NO_SERVICE,           /**< No Service available */
219         TAPI_NETWORK_SERVICE_TYPE_EMERGENCY,            /**< Service type is Emergency */
220         TAPI_NETWORK_SERVICE_TYPE_SEARCH,                       /**< Service type is Searching */
221         TAPI_NETWORK_SERVICE_TYPE_2G,                           /**< Service type is 2G. In case of CDMA, service type is set to 2G when System Type is IS95A/IS95B/CDMA_1X */
222         TAPI_NETWORK_SERVICE_TYPE_2_5G,                         /**< Service type is 2.5G */
223         TAPI_NETWORK_SERVICE_TYPE_2_5G_EDGE,            /**< Service type is 2.5G (EDGE) */
224         TAPI_NETWORK_SERVICE_TYPE_3G,                           /**< Service type is 3G. In case of CDMA, service type is set to 3G when System Type is EVDO_REV_0/REV_A/REV_B/EHRPD */
225         TAPI_NETWORK_SERVICE_TYPE_HSDPA,                        /**< Service type is HSDPA */
226         TAPI_NETWORK_SERVICE_TYPE_LTE                           /**< Service type is LTE */
227 } TelNetworkServiceType_t;
228
229 /**
230  * @brief Enumeration for the system types of TAPI.
231  * @since_tizen 2.3
232  */
233 typedef enum
234 {
235         TAPI_NETWORK_SYSTEM_NO_SRV,                             /**< No Service available */
236         TAPI_NETWORK_SYSTEM_GSM,                                /**< Available service is GSM */
237         TAPI_NETWORK_SYSTEM_GPRS,                               /**< Available service is GPRS */
238         TAPI_NETWORK_SYSTEM_EGPRS,                              /**< Available service is EGPRS */
239         TAPI_NETWORK_SYSTEM_PCS1900,                    /**< Available service is PCS1900 band */
240         TAPI_NETWORK_SYSTEM_UMTS,                               /**< Available service is UMTS */
241         TAPI_NETWORK_SYSTEM_GSM_AND_UMTS,               /**< Both GSM and UMTS systems available */
242         TAPI_NETWORK_SYSTEM_HSDPA,                              /**< Available service is HSDPA */
243         TAPI_NETWORK_SYSTEM_IS95A,                              /**< Available service is IS95A */
244         TAPI_NETWORK_SYSTEM_IS95B,                              /**< Available service is IS95B */
245         TAPI_NETWORK_SYSTEM_CDMA_1X,                    /**< Available service is CDMA 1X */
246         TAPI_NETWORK_SYSTEM_EVDO_REV_0, /**< Available service is EV-DO rev0 */
247         TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID, /**< Available service is 1X and EV-DO rev0 */
248         TAPI_NETWORK_SYSTEM_EVDO_REV_A, /**< Available service is EV-DO revA */
249         TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID, /**< Available service is 1X and EV-DO revA */
250         TAPI_NETWORK_SYSTEM_EVDO_REV_B, /**< Available service is EV-DO revB */
251         TAPI_NETWORK_SYSTEM_1X_EVDO_REV_B_HYBRID, /**< Available service is 1X and EV-DO revB */
252         TAPI_NETWORK_SYSTEM_EVDV,               /**< Available service is EV-DV */
253         TAPI_NETWORK_SYSTEM_EHRPD,              /**< Available service is EHRPD */
254         TAPI_NETWORK_SYSTEM_LTE                 /**< Available service is LTE */
255 } TelNetworkSystemType_t;
256
257 /**
258  * @brief Enumeration for the different network bands.
259  * @since_tizen 2.3
260  */
261 typedef enum
262 {
263         TAPI_NETWORK_BAND_TYPE_ANY = 0x00,              /**< All bands can be tried */
264         TAPI_NETWORK_BAND_TYPE_GSM850,                  /**< This member sets the band to GSM 850 */
265         TAPI_NETWORK_BAND_TYPE_GSM_900_1800,    /**< This member sets the band to GSM 900_1800 */
266         TAPI_NETWORK_BAND_TYPE_GSM1900,                 /**< GSM 1900 */
267         TAPI_NETWORK_BAND_TYPE_GSM,                             /**< This member sets all GSM bands */
268         TAPI_NETWORK_BAND_TYPE_WCDMA,                   /**< This member sets all WCDMA bands */
269         TAPI_NETWORK_BAND_TYPE_WCDMA850,                /**< This member sets the band to WCDMA 850 */
270         TAPI_NETWORK_BAND_TYPE_WCDMA1900,               /**< This member sets the band to WCDMA 1900 */
271         TAPI_NETWORK_BAND_TYPE_WCDMA2100,               /**< This member sets the band to WCDMA 2100 */
272         TAPI_NETWORK_BAND_TYPE_GSM900,                  /**< GSM 900 */
273         TAPI_NETWORK_BAND_TYPE_GSM1800,                 /**< This member sets the band to GSM 1800 */
274         TAPI_NETWORK_BAND_TYPE_GSM_850_1900,    /**< This member sets the band to GSM 850_1900 */
275         TAPI_NETWORK_BAND_TYPE_LTE_BAND_4,              /**< This member sets the band to LTE BAND 4 */
276         TAPI_NETWORK_BAND_TYPE_LTE_BAND_17              /**< This member sets the band to LTE BAND 17 */
277 } TelNetworkBand_t;
278
279 /**
280  * @brief Enumeration for the different network operation causes.
281  * @since_tizen 2.3
282  */
283 typedef enum
284 {
285         TAPI_NETWORK_NO_ERR = 0x00,                                     /**< There is no error for any network operation */
286         TAPI_NETWORK_OPERATION_ABORTED,                         /**< This error is sent when an operation is aborted */
287         TAPI_NETWORK_OPERATION_FAILED,                          /**< There is an error for a network operation */
288         TAPI_NETWORK_PHONE_IN_USE_ERR,                          /**< This error will be returned when a network operation is tried while the phone is in use(eg: Voice / Data call in progress due to which network operation failed) */
289         TAPI_NETWORK_OFFLINE_ERR,                                       /**< This error is sent when a network option is tried when the phone is in the offline mode */
290         TAPI_NETWORK_CONFIG_SETTINGS_FAILURE_ERR,       /**< This error is sent when a modem is unable to process the config settings information */
291         TAPI_NETWORK_INTERNAL_FAILURE_ERR,                      /**< This error is used to indicate an internal failure */
292         TAPI_NETWORK_MEMORY_FULL_ERR                            /**< This error is caused when the memory is full */
293 } TelNetworkOperationCause_t;
294
295 /**
296  * @brief Enumeration for the operation that can be done on a preferred PLMN.
297  * @since_tizen 2.3
298  */
299 typedef enum
300 {
301         TAPI_NETWORK_PREF_PLMN_ADD=0x01,                        /**< Addition to the Network Preferred PLMN list */
302         TAPI_NETWORK_PREF_PLMN_EDIT,                            /**< Edit the network Preferred PLMN list */
303         TAPI_NETWORK_PREF_PLMN_DELETE                           /**< Delete the entry to the network Preferred PLMN list */
304 } TelNetworkPreferredPlmnOp_t;
305
306 /**
307  * @brief Enumeration for the network PLMN type.
308  * @since_tizen 2.3
309  */
310 typedef enum
311 {
312         TAPI_UNKNOWN_PLMN=0,                            /**< Network PLMN type - Unknown */
313         TAPI_HOME_PLMN ,                                        /**< Network PLMN type - Home PLMN */
314         TAPI_AVAILABLE_PLMN,                            /**< Network PLMN type - Available */
315         TAPI_FORBIDDEN_PLMN,                            /**< Network PLMN type - Forbidden */
316 }TelNetworkPlmnType_t;
317
318 /**
319  * @brief Enumeration for the network home zone command.
320  * @since_tizen 2.3
321  */
322 typedef enum
323 {
324         TAPI_NETWORK_ZONEINFO_NONE,                             /**< Network Zone info none */
325         TAPI_NETWORK_ZONEINFO_IND,                              /**< Network Zone info indication */
326         TAPI_NETWORK_ZONEINFO_CLEAR                             /**< Network Zone info clear */
327 }TelNetworkHomeZoneCommand_t;
328
329 /**
330  * @brief Enumeration for the network home zone type.
331  * @since_tizen 2.3
332  */
333 typedef enum
334 {
335         TAPI_NETWORK_ZONE_NONE,                                 /**< Network Zone Type none */
336         TAPI_NETWORK_ZONETYPE_HOMEZONE,             /**< Network Zone Type Home zone */
337         TAPI_NETWORK_ZONETYPE_CITYZONE,                 /**< Network Zone Type City zone */
338 }TelNetworkHomeZone_t;
339
340 /**
341  * @brief Enumeration for the network name display condition type.
342  * @since_tizen 2.3
343  */
344 typedef enum
345 {
346         TAPI_NETWORK_DISP_INVALID= 0x00,                /**< Invalid Display Condition */
347         TAPI_NETWORK_DISP_SPN = 0x01,                   /**< Display Condition is SPN */
348         TAPI_NETWORK_DISP_PLMN = 0x02,              /**< Display Condition is PLMN */
349         TAPI_NETWORK_DISP_SPN_PLMN = 0x03,          /**< Display Condition is SPN or PLMN */
350 }TelNetworkNameDispCondition_t;
351
352 /**
353  * @brief Enumeration for the CDMA Preferred Network Type(CDMA only).
354  * @since_tizen 2.3
355  */
356 typedef enum
357 {
358     TAPI_NETWORK_PREF_NET_TYPE_HOME_ONLY = 0,
359     TAPI_NETWORK_PREF_NET_TYPE_AFFILIATED = 1,
360     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC = 2,
361     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC_A = 3,
362     TAPI_NETWORK_PREF_NET_TYPE_AUTOMATIC_B = 4,
363     TAPI_NETWORK_PREF_NET_TYPE_ROAM_DOMESTIC = 5,
364     TAPI_NETWORK_PREF_NET_TYPE_ROAM_INTERNATIONAL = 6,
365     TAPI_NETWORK_PREF_NET_TYPE_ROAM_DUAL = 7,
366     TAPI_NETWORK_PREF_NET_TYPE_BLANK = 8,
367 } TelNetworkPrefNetType_t;
368
369 /**
370  * @brief Enumeration for the CDMA PRL Preferred Only field stored in the PRL(CDMA only).
371  * @since_tizen 2.3
372  */
373 typedef enum
374 {
375     TAPI_NETWORK_PRL_PREF_ONLY_OFF,                     /**< Preferred Only is FALSE */
376     TAPI_NETWORK_PRL_PREF_ONLY_ON,                      /**< Preferred Only is TRUE */
377     TAPI_NETWORK_PRL_PREF_ONLY_NONE                     /**< There isn't any Preferred Only Option */
378 } TelNetworkPrlPrefOnly_t;
379
380 /**
381  * @brief Enumeration for the packet service protocol type.
382  * @since_tizen 2.3
383  */
384 typedef enum {
385         TAPI_NETWORK_PS_TYPE_UNKNOWN,
386         TAPI_NETWORK_PS_TYPE_HSDPA,
387         TAPI_NETWORK_PS_TYPE_HSUPA,
388         TAPI_NETWORK_PS_TYPE_HSPA,
389         TAPI_NETWORK_PS_TYPE_HSPAP
390 } TelNetworkPsType_t;
391
392 /**
393  * @brief Enumeration for the network name option.
394  * @since_tizen 2.3
395  */
396 typedef enum {
397         TAPI_NETWORK_NAME_OPTION_NONE,
398         TAPI_NETWORK_NAME_OPTION_SPN,
399         TAPI_NETWORK_NAME_OPTION_OPERATOR,
400         TAPI_NETWORK_NAME_OPTION_ANY
401 } TelNetworkNameOption_t;
402
403 /**
404  * @brief Enumeration for the possible 'default' Data Subscriptions.
405  * @since_tizen 2.3
406  */
407 typedef enum {
408         TAPI_NETWORK_DEFAULT_DATA_SUBS_UNKNOWN = -1,  /**< Unknown status */
409         TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM1 = 0,      /**< SIM 1 */
410         TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM2           /**< SIM 2 */
411 } TelNetworkDefaultDataSubs_t;
412
413 /**
414  * @brief TelNetworkDefaultSubs_t
415  * This enumeration defines possible 'default' Subscription for CS (Voice)
416  * @since_tizen 2.3
417  */
418 typedef enum {
419         TAPI_NETWORK_DEFAULT_SUBS_UNKNOWN = -1,  /**<  Unknown status **/
420         TAPI_NETWORK_DEFAULT_SUBS_SIM1 = 0, /**< SIM 1 network **/
421         TAPI_NETWORK_DEFAULT_SUBS_SIM2 /**<  SIM 2 network **/
422 } TelNetworkDefaultSubs_t;
423
424 /**
425  * @brief The structure type for the preferred PLMN information.
426  * @since_tizen 2.3
427  */
428 typedef struct {
429         unsigned char Index; /**< Network Preferred PLMN list index */
430         char Plmn[TAPI_NETWORK_PLMN_LEN_MAX + 1]; /**< Network Preferred PLMN */
431         char network_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Network Name */
432         char service_provider_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Service provider name */
433         TelNetworkSystemType_t SystemType; /**< Network system type */
434 } TelNetworkPreferredPlmnInfo_t;
435
436 /**
437  * @brief The structure type for the preferred PLMN list.
438  * @since_tizen 2.3
439  */
440 typedef struct {
441         unsigned int NumOfPrefPlmns; /**< Number of preferred PLMNs in the list */
442         TelNetworkPreferredPlmnInfo_t PrefPlmnRecord[TAPI_PREFERRED_PLMN_RECORDS_MAX]; /**< Preferred PLMNs list */
443 } TelNetworkPreferredPlmnList_t;
444
445 /**
446  * @brief The structure type for the location area code and cell ID.
447  * @since_tizen 2.3
448  */
449 typedef struct {
450         unsigned short LocationAreaCode; /**< Network Location area code */
451         unsigned long CellId;            /**< Network Cell ID */
452 } TelNetworkLocationCellInfo_t;
453
454 /**
455  * @brief The structure type for the network status.
456  * @since_tizen 2.3
457  */
458 typedef struct {
459         unsigned char svctype; /**< Network SVC type */
460         unsigned char roaming; /**< Network roaming */
461 } TelNetworkStatus_t;
462
463 /**
464  * @brief The structure type for the network CS, PS status.
465  * @since_tizen 2.3
466  */
467 typedef struct {
468         unsigned char cstype; /**< Network CS type */
469         unsigned char pstype; /**< Network PS type */
470 } TelNetworkCsPsStatus_t;
471
472 /**
473  * @brief The structure type for the network identity.
474  * @since_tizen 2.3
475  */
476 typedef struct {
477         char network_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Network Name */
478         char service_provider_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Service provider name */
479         char plmn[TAPI_NETWORK_PLMN_LEN_MAX+1]; /**< Network PLMN */
480         unsigned int plmn_id; /**< PLMN ID */
481         TelNetworkPlmnType_t type_of_plmn; /**< PLMN type */
482         TelNetworkSystemType_t access_technology; /**< Access technology */
483 } TelNetworkIdentity_t;
484
485 /**
486  * @brief The structure type for the network PLMN list.
487  * @since_tizen 2.3
488  */
489 typedef struct {
490         char networks_count; /**< Network PLMN count */
491         TelNetworkIdentity_t network_list[TAPI_NETWORK_LIST_MAX]; /**< Network list */
492 } TelNetworkPlmnList_t;
493
494 /**
495  * @brief The structure type for network display info.
496  * @since_tizen 2.3
497  */
498 typedef struct {
499         int DisplayInfo[TAPI_NETWORK_DISPLAY_INFO_ELEMENTS]; /**< Network display info */
500 } TelNetworkDisplayInfo_t;
501
502 typedef struct {
503         TelNetworkNameDispCondition_t DispCondition; /**< Display condition of SPN & PLMN */
504         unsigned char Spn[TAPI_NETWORK_SPN_LEN_MAX + 1]; /**< SPN value */
505         unsigned char Plmn[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< PLMN value, in 2G case if DispPlmn is @c true and the PLMN value is @c NULL then the network module has to display a registered PLMN */
506 } TelNetworkSpnPlmnDisplayInfo_t;
507
508 /**
509  * @brief The structure type for the network's SPN, MCC, and MNC info.
510  * @since_tizen 2.3
511  */
512 typedef struct {
513         int mcc; /**< Network MCC */
514         int mnc; /**< Network MNC */
515         char bDispCondition; /**< Display condition */
516         char short_network_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Network short name */
517         char spn_name[TAPI_NETWORK_NAME_LEN_MAX + 1]; /**< Network SPN name */
518 } TelNetworkSpnMccMncInfo_t;
519
520 /**
521  * @brief The structure type for information related to a CDMA system.
522  * @since_tizen 2.3
523  */
524 typedef struct {
525         int  carrier; /**< CDMA Carrier */
526         unsigned int system_id; /**< System ID */
527         unsigned int network_id; /**< Network ID */
528         unsigned int base_station_id; /**< Base station ID */
529         int base_station_latitude; /**< Latitude of the current base station */
530         int base_station_longitude; /**< Longitude of the current base station */
531         unsigned int registration_zone; /**< Registration Zone */
532         unsigned int pilot_offset; /**< Pilot Offset */
533 } TelNetworkCdmaSysInfo_t;
534
535 typedef struct {
536         TelNetworkSystemType_t act; /**< Access technology */
537         char plmn[TAPI_NETWORK_PLMN_LEN_MAX+1]; /**< Network PLMN */
538         union {
539                 int lac; /**< Location Area Code - 3GPP Only */
540                 TelNetworkCdmaSysInfo_t cdma_info; /**< CDMA Only */
541         }info;
542 } TelNetworkServing_t;
543
544 typedef struct {
545         int cell_id;    /**< Cell ID (@c -1 indicates that cell ID information is not present) */
546         int lac;                /**< Location area code (this field is ignored when @a cell_id is not present) */
547         int bcch;               /**< Broadcast Control Channel Frequency number */
548         int bsic;               /**< Base Station Identification Code */
549         int rxlev;              /**< Received Signal Strength level. Valid values are (0-63, 99)
550                                          * Reference: 33GPP TS 45.008 [20] subclause 8.1.4
551                                            - Rxlev 0 is a signal strength less than -110 dBm
552                                        - Rxlev 1 is -110 dBm to -109 dBm
553                                        - Rxlev 2 is -109 dBm to -108 dBm
554                                        - ...
555                                        - Rxlev 62 is -49 dBm to -48 dBm
556                                        - Rxlev 63 is greater than -48 dBm
557                                        - Rxlev 99 is not known or detectable
558                                      */
559 } TelNetworkGeranCellInfo_t;
560
561 typedef struct {
562         int cell_id;    /**< UCID (@c -1 indicates that cell ID information is not present) */
563                                         /* UCID : RNCID + Cell ID(16 bit) */
564         int lac;                /**< Location area code (this field is ignored when @a cell_id is not present) */
565         int arfcn;      /**< UTRA Absolute RF Channel Number */
566         int psc;                /**< Primary scrambling Code */
567         int rscp;               /**< Received Signal Code Power. Valid values are (0-96, 255)
568                                          * Reference : 3GPP TS 25.133 [95] subclause 9.1.1.3 and 3GPP TS 25.123 [96] subclause 9.1.1.1.3)
569                                            - Rscp 0 is a signal strength less than -120 dBm
570                                        - Rscp 1 is -120 dBm to -119 dBm
571                                        - Rscp 2 is -119 dBm to -118 dBm
572                                        - ...
573                                        - Rscp 95 is -26 dBm to -25 dBm
574                                        - Rscp 96 is greater than -25 dBm
575                                        - Rscp 255 is not known or detectable
576                                  */
577 } TelNetworkUmtsCellInfo_t;
578
579 typedef struct {
580         int cell_id;    /**< Cell ID (@c -1 indicates that cell ID information is not present) */
581         int lac;                /**< Location area code (this field is ignored when @a cell_id is not present) */
582         int earfcn;     /**< E-UTRA Absolute RF Channel Number */
583         int tac;                /**< Tracking area code */
584         int rssi;               /**< RSSI in dBm(signed) */
585 } TelNetworkLteCellInfo_t;
586
587 typedef struct {
588         unsigned int system_id; /**< System ID */
589         unsigned int network_id;        /**< Network ID */
590         unsigned int base_station_id; /**< Base station ID */
591         unsigned int reference_pn;       /**< Reference PN */
592         int base_station_latitude; /**< Latitude of the current base station */
593         int base_station_longitude; /**< Longitude of the current base station */
594 } TelNetworkCdmaCellInfo_t;
595
596 typedef struct {
597         TelNetworkSystemType_t act;     /**< Access technology */
598         int mcc;        /**< Mobile Country Code */
599         int mnc;        /**< Mobile Network Code */
600         union {
601                 TelNetworkGeranCellInfo_t geran;        /**< GERAN cell info */
602                 TelNetworkUmtsCellInfo_t umts;  /**< UMTS cell info */
603                 TelNetworkLteCellInfo_t lte;    /**< LTE cell info */
604                 TelNetworkCdmaCellInfo_t cdma;  /**< CDMA cell info */
605         } cell;         /**< TBD */
606 } TelNetworkServingCellInfo_t;
607
608 typedef struct {
609         TelNetworkServingCellInfo_t serving;    /**< Serving cell info */
610         int geran_list_count;/**< GERAN cell info list count */
611         TelNetworkGeranCellInfo_t geran_list[TAPI_NETWORK_GERAN_NEIGHBORING_CELL_LIST_MAX];/**< GERAN cell info list */
612         int umts_list_count;/**< UMTS cell info list count */
613         TelNetworkUmtsCellInfo_t umts_list[TAPI_NETWORK_UMTS_NEIGHBORING_CELL_LIST_MAX];/**< UMTS cell info list */
614 } TelNetworkNeighboringCellInfo_t;
615
616 /**
617  * NEW NEW NEW
618  */
619 typedef struct {
620         TelNetworkServiceLevel_t cs; /**< Circuit Switched status */
621         TelNetworkServiceLevel_t ps; /**< Packet Swithced status */
622         TelNetworkServiceType_t type; /**< Registration service type */
623         int is_roaming; /**< Roaming status 1: TRUE; FALSE otherwise */
624 } TelNetworkRegistrationStatus_t;
625
626 struct tel_noti_network_signal_strength {
627         int dbm; /**< Signal Strenght in dBm */
628 };
629
630 struct tel_noti_network_cell_info {
631         int lac; /**< Location Area Code */
632         int cell_id; /**< Cell ID */
633 };
634
635 struct tel_noti_network_change {
636         TelNetworkSystemType_t act; /**< Access technology */
637         char plmn[TAPI_NETWORK_PLMN_LEN_MAX+1]; /**< Network PLMN */
638 };
639
640 struct tel_noti_network_time_info {
641         int year;               /**< TBD */
642         int month;              /**< TBD */
643         int day;                /**< TBD */
644         int hour;               /**< TBD */
645         int minute;             /**< TBD */
646         int second;             /**< TBD */
647         int wday;               /**< TBD */
648         int gmtoff;             /**< TBD */
649         int dstoff;             /**< TBD */
650         int isdst;              /**< TBD */
651         char plmn[TAPI_NETWORK_PLMN_LEN_MAX+1]; /**< Network PLMN */
652 };
653
654 struct  tel_noti_network_identity {
655         char plmn[TAPI_NETWORK_PLMN_LEN_MAX+1]; /**< Network PLMN */
656         char short_name[17]; /**< Short network name */
657         char full_name[33]; /**< Full network name */
658 };
659
660 struct tel_noti_network_emergency_callback_mode {
661         TelNetworkEmergencyCallbackMode_t mode; /**< Emergency Callback Mode status */
662 };
663
664 struct tel_noti_network_neighboring_cell_info {
665         TelNetworkNeighboringCellInfo_t info; /**< Neighboring Cell Information */
666 };
667
668 struct tel_noti_network_default_data_subs {
669         TelNetworkDefaultDataSubs_t default_subs; /**< 'default' Data Subscription */
670 };
671
672 struct tel_noti_network_default_subs {
673         TelNetworkDefaultSubs_t default_subs; /**< 'default' Subscription */
674 };
675
676 #ifdef __cplusplus
677 }
678 #endif
679
680 #endif // _TEL_NETWORK_H_
681
682 /**
683 * @}
684 */