blob: d49ed933c67347473acc39894eab72096fa1dcd7 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 2006-2012 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44
45/*===========================================================================
46
47 V A L S M S DEFINE H E A D E R F I L E
48
49 This file contains the definitions for the SMS
50 module of the VIA Abstraction Layer.
51
52===========================================================================*/
53#ifndef VALSMSDEFINE_H
54#define VALSMSDEFINE_H
55
56#include "valapi.h"
57#include "valsmscust.h"
58
59//don't modify following macro, brew has referred to it
60/* field mask definitions */
61#define SERVICE_CAT_PRESENT 0x00000001
62#define ADDRESS_PRESENT 0x00000002
63#define SMS_SUBADDRESS_PRESENT 0x00000004
64#define USER_DATA_PRESENT 0x00000008
65#define USER_RESP_CODE_PRESENT 0x00000010
66#define MC_TIME_STAMP_PRESENT 0x00000020
67#define ABS_VAL_PERIOD_PRESENT 0x00000040
68#define REL_VAL_PERIOD_PRESENT 0x00000080
69#define ABS_DEF_DEL_TIME_PRESENT 0x00000100
70#define REL_DEF_DEL_TIME_PRESENT 0X00000200
71#define PRIORITY_IND_PRESENT 0x00000400
72#define PRIVACY_IND_PRESENT 0x00000800
73#define REPLY_OPTION_PRESENT 0x00001000
74#define NUM_MESSAGES_PRESENT 0x00002000
75#define ALERT_MSG_DEL_PRESENT 0x00004000
76#define LANGUAGE_IND_PRESENT 0x00008000
77#define CALLBACK_NUM_PRESENT 0x00010000
78#define MSG_DISP_MODE_PRESENT 0x00020000
79#define MULT_ENCODE_USER_DATA_PRESENT 0x00040000
80#define MESSAGE_DEPOSIT_INDEX_PRESENT 0x00080000
81#define MESSAGE_STATUS_PRESENT 0x00400000
82#define SER_CAT_PROGRAM_RESULT_PRESENT 0x00800000
83#define SER_CAT_PROGRAM_DATA_PRESENT 0x01000000
84#define BEARER_REPLY_OPTION_PRESENT 0x02000000
85#ifdef KDDI_EXTENSIONS
86#define IP_ADDRESS_PRESENT 0x04000000
87#define NOTIFY_FLAG_PRESENT 0x08000000
88#define UIM_ID_PRESENT 0x10000000
89#endif
90
91typedef kal_uint16 ValSmsRecIdT;
92
93//don't modify following Enum, brew has referred to it
94/*! txt message type define
95*/
96typedef enum
97{
98 EMPTY = 0, /* the block has not occupied by a sms message */
99 READ = 0x01,
100 TO_BE_READ = 0x03,
101 SENT = 0x05,
102 TO_BE_SENT = 0x07,
103 DUPLICATE_READ=0x0F,
104 DUPLICATE_TO_BE_READ=0x11,
105 DRAFT = 0x15,
106
107 ARCHIVE_READ = 0x21,
108 ARCHIVE_TO_BE_READ = 0x23,
109 ARCHIVE_SENT = 0x25,
110 ARCHIVE_TO_BE_SENT = 0x27,
111
112 NOT_COMPLETE = 0x33,
113
114 TO_BE_DELETED = 0x40,
115
116 VAL_SMS_MAX_STATE
117} ValSmsStatT;
118
119//don't modify following Enum, brew has referred to it
120/*sms message type*/
121typedef enum
122{
123 VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT = 0,
124 VAL_SMS_SMS_MSG_TYPE_BROADCAST,
125#if defined(LGT_EXTENSIONS)
126 VAL_SMS_SMS_MSG_TYPE_UNKNOWN,
127#endif
128 VAL_SMS_SMS_MSG_TYPE_ACKNOWLEDGE,
129 VAL_SMS_MAX_SMS_MSG_TYPE
130} ValSmsTransMsgTypeT;
131
132/* Macro to validate ValSmsMsgTypeT */
133#define IS_VALID_VSMS_MSG_TYPE(a) ((VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT == (a)) || \
134 ((VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT < (a)) && \
135 ((a) < VAL_SMS_MAX_SMS_MSG_TYPE)))
136
137//don't modify following Enum, brew has referred to it
138typedef enum
139{
140 VAL_SMS_MSG_TYPE_RESERVED = 0,
141 VAL_SMS_MSG_TYPE_TERMINATION_DELIVER,
142 VAL_SMS_MSG_TYPE_ORIGINATION_SUBMIT,
143 VAL_SMS_MSG_TYPE_ORIGINATION_CANCELLATION,
144 VAL_SMS_MSG_TYPE_TERMINATION_DELIVERY_ACK,
145 VAL_SMS_MSG_TYPE_USER_ACK,
146 VAL_SMS_MSG_TYPE_READ_ACK,
147 VAL_SMS_MAX_MSG_TYPE
148} ValSmsTeleMsgT;
149
150/* Macro for validating vsms msg type */
151#define IS_VALID_SMS_MSG(a) \
152 ((VAL_SMS_MSG_TYPE_RESERVED == (a)) || ((VAL_SMS_MSG_TYPE_RESERVED < (a)) && ((a) < VAL_SMS_MAX_MSG_TYPE)))
153
154//don't modify following Enum, brew has referred to it
155/*! Val sms teleservice id define */
156typedef enum
157{
158 /*----------------------------------------------------------------
159 The following are not defined as a teleservice in IS-637,
160 but they are used to indicate the teleservice type in Analog mode.
161 -----------------------------------------------------------------*/
162 VAL_SMS_TS_ID_IS91_PAGE = 0,
163 VAL_SMS_TS_ID_IS91_VOICE_MAIL = 1,
164 VAL_SMS_TS_ID_IS91_SHORT_MESSAGE = 2,
165
166 /*----------------------------------------------------------------
167 Voice mail notification through Message Waiting Indication in
168 CDMA mode or Analog mode
169 -----------------------------------------------------------------*/
170 VAL_SMS_TS_ID_VOICE_MAIL_MWI = 3,
171
172 /*----------------------------------------------------------------
173 IS-637 Teleservices
174 -----------------------------------------------------------------*/
175 VAL_SMS_TS_ID_IS91 = 4096,
176 VAL_SMS_TS_ID_PAGE = 4097,
177 VAL_SMS_TS_ID_MESSAGE = 4098,
178 VAL_SMS_TS_ID_VOICE_MAIL = 4099,
179 VAL_SMS_TS_ID_WAP,
180 VAL_SMS_TS_ID_WEMT , /*add for EMS*/
181 VAL_SMS_TS_ID_SCPT, /*add for SCPT*/
182 VAL_SMS_TS_ID_CATPT, /*add for UIM card application*/
183 VAL_SMS_BROAD_CAST_SRV, /*add for the broadcast service*/
184 VAL_SMS_TS_ID_IMSSRV = 4242,
185#if defined(LGT_EXTENSIONS)
186 VAL_SMS_LGT_UNKNOWN = 32521, /* FEATURE_UNKNOWN_TID_SUPPORT */
187#endif
188 VAL_SMS_MPC_ID = 65001,
189 VAL_SMS_TS_ID_PUSH= 65002, /*sms push for China Telecom*/
190 VAL_SMS_REGISTER_SRV =65005, /*add for register message service*/
191 VAL_SMS_TS_ID_DM_PUSH = 65009,
192
193 VAL_SMS_MAX_TS_ID
194} ValSmsTeleSrvIdT;
195
196/*! Macro for validating vsms teleservice id type */
197#define IS_VALID_SMS_TELESERVICE_ID(a) \
198 ((VAL_SMS_TS_ID_IS91_PAGE == (a)) || ((VAL_SMS_TS_ID_IS91_PAGE < (a)) && ((a) < VAL_SMS_MAX_TS_ID)))
199
200
201typedef enum
202{
203 VAL_SMS_SVR_CAT_UNKNOWN = 0,
204 VAL_SMS_SVR_CAT_EMERGENCIES,
205 VAL_SMS_SVR_CAT_ADMINISTRATIVE,
206 VAL_SMS_SVR_CAT_MAINTENANCE,
207 VAL_SMS_SVR_CAT_GEN_NEWS_LOCAL,
208 VAL_SMS_SVR_CAT_GEN_NEWS_REGIONAL,
209 VAL_SMS_SVR_CAT_GEN_NEWS_NATIONAL,
210 VAL_SMS_SVR_CAT_GEN_NEWS_INTERNATIONAL,
211 VAL_SMS_SVR_CAT_FINANCE_NEWS_LOCAL,
212 VAL_SMS_SVR_CAT_FINANCE_NEWS_REGIONAL,
213 VAL_SMS_SVR_CAT_FINANCE_NEWS_NATIONAL,
214 VAL_SMS_SVR_CAT_FINANCE_NEWS_INTERNATIONAL,
215 VAL_SMS_SVR_CAT_SPORTS_NEWS_LOCAL,
216 VAL_SMS_SVR_CAT_SPORTS_NEWS_REGIONAL,
217 VAL_SMS_SVR_CAT_SPORTS_NEWS_NATIONAL,
218 VAL_SMS_SVR_CAT_SPORTS_NEWS_INTERNATIONAL,
219 VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_LOCAL,
220 VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_REGIONAL,
221 VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_NATIONAL,
222 VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_INTERNATIONAL,
223 VAL_SMS_SVR_CAT_LOCAL_WEATHER,
224 VAL_SMS_SVR_CAT_TRAFFIC,
225 VAL_SMS_SVR_CAT_FLIGHT_SCHEDULE,
226 VAL_SMS_SVR_CAT_RESTAURANTS,
227 VAL_SMS_SVR_CAT_LODGINGS,
228 VAL_SMS_SVR_CAT_RETAIL_DIRECTORY,
229 VAL_SMS_SVR_CAT_ADVERTISEMENT,
230 VAL_SMS_SVR_CAT_STOCK_QUOTES,
231 VAL_SMS_SVR_CAT_EMPLOYMENT_OPPORTUNITIES,
232 VAL_SMS_SVR_CAT_MEDICAL_HEALTH,
233 VAL_SMS_SVR_CAT_TECH_NEWS,
234 VAL_SMS_SVR_CAT_MULTI_CATEGORY,
235 VAL_SMS_SVR_CAT_CMAS_PRESIDENT_ALERT = 0X1000, /* 3GPP2 C.R1001-G SPEC */
236 VAL_SMS_SVR_CAT_CMAS_EXTREME_THREAT_TO_LIFE,
237 VAL_SMS_SVR_CAT_CMAS_SEVERE_THREAT_TO_LIFE,
238 VAL_SMS_SVR_CAT_CMAS_CHILD_ABDUCTION_EMERGNY,
239 VAL_SMS_SVR_CAT_CMAS_TEST_MESSAGE,
240 VAL_SMS_SVR_CAT_CMAS_RESERVED_MAX =0X10FF,
241 VAL_SMS_MAX_SVR_CAT
242} ValSmsSrvCatT;
243
244/* Macro for validating ValSmsSrvCatT */
245#define IS_VALID_SMS_SERVICE_CAT(a) \
246 ((VAL_SMS_SVR_CAT_UNKNOWN == (a)) || ((VAL_SMS_SVR_CAT_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_SVR_CAT)))
247//don't modify following Enum, brew has referred to it
248typedef enum
249{
250 VAL_SMS_NUMBER_PLAN_UNKNOWN = 0,
251 VAL_SMS_NUMBER_PLAN_TELEPHONY,
252 VAL_SMS_NUMBER_PLAN_DATA = 3,
253 VAL_SMS_NUMBER_PLAN_TELEX,
254 VAL_SMS_NUMBER_PLAN_PRIVATE = 9,
255 VAL_SMS_MAX_NUMBER_PLAN
256} ValSmsNumPlanT;
257
258/* Macro for validating ValSmsNumPlanT */
259#define IS_VALID_SMS_NUMBER_PLAN(a) \
260 ((VAL_SMS_NUMBER_PLAN_UNKNOWN == (a)) || ((VAL_SMS_NUMBER_PLAN_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_NUMBER_PLAN)))
261
262//don't modify following Enum, brew has referred to it
263typedef enum
264{
265 VAL_SMS_DIGIT_MODE_4_BIT = 0,
266 VAL_SMS_DIGIT_MODE_8_BIT,
267 VAL_SMS_MAX_DIGIT_MODE
268} ValSmsDigitModeT;
269
270/* Macro for validating VAL_SMS digit mode type */
271#define IS_VALID_SMS_DIGIT_MODE(a) \
272 ((VAL_SMS_DIGIT_MODE_4_BIT ==(a))|| ((VAL_SMS_DIGIT_MODE_4_BIT <(a)) && ((a) < VAL_SMS_MAX_DIGIT_MODE)))
273
274typedef enum
275{
276 VAL_SMS_NUMBER_MODE_ANSI_T1_607 = 0,
277 VAL_SMS_NUMBER_MODE_DATA_NETWORK,
278 VAL_SMS_MAX_NUMBER_MODE
279} ValSmsNumModeT;
280
281/* Macro for validating vsms number mode type */
282#define IS_VALID_SMS_NUMBER_MODE(a) \
283 ( (VAL_SMS_NUMBER_MODE_ANSI_T1_607 == (a)) || ((VAL_SMS_NUMBER_MODE_ANSI_T1_607 <(a)) && ((a) < VAL_SMS_MAX_NUMBER_MODE)))
284
285//don't modify following Enum, brew has referred to it
286typedef enum
287{
288 VAL_SMS_NUMBER_TYPE_UNKNOWN = 0,
289 VAL_SMS_NUMBER_TYPE_INTERNATIONAL,
290 VAL_SMS_NUMBER_TYPE_NATIONAL,
291 VAL_SMS_NUMBER_TYPE_NETWORK_SPECIFIC,
292 VAL_SMS_NUMBER_TYPE_SUBSCRIBER,
293 VAL_SMS_NUMBER_TYPE_RESERVED,
294 VAL_SMS_NUMBER_TYPE_ABBREVIATED,
295 VAL_SMS_MAX_NUMBER_TYPE
296} ValSmsNumberT;
297
298/* Macro for validating ValSmsNumberT */
299#define IS_VALID_SMS_NUMBER_TYPE(a) \
300 ((VAL_SMS_NUMBER_TYPE_UNKNOWN == (a)) || ((VAL_SMS_NUMBER_TYPE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_NUMBER_TYPE)))
301
302typedef enum
303{
304 VAL_SMS_DATA_NUM_TYPE_UNKNOWN = 0,
305 VAL_SMS_DATA_NUM_TYPE_RFC_791, /* Internet Protocol */
306 VAL_SMS_DATA_NUM_TYPE_RFC_822, /* Internet Email Address */
307 VAL_SMS_MAX_DATA_NUM_TYPE
308} ValSmsDataNumberT;
309
310/* Macro for validating ValSmsDataNumberT */
311#define IS_VALID_SMS_DATA_NUMBER_TYPE(a) \
312 ((VAL_SMS_DATA_NUM_TYPE_UNKNOWN == (a)) ||((VAL_SMS_DATA_NUM_TYPE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_DATA_NUM_TYPE)))
313
314//don't modify following Struct, brew has referred to it
315typedef struct
316{
317 ValSmsDigitModeT DigitMode;
318 ValSmsNumModeT NumberMode;
319 union
320 {
321 ValSmsNumberT NumType;
322 ValSmsDataNumberT DataNumType;
323 } NumberType;
324 ValSmsNumPlanT NumberPlan;
325 kal_uint8 NumFields;
326 kal_uint8 Address[VAL_SMS_MAX_ADDRESS_LEN];
327} ValSmsAddressT;
328
329typedef enum
330{
331 VAL_SMS_SUBADDR_TYPE_NSAP = 0,
332 VAL_SMS_SUBADDR_TYPE_USER,
333 VAL_SMS_MAX_SUBADDR_TYPE
334} ValSmsSubAddrT;
335
336/* Macro for validating ValSmsSubAddrT */
337#define IS_VALID_SMS_SUBADDR_TYPE(a) \
338 ((VAL_SMS_SUBADDR_TYPE_NSAP ==(a)) || ((VAL_SMS_SUBADDR_TYPE_NSAP < (a)) && ((a) < VAL_SMS_MAX_SUBADDR_TYPE)))
339
340
341typedef struct
342{
343 ValSmsSubAddrT SubaddrType;
344 kal_uint8 Odd;
345 kal_uint8 NumFields;
346 kal_uint8 Address[VAL_SMS_MAX_SUBADDR_LEN];
347} ValSmsSubaddressT;
348
349 typedef struct
350 {
351 kal_uint8 replySeq;
352 } ValSmsBearerRlyOptionT;
353
354//don't modify following Enum, brew has referred to it
355typedef enum
356{
357 VAL_SMS_MSG_ENCODE_OCTET = 0,
358 VAL_SMS_MSG_ENCODE_IS91_EXT_PROT_MSG,
359 VAL_SMS_MSG_ENCODE_7BIT_ASCII,
360 VAL_SMS_MSG_ENCODE_IA5,
361 VAL_SMS_MSG_ENCODE_UNICODE,
362 VAL_SMS_MSG_ENCODE_SHIFT_JIS,
363 VAL_SMS_MSG_ENCODE_KS_C_5601,
364 VAL_SMS_MSG_ENCODE_LATIN_HEBREW,
365 VAL_SMS_MSG_ENCODE_LATIN,
366 VAL_SMS_MSG_ENCODE_GSM_7BIT,
367#ifdef MTK_CBP
368 VAL_SMS_MSG_ENCODE_GSM_DCS, /* KWID867 */
369#endif
370 VAL_SMS_MAX_MSG_ENCODE
371} ValSmsMsgEncodeT;
372
373/* Macro for validating vsms message encode type */
374#define IS_VALID_SMS_MSG_ENCODE(a) \
375 ((VAL_SMS_MSG_ENCODE_OCTET == (a)) || ((VAL_SMS_MSG_ENCODE_OCTET <(a)) && ((a) < VAL_SMS_MAX_MSG_ENCODE)))
376
377//don't modify following Struct, brew has referred to it
378typedef struct
379{
380 ValSmsMsgEncodeT MessageEncoding;
381 kal_uint8 MessageType;
382 kal_uint8 NumFields;
383 kal_uint8 Data[VAL_SMS_MAX_USER_DATA_LEN];
384} ValSmsUserDataT;
385
386//don't modify following Enum, brew has referred to it
387typedef enum
388{
389 VAL_SMS_PRIORITY_NORMAL = 0,
390 VAL_SMS_PRIORITY_INTERACTIVE,
391 VAL_SMS_PRIORITY_URGENT,
392 VAL_SMS_PRIORITY_EMERGENCY,
393 VAL_SMS_MAX_PRIORITY
394} ValSmsPriorityT;
395
396/* Macro for validating vsms priority type */
397#define IS_VALID_SMS_PRIORITY(a) \
398 ((VAL_SMS_PRIORITY_NORMAL == (a)) ||((VAL_SMS_PRIORITY_NORMAL <(a)) && ((a) < VAL_SMS_MAX_PRIORITY)))
399
400//don't modify following Enum, brew has referred to it
401typedef enum
402{
403 VAL_SMS_PRIVACY_NOT_RESTRICTED = 0,
404 VAL_SMS_PRIVACY_RESTRICTED,
405 VAL_SMS_PRIVACY_CONFIDENTIAL,
406 VAL_SMS_PRIVACY_SECRET,
407 VAL_SMS_MAX_PRIVACY
408} ValSmsPrivacyT;
409
410/* Macro for validating vsms privacy type */
411#define IS_VALID_SMS_PRIVACY(a) \
412 ((VAL_SMS_PRIVACY_NOT_RESTRICTED == (a)) ||((VAL_SMS_PRIVACY_NOT_RESTRICTED <(a)) && ((a) < VAL_SMS_MAX_ERRCLASS)))
413
414typedef struct
415{
416 kal_bool UserAckReq; /*true for user ack is required*/
417 kal_bool DakReq; /*true for delivery ack is required*/
418 kal_bool ReadAckReq; /*true for read ack is required*/
419} ValSmsRplOptionT;
420
421typedef enum
422{
423 VAL_SMS_ALERT_MOBILE_DEFAULT = 0,
424 VAL_SMS_ALERT_LOW_PRIORITY,
425 VAL_SMS_ALERT_MEDIUM_PRIORITY,
426 VAL_SMS_ALERT_HIGH_PRIORITY,
427 VAL_SMS_MAX_ALERT
428} ValSmsAlertT;
429
430/* Macro for validating vsms alert type */
431#define IS_VALID_SMS_ALERT(a) \
432 ((VAL_SMS_ALERT_MOBILE_DEFAULT == (a)) || \
433 ((VAL_SMS_ALERT_MOBILE_DEFAULT < (a)) && ((a) < VAL_SMS_MAX_ALERT)))
434
435//don't modify following Enum, brew has referred to it
436typedef enum
437{
438 VAL_SMS_LANGUAGE_UNKNOWN = 0,
439 VAL_SMS_LANGUAGE_ENGLISH,
440 VAL_SMS_LANGUAGE_FRENCH,
441 VAL_SMS_LANGUAGE_SPANISH,
442 VAL_SMS_LANGUAGE_JAPANESE,
443 VAL_SMS_LANGUAGE_KOREAN,
444 VAL_SMS_LANGUAGE_CHINESE,
445 VAL_SMS_LANGUAGE_HEBREW,
446#if defined(LGT_EXTENSIONS)
447 VAL_SMS_LANGUAGE_KOREAN_LGT=64,
448#endif
449 VAL_SMS_MAX_LANGUAGE
450} ValSmsLanguageT;
451
452/* Macro for validating vsms language type */
453#define IS_VALID_SMS_LANGUAGE(a) \
454 ((VAL_SMS_LANGUAGE_UNKNOWN == (a)) || \
455 ((VAL_SMS_LANGUAGE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_LANGUAGE)))
456
457//don't modify following Struct, brew has referred to it
458typedef struct
459{
460 ValSmsDigitModeT DigitMode;
461 ValSmsNumberT NumberType;
462 ValSmsNumPlanT NumberPlan;
463 kal_uint8 NumFields;
464 kal_uint8 Digits[VAL_SMS_CALLBACK_NUMBER_MAX_DIGITS];
465} ValSmsCbNumberT;
466
467//don't modify following Enum, brew has referred to it
468typedef enum
469{
470 VAL_SMS_DISP_MODE_IMMEDIATE = 0,
471 VAL_SMS_DISP_MODE_DEFAULT,
472 VAL_SMS_DISP_MODE_USER_INVOKE,
473 VAL_SMS_DISP_MODE_RESERVED,
474 VAL_SMS_MAX_DISP_MODE
475} ValSmsDisplayModeT;
476
477/* Macro for validating vsms mssage display mode type */
478#define IS_VALID_SMS_MSG_DISP_MODE(a) \
479 ((VAL_SMS_DISP_MODE_IMMEDIATE == (a)) || \
480 ((VAL_SMS_DISP_MODE_IMMEDIATE <(a)) && ((a) < VAL_SMS_MAX_DISP_MODE)))
481
482//don't modify following Enum, brew has referred to it
483typedef struct
484{
485 ValSmsDisplayModeT SmsDispMode;
486 kal_uint8 Reserved;
487} ValSmsDispModeT;
488
489/*! Error class */
490typedef enum
491{
492 VAL_SMS_ERRCLASS_NO_ERROR,
493 VAL_SMS_ERRCLASS_TEMPORARY = 2,
494 VAL_SMS_ERRCLASS_PERMANENT = 3,
495 VAL_SMS_MAX_ERRCLASS
496} ValSmsErrClassT;
497
498/*! Macro to validate ValSmsErrClassT */
499#define IS_VAL_SMS_NO_ERR_CLASS(a) (VAL_SMS_ERRCLASS_NO_ERROR == (a))
500#define IS_VAL_SMS_ERR_CLASS(a) ((VAL_SMS_ERRCLASS_TEMPORARY <= (a)) && ((a) < VAL_SMS_MAX_ERRCLASS))
501#define IS_VALID_SMS_ERR_CLASS(a) (IS_VAL_SMS_NO_ERR_CLASS(a) || IS_VAL_SMS_ERR_CLASS(a))
502
503typedef enum
504{
505 VAL_SMS_MSGSTATUS_ACCEPTED,
506 VAL_SMS_MSGSTATUS_DEPOSITED_TO_INTERNET,
507 VAL_SMS_MSGSTATUS_DELIVERED,
508 VAL_SMS_MSGSTATUS_CANCELLED,
509 VAL_SMS_MSGSTATUS_NETWORK_CONGESTION,
510 VAL_SMS_MSGSTATUS_NETWORK_ERROR,
511 VAL_SMS_MSGSTATUS_CANCEL_FAILED,
512 VAL_SMS_MSGSTATUS_BLOCKED_DESTINATION,
513 VAL_SMS_MSGSTATUS_TEXT_TOO_LONG,
514 VAL_SMS_MSGSTATUS_DUPLICATE_MESSAGE,
515 VAL_SMS_MSGSTATUS_INVALID_DESTINATION,
516 VAL_SMS_MSGSTATUS_EXPIRED,
517 VAL_SMS_MAX_MSGSTATUS
518} ValSmsMsgStatusCodeT;
519
520//don't modify following Struct, brew has referred to it
521typedef struct
522{
523 ValSmsErrClassT ErrorClass;
524 ValSmsMsgStatusCodeT MsgStatusCode;
525} ValSmsMsgStatusT;
526
527typedef enum
528{
529 VAL_SMS_CATRESULT_SUCCESS,
530 VAL_SMS_CATRESULT_MEMORY_EXCEEDED,
531 VAL_SMS_CATRESULT_LIMIT_EXCEEDED,
532 VAL_SMS_CATRESULT_ALREADY_PROGRAMMED,
533 VAL_SMS_CATRESULT_NOT_PREVIOUSLY_PROGRAMMED,
534 VAL_SMS_CATRESULT_INVALID_MAX_MESSAGES,
535 VAL_SMS_CATRESULT_INVALID_ALERT_OPTION,
536 VAL_SMS_CATRESULT_INVALID_CATEGORY_NAME,
537 VAL_SMS_CATRESULT_UNSPECIFIED_FAILURE,
538 VAL_SMS_MAX_CATRESULT
539} ValSmsCategoryResultCodeT;
540
541typedef struct
542{
543 ValSmsSrvCatT Category;
544 ValSmsCategoryResultCodeT CategoryResult;
545 ValSmsLanguageT Language;
546} ValSmsCategoryResultT;
547
548typedef struct
549{
550 kal_uint8 NumCategories;
551 ValSmsCategoryResultT Cat[VAL_SMS_MAX_CATEGORIES];
552} ValSmsSrvCatProgRsltT;
553
554typedef enum
555{
556 VAL_SMS_OP_DELETE,
557 VAL_SMS_OP_ADD,
558 VAL_SMS_OP_CLEAR_ALL,
559 VAL_SMS_MAX_OP
560} ValSmsOperationCodeT;
561
562typedef enum
563{
564 VAL_NO_ALERT = 0,
565 VAL_MOBILE_DEFAULT_ALERT,
566 VAL_VIBRATE_ALERT_ONCE,
567 VAL_VIBRATE_ALERT_REPEAT,
568 VAL_VISUAL_ALERT_ONCE,
569 VAL_VISUAL_ALERT_REPEAT,
570 VAL_LOW_PRIORITY_ALERT_ONCE,
571 VAL_LOW_PRIORITY_ALERT_REPEAT,
572 VAL_MED_PRIORITY_ALERT_ONCE,
573 VAL_MED_PRIORITY_ALERT_REPEAT,
574 VAL_HIGH_PRIORITY_ALERT_ONCE,
575 VAL_HIGH_PRIORITY_ALERT_REPEAT,
576 VAL_SMS_MAX_CAT_ALERT
577} ValSmsCatAlertT;
578
579typedef struct
580{
581 ValSmsOperationCodeT OperationCode;
582 ValSmsSrvCatT SrvCat;
583 ValSmsLanguageT Lang;
584 /*the maximum number of messages that may be stored in the mobile station for this Service Category*/
585 kal_uint8 MaxMsg;
586 ValSmsCatAlertT Alert;
587 kal_uint8 NumChar;
588 kal_uint8 Chari[VAL_SMS_MAX_CHAR_IN_CATEGORY];
589} ValSmsCatDataT;
590
591typedef struct
592{
593 ValSmsMsgEncodeT MsgEncoding;
594 kal_uint8 NumCat;
595 ValSmsCatDataT Cat[VAL_SMS_MAX_CATEGORIES];
596} ValSmsSrvCatProgDataT;
597
598#ifdef KDDI_EXTENSIONS
599typedef struct
600{
601 kal_uint32 IpAddress;
602 kal_uint8 CtlFlag;
603} ValSmsIpAddressT;
604#endif
605//don't modify following Struct, brew has referred to it
606typedef struct
607{
608 /* required fields */
609 kal_uint32 FieldMask; /* the field mask */
610 ValSmsRecIdT SmsMsgRecId; /* the phisical position of sms record in the storage device, UI NEEDN't fill it */
611 ValSmsStatT SMSState; /* sms message status, UI may not fill it when sending, But if UI want to write or update a message, it must fill it.*/
612 kal_uint8 NumUserData; /* number of user data */
613 ValSmsTransMsgTypeT TransMsgType; /* transport layer message type, UI may not fill it */
614 kal_uint16 MsgId; /* message id, required, UI NEEDN'T fill it */
615 kal_bool HeaderInd; /* message head indication, required. UI MUST give it a correct value. True for the user data field includes a User Data Header, else set false */
616 ValSmsTeleMsgT TeleMsgType; /* teleservice layer message type, required. UI MUST give it a correct value */
617 ValSmsTeleSrvIdT TeleSrvId; /* teleservice id, required, UI MUST give it a correct value */
618 /* following is the optional fields */
619 ValSmsSrvCatT SrvCat; /* for broadcasting message, required, else, optional */
620 ValSmsAddressT Address; /* required for submit and delivery message */
621 ValSmsSubaddressT Subaddress; /* optional */
622 ValSmsBearerRlyOptionT BearerReplyOption;
623 ValSmsUserDataT UserData[VAL_SMS_MAX_NUM_DATA_MSGS]; /* user data or multi encoding user data */
624 kal_uint8 UserRspCode;
625 ValSmsAbsTimeT TimeStamp;
626 ValSmsAbsTimeT ValTimeAbs;
627 kal_uint8 RelValPeriod;
628 ValSmsAbsTimeT AbsDelTime;
629 kal_uint8 RelDelPeriod;
630 ValSmsPriorityT Priority;
631 ValSmsPrivacyT Privacy;
632 ValSmsRplOptionT RplOp;
633 kal_uint8 NumMsgs; /* only for VMN message */
634 ValSmsAlertT Alert;
635 ValSmsLanguageT Lang;
636 ValSmsCbNumberT CallBackNum;
637 ValSmsDispModeT DispMode;
638 kal_uint16 MsgDepIndex;
639 kal_uint16 SeqNum; /*only for receive message */
640 ValSmsMsgStatusT MsgStatus; /*used only for SMS delivery Acknowledgement message */
641 ValSmsSrvCatProgRsltT SrvCatProgResult; /* only for submitting message */
642 ValSmsSrvCatProgDataT SrvCatData; /*only for delivery message */
643#ifdef MTK_CBP_ENCRYPT_VOICE
644 kal_bool CryptSmsPres;
645 ValCryptSmsInfoT CryptSmsInfo; /*sms crypt sms*/
646#endif
647#ifdef KDDI_EXTENSIONS
648 ValSmsIpAddressT MsgIpAddr;
649 kal_uint8 NotifyFlag;
650 kal_uint32 UimId;
651#endif
652 kal_bool IsImsPPdownLoad;
653 kal_uint8 seq_id;
654} ValSmsTxtRecordT;
655
656#ifdef MTK_CBP_ENCRYPT_VOICE
657typedef enum
658{
659 VAL_SMS_MSG_TYPE_CALL_KEY_REQ= 0,
660 VAL_SMS_MSG_TYPE_CALL_KEY_RSP,
661 VAL_SMS_MSG_TYPE_CALLED_ENCRYPT_IND,
662 VAL_SMS_MSG_TYPE_CALLED_KEY_REQ,
663 VAL_SMS_MSG_TYPE_CALLED_KEY_RSP,
664 VAL_SMS_MSG_TYPE_ERROR_IND,
665 VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE ,
666 VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_RSP,
667 VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_CNF,
668 VAL_SMS_MSG_TYPE_REMOTE_CONTROL_INS ,
669 VAL_SMS_MSG_TYPE_REMOTE_CONTROL_INS_RSP,
670 VAL_SMS_MSG_TYPE_INITIAL,
671}ValSpeSmsMsgTypeT;
672
673typedef struct
674{
675 kal_uint8 mode;
676 kal_uint8 calledNum[11];
677 kal_uint8 calledBytes;
678} ValCryptSmsCallKeyInfoT;
679
680typedef struct
681{
682 kal_uint8 rspType;
683 kal_uint8 result;
684} ValCryptRcInsRspInfoT;
685#endif
686
687
688#endif
689/**Log information: D:\ClearCase\pchen_vtui2\HZREF\cp\inc\valsmsdefine.h@@\main\vtui2_plus\2 2008-05-07 07:13:18 GMT pchen
690** HZTP#0000**/
691/**Log information: \main\vtui2_5x\sms_contact_refactory\2 2008-08-05 08:38:03 GMT dwang
692** HREF#0000
693|Merge vtui2_plus**/
694/**Log information: \main\vtui2_5x\sms_contact_refactory\3 2008-08-12 06:39:10 GMT pchen
695** HREF#1445**/
696/**Log information: \main\vtui2_5x\sms_contact_refactory\4 2008-10-23 05:56:27 GMT pchen
697** HREF#1445**/
698/**Log information: \main\vtui2_5x\sms_contact_refactory\5 2008-12-01 13:19:35 GMT ltian
699** HREF#1445**/
700/**Log information: \main\vtui2_5x\sms_contact_refactory\6 2009-03-06 08:03:57 GMT pchen
701** HREF#1445**/
702/**Log information: \main\vtui2_5x\sms_contact_refactory\7 2009-03-10 09:05:38 GMT pchen
703** HREF#1445**/
704/**Log information: \main\vtui2_5x\sms_contact_refactory_1\1 2009-03-20 01:29:03 GMT yfan
705** HREF#1580**/
706/**Log information: \main\helios_dev\touchflow\1 2009-06-05 06:27:24 GMT yfan
707** HREF#1580**/
708/**Log information: \main\helios_dev\touchflow\2 2009-06-05 06:27:45 GMT yfan
709** HREF#1580**/
710/**Log information: \main\helios_dev\touchflow\touchflow_pchen_href8751\1 2009-11-16 08:13:58 GMT pchen
711** HREF#8751 **/
712/**Log information: \main\helios_dev\touchflow\3 2009-11-16 09:16:34 GMT dwang
713** HREF#8751**/
714/**Log information: \main\VTUI3\2 2010-01-11 12:32:21 GMT qwu
715** HREF#10125**/
716/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_nicholaszhao_href17384\1 2011-07-04 08:34:21 GMT nicholaszhao
717** HREF#17384**/
718/**Log information: \main\CBP7FeaturePhone\3 2011-07-12 09:42:01 GMT marszhang
719** HREF#17384**/
720