Home | History | Annotate | Download | only in sms
      1 /*
      2  * Copyright (C) 2008 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.internal.telephony.cdma.sms;
     18 
     19 
     20 import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress;
     21 
     22 public final class SmsEnvelope {
     23     /**
     24      * Message Types
     25      * (See 3GPP2 C.S0015-B 3.4.1)
     26      */
     27     static public final int MESSAGE_TYPE_POINT_TO_POINT   = 0x00;
     28     static public final int MESSAGE_TYPE_BROADCAST        = 0x01;
     29     static public final int MESSAGE_TYPE_ACKNOWLEDGE      = 0x02;
     30 
     31     /**
     32      * Supported Teleservices
     33      * (See 3GPP2 N.S0005 and TIA-41)
     34      */
     35     static public final int TELESERVICE_NOT_SET           = 0x0000;
     36     static public final int TELESERVICE_WMT               = 0x1002;
     37     static public final int TELESERVICE_VMN               = 0x1003;
     38     static public final int TELESERVICE_WAP               = 0x1004;
     39     static public final int TELESERVICE_WEMT              = 0x1005;
     40     static public final int TELESERVICE_SCPT              = 0x1006;
     41 
     42     /**
     43      * The following are defined as extensions to the standard teleservices
     44      */
     45     // Voice mail notification through Message Waiting Indication in CDMA mode or Analog mode.
     46     // Defined in 3GPP2 C.S-0005, 3.7.5.6, an Info Record containing an 8-bit number with the
     47     // number of messages waiting, it's used by some CDMA carriers for a voice mail count.
     48     static public final int TELESERVICE_MWI               = 0x40000;
     49 
     50     // Service Categories for Cell Broadcast, see 3GPP2 C.R1001 table 9.3.1-1
     51     // static final int SERVICE_CATEGORY_EMERGENCY      = 0x0001;
     52     //...
     53 
     54     // CMAS alert service category assignments, see 3GPP2 C.R1001 table 9.3.3-1
     55     public static final int SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT  = 0x1000;
     56     public static final int SERVICE_CATEGORY_CMAS_EXTREME_THREAT            = 0x1001;
     57     public static final int SERVICE_CATEGORY_CMAS_SEVERE_THREAT             = 0x1002;
     58     public static final int SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003;
     59     public static final int SERVICE_CATEGORY_CMAS_TEST_MESSAGE              = 0x1004;
     60     public static final int SERVICE_CATEGORY_CMAS_LAST_RESERVED_VALUE       = 0x10ff;
     61 
     62     /**
     63      * Provides the type of a SMS message like point to point, broadcast or acknowledge
     64      */
     65     public int messageType;
     66 
     67     /**
     68      * The 16-bit Teleservice parameter identifies which upper layer service access point is sending
     69      * or receiving the message.
     70      * (See 3GPP2 C.S0015-B, v2, 3.4.3.1)
     71      */
     72     public int teleService = TELESERVICE_NOT_SET;
     73 
     74     /**
     75      * The 16-bit service category parameter identifies the type of service provided
     76      * by the SMS message.
     77      * (See 3GPP2 C.S0015-B, v2, 3.4.3.2)
     78      */
     79     public int serviceCategory;
     80 
     81     /**
     82      * The origination address identifies the originator of the SMS message.
     83      * (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
     84      */
     85     public CdmaSmsAddress origAddress;
     86 
     87     /**
     88      * The destination address identifies the target of the SMS message.
     89      * (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
     90      */
     91     public CdmaSmsAddress destAddress;
     92 
     93     /**
     94      * The origination subaddress identifies the originator of the SMS message.
     95      * (See 3GPP2 C.S0015-B, v2, 3.4.3.4)
     96      */
     97     public CdmaSmsSubaddress origSubaddress;
     98 
     99     /**
    100      * The 6-bit bearer reply parameter is used to request the return of a
    101      * SMS Acknowledge Message.
    102      * (See 3GPP2 C.S0015-B, v2, 3.4.3.5)
    103      */
    104     public int bearerReply;
    105 
    106     /**
    107      * Cause Code values:
    108      * The cause code parameters are an indication whether an SMS error has occurred and if so,
    109      * whether the condition is considered temporary or permanent.
    110      * ReplySeqNo 6-bit value,
    111      * ErrorClass 2-bit value,
    112      * CauseCode 0-bit or 8-bit value
    113      * (See 3GPP2 C.S0015-B, v2, 3.4.3.6)
    114      */
    115     public byte replySeqNo;
    116     public byte errorClass;
    117     public byte causeCode;
    118 
    119     /**
    120      * encoded bearer data
    121      * (See 3GPP2 C.S0015-B, v2, 3.4.3.7)
    122      */
    123     public byte[] bearerData;
    124 
    125     public SmsEnvelope() {
    126         // nothing to see here
    127     }
    128 
    129 }
    130 
    131