/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony.gsm; import android.telephony.PhoneNumberUtils; /** * Represents a Supplementary Service Notification received from the network. * * {@hide} */ public class SuppServiceNotification { /** Type of notification: 0 = code1; 1 = code2 */ public int notificationType; /** TS 27.007 7.17 "code1" or "code2" */ public int code; /** TS 27.007 7.17 "index" */ public int index; /** TS 27.007 7.17 "type" (MT only) */ public int type; /** TS 27.007 7.17 "number" (MT only) */ public String number; /** List of forwarded numbers, if any */ public String[] history; /** * Notification type is from the "code 1" group (per TS 27.007 7.17). * This means the {@link #code} will be a code such as {@link #CODE_1_CALL_FORWARDED}. */ public static final int NOTIFICATION_TYPE_CODE_1 = 0; /** * Notification type is from the "code 2" group (per TS 27.007 7.17). * This means the {@link #code} will be a code such as {@link #CODE_2_CALL_ON_HOLD}. */ public static final int NOTIFICATION_TYPE_CODE_2 = 1; /** * Indicates that unconditional call forwarding is active. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_UNCONDITIONAL_CF_ACTIVE = 0; /** * Indicates that some conditional call forwarding options are active. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_SOME_CF_ACTIVE = 1; /** * Indicates that an outgoing call has been forwarded to another number. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_CALL_FORWARDED = 2; /** * Indicates that an outgoing call is waiting. This means that the called party is already in * another call and is hearing the call waiting tone. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_CALL_IS_WAITING = 3; /** * Indicates that an outgoing call is to a number in a closed user group. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_CUG_CALL = 4; /** * Indicates that outgoing calls are barred. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_OUTGOING_CALLS_BARRED = 5; /** * Indicates that incoming calls are barred. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_INCOMING_CALLS_BARRED = 6; /** * Indicates that CLIR suppression has been rejected for an outgoing call. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_CLIR_SUPPRESSION_REJECTED = 7; /** * Indicates that an outgoing call bas been deflected to another number. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_1}. * See TS 27.007 7.17. */ public static final int CODE_1_CALL_DEFLECTED = 8; /** * Indicates that an incoming call is a forwarded call. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_FORWARDED_CALL = 0; /** * Indicates that an incoming call is from a member of a closed user group. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_CUG_CALL = 1; /** * Indicates that a call has been remotely put on hold. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_CALL_ON_HOLD = 2; /** * Indicates that a call has been remotely resumed (retrieved). * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_CALL_RETRIEVED = 3; /** * Indicates that a conference call has been entered. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_MULTI_PARTY_CALL = 4; /** * Indicates that an ongoing call on hold has been released. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_ON_HOLD_CALL_RELEASED = 5; /** * Indicates that a forward check message was received. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_FORWARD_CHECK_RECEIVED = 6; /** * Indicates that a call is being connected (alerting) with another party as a result of an * explicit call transfer operation. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_CALL_CONNECTING_ECT = 7; /** * Indicates that a call has been connected with another party as a result of an explicit call * transfer operation. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_CALL_CONNECTED_ECT = 8; /** * Indicates that an outgoing call has been deflected to another number. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_DEFLECTED_CALL = 9; /** * Indicates that an additional incoming call has been forwarded. * Valid {@link #code} when {@link #type} is {@link #NOTIFICATION_TYPE_CODE_2}. * See TS 27.007 7.17. */ public static final int CODE_2_ADDITIONAL_CALL_FORWARDED = 10; @Override public String toString() { return super.toString() + " mobile" + (notificationType == 0 ? " originated " : " terminated ") + " code: " + code + " index: " + index + " history: " + history + " \"" + PhoneNumberUtils.stringFromStringAndTOA(number, type) + "\" "; } }