104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville/* 204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Copyright (C) 2008 The Android Open Source Project 304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * you may not use this file except in compliance with the License. 604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * You may obtain a copy of the License at 704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * http://www.apache.org/licenses/LICENSE-2.0 904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 1004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Unless required by applicable law or agreed to in writing, software 1104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * distributed under the License is distributed on an "AS IS" BASIS, 1204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * See the License for the specific language governing permissions and 1404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * limitations under the License. 1504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 1604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 1704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savillepackage com.android.internal.telephony; 1804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 1904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savillepublic abstract class SmsAddress { 2004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // From TS 23.040 9.1.2.5 and TS 24.008 table 10.5.118 2104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // and C.S0005-D table 2.7.1.3.2.4-2 2204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_UNKNOWN = 0; 2304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_INTERNATIONAL = 1; 2404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_NATIONAL = 2; 2504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_NETWORK = 3; 2604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_SUBSCRIBER = 4; 2704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_ALPHANUMERIC = 5; 2804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public static final int TON_ABBREVIATED = 6; 2904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 3004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public int ton; 3104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public String address; 3204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public byte[] origBytes; 3304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 3404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 3504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Returns the address of the SMS message in String form or null if unavailable 3604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 3704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public String getAddressString() { 3804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return address; 3904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 4004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 4104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 4204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Returns true if this is an alphanumeric address 4304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 4404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public boolean isAlphanumeric() { 4504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return ton == TON_ALPHANUMERIC; 4604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 4704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 4804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 4904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Returns true if this is a network address 5004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 5104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public boolean isNetworkSpecific() { 5204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return ton == TON_NETWORK; 5304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 5404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 5504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public boolean couldBeEmailGateway() { 5604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // Some carriers seems to send email gateway messages in this form: 5704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // from: an UNKNOWN TON, 3 or 4 digits long, beginning with a 5 5804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // PID: 0x00, Data coding scheme 0x03 5904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // So we just attempt to treat any message from an address length <= 4 6004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // as an email gateway 6104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 6204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return address.length() <= 4; 6304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 6404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 6504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville} 66