summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--telephony/java/com/android/ims/ImsExternalCallState.aidl19
-rw-r--r--telephony/java/com/android/ims/ImsExternalCallState.java132
-rw-r--r--telephony/java/com/android/ims/ImsReasonInfo.java4
-rw-r--r--telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl38
-rw-r--r--telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl38
-rw-r--r--telephony/java/com/android/ims/internal/IImsService.aidl10
-rw-r--r--telephony/java/com/android/internal/telephony/TelephonyProperties.java8
8 files changed, 247 insertions, 4 deletions
diff --git a/Android.mk b/Android.mk
index 4dc5fd349109..0bd6b7f925d2 100644
--- a/Android.mk
+++ b/Android.mk
@@ -413,6 +413,8 @@ LOCAL_SRC_FILES += \
telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl \
telephony/java/com/android/ims/internal/IImsEcbm.aidl \
telephony/java/com/android/ims/internal/IImsEcbmListener.aidl \
+ telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl \
+ telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl \
telephony/java/com/android/ims/internal/IImsService.aidl \
telephony/java/com/android/ims/internal/IImsStreamMediaSession.aidl \
telephony/java/com/android/ims/internal/IImsUt.aidl \
diff --git a/telephony/java/com/android/ims/ImsExternalCallState.aidl b/telephony/java/com/android/ims/ImsExternalCallState.aidl
new file mode 100644
index 000000000000..c208702a8c34
--- /dev/null
+++ b/telephony/java/com/android/ims/ImsExternalCallState.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2016 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.ims;
+
+parcelable ImsExternalCallState;
diff --git a/telephony/java/com/android/ims/ImsExternalCallState.java b/telephony/java/com/android/ims/ImsExternalCallState.java
new file mode 100644
index 000000000000..edb6bfcf68c0
--- /dev/null
+++ b/telephony/java/com/android/ims/ImsExternalCallState.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2016 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.ims;
+
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.telephony.Rlog;
+
+/*
+ * This file contains all the api's through which
+ * information received in Dialog Event Package can be
+ * queried
+ */
+
+/**
+ * Parcelable object to handle VICE Dialog Information
+ * @hide
+ */
+public class ImsExternalCallState implements Parcelable {
+
+ private static final String TAG = "ImsExternalCallState";
+
+ // Dialog States
+ public static final int CALL_STATE_CONFIRMED = 1;
+ public static final int CALL_STATE_TERMINATED = 2;
+ // Dialog Id
+ public int mCallId;
+ // Number
+ public Uri mAddress;
+ public boolean mIsPullable;
+ // CALL_STATE_CONFIRMED / CALL_STATE_TERMINATED
+ public int mCallState;
+ // ImsCallProfile#CALL_TYPE_*
+ public int mCallType;
+ public boolean mIsHeld;
+
+ public ImsExternalCallState() {
+ }
+
+ public ImsExternalCallState(Parcel in) {
+ mCallId = in.readInt();
+ ClassLoader classLoader = ImsExternalCallState.class.getClassLoader();
+ mAddress = in.readParcelable(classLoader);
+ mIsPullable = (in.readInt() != 0);
+ mCallState = in.readInt();
+ mCallType = in.readInt();
+ mIsHeld = (in.readInt() != 0);
+ Rlog.d(TAG, "ImsExternalCallState const = " +
+ "callid = " + getCallId() +
+ ", address = " + getAddress() +
+ ", mCallState = " + getCallState() +
+ ", calltype = " + getCallType() +
+ ", isheld = " + isCallHeld());
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeInt(mCallId);
+ out.writeParcelable(mAddress, 0);
+ out.writeInt(mIsPullable ? 1 : 0);
+ out.writeInt(mCallState);
+ out.writeInt(mCallType);
+ out.writeInt(mIsHeld ? 1 : 0);
+ }
+
+ public static final Parcelable.Creator<ImsExternalCallState> CREATOR =
+ new Parcelable.Creator<ImsExternalCallState>() {
+ @Override
+ public ImsExternalCallState createFromParcel(Parcel in) {
+ return new ImsExternalCallState(in);
+ }
+
+ @Override
+ public ImsExternalCallState[] newArray(int size) {
+ return new ImsExternalCallState[size];
+ }
+ };
+
+ public int getCallId() {
+ return mCallId;
+ }
+
+ public Uri getAddress() {
+ return mAddress;
+ }
+
+ public boolean isCallPullable() {
+ return mIsPullable;
+ }
+
+ public int getCallState() {
+ return mCallState;
+ }
+
+ public int getCallType() {
+ return mCallType;
+ }
+
+ public boolean isCallHeld() {
+ return mIsHeld;
+ }
+
+ @Override
+ public String toString() {
+ return "ImsExternalCallState { mCallId = " + mCallId +
+ ", mAddress = " + mAddress +
+ ", mIsPullable = " + mIsPullable +
+ ", mCallState = " + mCallState +
+ ", mCallType = " + mCallType +
+ ", mIsHeld = " + mIsHeld + "}";
+ }
+}
diff --git a/telephony/java/com/android/ims/ImsReasonInfo.java b/telephony/java/com/android/ims/ImsReasonInfo.java
index 558c1dc1866c..f06d15456ac0 100644
--- a/telephony/java/com/android/ims/ImsReasonInfo.java
+++ b/telephony/java/com/android/ims/ImsReasonInfo.java
@@ -241,12 +241,12 @@ public class ImsReasonInfo implements Parcelable {
public static final int CODE_ANSWERED_ELSEWHERE = 1014;
/**
- * Call pull request failure from the network.
+ * For MultiEndpoint - Call Pull request has failed
*/
public static final int CODE_CALL_PULL_OUT_OF_SYNC = 1015;
/**
- * Call ended due to being pulled onto another device.
+ * For MultiEndpoint - Call has been pulled from primary to secondary
*/
public static final int CODE_CALL_END_CAUSE_CALL_PULL = 1016;
diff --git a/telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl b/telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl
new file mode 100644
index 000000000000..70a474ec41da
--- /dev/null
+++ b/telephony/java/com/android/ims/internal/IImsExternalCallStateListener.aidl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2016 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.ims.internal;
+
+import com.android.ims.ImsExternalCallState;
+
+/**
+ * A listener type for receiving notifications about DEP through IMS
+ *
+ * {@hide}
+ */
+interface IImsExternalCallStateListener {
+
+ /**
+ * Notifies client when Dialog Event Package update is received
+ *
+ * @param List<ImsExternalCallState> - External Call Dialog
+ *
+ * @return void.
+ */
+ void notifyRefreshExternalCallState(in List<ImsExternalCallState> externalCallDialogs);
+
+}
+
diff --git a/telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl b/telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl
new file mode 100644
index 000000000000..1bfb9b2b4d78
--- /dev/null
+++ b/telephony/java/com/android/ims/internal/IImsMultiEndpoint.aidl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2016 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.ims.internal;
+
+import com.android.ims.internal.IImsExternalCallStateListener;
+
+/**
+ * Provides the ImsMultiEndpoint interface
+ *
+ * {@hide}
+ */
+interface IImsMultiEndpoint {
+ /**
+ * Sets the listener.
+ */
+ void setListener(in IImsExternalCallStateListener listener);
+
+
+ /**
+ * Query api to get the latest Dialog Event Package information
+ * Should be invoked only after setListener is done
+ */
+ void requestDialogEventPackageState();
+}
diff --git a/telephony/java/com/android/ims/internal/IImsService.aidl b/telephony/java/com/android/ims/internal/IImsService.aidl
index 30c48d7a839a..a9614a63d872 100644
--- a/telephony/java/com/android/ims/internal/IImsService.aidl
+++ b/telephony/java/com/android/ims/internal/IImsService.aidl
@@ -19,12 +19,13 @@ package com.android.ims.internal;
import android.app.PendingIntent;
import com.android.ims.ImsCallProfile;
-import com.android.ims.internal.IImsRegistrationListener;
import com.android.ims.internal.IImsCallSession;
import com.android.ims.internal.IImsCallSessionListener;
+import com.android.ims.internal.IImsConfig;
import com.android.ims.internal.IImsEcbm;
+import com.android.ims.internal.IImsMultiEndpoint;
+import com.android.ims.internal.IImsRegistrationListener;
import com.android.ims.internal.IImsUt;
-import com.android.ims.internal.IImsConfig;
import android.os.Message;
@@ -75,4 +76,9 @@ interface IImsService {
* Used to set current TTY Mode.
*/
void setUiTTYMode(int serviceId, int uiTtyMode, in Message onComplete);
+
+ /**
+ * MultiEndpoint interface for DEP.
+ */
+ IImsMultiEndpoint getMultiEndpointInterface(int serviceId);
}
diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
index 645c3a17db14..ea3b5c97c4c9 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
@@ -217,4 +217,12 @@ public interface TelephonyProperties
* or Earpiece, based on the default audio routing strategy.
*/
static final String PROPERTY_VIDEOCALL_AUDIO_OUTPUT = "persist.radio.call.audio.output";
+
+ /**
+ * For MultiEndpoint Feature
+ * If true: Dial intent is for call pull functionality
+ * if false: normal dial
+ */
+ static final String EXTRA_IS_CALL_PULL =
+ "android.telephony.extra.IS_CALL_PULL";
}