10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2009 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony.cdma;
18cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcel;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class CdmaInformationRecords {
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Object record;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Record type identifier
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_DISPLAY_INFO_REC = 0;
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC = 1;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC = 2;
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_CONNECTED_NUMBER_INFO_REC = 3;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_SIGNAL_INFO_REC = 4;
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_REDIRECTING_NUMBER_INFO_REC = 5;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_LINE_CONTROL_INFO_REC = 6;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_EXTENDED_DISPLAY_INFO_REC = 7;
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_T53_CLIR_INFO_REC = 8;
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_T53_RELEASE_INFO_REC = 9;
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final int RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC = 10;
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
398fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaDisplayInfoRec obj) {
408fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
418fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
428fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
438fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaNumberInfoRec obj) {
448fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
458fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
468fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
478fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaSignalInfoRec obj) {
488fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
498fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
508fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
518fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaRedirectingNumberInfoRec obj) {
528fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
538fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
548fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
558fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaLineControlInfoRec obj) {
568fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
578fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
588fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
598fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaT53ClirInfoRec obj) {
608fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
618fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
628fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
638fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    public CdmaInformationRecords(CdmaT53AudioControlInfoRec obj) {
648fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan        record = obj;
658fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan    }
668fef426fd45393631987dbf54ad5233fd7b9dfdeAmit Mahajan
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public CdmaInformationRecords(Parcel p) {
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int id = p.readInt();
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (id) {
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_DISPLAY_INFO_REC:
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_EXTENDED_DISPLAY_INFO_REC:
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record  = new CdmaDisplayInfoRec(id, p.readString());
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC:
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC:
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_CONNECTED_NUMBER_INFO_REC:
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaNumberInfoRec(id, p.readString(), p.readInt(), p.readInt(),
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        p.readInt(), p.readInt());
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_SIGNAL_INFO_REC:
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaSignalInfoRec(p.readInt(), p.readInt(), p.readInt(), p.readInt());
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_REDIRECTING_NUMBER_INFO_REC:
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaRedirectingNumberInfoRec(p.readString(), p.readInt(), p.readInt(),
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        p.readInt(), p.readInt(), p.readInt());
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_LINE_CONTROL_INFO_REC:
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaLineControlInfoRec(p.readInt(), p.readInt(), p.readInt(),
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        p.readInt());
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_T53_CLIR_INFO_REC:
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaT53ClirInfoRec(p.readInt());
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC:
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                record = new CdmaT53AudioControlInfoRec(p.readInt(), p.readInt());
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RIL_CDMA_T53_RELEASE_INFO_REC:
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                // TODO: WHAT to do, for now fall through and throw exception
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                throw new RuntimeException("RIL_UNSOL_CDMA_INFO_REC: unsupported record. Got "
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            + CdmaInformationRecords.idToString(id) + " ");
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static String idToString(int id) {
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch(id) {
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_DISPLAY_INFO_REC: return "RIL_CDMA_DISPLAY_INFO_REC";
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC: return "RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC";
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC: return "RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC";
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_CONNECTED_NUMBER_INFO_REC: return "RIL_CDMA_CONNECTED_NUMBER_INFO_REC";
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_SIGNAL_INFO_REC: return "RIL_CDMA_SIGNAL_INFO_REC";
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_REDIRECTING_NUMBER_INFO_REC: return "RIL_CDMA_REDIRECTING_NUMBER_INFO_REC";
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_LINE_CONTROL_INFO_REC: return "RIL_CDMA_LINE_CONTROL_INFO_REC";
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_EXTENDED_DISPLAY_INFO_REC: return "RIL_CDMA_EXTENDED_DISPLAY_INFO_REC";
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_T53_CLIR_INFO_REC: return "RIL_CDMA_T53_CLIR_INFO_REC";
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_T53_RELEASE_INFO_REC: return "RIL_CDMA_T53_RELEASE_INFO_REC";
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        case RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC: return "RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC";
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        default: return "<unknown record>";
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Signal Information record from 3GPP2 C.S005 3.7.5.5
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaSignalInfoRec {
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public boolean isPresent;   /* non-zero if signal information record is present */
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int signalType;
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int alertPitch;
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int signal;
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaSignalInfoRec() {}
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaSignalInfoRec(int isPresent, int signalType, int alertPitch, int signal) {
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.isPresent = isPresent != 0;
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.signalType = signalType;
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.alertPitch = alertPitch;
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.signal = signal;
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaSignalInfo: {" +
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " isPresent: " + isPresent +
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", signalType: " + signalType +
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", alertPitch: " + alertPitch +
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", signal: " + signal +
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaDisplayInfoRec {
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int id;
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String alpha;
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaDisplayInfoRec(int id, String alpha) {
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.id = id;
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.alpha = alpha;
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaDisplayInfoRec: {" +
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " id: " + CdmaInformationRecords.idToString(id) +
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", alpha: " + alpha +
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaNumberInfoRec {
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int id;
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String number;
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte numberType;
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte numberPlan;
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte pi;
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte si;
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaNumberInfoRec(int id, String number, int numberType, int numberPlan, int pi,
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                int si) {
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.number = number;
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.numberType = (byte)numberType;
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.numberPlan = (byte)numberPlan;
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.pi = (byte)pi;
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.si = (byte)si;
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaNumberInfoRec: {" +
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " id: " + CdmaInformationRecords.idToString(id) +
198936cf96aeb696feeec28638c08acbb53d5cb725bEtan Cohen                    ", number: <MASKED>" +
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", numberType: " + numberType +
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", numberPlan: " + numberPlan +
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", pi: " + pi +
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", si: " + si +
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaRedirectingNumberInfoRec {
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_UNKNOWN = 0;
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_CALL_FORWARDING_BUSY = 1;
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_CALL_FORWARDING_NO_REPLY = 2;
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_CALLED_DTE_OUT_OF_ORDER = 9;
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10;
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int REASON_CALL_FORWARDING_UNCONDITIONAL = 15;
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaNumberInfoRec numberInfoRec;
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int redirectingReason;
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaRedirectingNumberInfoRec(String number, int numberType, int numberPlan,
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                int pi, int si, int reason) {
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            numberInfoRec = new CdmaNumberInfoRec(RIL_CDMA_REDIRECTING_NUMBER_INFO_REC,
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                                  number, numberType, numberPlan, pi, si);
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            redirectingReason = reason;
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaNumberInfoRec: {" +
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " numberInfoRec: " + numberInfoRec +
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ", redirectingReason: " + redirectingReason +
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaLineControlInfoRec {
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte lineCtrlPolarityIncluded;
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte lineCtrlToggle;
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte lineCtrlReverse;
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte lineCtrlPowerDenial;
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaLineControlInfoRec(int lineCtrlPolarityIncluded, int lineCtrlToggle,
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                int lineCtrlReverse, int lineCtrlPowerDenial) {
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.lineCtrlPolarityIncluded = (byte)lineCtrlPolarityIncluded;
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.lineCtrlToggle = (byte)lineCtrlToggle;
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.lineCtrlReverse = (byte)lineCtrlReverse;
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.lineCtrlPowerDenial = (byte)lineCtrlPowerDenial;
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaLineControlInfoRec: {" +
2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " lineCtrlPolarityIncluded: " + lineCtrlPolarityIncluded +
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " lineCtrlToggle: " + lineCtrlToggle +
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " lineCtrlReverse: " + lineCtrlReverse +
2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " lineCtrlPowerDenial: " + lineCtrlPowerDenial +
2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaT53ClirInfoRec {
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte cause;
2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaT53ClirInfoRec(int cause) {
2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.cause = (byte)cause;
2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaT53ClirInfoRec: {" +
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " cause: " + cause +
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class CdmaT53AudioControlInfoRec {
2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte uplink;
2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public byte downlink;
2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public CdmaT53AudioControlInfoRec(int uplink, int downlink) {
2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.uplink = (byte) uplink;
2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.downlink = (byte) downlink;
2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "CdmaT53AudioControlInfoRec: {" +
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " uplink: " + uplink +
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " downlink: " + downlink +
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    " }";
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
292