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