14980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen/*
24980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * Copyright (C) 2008 The Android Open Source Project
34980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen *
44980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * Licensed under the Apache License, Version 2.0 (the "License");
54980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * you may not use this file except in compliance with the License.
64980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * You may obtain a copy of the License at
74980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen *
84980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen *      http://www.apache.org/licenses/LICENSE-2.0
94980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen *
104980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * Unless required by applicable law or agreed to in writing, software
114980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * distributed under the License is distributed on an "AS IS" BASIS,
124980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * See the License for the specific language governing permissions and
144980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen * limitations under the License.
154980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen */
164980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
174980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsenpackage com.android.internal.telephony.cdma.sms;
184980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
194980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
204980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsenimport com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress;
214980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
224980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsenpublic final class SmsEnvelope {
234980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
244980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * Message Types
254980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B 3.4.1)
264980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
274980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int MESSAGE_TYPE_POINT_TO_POINT   = 0x00;
284980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int MESSAGE_TYPE_BROADCAST        = 0x01;
294980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int MESSAGE_TYPE_ACKNOWLEDGE      = 0x02;
304980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
314980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
324980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * Supported Teleservices
334980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 N.S0005 and TIA-41)
344980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
354980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_NOT_SET           = 0x0000;
364980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_WMT               = 0x1002;
374980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_VMN               = 0x1003;
384980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_WAP               = 0x1004;
394980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_WEMT              = 0x1005;
404980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_SCPT              = 0x1006;
414980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
424980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
434980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The following are defined as extensions to the standard teleservices
444980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
454980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // Voice mail notification through Message Waiting Indication in CDMA mode or Analog mode.
464980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // Defined in 3GPP2 C.S-0005, 3.7.5.6, an Info Record containing an 8-bit number with the
474980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // number of messages waiting, it's used by some CDMA carriers for a voice mail count.
484980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    static public final int TELESERVICE_MWI               = 0x40000;
494980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
504980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // Service Categories for Cell Broadcast, see 3GPP2 C.R1001 table 9.3.1-1
514980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // static final int SERVICE_CATEGORY_EMERGENCY      = 0x0001;
524980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    //...
534980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
544980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    // CMAS alert service category assignments, see 3GPP2 C.R1001 table 9.3.3-1
554980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT  = 0x1000;
564980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_EXTREME_THREAT            = 0x1001;
574980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_SEVERE_THREAT             = 0x1002;
584980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003;
594980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_TEST_MESSAGE              = 0x1004;
604980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public static final int SERVICE_CATEGORY_CMAS_LAST_RESERVED_VALUE       = 0x10ff;
614980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
624980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
634980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * Provides the type of a SMS message like point to point, broadcast or acknowledge
644980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
654980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public int messageType;
664980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
674980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
684980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The 16-bit Teleservice parameter identifies which upper layer service access point is sending
694980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * or receiving the message.
704980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.1)
714980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
724980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public int teleService = TELESERVICE_NOT_SET;
734980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
744980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
754980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The 16-bit service category parameter identifies the type of service provided
764980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * by the SMS message.
774980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.2)
784980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
794980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public int serviceCategory;
804980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
814980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
824980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The origination address identifies the originator of the SMS message.
834980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
844980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
854980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public CdmaSmsAddress origAddress;
864980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
874980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
884980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The destination address identifies the target of the SMS message.
894980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
904980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
914980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public CdmaSmsAddress destAddress;
924980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
934980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
944980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The origination subaddress identifies the originator of the SMS message.
954980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.4)
964980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
974980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public CdmaSmsSubaddress origSubaddress;
984980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
994980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
1004980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The 6-bit bearer reply parameter is used to request the return of a
1014980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * SMS Acknowledge Message.
1024980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.5)
1034980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
1044980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public int bearerReply;
1054980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
1064980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
1074980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * Cause Code values:
1084980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * The cause code parameters are an indication whether an SMS error has occurred and if so,
1094980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * whether the condition is considered temporary or permanent.
1104980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * ReplySeqNo 6-bit value,
1114980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * ErrorClass 2-bit value,
1124980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * CauseCode 0-bit or 8-bit value
1134980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.6)
1144980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
1154980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public byte replySeqNo;
1164980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public byte errorClass;
1174980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public byte causeCode;
1184980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
1194980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    /**
1204980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * encoded bearer data
1214980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     * (See 3GPP2 C.S0015-B, v2, 3.4.3.7)
1224980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen     */
1234980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public byte[] bearerData;
1244980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
1254980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    public SmsEnvelope() {
1264980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen        // nothing to see here
1274980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen    }
1284980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
1294980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen}
1304980bf4aff8d49ac4e05444a6ef40ea1536f1afbDan Willemsen
131