/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony.cdma.sms; import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress; public final class SmsEnvelope { /** * Message Types * (See 3GPP2 C.S0015-B 3.4.1) */ static public final int MESSAGE_TYPE_POINT_TO_POINT = 0x00; static public final int MESSAGE_TYPE_BROADCAST = 0x01; static public final int MESSAGE_TYPE_ACKNOWLEDGE = 0x02; /** * Supported Teleservices * (See 3GPP2 N.S0005 and TIA-41) */ static public final int TELESERVICE_NOT_SET = 0x0000; static public final int TELESERVICE_WMT = 0x1002; static public final int TELESERVICE_VMN = 0x1003; static public final int TELESERVICE_WAP = 0x1004; static public final int TELESERVICE_WEMT = 0x1005; static public final int TELESERVICE_SCPT = 0x1006; /** * The following are defined as extensions to the standard teleservices */ // Voice mail notification through Message Waiting Indication in CDMA mode or Analog mode. // Defined in 3GPP2 C.S-0005, 3.7.5.6, an Info Record containing an 8-bit number with the // number of messages waiting, it's used by some CDMA carriers for a voice mail count. static public final int TELESERVICE_MWI = 0x40000; // Service Categories for Cell Broadcast, see 3GPP2 C.R1001 table 9.3.1-1 // static final int SERVICE_CATEGORY_EMERGENCY = 0x0001; //... // CMAS alert service category assignments, see 3GPP2 C.R1001 table 9.3.3-1 public static final int SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT = 0x1000; public static final int SERVICE_CATEGORY_CMAS_EXTREME_THREAT = 0x1001; public static final int SERVICE_CATEGORY_CMAS_SEVERE_THREAT = 0x1002; public static final int SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003; public static final int SERVICE_CATEGORY_CMAS_TEST_MESSAGE = 0x1004; public static final int SERVICE_CATEGORY_CMAS_LAST_RESERVED_VALUE = 0x10ff; /** * Provides the type of a SMS message like point to point, broadcast or acknowledge */ public int messageType; /** * The 16-bit Teleservice parameter identifies which upper layer service access point is sending * or receiving the message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.1) */ public int teleService = TELESERVICE_NOT_SET; /** * The 16-bit service category parameter identifies the type of service provided * by the SMS message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.2) */ public int serviceCategory; /** * The origination address identifies the originator of the SMS message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.3) */ public CdmaSmsAddress origAddress; /** * The destination address identifies the target of the SMS message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.3) */ public CdmaSmsAddress destAddress; /** * The origination subaddress identifies the originator of the SMS message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.4) */ public CdmaSmsSubaddress origSubaddress; /** * The 6-bit bearer reply parameter is used to request the return of a * SMS Acknowledge Message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.5) */ public int bearerReply; /** * Cause Code values: * The cause code parameters are an indication whether an SMS error has occurred and if so, * whether the condition is considered temporary or permanent. * ReplySeqNo 6-bit value, * ErrorClass 2-bit value, * CauseCode 0-bit or 8-bit value * (See 3GPP2 C.S0015-B, v2, 3.4.3.6) */ public byte replySeqNo; public byte errorClass; public byte causeCode; /** * encoded bearer data * (See 3GPP2 C.S0015-B, v2, 3.4.3.7) */ public byte[] bearerData; public SmsEnvelope() { // nothing to see here } }