1f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/*
2f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * Copyright (C) 2006 The Android Open Source Project
3f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *
4f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * you may not use this file except in compliance with the License.
6f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * You may obtain a copy of the License at
7f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *
8f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *
10f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * Unless required by applicable law or agreed to in writing, software
11f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * See the License for the specific language governing permissions and
14f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * limitations under the License.
15f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville */
16f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
17f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/*
18f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * ISSUES:
19f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *
20f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville */
21f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
22f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/**
23f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville * TODO
24f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville *
257f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville *
26f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville */
27f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
28f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
297f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville#ifndef ANDROID_RIL_CDMA_SMS_H
30f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define ANDROID_RIL_CDMA_SMS_H 1
31f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
32f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#include <stdlib.h>
33f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
34f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#ifdef __cplusplus
35f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilleextern "C" {
36f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#endif
37f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
38f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Used by RIL_REQUEST_CDMA_SEND_SMS and RIL_UNSOL_RESPONSE_CDMA_NEW_SMS */
39f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
40f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_ADDRESS_MAX     36
41f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_SUBADDRESS_MAX  36
42f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_BEARER_DATA_MAX 255
43f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
44f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
45f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DIGIT_MODE_4_BIT = 0,     /* DTMF digits */
46f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DIGIT_MODE_8_BIT = 1,
47f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DIGIT_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
48f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_DigitMode;
49f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
50f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
51f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_MODE_NOT_DATA_NETWORK = 0,
52f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_MODE_DATA_NETWORK     = 1,
53f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
54f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_NumberMode;
55f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
56f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
57f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_UNKNOWN                   = 0,
58f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP  = 1,
59f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* INTERNATIONAL is used when number mode is not data network address.
607f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville       * DATA_IP is used when the number mode is data network address
61f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       */
62f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2,
63f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* NATIONAL is used when the number mode is not data network address.
647f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville       * INTERNET_MAIL is used when the number mode is data network address.
657f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville       * For INTERNET_MAIL, in the address data "digits", each byte contains
667f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville       * an ASCII character. Examples are "x@y.com,a@b.com - ref TIA/EIA-637A 3.4.3.3
67f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       */
68f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_NETWORK                   = 3,
69f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_SUBSCRIBER                = 4,
70f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_ALPHANUMERIC              = 5,
71f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* GSM SMS: address value is GSM 7-bit chars */
72f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_ABBREVIATED               = 6,
73f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_RESERVED_7                = 7,
74f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
75f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_NumberType;
76f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
77f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
78f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_PLAN_UNKNOWN     = 0,
79f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY   = 1,      /* CCITT E.164 and E.163, including ISDN plan */
807f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_2  = 2,
81f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_PLAN_DATA        = 3,      /* CCITT X.121 */
82f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_PLAN_TELEX       = 4,      /* CCITT F.69 */
837f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_5  = 5,
847f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_6  = 6,
857f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_7  = 7,
867f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_8  = 8,
877f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_PRIVATE     = 9,
887f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_10 = 10,
897f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_11 = 11,
907f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_12 = 12,
917f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_13 = 13,
927f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_14 = 14,
937f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_15 = 15,
94f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NUMBER_PLAN_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
95f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_NumberPlan;
96f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
97f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
98f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DigitMode digit_mode;
99f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* Indicates 4-bit or 8-bit */
100f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NumberMode number_mode;
101f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* Used only when digitMode is 8-bit */
102f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NumberType number_type;
103f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* Used only when digitMode is 8-bit.
1047f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville       * To specify an international address, use the following:
105f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * digitMode = RIL_CDMA_SMS_DIGIT_MODE_8_BIT
106f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * numberMode = RIL_CDMA_SMS_NOT_DATA_NETWORK
107f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * numberType = RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP
108f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * numberPlan = RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY
109f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * numberOfDigits = number of digits
110f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       * digits = ASCII digits, e.g. '1', '2', '3'3, '4', and '5'
111f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       */
112f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NumberPlan number_plan;
113f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville      /* Used only when digitMode is 8-bit */
114f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char number_of_digits;
115f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char digits[ RIL_CDMA_SMS_ADDRESS_MAX ];
1167f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville      /* Each byte in this array represnts a 40bit or 8-bit digit of address data */
117f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Address;
118f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
119f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
120f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_SUBADDRESS_TYPE_NSAP           = 0,    /* CCITT X.213 or ISO 8348 AD2 */
121f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_SUBADDRESS_TYPE_USER_SPECIFIED = 1,    /* e.g. X.25 */
122f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_SUBADDRESS_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
123f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_SubaddressType;
124f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
125f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
126f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_SubaddressType subaddressType;
127f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* 1 means the last byte's lower 4 bits should be ignored */
128f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char odd;
129f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char number_of_digits;
130f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Each byte respresents a 8-bit digit of subaddress data */
131f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char digits[ RIL_CDMA_SMS_SUBADDRESS_MAX ];
132f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Subaddress;
133f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
134f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
135f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    int uTeleserviceID;
136f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char bIsServicePresent;
137f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    int uServicecategory;
138f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Address sAddress;
139f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Subaddress sSubAddress;
140f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    int uBearerDataLen;
141f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char aBearerData[ RIL_CDMA_SMS_BEARER_DATA_MAX ];
142f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Message;
143f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
144f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Used by RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE */
145f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
146f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
147f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_NO_ERROR       = 0,
148f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ERROR          = 1,
149f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ERROR_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
150f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_ErrorClass;
151f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
152f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
153f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ErrorClass uErrorClass;
154b60444ef2fe63b372e13f3d38ebf8448d6c127f5jsh    int uSMSCauseCode;  /* As defined in N.S00005, 6.5.2.125.
155b60444ef2fe63b372e13f3d38ebf8448d6c127f5jsh                           Currently, only 35 (resource shortage) and
156b60444ef2fe63b372e13f3d38ebf8448d6c127f5jsh                           39 (other terminal problem) are reported. */
157f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Ack;
158f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
159a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville/* Used by RIL_REQUEST_CDMA_SMS_GET_BROADCAST_CONFIG and
160a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville   RIL_REQUEST_CDMA_SMS_SET_BROADCAST_CONFIG */
161f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
162f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
163a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville    int service_category;
164a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville    int language;
165a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville    unsigned char selected;
166a592eebc476a3d234f47f93e58252f8c822fc772Wink Saville} RIL_CDMA_BroadcastSmsConfigInfo;
167f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
168f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Used by RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM */
169f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
170f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
171f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    int status;     /* Status of message.  See TS 27.005 3.1, "<stat>": */
172f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville                  /*      0 = "REC UNREAD"    */
173f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville                  /*      1 = "REC READ"      */
174f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville                  /*      2 = "STO UNSENT"    */
175f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville                  /*      3 = "STO SENT"      */
176f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
177f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Message message;
178f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_WriteArgs;
179f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
180f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
181f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Used by RIL_REQUEST_ENCODE_CDMA_SMS and RIL_REQUEST_DECODE_CDMA_SMS*/
182f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
1837f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville#define RIL_CDMA_SMS_UDH_MAX_SND_SIZE           128
184f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX    131 /* 140 - 3 - 6 */
185f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_MAX_UD_HEADERS         7
186f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_USER_DATA_MAX     229
187f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_ADDRESS_MAX            36
188f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE     128
189f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE     32
190f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_VAR_PIC_SIZE       134
191f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS   4
192f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE  32
193f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE  8
194f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_UDH_OTHER_SIZE         226
195f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#define RIL_CDMA_SMS_IP_ADDRESS_SIZE        4
196f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
197f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------- */
198f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- User Data ---- */
199f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------- */
200f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
201f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_CONCAT_8         = 0x00,
202f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_SPECIAL_SM,
203f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* 02 - 03    Reserved */
204f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_PORT_8           = 0x04,
205f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_PORT_16,
206f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_SMSC_CONTROL,
207f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_SOURCE,
208f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_CONCAT_16,
209f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_WCMP,
210f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_FORMATING,
211f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_PRE_DEF_SOUND,
212f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_USER_DEF_SOUND,
213f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_PRE_DEF_ANIM,
214f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_LARGE_ANIM,
215f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_SMALL_ANIM,
216f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_LARGE_PICTURE,
217f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_SMALL_PICTURE,
218f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_VAR_PICTURE,
219f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
220f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_USER_PROMPT      = 0x13,
221f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_EXTENDED_OBJECT  = 0x14,
222f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
223f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* 15 - 1F    Reserved for future EMS */
224f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
225f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_RFC822           = 0x20,
226f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
227f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  21 - 6F    Reserved for future use */
228f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  70 - 7f    Reserved for (U)SIM Toolkit Security Headers */
229f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  80 - 9F    SME to SME specific use */
230f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  A0 - BF    Reserved for future use */
231f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  C0 - DF    SC specific use */
232f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*  E0 - FF    Reserved for future use */
233f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
234f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_OTHER            = 0xFFFF, /* For unsupported or proprietary headers */
235f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_ID_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
236f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
237f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhId;
238f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
239f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
240f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*indicates the reference number for a particular concatenated short message. */
241f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*it is constant for every short message which makes up a particular concatenated short message*/
242f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       msg_ref;
243f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
244f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*indicates the total number of short messages within the concatenated short message.
2457f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville     The value shall start at 1 and remain constant for every
246f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     short message which makes up the concatenated short message.
247f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     if it is 0 then the receiving entity shall ignore the whole Information Element*/
248f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       total_sm;
249f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
2507f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    /*
2517f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville     * it indicates the sequence number of a particular short message within the concatenated short
2527f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville     * message. The value shall start at 1 and increment by one for every short message sent
2537f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville     * within the concatenated short message. If the value is zero or the value is
2547f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville     * greater than the value in octet 2 then the receiving
255f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     * entity shall ignore the whole Information Element.
256f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     */
257f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      seq_num;
258f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhConcat8;
259f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
260f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* GW message waiting actions
261f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
262f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
263f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_NONE,
264f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_DISCARD,
265f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_STORE,
266f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_NONE_1111,
267f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
268f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_GWMsgWaiting;
269f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
270f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* GW message waiting types
271f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
272f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
273f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_VOICEMAIL,
274f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_FAX,
275f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_EMAIL,
276f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_OTHER,
277f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GW_MSG_WAITING_KIND_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
278f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_GWMsgWaitingKind;
279f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
280f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
281f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GWMsgWaiting                 msg_waiting;
282f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_GWMsgWaitingKind             msg_waiting_kind;
283f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
284f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*it indicates the number of messages of the type specified in Octet 1 waiting.*/
285f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                             message_count;
286f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhSpecialSM;
287f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
288f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
289f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char  dest_port;
290f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char  orig_port;
291f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhWap8;
292f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
293f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
294f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned short  dest_port;
295f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned short  orig_port;
296f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhWap16;
297f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
298f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
299f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned short      msg_ref;
300f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       total_sm;
301f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       seq_num;
302f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
303f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhConcat16;
304f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
305f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
306f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_LEFT_ALIGNMENT = 0,
307f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_CENTER_ALIGNMENT,
308f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_RIGHT_ALIGNMENT,
309f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_DEFAULT_ALIGNMENT,
310f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_MAX_ALIGNMENT,
311f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_ALIGNMENT_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
312f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhAlignment;
313f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
314f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
315f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_NORMAL = 0,
316f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_LARGE,
317f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_SMALL,
318f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_RESERVED,
319f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_MAX,
320f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_FONT_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
321f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhFontSize;
322f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
323f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
324f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BLACK          = 0x0,
325f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREY      = 0x1,
326f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_RED       = 0x2,
327f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_YELLOW    = 0x3,
328f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREEN     = 0x4,
329f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_CYAN      = 0x5,
330f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_BLUE      = 0x6,
331f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_MAGENTA   = 0x7,
332f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_GREY           = 0x8,
333f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_WHITE          = 0x9,
334f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_RED     = 0xA,
335f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_YELLOW  = 0xB,
336f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_GREEN   = 0xC,
337f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_CYAN    = 0xD,
338f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_BLUE    = 0xE,
339f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_MAGENTA = 0xF,
340f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_TEXT_COLOR_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
341f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhTextColor;
342f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
343f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
344f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              start_position;
345f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              text_formatting_length;
346f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhAlignment  alignment_type ;       /*bit 0 and  bit 1*/
347f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhFontSize   font_size ;            /*bit 3 and  bit 2*/
348f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              style_bold;            /*bit 4 */
349f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              style_italic;          /*bit 5  */
350f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              style_underlined;      /*bit 6 */
351f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              style_strikethrough;   /*bit 7 */
352f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
353f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* if FALSE, ignore the following color information */
354f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              is_color_present;
355f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhTextColor  text_color_foreground;
356f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhTextColor  text_color_background;
357f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
358f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhTextFormating;
359f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
360f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Predefined sound
361f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
362f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
363f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
364f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       snd_number;
365f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhPreDefSound;
366f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
367f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* User Defined sound
368f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
369f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
370f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data_length;
371f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
372f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       user_def_sound[RIL_CDMA_SMS_UDH_MAX_SND_SIZE];
373f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhUserDefSound;
374f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
375f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Large picture
376f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
377f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
378f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
379f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data[RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE];
380f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhLargePictureData;
381f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
382f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Small picture
383f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
384f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
385f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
386f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data[RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE];
387f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhSmallPictureData;
388f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
389f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Variable length picture
390f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
391f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
392f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
393f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       width;    /* Number of pixels - Should be a mutliple of 8 */
394f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       height;
395f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data[RIL_CDMA_SMS_UDH_VAR_PIC_SIZE];
396f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhVarPicture;
397f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
398f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Predefined animation
399f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
400f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
401f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
402f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       animation_number;
403f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhPreDefAnim;
404f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
405f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Large animation
406f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
407f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
408f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
409f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE];
410f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhLargeAnim;
411f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
412f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Small animation
413f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
414f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
415f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       position;
416f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE];
417f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhSmallAnim;
418f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
419f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* User Prompt Indicator UDH
420f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
421f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
422f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char       number_of_objects;
423f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Number of objects of the same kind that follow this header which will
424f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** be stitched together by the applications. For example, 5 small pictures
425f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** are to be stitched together horizontally, or 6 iMelody tones are to be
426f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** connected together with intermediate iMelody header and footer ignored.
427f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** Allowed objects to be stitched:
428f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    **   - Images (small, large, variable)
429f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    **   - User defined sounds
430f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
431f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhUserPrompt;
432f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
433f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
434f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char         length;
435f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
436f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char         data[RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX];
437f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* RIL_CDMA_SMS_UDH_EO_VCARD: See http://www.imc.org/pdi/vcard-21.doc for payload */
438f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* RIL_CDMA_SMS_UDH_EO_VCALENDAR: See http://www.imc.org/pdi/vcal-10.doc */
439f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Or: Unsupported/proprietary extended objects */
440f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
441f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhEoContent;
442f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
443f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Extended Object UDH
444f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
445f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* Extended Object IDs/types
446f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
447f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
448f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_EO_VCARD                   = 0x09,
449f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_EO_VCALENDAR               = 0x0A,
450f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UDH_EO_MAX32 = 0x10000000   /* Force constant ENUM size in structures */
451f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhEoId;
452f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
453f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
454f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Extended objects are to be used together with 16-bit concatenation
455f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** UDH. The max number of segments supported for E.O. is 8 at least.
456f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
457f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhEoContent    content;
458f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
459f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                 first_segment;
460f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* The following fields are only present in the first segment of a
461f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** concatenated SMS message.
462f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
463f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville   unsigned char                                   reference;
464f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Identify those extended object segments which should be linked together
465f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
466f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville   unsigned short                                  length;
467f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Length of the whole extended object data
468f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
469f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                   control;
470f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhEoId                    type;
471f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned short                                  position;
472f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Absolute position of the E.O. in the whole text after concatenation,
473f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** starting from 1.
474f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
475f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhEo;
476f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
477f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
478f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhId  header_id;
479f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char               header_length;
480f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char              data[RIL_CDMA_SMS_UDH_OTHER_SIZE];
481f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhOther;
482f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
483f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
484f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char        header_length;
485f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UdhRfc822;
486f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
487f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
488f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UdhId                header_id;
489f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
490f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    union {
491f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhConcat8             concat_8;       // 00
4927f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville
493f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhSpecialSM           special_sm;     // 01
494f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhWap8                wap_8;          // 04
495f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhWap16               wap_16;         // 05
496f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhConcat16            concat_16;      // 08
497f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhTextFormating       text_formating; // 0a
498f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhPreDefSound         pre_def_sound;  // 0b
499f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhUserDefSound        user_def_sound; // 0c
500f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhPreDefAnim          pre_def_anim;   // 0d
501f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhLargeAnim           large_anim;     // 0e
502f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhSmallAnim           small_anim;     // 0f
503f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhLargePictureData    large_picture;  // 10
504f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhSmallPictureData    small_picture;  // 11
505f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhVarPicture          var_picture;    // 12
5067f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville
507f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhUserPrompt          user_prompt;    // 13
508f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhEo                  eo;             // 14
5097f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville
510f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhRfc822              rfc822;         // 20
511f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville        RIL_CDMA_SMS_UdhOther               other;
512f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
5137f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville    }u;
514f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Udh;
515f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
516f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ----------------------------- */
517f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* -- User data encoding type -- */
518f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ----------------------------- */
519f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
520f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_OCTET        = 0,    /* 8-bit */
521f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_IS91EP,              /* varies */
522f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_ASCII,               /* 7-bit */
523f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_IA5,                 /* 7-bit */
524f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_UNICODE,             /* 16-bit */
525f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_SHIFT_JIS,           /* 8 or 16-bit */
526f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_KOREAN,              /* 8 or 16-bit */
527f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_LATIN_HEBREW,        /* 8-bit */
528f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_LATIN,               /* 8-bit */
529f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_GSM_7_BIT_DEFAULT,   /* 7-bit */
530f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ENCODING_MAX32        = 0x10000000
531f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
532f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_UserDataEncoding;
533f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
534f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------------ */
535f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* -- IS-91 EP data type -- */
536f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------------ */
537f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
538f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EP_VOICE_MAIL         = 0x82,
539f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE_FULL = 0x83,
540f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EP_CLI_ORDER          = 0x84,
541f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE      = 0x85,
542f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EP_MAX32              = 0x10000000
543f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
544f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_IS91EPType;
545f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
546f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
547f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* NOTE: If message_id.udh_present == TRUE:
548f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    **       'num_headers' is the number of User Data Headers (UDHs),
549f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    **       and 'headers' include all those headers.
550f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
551f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                              num_headers;
552f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Udh                     headers[RIL_CDMA_SMS_MAX_UD_HEADERS];
553f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
554f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UserDataEncoding      encoding;
555f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IS91EPType             is91ep_type;
556f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
557f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /*----------------------------------------------------------------------
558f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     'data_len' indicates the valid number of bytes in the 'data' array.
559f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
560f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     'padding_bits' (0-7) indicates how many bits in the last byte of 'data'
561f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     are invalid bits. This parameter is only used for Mobile-Originated
562f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     messages. There is no way for the API to tell how many padding bits
563f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     exist in the received message. Instead, the application can find out how
564f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     many padding bits exist in the user data when decoding the user data.
565f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
566f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     'data' has the raw bits of the user data field of the SMS message.
567f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     The client software should decode the raw user data according to its
568f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     supported encoding types and languages.
569f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
570f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     EXCEPTION 1: CMT-91 user data raw bits are first translated into BD fields
571f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     (e.g. num_messages, callback, etc.) The translated user data field in
572f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     VMN and Short Message is in the form of ASCII characters, each occupying
573f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     a byte in the resulted 'data'.
574f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
575f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     EXCEPTION 2: GSM 7-bit Default characters are decoded so that each byte
576f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     has one 7-bit GSM character.
577f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
578f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     'number_of_digits' is the number of digits/characters (7, 8, 16, or
579f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     whatever bits) in the raw user data, which can be used by the client
580f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     when decoding the user data according to the encoding type and language.
581f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    -------------------------------------------------------------------------*/
582f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                data_len;
583f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                padding_bits;
584f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                data[ RIL_CDMA_SMS_USER_DATA_MAX ];
585f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                                number_of_digits;
586f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
587f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_CdmaUserData;
588f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
589f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* -------------------- */
590f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Message Id ---- */
591f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* -------------------- */
592f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
593f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_RESERVED_0     = 0,
594f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_DELIVER,       /* MT only */
595f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_SUBMIT,        /* MO only */
596f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_CANCELLATION,  /* MO only */
597f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_DELIVERY_ACK,  /* MT only */
598f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_USER_ACK,      /* MT & MO */
599f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_READ_ACK,      /* MT & MO */
600f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BD_TYPE_MAX32          = 0x10000000
601f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
602f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_BdMessageType;
603f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
604f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef unsigned int  RIL_CDMA_SMS_MessageNumber;
605f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
606f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
607f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_BdMessageType   type;
608f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_MessageNumber      id_number;
609f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                      udh_present;
610f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* NOTE: if FEATURE_SMS_UDH is not defined,
611f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** udh_present should be ignored.
612f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
613f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_MessageId;
614f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
615f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef unsigned char           RIL_CDMA_SMS_UserResponse;
616f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
617f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------- */
618f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Timestamp ---- */
619f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------- */
620f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
621f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* If 'year' is between 96 and 99, the actual year is 1900 + 'year';
622f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       if 'year' is between 00 and 95, the actual year is 2000 + 'year'.
623f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       NOTE: Each field has two BCD digits and byte arrangement is <MSB, ... ,LSB>
624f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
625f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      year;        /* 0x00-0x99 */
626f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      month;       /* 0x01-0x12 */
627f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      day;         /* 0x01-0x31 */
628f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      hour;        /* 0x00-0x23 */
629f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      minute;      /* 0x00-0x59 */
630f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char      second;      /* 0x00-0x59 */
631f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    signed char      timezone;    /* +/-, [-48,+48] number of 15 minutes - GW only */
632f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Timestamp;
633f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
634f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------ */
635f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Priority ---- */
636f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------ */
637f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
638f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIORITY_NORMAL      = 0,
639f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIORITY_INTERACTIVE,
640f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIORITY_URGENT,
641f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIORITY_EMERGENCY,
642f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIORITY_MAX32       = 0x10000000
643f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
644f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Priority;
645f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
646f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ----------------- */
647f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Privacy ---- */
648f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ----------------- */
649f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
650f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIVACY_NORMAL      = 0,
651f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIVACY_RESTRICTED,
652f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIVACY_CONFIDENTIAL,
653f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIVACY_SECRET,
654f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_PRIVACY_MAX32       = 0x10000000
655f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
656f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Privacy;
657f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
658f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------- */
659f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Reply option ---- */
660f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------- */
661f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
662f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* whether user ack is requested
663f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
664f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char          user_ack_requested;
665f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
666f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* whether delivery ack is requested.
667f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville       Should be FALSE for incoming messages.
668f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
669f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char          delivery_ack_requested;
670f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
671f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* Message originator requests the receiving phone to send back a READ_ACK
672f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** message automatically when the user reads the received message.
673f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
674f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char          read_ack_requested;
675f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
676f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_ReplyOption;
677f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
678f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
679f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_DEFAULT         = 0,
680f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_LOW_PRIORITY    = 1,
681f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_MEDIUM_PRIORITY = 2,
682f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_HIGH_PRIORITY   = 3,
683f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
684f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* For pre-IS637A implementations, alert_mode only has values of True/False:
685f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
686f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_OFF   = 0,
687f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ALERT_MODE_ON    = 1
688f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
689f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_AlertMode;
690f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
691f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------ */
692f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---- Language ---- */
693f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ------------------ */
694f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
695f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_UNSPECIFIED = 0,
696f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_ENGLISH,
697f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_FRENCH,
698f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_SPANISH,
699f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_JAPANESE,
700f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_KOREAN,
701f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_CHINESE,
702f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_HEBREW,
703f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_LANGUAGE_MAX32       = 0x10000000
704f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
705f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_Language;
706f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
707f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------------------- */
708f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------- Display Mode ---------- */
709f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------------------- */
710f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
711f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DISPLAY_MODE_IMMEDIATE   = 0,
712f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DISPLAY_MODE_DEFAULT     = 1,
713f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DISPLAY_MODE_USER_INVOKE = 2,
714f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DISPLAY_MODE_RESERVED    = 3
715f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_DisplayMode;
716f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
717f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* IS-637B parameters/fields
718f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
719f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
720f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------------------- */
721f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------- Delivery Status ------- */
722f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* ---------------------------------- */
723f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef enum {
724f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_ACCEPTED              = 0,    /* ERROR_CLASS_NONE */
725f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_DEPOSITED_TO_INTERNET = 1,    /* ERROR_CLASS_NONE */
726f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_DELIVERED             = 2,    /* ERROR_CLASS_NONE */
727f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_CANCELLED             = 3,    /* ERROR_CLASS_NONE */
728f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
729f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_CONGESTION  = 4,    /* ERROR_CLASS_TEMP & PERM */
730f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_ERROR       = 5,    /* ERROR_CLASS_TEMP & PERM */
731f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_CANCEL_FAILED       = 6,    /* ERROR_CLASS_PERM */
732f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_BLOCKED_DESTINATION = 7,    /* ERROR_CLASS_PERM */
733f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_TEXT_TOO_LONG       = 8,    /* ERROR_CLASS_PERM */
734f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_DUPLICATE_MESSAGE   = 9,    /* ERROR_CLASS_PERM */
735f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_INVALID_DESTINATION = 10,   /* ERROR_CLASS_PERM */
736f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_MESSAGE_EXPIRED     = 13,   /* ERROR_CLASS_PERM */
737f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
738f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DELIVERY_STATUS_UNKNOWN_ERROR       = 0x1F  /* ERROR_CLASS_PERM */
739f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
740f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* All the other values are reserved */
741f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
742f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_DeliveryStatusE;
743f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
744f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
745f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ErrorClass       error_class;
746f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DeliveryStatusE   status;
747f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_DeliveryStatus;
748f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
749f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
750f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char               address[RIL_CDMA_SMS_IP_ADDRESS_SIZE];
751f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char             is_valid;
752f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_IpAddress;
753f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
754f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville/* This special parameter captures any unrecognized/proprietary parameters
755f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville*/
756f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
757f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                         input_other_len;
758f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                         desired_other_len; /* used during decoding */
759f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                         * other_data;
760f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_OtherParm;
761f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
762f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
763f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* the mask indicates which fields are present in this message */
764f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned int                        mask;
765f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
766f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_MessageId         message_id;
767f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_CdmaUserData     user_data;
768f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_UserResponse        user_response;
769f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Timestamp          mc_time;
770f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Timestamp          validity_absolute;
771f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Timestamp          validity_relative;
772f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Timestamp          deferred_absolute;
773f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Timestamp          deferred_relative;
774f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Priority           priority;
775f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Privacy            privacy;
776f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_ReplyOption       reply_option;
777f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                         num_messages;  /* the actual value; not BCDs */
778f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_AlertMode         alert_mode;
779f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville     /* For pre-IS-637A implementations, alert_mode is either Off or On. */
780f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Language           language;
781f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_Address            callback;
782f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DisplayMode       display_mode;
783f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
784f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_DeliveryStatus    delivery_status;
785f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned int                        deposit_index;
786f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
787f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_IpAddress         ip_address;
788f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char                         rsn_no_notify;
789f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
790f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    /* See function comments of wms_ts_decode() and
791f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    ** wms_ts_decode_cdma_bd_with_other() for details regarding 'other' parameters
792f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    */
793f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    RIL_CDMA_SMS_OtherParm         other;
794f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
795f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_SMS_ClientBd;
796f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
797f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Savilletypedef struct {
798f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char length;   /* length, in bytes, of the encoded SMS message */
799f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville    unsigned char * data;   /* the encoded SMS message (max 255 bytes) */
800f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville} RIL_CDMA_Encoded_SMS;
801f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
802f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#ifdef __cplusplus
803f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville}
804f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#endif
805f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville
806f4c4d36c410a3501d282dd7de1c7c3350734f27eWink Saville#endif /*ANDROID_RIL_CDMA_SMS_H*/
807