1ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/* 2ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Copyright (C) 2011 The Libphonenumber Authors 3ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 4ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Licensed under the Apache License, Version 2.0 (the "License"); 5ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * you may not use this file except in compliance with the License. 6ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * You may obtain a copy of the License at 7ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 8ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * http://www.apache.org/licenses/LICENSE-2.0 9ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 10ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Unless required by applicable law or agreed to in writing, software 11ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * distributed under the License is distributed on an "AS IS" BASIS, 12ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * See the License for the specific language governing permissions and 14ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * limitations under the License. 15ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */ 16ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 17a77faddfc3b3e4cca8f585c82d669054aec221f4Narayan Kamathpackage com.google.i18n.phonenumbers; 18ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 19bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jiaimport java.util.Set; 20ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 21ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/* 22ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Utility for international short phone numbers, such as short codes and emergency numbers. Note 23ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * most commercial short numbers are not handled here, but by the PhoneNumberUtil. 24ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 25bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * @deprecated("As of release 5.8, replaced by ShortNumberInfo.") 26bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * 27ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @author Shaopeng Jia 28bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * @author David Yonge-Mallo 29ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */ 30bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia@Deprecated public class ShortNumberUtil { 31ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 32bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia /** 33bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * Cost categories of short numbers. 34bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia */ 35bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public enum ShortNumberCost { 36bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia TOLL_FREE, 37bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia STANDARD_RATE, 38bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia PREMIUM_RATE, 39bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia UNKNOWN_COST 40bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 41ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 42ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public ShortNumberUtil() { 43ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 44ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 45bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia /** 46bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * Convenience method to get a list of what regions the library has metadata for. 47bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia */ 48bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public Set<String> getSupportedRegions() { 49bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return ShortNumberInfo.getInstance().getSupportedRegions(); 50ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 51ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 52ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia /** 53ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Returns true if the number might be used to connect to an emergency service in the given 54ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * region. 55ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 56ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * This method takes into account cases where the number might contain formatting, or might have 57ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * additional digits appended (when it is okay to do that in the region specified). 58ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 59ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @param number the phone number to test 60ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @param regionCode the region where the phone number is being dialed 61ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @return if the number might be used to connect to an emergency service in the given region. 62ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */ 63ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public boolean connectsToEmergencyNumber(String number, String regionCode) { 64bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return ShortNumberInfo.getInstance().connectsToEmergencyNumber(number, regionCode); 65a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 66a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 67a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia /** 68a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * Returns true if the number exactly matches an emergency service number in the given region. 69a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * 70a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * This method takes into account cases where the number might contain formatting, but doesn't 71a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * allow additional digits to be appended. 72a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * 73a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * @param number the phone number to test 74a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * @param regionCode the region where the phone number is being dialed 75a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * @return if the number exactly matches an emergency services number in the given region. 76a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia */ 77a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public boolean isEmergencyNumber(String number, String regionCode) { 78bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return ShortNumberInfo.getInstance().isEmergencyNumber(number, regionCode); 79ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 80ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia} 81