blob: 56d5ddc8897d117b97422e18258e352521588530 [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) 2005
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 *
38 * Filename:
39 * ---------
40 * smslib_def.h
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 * This file contains definition
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 *
60 * removed!
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 * removed!
67 *
68 * removed!
69 * removed!
70 * removed!
71 *
72 * removed!
73 * removed!
74 * removed!
75 *
76 * removed!
77 * removed!
78 * removed!
79 *
80 * removed!
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 *
88 *
89 *
90 *------------------------------------------------------------------------------
91 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
92 *============================================================================
93 ****************************************************************************/
94#ifndef _SMSLIB_DEF_H
95#define _SMSLIB_DEF_H
96
97#if defined(__SMS_STORAGE_BY_MMI__)
98
99
100#include "smslib_enum.h"
101#include "kal_general_types.h"
102#include "ps_public_struct.h"
103
104#define SMSLIB_MTI_BITS (0x03)
105#define SMSLIB_MAX_CC_ADDR_LEN (41) // = MAX_CC_ADDR_LEN
106#define SMSLIB_ADDR_LEN (11)
107#define SMSLIB_ONE_MSG_OCTET (140)
108#define SMSLIB_ONE_REPORT_MSG_OCTET (143)
109#define SMSLIB_MAX_MSG_LEN (160)
110#define SMSLIB_MAX_REPORT_MSG_LEN (163)
111#define SMSLIB_INVALID_PORT_NUM (-1)
112#define SMSLIB_TP_ADDR2_L4_ADDR_LEN(x) (((x+1)/2)+1)
113#define SMSLIB_CUSTOM_WILD_CHAR '?'
114
115/*------------------------------
116 * Length of SIM EF
117 *------------------------------*/
118#define SMSLIB_SMS_STATUS_LEN (2) /* length of a EFsmss */
119#define SMSLIB_SMS_LEN (176) /* length of a SIM EFsms record */
120#define SMSLIB_SMS_ME_LEN (184) /* length of a ME EFsms record +7 byte SCT +1 pad */
121#define SMSLIB_SMSP_LEN (28) /* length of a EFsmsp record */
122#ifdef __CPHS__
123#define SMSLIB_MWF_LEN (1)
124#endif
125#define SMSLIB_EXT_LEN (13) /* length of a SIM EFext1/6 record */
126#define SMSLIB_MAILBOX_NUM_LEN (14)
127
128#ifdef __REL6__
129 #ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
130#define SMSLIB_MAX_MW_SOURCE (4)
131 #else
132#define SMSLIB_MAX_MW_SOURCE (3)
133 #endif
134#else
135#define SMSLIB_MAX_MW_SOURCE (3)
136#endif
137
138/*--------------------------------------------
139 * Length of SMS peer message header (part)
140 *--------------------------------------------*/
141/* fo(1), pid(1), dcs(1), scts(7), udl(1), oa_len(1), oa_type(1) */
142#define SMSLIB_PART_OF_DELIVER_HEADER_LEN (13)
143
144/* fo(1), mr(1), pid(1), dcs(1), udl(1), da_len(1), da_type(1) */
145#define SMSLIB_PART_OF_SUBMIT_HEADER_LEN (7)
146
147/* fo(1), mr(1), ra_len(1), ra_type(1), scts(7), dt(7) */
148#define SMSLIB_PART_OF_REPORT_HEADER_LEN (19) //ToCheck
149
150
151/*------------------------------------
152 * Information Element Identifier
153 *------------------------------------*/
154#define SMSLIB_CONC8_MSG_IEI (0x00)
155#define SMSLIB_CONC16_MSG_IEI (0x08)
156#define SMSLIB_SPECIAL_MSG_IND_IEI (0x01)
157#define SMSLIB_ENHANCED_VM_INFO_IEI (0x23)
158
159
160#if defined (__CPHS__) /* NEW */
161/*-------------------------------------
162 * For CPHS Voice Mail Indication
163 *-------------------------------------*/
164#define SMSLIB_CPHS_VM_ADDR_TYPE (0xd0)
165#define SMSLIB_CPHS_VM_SET_BITS (0x01)
166#define SMSLIB_CPHS_VM_IND_BITS (0x0e)
167#define SMSLIB_CPHS_VM_LINE_BITS (0x80)
168#endif
169
170/* SIM SMSP */
171#define SMSLIB_SMSP_DA_BITS (0xfe)
172#define SMSLIB_SMSP_SCA_BITS (0xfd)
173#define SMSLIB_SMSP_PID_BITS (0xfb)
174#define SMSLIB_SMSP_DCS_BITS (0xf7)
175#define SMSLIB_SMSP_VP_BITS (0xef)
176
177/* EMS */
178#define SMSLIB_EMS_TEXT_FORMAT_IEI (0x0a) /* Text Formating */
179#define SMSLIB_EMS_PREDEF_SND_IEI (0x0b) /* Predefined Sound */
180#define SMSLIB_EMS_USER_DEF_SND_IEI (0x0c) /* User Defined Sound */
181#define SMSLIB_EMS_PREDEF_ANM_IEI (0x0d) /* Predefined Animation */
182#define SMSLIB_EMS_LARGE_ANM_IEI (0x0e) /* Large Animation */
183#define SMSLIB_EMS_SMALL_ANM_IEI (0x0f) /* Small Animation */
184#define SMSLIB_EMS_LARGE_PIC_IEI (0x10) /* Large Picture */
185#define SMSLIB_EMS_SMALL_PIC_IEI (0x11) /* Small Picture */
186#define SMSLIB_EMS_VAR_PIC_IEI (0x12) /* Variable Picture */
187
188/* MISC */
189#define SMSLIB_APP_PORT8_IEI (0x04) /* application port - 8 bit */
190#define SMSLIB_APP_PORT16_IEI (0x05) /* application port - 16 bit */
191#define SMSLIB_NL_SINGLE_IEI (0x24) /* National Language single shift */
192#define SMSLIB_NL_LOCKING_IEI (0x25) /* National Language looking shift */
193
194
195/*------------------------------
196 * Status byte in SMS
197 * RFU shall be set to zero !!
198 * 12/27/2002 Kevin
199 *------------------------------*/
200#define SMSLIB_UNUSED_MSG (0x00)
201
202/* MT: Receive from network */
203#define SMSLIB_UNREAD_MSG (0x03)
204#define SMSLIB_READ_MSG (0x01)
205
206/* MO: Sent to network */
207#define SMSLIB_UNSENT_MSG (0x07)
208#define SMSLIB_SENT_NO_SRR (0x05)
209#define SMSLIB_SENT_SRR_NOT_RECV (0x0d)
210#define SMSLIB_SENT_SRR_RECV_NOT_STO (0x15)
211#define SMSLIB_SENT_SRR_RECV_STO (0x1d)
212
213#define SMSLIB_DRAFT_MSG (0x27)
214
215#ifdef __SMS_MSP_UP_TO_4__
216#define SMSLIB_MAX_MSP_NUM 4 //(max support msp)
217#ifdef __REL6__
218#define SMSLIB_MAX_MBDN_NUM 10 // 20 is too much, reduce to 10
219#else
220#define SMSLIB_MAX_MBDN_NUM 10 // 16 is too much, reduce to 10
221#endif
222#else //__SMS_MSP_UP_TO_4__
223#define SMSLIB_MAX_MSP_NUM 2 //(max support msp)
224#ifdef __REL6__
225#define SMSLIB_MAX_MBDN_NUM 10 //(5 * SMSAL_MAX_MSP_NUM, max support mbdn)
226#else
227#define SMSLIB_MAX_MBDN_NUM 8 //(4 * SMSAL_MAX_MSP_NUM, max support mbdn)
228#endif
229#endif //__SMS_MSP_UP_TO_4__
230
231
232typedef struct
233{
234 kal_uint8 reply_flag; /* whether reply is sought*/
235 kal_uint8 udh_p; /* indicates presence of
236 user data header*/
237 kal_uint8 status_rep_flag; /* whether status reports
238 are sought*/
239 kal_uint8 fill_bits; /* to be ignored*/
240 kal_uint8 mms; /* more message to send*/
241 kal_uint8 msg_type; /* sms deliver*/
242 kal_uint8 no_orig_addr;
243 kal_uint8 orig_addr_size; /* the max size of *orig_addr in octet*/
244 kal_uint8 *orig_addr; /* assumed to be
245 byte-packed*/
246 kal_uint8 pid; /* to be bit-wise decoded*/
247 kal_uint8 dcs; /* to be bit-wise decoded*/
248 kal_uint8 scts[7];
249 kal_uint8 user_data_len;
250 kal_uint8 no_user_data; /* 7-bit to octet */
251 kal_uint8 user_data_size; /* the max size of *user_data in octet*/
252 kal_uint8 *user_data; /* can have user data header also*/
253} smslib_deliver_peer_struct;
254
255typedef struct
256{
257 kal_uint8 reply_flag; /* whether reply is sought*/
258 kal_uint8 udh_p; /* indicates presence of
259 user data header*/
260 kal_uint8 status_rep_flag; /* whether status reports
261 are sought*/
262 kal_uint8 vp_flag; /* indicates presence of
263 validity period*/
264 kal_uint8 rej_dup_flag;
265 kal_uint8 msg_type; /* sms submit*/
266 kal_uint8 msg_ref; /* to be read from SIM*/
267 kal_uint8 no_dest_addr;
268 kal_uint8 dest_addr_size; /* the max size of *dest_addr in octet*/
269 kal_uint8 *dest_addr; /* assumed to be
270 byte-packed*/
271 kal_uint8 pid; /* to be bit-wise encoded*/
272 kal_uint8 dcs; /* to be bit-wise encoded*/
273 kal_uint8 no_validity_period;
274 kal_uint8 validity_period_size;
275 kal_uint8 *validity_period; /* to be
276 bit/byte-wise
277 encoded, cannot
278 be even represnted
279 using CHOICE*/
280 kal_uint8 user_data_len;
281 kal_uint8 no_user_data; /* 7-bit to octet */
282 kal_uint8 user_data_size; /* the max size of *user_data in octet*/
283 kal_uint8 *user_data; /* can have user data header also*/
284} smslib_submit_peer_struct;
285
286typedef struct
287{
288 kal_uint8 fill_bits1; /* to be ignored*/
289 kal_uint8 udh_p; /* indicates presence of
290 user data header*/
291 kal_uint8 status_rep_type; /* sms command or sms
292 submit*/
293 kal_uint8 fill_bits2; /* to be ignored*/
294 kal_uint8 mms;
295 kal_uint8 msg_type; /* sms status report*/
296 kal_uint8 msg_ref;
297 kal_uint8 no_rcpnt_addr;
298 kal_uint8 rcpnt_addr_size; /* the max size of *rcpnt_addr in octet*/
299 kal_uint8 *rcpnt_addr;
300 kal_uint8 scts[7];
301 kal_uint8 dis_time[7];
302 kal_uint8 status; /* actual status of submit*/
303 kal_uint8 params_p; /* depicts presence of
304 optional parameters*/
305 kal_uint8 pid; /* to be bit-wise decoded*/
306 kal_uint8 dcs; /* to be bit-wise decoded*/
307 kal_uint8 user_data_len;
308 kal_uint8 no_user_data; /* 7-bit to octet */
309 kal_uint8 user_data_size; /* the max size of *user_data in octet*/
310 kal_uint8 *user_data; /* can have user data header also*/
311} smslib_status_report_peer_struct;
312
313typedef struct
314{
315 kal_uint8 addr_length;
316 kal_uint8 addr_bcd[11];
317} smslib_addr_struct; //TP Addr Type
318
319/* defined in l4c_aux_struct.h
320 mcd_l4_common.h
321
322typedef struct
323{
324 kal_uint8 addr_length;
325 kal_uint8 addr_bcd[41];
326} l4_addr_bcd_struct; //RP Addr Type
327
328typedef struct
329{
330 kal_uint8 type;
331 kal_uint8 length;
332 kal_uint8 number[SMSLIB_MAX_CC_ADDR_LEN];
333} l4c_number_struct; //MMI Addr Type
334
335typedef struct
336{
337 kal_uint8 name_length;
338 kal_uint8 name_dcs;
339 kal_uint8 name[32];
340} l4_name_struct;
341
342typedef struct
343{
344 kal_uint8 length;
345 kal_uint8 charset;
346 kal_uint8 *data;
347} istring_type; */
348
349typedef struct
350{
351 kal_uint8 waiting_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
352} smslib_mwis_struct; // = smsal_mwis_struct (!!!important!!!)
353
354#ifdef __REL6__
355#ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
356// Enhanced Voice Mail Information
357typedef struct
358{
359 kal_uint16 id;
360
361 kal_uint8 msg_len_insec;
362 kal_uint8 msg_retention_day; // max 31
363
364 kal_uint8 priority;
365
366 kal_uint8 msg_ext_flg;
367
368 l4_addr_bcd_struct calling_line_addr;
369
370 kal_uint8 msg_ext_len;
371 kal_uint8 *msg_ext_data;
372}smslib_evmi_msg_struct; // = smsal_evmi_msg_struct (!!!important!!!)
373
374// Enhanced Voice Mail Information
375// l4csmsal_enhanced_voice_mail_ind_struct should be the same as smsal_evmi_struct
376typedef struct
377{
378 kal_uint8 evm_pdu_type;
379 kal_uint8 multi_sub_profile;
380 kal_uint8 is_store;
381 kal_uint8 vm_almost_full;
382 kal_uint8 vm_full;
383 kal_uint8 vm_status_ext_flg;
384
385 l4_addr_bcd_struct vm_access_addr;
386 kal_uint8 number_of_vm_unread; // should be stored in (U)SIM
387 kal_uint8 number_of_vm_notify; // max 15
388 kal_uint8 number_of_vm_delete; // max 31
389
390 kal_uint8 l4_status; // 0:init, 1: sent to MMI, 2:free
391
392 kal_uint8 vm_status_ext_len;
393 kal_uint8 *vm_status_ext_data;
394
395 smslib_evmi_msg_struct *vm_msg[32];
396
397}smslib_evmi_struct; // = smsal_evmi_struct (!!!important!!!)
398#endif
399#endif
400
401typedef struct
402{
403 kal_uint8 type_of_info;
404 kal_bool need_store;
405 kal_bool is_msg_wait;
406 kal_bool is_show_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
407 kal_bool is_clear[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
408 kal_bool ind_flag[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
409 smslib_mwis_struct mwis;
410 kal_uint8 msp;
411 kal_uint8 line_no;
412
413#ifdef __REL6__
414#ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
415 smslib_evmi_struct evmi; // should free this after processing
416#endif
417#endif
418} smslib_msg_waiting_struct; // = smsal_msg_waiting_struct (!!!important!!!)
419
420typedef struct
421{
422 kal_int32 dest_port; /* -1: invalid port */
423 kal_int32 src_port;
424} smslib_port_struct; // = smsal_port_struct
425
426typedef struct
427{
428 kal_uint16 ref; /* concat. message reference*/
429 kal_uint8 total_seg; /* total segments*/
430 kal_uint8 seg; /* indicate which segment*/
431} smslib_concat_struct; // = smsal_concat_struct (!!!important!!!)
432
433typedef struct
434{
435 union
436 {
437 smslib_deliver_peer_struct deliver_tpdu;
438 smslib_submit_peer_struct submit_tpdu;
439 smslib_status_report_peer_struct report_tpdu;
440 } data;
441
442 smslib_mti_enum mti;
443
444 //
445 kal_uint8 fo; /* first octet */
446 kal_uint8 offset; /* offset to message content */
447 /* init address of User Data Header */
448 kal_uint8 msg_len;/* length of user data */
449 /* User Data Header + User Data */
450 kal_uint8 udhl; /* for calculating offset to unpack */
451 /* udhl + udh */
452
453 smslib_concat_struct concat_info;
454
455 /* for decoding DCS */
456 smslib_msg_class_enum msg_class;
457 smslib_alphabet_enum alphabet_type;
458 kal_bool is_compress;
459
460
461 smslib_msg_waiting_struct msg_wait;
462
463 /* User Data Header */
464 smslib_port_struct port;
465
466} smslib_tpdu_decode_struct;
467
468typedef struct
469{
470 smslib_sim_status_enum status;
471 l4_addr_bcd_struct sca;
472 smslib_tpdu_decode_struct tpdu;
473 kal_uint8 pdu_len; /* length of PDU */
474 kal_uint8 tpdu_len; /* length of TPDU */
475 l4c_number_struct forMMI_SCAAddr;
476 l4c_number_struct forMMI_TPAddr;
477 kal_uint16 forMMI_UserData_length; /*unit: octet*/
478 kal_uint8 forMMI_UserData[170];
479} smslib_general_struct;
480
481typedef struct
482{
483 /* alpha id size of EFmailbox_numr */
484 kal_uint8 alpha_size; //Input value for decode & encode
485
486 l4_name_struct name;
487 l4c_number_struct addr;
488 kal_uint8 capability_id;
489 kal_uint8 extension_id;
490}smslib_ef_mailbox_num_struct;
491
492typedef struct
493{
494 kal_uint8 mbi_id[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
495}smslib_ef_mbi_struct;
496
497typedef struct
498{
499 kal_uint8 waiting_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
500} smslib_ef_mwis_struct;
501
502typedef struct
503{
504 smslib_mwis_struct cphs_mwis[SMSLIB_MAX_LINES];
505}smslib_ef_vm_struct;
506
507typedef struct
508{
509 /* maximum number of supported, SMS parameter profiles in SIM */
510 //kal_uint8 max_profile_num; //Input value for decode
511
512 /* size of alpha-identifier in EFsmsp */
513 kal_uint8 alpha_size; //Input value for decode
514 //Input value for encode
515 /* store alpha-identifier */
516 l4_name_struct profile_name; //Input&Output value for decode
517 //Input&Output value for encode
518 /* Parameter Indicator */
519 kal_uint8 para_ind; //Output value for decode
520 //Input value for encode
521 /* Validity period */
522 kal_uint8 vp; //Output value for decode
523 //Input value for encode
524 /* Protocol identifier */
525 kal_uint8 pid; //Output value for decode
526 //Input value for encode
527 /* Data coding scheme */
528 kal_uint8 dcs; //Output value for decode
529 //Input value for encode
530 /* Service Centre Address */
531 l4c_number_struct sca; //Output value for decode
532 //Input value for encode
533 /* Destination Address */
534 l4c_number_struct da; //Output value for decode
535 //Input value for encode
536}smslib_ef_smsp_struct;
537
538#endif // __SMS_STORAGE_BY_MMI__
539
540#endif