MWI,phantom call,Suppl services, error codes
1. IMS MWI Feature - Add new API to update waiting voice message count, for UI propagation based on RFC 3842 2. phantom call support Supplementary services 3. IMS : Incoming Call Barring - Modified existing API to support request like registration,activation, deactivation,erasure,interogation. 4.Unsol supplementary service notification - send unsol supplementary notification to UI - add call history info Miscellaneous 5. Ims: Originate conference call in DIALING state 6. IMS: Addition of Extras to ImsCallProfile - Add EXTRA string definitions to ImsCallProfile 7. IMS: Definition of error code - answered elsewhere - FDN call failure Change-Id: I52a64e9a5df3479189f62921a01655a50fb386fc
This commit is contained in:
committed by
Anthony Lee
parent
7c38f4444f
commit
4aef69ab52
@@ -968,7 +968,6 @@ public final class Call {
|
||||
unregisterCallback(listener);
|
||||
}
|
||||
|
||||
|
||||
/** {@hide} */
|
||||
Call(Phone phone, String telecomCallId, InCallAdapter inCallAdapter) {
|
||||
mPhone = phone;
|
||||
@@ -977,6 +976,14 @@ public final class Call {
|
||||
mState = STATE_NEW;
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
Call(Phone phone, String telecomCallId, InCallAdapter inCallAdapter, int state) {
|
||||
mPhone = phone;
|
||||
mTelecomCallId = telecomCallId;
|
||||
mInCallAdapter = inCallAdapter;
|
||||
mState = state;
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
final String internalGetCallId() {
|
||||
return mTelecomCallId;
|
||||
|
||||
@@ -122,7 +122,8 @@ public final class Phone {
|
||||
}
|
||||
|
||||
final void internalAddCall(ParcelableCall parcelableCall) {
|
||||
Call call = new Call(this, parcelableCall.getId(), mInCallAdapter);
|
||||
Call call = new Call(this, parcelableCall.getId(), mInCallAdapter,
|
||||
parcelableCall.getState());
|
||||
mCallByTelecomCallId.put(parcelableCall.getId(), call);
|
||||
mCalls.add(call);
|
||||
checkCallTree(parcelableCall);
|
||||
|
||||
@@ -172,11 +172,19 @@ public class ImsCallProfile implements Parcelable {
|
||||
* cna : Calling name
|
||||
* ussd : For network-initiated USSD, MT only
|
||||
* remote_uri : Connected user identity (it can be used for the conference)
|
||||
* ChildNum: Child number info.
|
||||
* Codec: Codec info.
|
||||
* DisplayText: Display text for the call.
|
||||
* AdditionalCallInfo: Additional call info.
|
||||
*/
|
||||
public static final String EXTRA_OI = "oi";
|
||||
public static final String EXTRA_CNA = "cna";
|
||||
public static final String EXTRA_USSD = "ussd";
|
||||
public static final String EXTRA_REMOTE_URI = "remote_uri";
|
||||
public static final String EXTRA_CHILD_NUMBER = "ChildNum";
|
||||
public static final String EXTRA_CODEC = "Codec";
|
||||
public static final String EXTRA_DISPLAY_TEXT = "DisplayText";
|
||||
public static final String EXTRA_ADDITIONAL_CALL_INFO = "AdditionalCallInfo";
|
||||
|
||||
public int mServiceType;
|
||||
public int mCallType;
|
||||
|
||||
@@ -99,6 +99,9 @@ public class ImsReasonInfo implements Parcelable {
|
||||
// MT : No action from user after alerting the call
|
||||
public static final int CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE = 203;
|
||||
|
||||
//Call failures for FDN
|
||||
public static final int CODE_FDN_BLOCKED = 241;
|
||||
|
||||
/**
|
||||
* STATUSCODE (SIP response code) (IMS -> Telephony)
|
||||
*/
|
||||
@@ -226,6 +229,12 @@ public class ImsReasonInfo implements Parcelable {
|
||||
*/
|
||||
public static final int CODE_CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 1100;
|
||||
|
||||
/**
|
||||
* MT call has ended due to a release from the network
|
||||
* because the call was answered elsewhere
|
||||
*/
|
||||
public static final int CODE_ANSWERED_ELSEWHERE = 1014;
|
||||
|
||||
/**
|
||||
* Network string error messages.
|
||||
* mExtraMessage may have these values.
|
||||
|
||||
@@ -34,6 +34,7 @@ public class ImsSsInfo implements Parcelable {
|
||||
|
||||
// 0: disabled, 1: enabled
|
||||
public int mStatus;
|
||||
public String mIcbNum;
|
||||
|
||||
public ImsSsInfo() {
|
||||
}
|
||||
@@ -50,6 +51,7 @@ public class ImsSsInfo implements Parcelable {
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mStatus);
|
||||
out.writeString(mIcbNum);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,6 +61,7 @@ public class ImsSsInfo implements Parcelable {
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mStatus = in.readInt();
|
||||
mIcbNum = in.readString();
|
||||
}
|
||||
|
||||
public static final Creator<ImsSsInfo> CREATOR =
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
package com.android.ims;
|
||||
|
||||
parcelable ImsSuppServiceNotification;
|
||||
114
telephony/java/com/android/ims/ImsSuppServiceNotification.java
Normal file
114
telephony/java/com/android/ims/ImsSuppServiceNotification.java
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
package com.android.ims;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
|
||||
/**
|
||||
* Parcelable object to handle IMS supplementary service notifications.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsSuppServiceNotification implements Parcelable {
|
||||
private static final String TAG = "ImsSuppServiceNotification";
|
||||
|
||||
/** Type of notification: 0 = MO; 1 = MT */
|
||||
public int notificationType;
|
||||
/** TS 27.007 7.17 "code1" or "code2" */
|
||||
public int code;
|
||||
/** TS 27.007 7.17 "index" - Not used currently*/
|
||||
public int index;
|
||||
/** TS 27.007 7.17 "type" (MT only) - Not used currently */
|
||||
public int type;
|
||||
/** TS 27.007 7.17 "number" (MT only) */
|
||||
public String number;
|
||||
/** List of forwarded numbers, if any */
|
||||
public String[] history;
|
||||
|
||||
public ImsSuppServiceNotification() {
|
||||
}
|
||||
|
||||
public ImsSuppServiceNotification(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{ notificationType=" + notificationType +
|
||||
", code=" + code +
|
||||
", index=" + index +
|
||||
", type=" + type +
|
||||
", number=" + number +
|
||||
", history=" + Arrays.toString(history) +
|
||||
" }";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(notificationType);
|
||||
out.writeInt(code);
|
||||
out.writeInt(index);
|
||||
out.writeInt(type);
|
||||
out.writeString(number);
|
||||
out.writeStringArray(history);
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
notificationType = in.readInt();
|
||||
code = in.readInt();
|
||||
index = in.readInt();
|
||||
type = in.readInt();
|
||||
number = in.readString();
|
||||
history = in.createStringArray();
|
||||
}
|
||||
|
||||
public static final Creator<ImsSuppServiceNotification> CREATOR =
|
||||
new Creator<ImsSuppServiceNotification>() {
|
||||
@Override
|
||||
public ImsSuppServiceNotification createFromParcel(Parcel in) {
|
||||
return new ImsSuppServiceNotification(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsSuppServiceNotification[] newArray(int size) {
|
||||
return new ImsSuppServiceNotification[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import com.android.ims.ImsCallProfile;
|
||||
import com.android.ims.ImsReasonInfo;
|
||||
import com.android.ims.ImsConferenceState;
|
||||
import com.android.ims.internal.IImsCallSession;
|
||||
import com.android.ims.ImsSuppServiceNotification;
|
||||
|
||||
/**
|
||||
* A listener type for receiving notification on IMS call session events.
|
||||
@@ -123,4 +124,10 @@ interface IImsCallSessionListener {
|
||||
* @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise.
|
||||
*/
|
||||
void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty);
|
||||
|
||||
/**
|
||||
* Notifies the supplementary service information for the current session.
|
||||
*/
|
||||
void callSessionSuppServiceReceived(in IImsCallSession session,
|
||||
in ImsSuppServiceNotification suppSrvNotification);
|
||||
}
|
||||
|
||||
@@ -72,4 +72,10 @@ interface IImsRegistrationListener {
|
||||
*/
|
||||
void registrationFeatureCapabilityChanged(int serviceClass,
|
||||
out int[] enabledFeatures, out int[] disabledFeatures);
|
||||
|
||||
/**
|
||||
* Updates the application with the waiting voice message count.
|
||||
* @param count The number of waiting voice messages.
|
||||
*/
|
||||
void voiceMessageCountUpdate(int count);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ interface IImsUt {
|
||||
/**
|
||||
* Updates the configuration of the call barring.
|
||||
*/
|
||||
int updateCallBarring(int cbType, boolean enable, in String[] barrList);
|
||||
int updateCallBarring(int cbType, int action, in String[] barrList);
|
||||
|
||||
/**
|
||||
* Updates the configuration of the call forward.
|
||||
|
||||
Reference in New Issue
Block a user