Fix lpdk build.
Move aidl files from frameworks/opt/net/ims to frameworks/base so lpdk compiles. The reason is lpdk doesn't have frameworks/base sources so references to Pending and Bundle in aidl files breaks the pdk build. I had to move all of them and the ims/*java files for dependency reasons. Change-Id: I92452562591b157cecdfc01bcd892c4f35f5965c
This commit is contained in:
@ -336,6 +336,13 @@ LOCAL_SRC_FILES += \
|
||||
telecomm/java/com/android/internal/telecomm/IInCallService.aidl \
|
||||
telecomm/java/com/android/internal/telecomm/ITelecommService.aidl \
|
||||
telecomm/java/com/android/internal/telecomm/RemoteServiceCallback.aidl \
|
||||
telephony/java/com/android/ims/internal/IImsCallSession.aidl \
|
||||
telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl \
|
||||
telephony/java/com/android/ims/internal/IImsRegistrationListener.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 \
|
||||
telephony/java/com/android/ims/internal/IImsUtListener.aidl \
|
||||
telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl \
|
||||
telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \
|
||||
telephony/java/com/android/internal/telephony/ITelephony.aidl \
|
||||
|
@ -203,6 +203,8 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framew
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/android/app/maintenance)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/src/android/app/maintenance)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates)
|
||||
|
||||
# ******************************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
|
||||
|
19
telephony/java/com/android/ims/ImsCallForwardInfo.aidl
Normal file
19
telephony/java/com/android/ims/ImsCallForwardInfo.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsCallForwardInfo;
|
88
telephony/java/com/android/ims/ImsCallForwardInfo.java
Normal file
88
telephony/java/com/android/ims/ImsCallForwardInfo.java
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Provides the call forward information for the supplementary service configuration.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsCallForwardInfo implements Parcelable {
|
||||
// Refer to ImsUtInterface#CDIV_CF_XXX
|
||||
public int mCondition;
|
||||
// 0: disabled, 1: enabled
|
||||
public int mStatus;
|
||||
// 0x91: International, 0x81: Unknown
|
||||
public int mToA;
|
||||
// Number (it will not include the "sip" or "tel" URI scheme)
|
||||
public String mNumber;
|
||||
// No reply timer for CF
|
||||
public int mTimeSeconds;
|
||||
|
||||
public ImsCallForwardInfo() {
|
||||
}
|
||||
|
||||
public ImsCallForwardInfo(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mCondition);
|
||||
out.writeInt(mStatus);
|
||||
out.writeInt(mToA);
|
||||
out.writeString(mNumber);
|
||||
out.writeInt(mTimeSeconds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + ", Condition: " + mCondition
|
||||
+ ", Status: " + ((mStatus == 0) ? "disabled" : "enabled")
|
||||
+ ", ToA: " + mToA + ", Number=" + mNumber
|
||||
+ ", Time (seconds): " + mTimeSeconds;
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mCondition = in.readInt();
|
||||
mStatus = in.readInt();
|
||||
mToA = in.readInt();
|
||||
mNumber = in.readString();
|
||||
mTimeSeconds = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<ImsCallForwardInfo> CREATOR =
|
||||
new Creator<ImsCallForwardInfo>() {
|
||||
@Override
|
||||
public ImsCallForwardInfo createFromParcel(Parcel in) {
|
||||
return new ImsCallForwardInfo(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsCallForwardInfo[] newArray(int size) {
|
||||
return new ImsCallForwardInfo[size];
|
||||
}
|
||||
};
|
||||
}
|
19
telephony/java/com/android/ims/ImsCallProfile.aidl
Normal file
19
telephony/java/com/android/ims/ImsCallProfile.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsCallProfile;
|
289
telephony/java/com/android/ims/ImsCallProfile.java
Normal file
289
telephony/java/com/android/ims/ImsCallProfile.java
Normal file
@ -0,0 +1,289 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Parcelable object to handle IMS call profile.
|
||||
* It is created from GSMA IR.92/IR.94, 3GPP TS 24.229/TS 26.114/TS26.111.
|
||||
* It provides the service and call type, the additional information related to the call.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsCallProfile implements Parcelable {
|
||||
private static final String TAG = "ImsCallProfile";
|
||||
|
||||
/**
|
||||
* Service types
|
||||
*/
|
||||
/**
|
||||
* It is for a special case. It helps that the application can make a call
|
||||
* without IMS connection (not registered).
|
||||
* In the moment of the call initiation, the device try to connect to the IMS network
|
||||
* and initiates the call.
|
||||
*/
|
||||
public static final int SERVICE_TYPE_NONE = 0;
|
||||
/**
|
||||
* It is a default type and can be selected when the device is connected to the IMS network.
|
||||
*/
|
||||
public static final int SERVICE_TYPE_NORMAL = 1;
|
||||
/**
|
||||
* It is for an emergency call.
|
||||
*/
|
||||
public static final int SERVICE_TYPE_EMERGENCY = 2;
|
||||
|
||||
/**
|
||||
* Call types
|
||||
*/
|
||||
/**
|
||||
* IMSPhone to support IR.92 & IR.94 (voice + video upgrade/downgrade)
|
||||
*/
|
||||
public static final int CALL_TYPE_VOICE_N_VIDEO = 1;
|
||||
/**
|
||||
* IR.92 (Voice only)
|
||||
*/
|
||||
public static final int CALL_TYPE_VOICE = 2;
|
||||
/**
|
||||
* VT to support IR.92 & IR.94 (voice + video upgrade/downgrade)
|
||||
*/
|
||||
public static final int CALL_TYPE_VIDEO_N_VOICE = 3;
|
||||
/**
|
||||
* Video Telephony (audio / video two way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VT = 4;
|
||||
/**
|
||||
* Video Telephony (audio two way / video TX one way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VT_TX = 5;
|
||||
/**
|
||||
* Video Telephony (audio two way / video RX one way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VT_RX = 6;
|
||||
/**
|
||||
* Video Telephony (audio two way / video inactive)
|
||||
*/
|
||||
public static final int CALL_TYPE_VT_NODIR = 7;
|
||||
/**
|
||||
* VideoShare (video two way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VS = 8;
|
||||
/**
|
||||
* VideoShare (video TX one way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VS_TX = 9;
|
||||
/**
|
||||
* VideoShare (video RX one way)
|
||||
*/
|
||||
public static final int CALL_TYPE_VS_RX = 10;
|
||||
|
||||
/**
|
||||
* Extra properties for IMS call.
|
||||
*/
|
||||
/**
|
||||
* Boolean extra properties - "true" / "false"
|
||||
* conference : Indicates if the session is for the conference call or not.
|
||||
* e_call : Indicates if the session is for the emergency call or not.
|
||||
* vms : Indicates if the session is connected to the voice mail system or not.
|
||||
* call_mode_changeable : Indicates if the session is able to upgrade/downgrade
|
||||
* the video during voice call.
|
||||
* conference_avail : Indicates if the session can be extended to the conference.
|
||||
*/
|
||||
public static final String EXTRA_CONFERENCE = "conference";
|
||||
public static final String EXTRA_E_CALL = "e_call";
|
||||
public static final String EXTRA_VMS = "vms";
|
||||
public static final String EXTRA_CALL_MODE_CHANGEABLE = "call_mode_changeable";
|
||||
public static final String EXTRA_CONFERENCE_AVAIL = "conference_avail";
|
||||
|
||||
/**
|
||||
* Integer extra properties
|
||||
* oir : Rule for originating identity (number) presentation, MO/MT.
|
||||
* {@link ImsCallProfile#OIR_DEFAULT}
|
||||
* {@link ImsCallProfile#OIR_PRESENTATION_RESTRICTED}
|
||||
* {@link ImsCallProfile#OIR_PRESENTATION_NOT_RESTRICTED}
|
||||
* cnap : Rule for calling name presentation
|
||||
* {@link ImsCallProfile#OIR_DEFAULT}
|
||||
* {@link ImsCallProfile#OIR_PRESENTATION_RESTRICTED}
|
||||
* {@link ImsCallProfile#OIR_PRESENTATION_NOT_RESTRICTED}
|
||||
* dialstring : To identify the Ims call type, MO
|
||||
* {@link ImsCallProfile#DIALSTRING_NORMAL_CALL}
|
||||
* {@link ImsCallProfile#DIALSTRING_SS_CONF}
|
||||
* {@link ImsCallProfile#DIALSTRING_USSD}
|
||||
*/
|
||||
public static final String EXTRA_OIR = "oir";
|
||||
public static final String EXTRA_CNAP = "cnap";
|
||||
public static final String EXTRA_DIALSTRING = "dialstring";
|
||||
|
||||
/**
|
||||
* Values for EXTRA_OIR / EXTRA_CNAP
|
||||
*/
|
||||
public static final int OIR_DEFAULT = 0; // "user subscription default value"
|
||||
public static final int OIR_PRESENTATION_RESTRICTED = 1;
|
||||
public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2;
|
||||
|
||||
/**
|
||||
* Values for EXTRA_DIALSTRING
|
||||
*/
|
||||
// default (normal call)
|
||||
public static final int DIALSTRING_NORMAL = 0;
|
||||
// Call for SIP-based user configuration
|
||||
public static final int DIALSTRING_SS_CONF = 1;
|
||||
// Call for USSD message
|
||||
public static final int DIALSTRING_USSD = 2;
|
||||
|
||||
/**
|
||||
* String extra properties
|
||||
* oi : Originating identity (number), MT only
|
||||
* cna : Calling name
|
||||
* ussd : For network-initiated USSD, MT only
|
||||
* remote_uri : Connected user identity (it can be used for the conference)
|
||||
*/
|
||||
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 int mServiceType;
|
||||
public int mCallType;
|
||||
public Bundle mCallExtras;
|
||||
public ImsStreamMediaProfile mMediaProfile;
|
||||
|
||||
|
||||
|
||||
public ImsCallProfile(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
public ImsCallProfile() {
|
||||
mServiceType = SERVICE_TYPE_NORMAL;
|
||||
mCallType = CALL_TYPE_VOICE_N_VIDEO;
|
||||
mCallExtras = new Bundle();
|
||||
mMediaProfile = new ImsStreamMediaProfile();
|
||||
}
|
||||
|
||||
public ImsCallProfile(int serviceType, int callType) {
|
||||
mServiceType = serviceType;
|
||||
mCallType = callType;
|
||||
mCallExtras = new Bundle();
|
||||
mMediaProfile = new ImsStreamMediaProfile();
|
||||
}
|
||||
|
||||
public String getCallExtra(String name) {
|
||||
return getCallExtra(name, "");
|
||||
}
|
||||
|
||||
public String getCallExtra(String name, String defaultValue) {
|
||||
if (mCallExtras == null) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
return mCallExtras.getString(name, defaultValue);
|
||||
}
|
||||
|
||||
public boolean getCallExtraBoolean(String name) {
|
||||
return getCallExtraBoolean(name, false);
|
||||
}
|
||||
|
||||
public boolean getCallExtraBoolean(String name, boolean defaultValue) {
|
||||
if (mCallExtras == null) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
return mCallExtras.getBoolean(name, defaultValue);
|
||||
}
|
||||
|
||||
public int getCallExtraInt(String name) {
|
||||
return getCallExtraInt(name, -1);
|
||||
}
|
||||
|
||||
public int getCallExtraInt(String name, int defaultValue) {
|
||||
if (mCallExtras == null) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
return mCallExtras.getInt(name, defaultValue);
|
||||
}
|
||||
|
||||
public void setCallExtra(String name, String value) {
|
||||
if (mCallExtras != null) {
|
||||
mCallExtras.putString(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void setCallExtraBoolean(String name, boolean value) {
|
||||
if (mCallExtras != null) {
|
||||
mCallExtras.putBoolean(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void setCallExtraInt(String name, int value) {
|
||||
if (mCallExtras != null) {
|
||||
mCallExtras.putInt(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void updateCallType(ImsCallProfile profile) {
|
||||
mCallType = profile.mCallType;
|
||||
}
|
||||
|
||||
public void updateCallExtras(ImsCallProfile profile) {
|
||||
mCallExtras.clear();
|
||||
mCallExtras = (Bundle) profile.mCallExtras.clone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{ serviceType=" + mServiceType +
|
||||
", callType=" + mCallType +
|
||||
", callExtras=" + mCallExtras.toString() +
|
||||
", mediaProfile=" + mMediaProfile.toString() + " }";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mServiceType);
|
||||
out.writeInt(mCallType);
|
||||
out.writeParcelable(mCallExtras, 0);
|
||||
out.writeParcelable(mMediaProfile, 0);
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mServiceType = in.readInt();
|
||||
mCallType = in.readInt();
|
||||
mCallExtras = in.readParcelable(null);
|
||||
mMediaProfile = in.readParcelable(null);
|
||||
}
|
||||
|
||||
public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
|
||||
@Override
|
||||
public ImsCallProfile createFromParcel(Parcel in) {
|
||||
return new ImsCallProfile(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsCallProfile[] newArray(int size) {
|
||||
return new ImsCallProfile[size];
|
||||
}
|
||||
};
|
||||
}
|
19
telephony/java/com/android/ims/ImsConferenceState.aidl
Normal file
19
telephony/java/com/android/ims/ImsConferenceState.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsConferenceState;
|
142
telephony/java/com/android/ims/ImsConferenceState.java
Normal file
142
telephony/java/com/android/ims/ImsConferenceState.java
Normal file
@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Provides the conference information (defined in RFC 4575) for IMS conference call.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsConferenceState implements Parcelable {
|
||||
/**
|
||||
* conference-info : user
|
||||
*/
|
||||
// user (String) : Tel or SIP URI
|
||||
public static final String USER = "user";
|
||||
// user > display text (String)
|
||||
public static final String DISPLAY_TEXT = "display-text";
|
||||
// user > endpoint (String) : URI or GRUU or Phone number
|
||||
public static final String ENDPOINT = "endpoint";
|
||||
// user > endpoint > status
|
||||
public static final String STATUS = "status";
|
||||
|
||||
/**
|
||||
* status-type (String) :
|
||||
* "pending" : Endpoint is not yet in the session, but it is anticipated that he/she will
|
||||
* join in the near future.
|
||||
* "dialing-out" : Focus has dialed out to connect the endpoint to the conference,
|
||||
* but the endpoint is not yet in the roster (probably being authenticated).
|
||||
* "dialing-in" : Endpoint is dialing into the conference, not yet in the roster
|
||||
* (probably being authenticated).
|
||||
* "alerting" : PSTN alerting or SIP 180 Ringing was returned for the outbound call;
|
||||
* endpoint is being alerted.
|
||||
* "on-hold" : Active signaling dialog exists between an endpoint and a focus,
|
||||
* but endpoint is "on-hold" for this conference, i.e., he/she is neither "hearing"
|
||||
* the conference mix nor is his/her media being mixed in the conference.
|
||||
* "connected" : Endpoint is a participant in the conference. Depending on the media policies,
|
||||
* he/she can send and receive media to and from other participants.
|
||||
* "disconnecting" : Focus is in the process of disconnecting the endpoint
|
||||
* (e.g. in SIP a DISCONNECT or BYE was sent to the endpoint).
|
||||
* "disconnected" : Endpoint is not a participant in the conference, and no active dialog
|
||||
* exists between the endpoint and the focus.
|
||||
* "muted-via-focus" : Active signaling dialog exists beween an endpoint and a focus and
|
||||
* the endpoint can "listen" to the conference, but the endpoint's media is not being
|
||||
* mixed into the conference.
|
||||
* "connect-fail" : Endpoint fails to join the conference by rejecting the conference call.
|
||||
*/
|
||||
public static final String STATUS_PENDING = "pending";
|
||||
public static final String STATUS_DIALING_OUT = "dialing-out";
|
||||
public static final String STATUS_DIALING_IN = "dialing-in";
|
||||
public static final String STATUS_ALERTING = "alerting";
|
||||
public static final String STATUS_ON_HOLD = "on-hold";
|
||||
public static final String STATUS_CONNECTED = "connected";
|
||||
public static final String STATUS_DISCONNECTING = "disconnecting";
|
||||
public static final String STATUS_DISCONNECTED = "disconnected";
|
||||
public static final String STATUS_MUTED_VIA_FOCUS = "muted-via-focus";
|
||||
public static final String STATUS_CONNECT_FAIL = "connect-fail";
|
||||
|
||||
/**
|
||||
* conference-info : SIP status code (integer)
|
||||
*/
|
||||
public static final String SIP_STATUS_CODE = "sipstatuscode";
|
||||
|
||||
public HashMap<String, Bundle> mParticipants = new HashMap<String, Bundle>();
|
||||
|
||||
public ImsConferenceState() {
|
||||
}
|
||||
|
||||
public ImsConferenceState(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mParticipants.size());
|
||||
|
||||
if (mParticipants.size() > 0) {
|
||||
Set<Entry<String, Bundle>> entries = mParticipants.entrySet();
|
||||
|
||||
if (entries != null) {
|
||||
Iterator<Entry<String, Bundle>> iterator = entries.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
Entry<String, Bundle> entry = iterator.next();
|
||||
|
||||
out.writeString(entry.getKey());
|
||||
out.writeParcelable(entry.getValue(), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
int size = in.readInt();
|
||||
|
||||
for (int i = 0; i < size; ++i) {
|
||||
String user = in.readString();
|
||||
Bundle state = in.readParcelable(null);
|
||||
mParticipants.put(user, state);
|
||||
}
|
||||
}
|
||||
|
||||
public static final Creator<ImsConferenceState> CREATOR =
|
||||
new Creator<ImsConferenceState>() {
|
||||
@Override
|
||||
public ImsConferenceState createFromParcel(Parcel in) {
|
||||
return new ImsConferenceState(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsConferenceState[] newArray(int size) {
|
||||
return new ImsConferenceState[size];
|
||||
}
|
||||
};
|
||||
}
|
19
telephony/java/com/android/ims/ImsReasonInfo.aidl
Normal file
19
telephony/java/com/android/ims/ImsReasonInfo.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsReasonInfo;
|
326
telephony/java/com/android/ims/ImsReasonInfo.java
Normal file
326
telephony/java/com/android/ims/ImsReasonInfo.java
Normal file
@ -0,0 +1,326 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* This class enables an application to get details on why a method call failed.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsReasonInfo implements Parcelable {
|
||||
|
||||
/**
|
||||
* Reason types, defines the error category.
|
||||
* UNSPECIFIED - unknown error reason
|
||||
* LOCAL - indicates the local/device error reason
|
||||
* LOCAL_TIMEOUT - indicates the local error reason when a specific timer is expired
|
||||
* STATUSCODE - indicates the interworking error reason by SIP status code received
|
||||
* from the network
|
||||
* MEDIA - indicates the media error reason (local resource, SDP parameter, etc.)
|
||||
* USER - indicates the error reason by the local or remote user
|
||||
* UT - indicates the error reason for the supplementary service configuration
|
||||
*/
|
||||
public static final int TYPE_UNSPECIFIED = 0;
|
||||
public static final int TYPE_LOCAL = 1;
|
||||
public static final int TYPE_TIMEOUT = 2;
|
||||
public static final int TYPE_STATUSCODE = 3;
|
||||
public static final int TYPE_MEDIA = 4;
|
||||
public static final int TYPE_USER = 5;
|
||||
public static final int TYPE_UT = 8;
|
||||
|
||||
/**
|
||||
* Specific code of each types
|
||||
*/
|
||||
public static final int CODE_UNSPECIFIED = 0;
|
||||
|
||||
/**
|
||||
* LOCAL
|
||||
*/
|
||||
// IMS -> Telephony
|
||||
// The passed argument is an invalid
|
||||
public static final int CODE_LOCAL_ILLEGAL_ARGUMENT = 101;
|
||||
// The operation is invoked in invalid call state
|
||||
public static final int CODE_LOCAL_ILLEGAL_STATE = 102;
|
||||
// IMS service internal error
|
||||
public static final int CODE_LOCAL_INTERNAL_ERROR = 103;
|
||||
// IMS service goes down (service connection is lost)
|
||||
public static final int CODE_LOCAL_IMS_SERVICE_DOWN = 106;
|
||||
// No pending incoming call exists
|
||||
public static final int CODE_LOCAL_NO_PENDING_CALL = 107;
|
||||
|
||||
// IMS -> Telephony
|
||||
// Service unavailable; by power off
|
||||
public static final int CODE_LOCAL_POWER_OFF = 111;
|
||||
// Service unavailable; by low battery
|
||||
public static final int CODE_LOCAL_LOW_BATTERY = 112;
|
||||
// Service unavailable; by out of service (data service state)
|
||||
public static final int CODE_LOCAL_NETWORK_NO_SERVICE = 121;
|
||||
// Service unavailable; by no LTE coverage
|
||||
// (VoLTE is not supported even though IMS is registered)
|
||||
public static final int CODE_LOCAL_NETWORK_NO_LTE_COVERAGE = 122;
|
||||
// Service unavailable; by located in roaming area
|
||||
public static final int CODE_LOCAL_NETWORK_ROAMING = 123;
|
||||
// Service unavailable; by IP changed
|
||||
public static final int CODE_LOCAL_NETWORK_IP_CHANGED = 124;
|
||||
// Service unavailable; other
|
||||
public static final int CODE_LOCAL_SERVICE_UNAVAILABLE = 131;
|
||||
// Service unavailable; IMS connection is lost (IMS is not registered)
|
||||
public static final int CODE_LOCAL_NOT_REGISTERED = 132;
|
||||
|
||||
// IMS <-> Telephony
|
||||
// Max call exceeded
|
||||
public static final int CODE_LOCAL_CALL_EXCEEDED = 141;
|
||||
// IMS <- Telephony
|
||||
// Call busy
|
||||
public static final int CODE_LOCAL_CALL_BUSY = 142;
|
||||
// Call decline
|
||||
public static final int CODE_LOCAL_CALL_DECLINE = 143;
|
||||
// IMS -> Telephony
|
||||
// SRVCC is in progress
|
||||
public static final int CODE_LOCAL_CALL_VCC_ON_PROGRESSING = 144;
|
||||
// Resource reservation is failed (QoS precondition)
|
||||
public static final int CODE_LOCAL_CALL_RESOURCE_RESERVATION_FAILED = 145;
|
||||
// Retry CS call; VoLTE service can't be provided by the network or remote end
|
||||
// Resolve the extra code(EXTRA_CODE_CALL_RETRY_*) if the below code is set
|
||||
public static final int CODE_LOCAL_CALL_CS_RETRY_REQUIRED = 146;
|
||||
// Retry VoLTE call; VoLTE service can't be provided by the network temporarily
|
||||
public static final int CODE_LOCAL_CALL_VOLTE_RETRY_REQUIRED = 147;
|
||||
// IMS call is already terminated (in TERMINATED state)
|
||||
public static final int CODE_LOCAL_CALL_TERMINATED = 148;
|
||||
|
||||
/**
|
||||
* TIMEOUT (IMS -> Telephony)
|
||||
*/
|
||||
// 1xx waiting timer is expired after sending INVITE request (MO only)
|
||||
public static final int CODE_TIMEOUT_1XX_WAITING = 201;
|
||||
// User no answer during call setup operation (MO/MT)
|
||||
// MO : 200 OK to INVITE request is not received,
|
||||
// MT : No action from user after alerting the call
|
||||
public static final int CODE_TIMEOUT_NO_ANSWER = 202;
|
||||
// User no answer during call update operation (MO/MT)
|
||||
// MO : 200 OK to re-INVITE request is not received,
|
||||
// MT : No action from user after alerting the call
|
||||
public static final int CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE = 203;
|
||||
|
||||
/**
|
||||
* STATUSCODE (SIP response code) (IMS -> Telephony)
|
||||
*/
|
||||
// 3xx responses
|
||||
// SIP request is redirected
|
||||
public static final int CODE_SIP_REDIRECTED = 321;
|
||||
// 4xx responses
|
||||
// 400 : Bad Request
|
||||
public static final int CODE_SIP_BAD_REQUEST = 331;
|
||||
// 403 : Forbidden
|
||||
public static final int CODE_SIP_FORBIDDEN = 332;
|
||||
// 404 : Not Found
|
||||
public static final int CODE_SIP_NOT_FOUND = 333;
|
||||
// 415 : Unsupported Media Type
|
||||
// 416 : Unsupported URI Scheme
|
||||
// 420 : Bad Extension
|
||||
public static final int CODE_SIP_NOT_SUPPORTED = 334;
|
||||
// 408 : Request Timeout
|
||||
public static final int CODE_SIP_REQUEST_TIMEOUT = 335;
|
||||
// 480 : Temporarily Unavailable
|
||||
public static final int CODE_SIP_TEMPRARILY_UNAVAILABLE = 336;
|
||||
// 484 : Address Incomplete
|
||||
public static final int CODE_SIP_BAD_ADDRESS = 337;
|
||||
// 486 : Busy Here
|
||||
// 600 : Busy Everywhere
|
||||
public static final int CODE_SIP_BUSY = 338;
|
||||
// 487 : Request Terminated
|
||||
public static final int CODE_SIP_REQUEST_CANCELLED = 339;
|
||||
// 406 : Not Acceptable
|
||||
// 488 : Not Acceptable Here
|
||||
// 606 : Not Acceptable
|
||||
public static final int CODE_SIP_NOT_ACCEPTABLE = 340;
|
||||
// 410 : Gone
|
||||
// 604 : Does Not Exist Anywhere
|
||||
public static final int CODE_SIP_NOT_REACHABLE = 341;
|
||||
// Others
|
||||
public static final int CODE_SIP_CLIENT_ERROR = 342;
|
||||
// 5xx responses
|
||||
// 501 : Server Internal Error
|
||||
public static final int CODE_SIP_SERVER_INTERNAL_ERROR = 351;
|
||||
// 503 : Service Unavailable
|
||||
public static final int CODE_SIP_SERVICE_UNAVAILABLE = 352;
|
||||
// 504 : Server Time-out
|
||||
public static final int CODE_SIP_SERVER_TIMEOUT = 353;
|
||||
// Others
|
||||
public static final int CODE_SIP_SERVER_ERROR = 354;
|
||||
// 6xx responses
|
||||
// 603 : Decline
|
||||
public static final int CODE_SIP_USER_REJECTED = 361;
|
||||
// Others
|
||||
public static final int CODE_SIP_GLOBAL_ERROR = 362;
|
||||
|
||||
/**
|
||||
* MEDIA (IMS -> Telephony)
|
||||
*/
|
||||
// Media resource initialization failed
|
||||
public static final int CODE_MEDIA_INIT_FAILED = 401;
|
||||
// RTP timeout (no audio / video traffic in the session)
|
||||
public static final int CODE_MEDIA_NO_DATA = 402;
|
||||
// Media is not supported; so dropped the call
|
||||
public static final int CODE_MEDIA_NOT_ACCEPTABLE = 403;
|
||||
// Unknown media related errors
|
||||
public static final int CODE_MEDIA_UNSPECIFIED = 404;
|
||||
|
||||
/**
|
||||
* USER
|
||||
*/
|
||||
// Telephony -> IMS
|
||||
// User triggers the call end
|
||||
public static final int CODE_USER_TERMINATED = 501;
|
||||
// No action while an incoming call is ringing
|
||||
public static final int CODE_USER_NOANSWER = 502;
|
||||
// User ignores an incoming call
|
||||
public static final int CODE_USER_IGNORE = 503;
|
||||
// User declines an incoming call
|
||||
public static final int CODE_USER_DECLINE = 504;
|
||||
// IMS -> Telephony
|
||||
// The call is terminated by the network or remote user
|
||||
public static final int CODE_USER_TERMINATED_BY_REMOTE = 510;
|
||||
|
||||
/**
|
||||
* Extra codes for the specific code value
|
||||
* This value can be referred when the code is CODE_LOCAL_CALL_CS_RETRY_REQUIRED.
|
||||
*/
|
||||
// Try to connect CS call; normal
|
||||
public static final int EXTRA_CODE_CALL_RETRY_NORMAL = 1;
|
||||
// Try to connect CS call without the notification to user
|
||||
public static final int EXTRA_CODE_CALL_RETRY_SILENT_REDIAL = 2;
|
||||
// Try to connect CS call by the settings of the menu
|
||||
public static final int EXTRA_CODE_CALL_RETRY_BY_SETTINGS = 3;
|
||||
|
||||
/**
|
||||
* UT
|
||||
*/
|
||||
public static final int CODE_UT_NOT_SUPPORTED = 801;
|
||||
public static final int CODE_UT_SERVICE_UNAVAILABLE = 802;
|
||||
public static final int CODE_UT_OPERATION_NOT_ALLOWED = 803;
|
||||
public static final int CODE_UT_CB_PASSWORD_MISMATCH = 821;
|
||||
|
||||
|
||||
|
||||
// For reason type
|
||||
public int mReasonType;
|
||||
// For main reason code
|
||||
public int mCode;
|
||||
// For the extra code value; it depends on the code value.
|
||||
public int mExtraCode;
|
||||
// For the additional message of the reason info.
|
||||
public String mExtraMessage;
|
||||
|
||||
public ImsReasonInfo() {
|
||||
mReasonType = TYPE_UNSPECIFIED;
|
||||
mCode = CODE_UNSPECIFIED;
|
||||
mExtraCode = CODE_UNSPECIFIED;
|
||||
mExtraMessage = null;
|
||||
}
|
||||
|
||||
public ImsReasonInfo(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
public ImsReasonInfo(int code, int extraCode) {
|
||||
mReasonType = (int) (code / 100);
|
||||
mCode = code;
|
||||
mExtraCode = extraCode;
|
||||
mExtraMessage = null;
|
||||
}
|
||||
|
||||
public ImsReasonInfo(int code, int extraCode, String extraMessage) {
|
||||
mReasonType = (int) (code / 100);
|
||||
mCode = code;
|
||||
mExtraCode = extraCode;
|
||||
mExtraMessage = extraMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public int getCode() {
|
||||
return mCode;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public int getExtraCode() {
|
||||
return mExtraCode;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public String getExtraMessage() {
|
||||
return mExtraMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public int getReasonType() {
|
||||
return mReasonType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string format of {@link ImsReasonInfo}
|
||||
*
|
||||
* @return the string format of {@link ImsReasonInfo}
|
||||
*/
|
||||
public String toString() {
|
||||
return "ImsReasonInfo :: {" + mReasonType + ", "
|
||||
+ mCode + ", " + mExtraCode + ", " + mExtraMessage + "}";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mReasonType);
|
||||
out.writeInt(mCode);
|
||||
out.writeInt(mExtraCode);
|
||||
out.writeString(mExtraMessage);
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mReasonType = in.readInt();
|
||||
mCode = in.readInt();
|
||||
mExtraCode = in.readInt();
|
||||
mExtraMessage = in.readString();
|
||||
}
|
||||
|
||||
public static final Creator<ImsReasonInfo> CREATOR = new Creator<ImsReasonInfo>() {
|
||||
@Override
|
||||
public ImsReasonInfo createFromParcel(Parcel in) {
|
||||
return new ImsReasonInfo(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsReasonInfo[] newArray(int size) {
|
||||
return new ImsReasonInfo[size];
|
||||
}
|
||||
};
|
||||
}
|
19
telephony/java/com/android/ims/ImsSsInfo.aidl
Normal file
19
telephony/java/com/android/ims/ImsSsInfo.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsSsInfo;
|
76
telephony/java/com/android/ims/ImsSsInfo.java
Normal file
76
telephony/java/com/android/ims/ImsSsInfo.java
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Provides the result to the update operation for the supplementary service configuration.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsSsInfo implements Parcelable {
|
||||
/**
|
||||
* For the status of service registration or activation/deactivation.
|
||||
*/
|
||||
public static final int NOT_REGISTERED = (-1);
|
||||
public static final int DISABLED = 0;
|
||||
public static final int ENABLED = 1;
|
||||
|
||||
// 0: disabled, 1: enabled
|
||||
public int mStatus;
|
||||
|
||||
public ImsSsInfo() {
|
||||
}
|
||||
|
||||
public ImsSsInfo(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mStatus);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + ", Status: " + ((mStatus == 0) ? "disabled" : "enabled");
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mStatus = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<ImsSsInfo> CREATOR =
|
||||
new Creator<ImsSsInfo>() {
|
||||
@Override
|
||||
public ImsSsInfo createFromParcel(Parcel in) {
|
||||
return new ImsSsInfo(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsSsInfo[] newArray(int size) {
|
||||
return new ImsSsInfo[size];
|
||||
}
|
||||
};
|
||||
}
|
19
telephony/java/com/android/ims/ImsStreamMediaProfile.aidl
Normal file
19
telephony/java/com/android/ims/ImsStreamMediaProfile.aidl
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 ImsStreamMediaProfile;
|
132
telephony/java/com/android/ims/ImsStreamMediaProfile.java
Normal file
132
telephony/java/com/android/ims/ImsStreamMediaProfile.java
Normal file
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Parcelable object to handle IMS stream media profile.
|
||||
* It provides the media direction, quality of audio and/or video.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ImsStreamMediaProfile implements Parcelable {
|
||||
private static final String TAG = "ImsStreamMediaProfile";
|
||||
|
||||
/**
|
||||
* Media directions
|
||||
*/
|
||||
public static final int DIRECTION_INVALID = (-1);
|
||||
public static final int DIRECTION_INACTIVE = 0;
|
||||
public static final int DIRECTION_RECEIVE = 1;
|
||||
public static final int DIRECTION_SEND = 2;
|
||||
public static final int DIRECTION_SEND_RECEIVE = 3;
|
||||
|
||||
/**
|
||||
* Audio information
|
||||
*/
|
||||
public static final int AUDIO_QUALITY_NONE = 0;
|
||||
public static final int AUDIO_QUALITY_AMR = (1 << 0);
|
||||
public static final int AUDIO_QUALITY_AMR_WB = (1 << 1);
|
||||
|
||||
/**
|
||||
* Video information
|
||||
*/
|
||||
public static final int VIDEO_QUALITY_NONE = 0;
|
||||
public static final int VIDEO_QUALITY_QCIF = (1 << 0);
|
||||
public static final int VIDEO_QUALITY_QVGA_LANDSCAPE = (1 << 1);
|
||||
public static final int VIDEO_QUALITY_QVGA_PORTRAIT = (1 << 2);
|
||||
public static final int VIDEO_QUALITY_VGA_LANDSCAPE = (1 << 3);
|
||||
public static final int VIDEO_QUALITY_VGA_PORTRAIT = (1 << 4);
|
||||
|
||||
// Audio related information
|
||||
public int mAudioQuality;
|
||||
public int mAudioDirection;
|
||||
// Video related information
|
||||
public int mVideoQuality;
|
||||
public int mVideoDirection;
|
||||
|
||||
|
||||
|
||||
public ImsStreamMediaProfile(Parcel in) {
|
||||
readFromParcel(in);
|
||||
}
|
||||
|
||||
public ImsStreamMediaProfile() {
|
||||
mAudioQuality = AUDIO_QUALITY_AMR_WB;
|
||||
mAudioDirection = DIRECTION_SEND_RECEIVE;
|
||||
mVideoQuality = VIDEO_QUALITY_NONE;
|
||||
mVideoDirection = DIRECTION_INVALID;
|
||||
}
|
||||
|
||||
public ImsStreamMediaProfile(int audioQuality, int audioDirection,
|
||||
int videoQuality, int videoDirection) {
|
||||
mAudioQuality = audioQuality;
|
||||
mAudioDirection = audioDirection;
|
||||
mVideoQuality = videoQuality;
|
||||
mVideoDirection = videoDirection;
|
||||
}
|
||||
|
||||
public void copyFrom(ImsStreamMediaProfile profile) {
|
||||
mAudioQuality = profile.mAudioQuality;
|
||||
mAudioDirection = profile.mAudioDirection;
|
||||
mVideoQuality = profile.mVideoQuality;
|
||||
mVideoDirection = profile.mVideoDirection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{ audioQuality=" + mAudioQuality +
|
||||
", audioDirection=" + mAudioDirection +
|
||||
", videoQuality=" + mVideoQuality +
|
||||
", videoDirection=" + mVideoDirection + " }";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mAudioQuality);
|
||||
out.writeInt(mAudioDirection);
|
||||
out.writeInt(mVideoQuality);
|
||||
out.writeInt(mVideoDirection);
|
||||
}
|
||||
|
||||
private void readFromParcel(Parcel in) {
|
||||
mAudioQuality = in.readInt();
|
||||
mAudioDirection = in.readInt();
|
||||
mVideoQuality = in.readInt();
|
||||
mVideoDirection = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<ImsStreamMediaProfile> CREATOR =
|
||||
new Creator<ImsStreamMediaProfile>() {
|
||||
@Override
|
||||
public ImsStreamMediaProfile createFromParcel(Parcel in) {
|
||||
return new ImsStreamMediaProfile(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImsStreamMediaProfile[] newArray(int size) {
|
||||
return new ImsStreamMediaProfile[size];
|
||||
}
|
||||
};
|
||||
}
|
219
telephony/java/com/android/ims/internal/IImsCallSession.aidl
Normal file
219
telephony/java/com/android/ims/internal/IImsCallSession.aidl
Normal file
@ -0,0 +1,219 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.ImsCallProfile;
|
||||
import com.android.ims.ImsStreamMediaProfile;
|
||||
import com.android.ims.internal.IImsCallSessionListener;
|
||||
|
||||
/**
|
||||
* An IMS session that is associated with a SIP dialog which is established from/to
|
||||
* INVITE request or a mid-call transaction to control the session.
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsCallSession {
|
||||
/**
|
||||
* Closes the object. This object is not usable after being closed.
|
||||
*/
|
||||
void close();
|
||||
|
||||
/**
|
||||
* Gets the call ID of the session.
|
||||
*
|
||||
* @return the call ID
|
||||
*/
|
||||
String getCallId();
|
||||
|
||||
/**
|
||||
* Gets the call profile that this session is associated with
|
||||
*
|
||||
* @return the call profile that this session is associated with
|
||||
*/
|
||||
ImsCallProfile getCallProfile();
|
||||
|
||||
/**
|
||||
* Gets the local call profile that this session is associated with
|
||||
*
|
||||
* @return the local call profile that this session is associated with
|
||||
*/
|
||||
ImsCallProfile getLocalCallProfile();
|
||||
|
||||
/**
|
||||
* Gets the value associated with the specified property of this session.
|
||||
*
|
||||
* @return the string value associated with the specified property
|
||||
*/
|
||||
String getProperty(String name);
|
||||
|
||||
/**
|
||||
* Gets the session state. The value returned must be one of the states in
|
||||
* {@link ImsCallSession#State}.
|
||||
*
|
||||
* @return the session state
|
||||
*/
|
||||
int getState();
|
||||
|
||||
/**
|
||||
* Checks if the session is in a call.
|
||||
*
|
||||
* @return true if the session is in a call
|
||||
*/
|
||||
boolean isInCall();
|
||||
|
||||
/**
|
||||
* Sets the listener to listen to the session events. A {@link IImsCallSession}
|
||||
* can only hold one listener at a time. Subsequent calls to this method
|
||||
* override the previous listener.
|
||||
*
|
||||
* @param listener to listen to the session events of this object
|
||||
*/
|
||||
void setListener(in IImsCallSessionListener listener);
|
||||
|
||||
/**
|
||||
* Mutes or unmutes the mic for the active call.
|
||||
*
|
||||
* @param muted true if the call is muted, false otherwise
|
||||
*/
|
||||
void setMute(boolean muted);
|
||||
|
||||
/**
|
||||
* Initiates an IMS call with the specified target and call profile.
|
||||
* The session listener is called back upon defined session events.
|
||||
* The method is only valid to call when the session state is in
|
||||
* {@link ImsCallSession#State#IDLE}.
|
||||
*
|
||||
* @param callee dialed string to make the call to
|
||||
* @param profile call profile to make the call with the specified service type,
|
||||
* call type and media information
|
||||
* @see Listener#callSessionStarted, Listener#callSessionStartFailed
|
||||
*/
|
||||
void start(String callee, in ImsCallProfile profile);
|
||||
|
||||
/**
|
||||
* Initiates an IMS call with the specified participants and call profile.
|
||||
* The session listener is called back upon defined session events.
|
||||
* The method is only valid to call when the session state is in
|
||||
* {@link ImsCallSession#State#IDLE}.
|
||||
*
|
||||
* @param participants participant list to initiate an IMS conference call
|
||||
* @param profile call profile to make the call with the specified service type,
|
||||
* call type and media information
|
||||
* @see Listener#callSessionStarted, Listener#callSessionStartFailed
|
||||
*/
|
||||
void startConference(in String[] participants, in ImsCallProfile profile);
|
||||
|
||||
/**
|
||||
* Accepts an incoming call or session update.
|
||||
*
|
||||
* @param callType call type specified in {@link ImsCallProfile} to be answered
|
||||
* @param profile stream media profile {@link ImsStreamMediaProfile} to be answered
|
||||
* @see Listener#callSessionStarted
|
||||
*/
|
||||
void accept(int callType, in ImsStreamMediaProfile profile);
|
||||
|
||||
/**
|
||||
* Rejects an incoming call or session update.
|
||||
*
|
||||
* @param reason reason code to reject an incoming call
|
||||
* @see Listener#callSessionStartFailed
|
||||
*/
|
||||
void reject(int reason);
|
||||
|
||||
/**
|
||||
* Terminates a call.
|
||||
*
|
||||
* @see Listener#callSessionTerminated
|
||||
*/
|
||||
void terminate(int reason);
|
||||
|
||||
/**
|
||||
* Puts a call on hold. When it succeeds, {@link Listener#callSessionHeld} is called.
|
||||
*
|
||||
* @param profile stream media profile {@link ImsStreamMediaProfile} to hold the call
|
||||
* @see Listener#callSessionHeld, Listener#callSessionHoldFailed
|
||||
*/
|
||||
void hold(in ImsStreamMediaProfile profile);
|
||||
|
||||
/**
|
||||
* Continues a call that's on hold. When it succeeds, {@link Listener#callSessionResumed}
|
||||
* is called.
|
||||
*
|
||||
* @param profile stream media profile {@link ImsStreamMediaProfile} to resume the call
|
||||
* @see Listener#callSessionResumed, Listener#callSessionResumeFailed
|
||||
*/
|
||||
void resume(in ImsStreamMediaProfile profile);
|
||||
|
||||
/**
|
||||
* Merges the active & hold call. When it succeeds, {@link Listener#callSessionMerged}
|
||||
* is called.
|
||||
*
|
||||
* @see Listener#callSessionMerged, Listener#callSessionMergeFailed
|
||||
*/
|
||||
void merge();
|
||||
|
||||
/**
|
||||
* Updates the current call's properties (ex. call mode change: video upgrade / downgrade).
|
||||
*
|
||||
* @param callType call type specified in {@link ImsCallProfile} to be updated
|
||||
* @param profile stream media profile {@link ImsStreamMediaProfile} to be updated
|
||||
* @see Listener#callSessionUpdated, Listener#callSessionUpdateFailed
|
||||
*/
|
||||
void update(int callType, in ImsStreamMediaProfile profile);
|
||||
|
||||
/**
|
||||
* Extends this call to the conference call with the specified recipients.
|
||||
*
|
||||
* @participants participant list to be invited to the conference call after extending the call
|
||||
* @see Listener#sessionConferenceExtened, Listener#sessionConferenceExtendFailed
|
||||
*/
|
||||
void extendToConference(in String[] participants);
|
||||
|
||||
/**
|
||||
* Requests the conference server to invite an additional participants to the conference.
|
||||
*
|
||||
* @participants participant list to be invited to the conference call
|
||||
* @see Listener#sessionInviteParticipantsRequestDelivered,
|
||||
* Listener#sessionInviteParticipantsRequestFailed
|
||||
*/
|
||||
void inviteParticipants(in String[] participants);
|
||||
|
||||
/**
|
||||
* Requests the conference server to remove the specified participants from the conference.
|
||||
*
|
||||
* @param participants participant list to be removed from the conference call
|
||||
* @see Listener#sessionRemoveParticipantsRequestDelivered,
|
||||
* Listener#sessionRemoveParticipantsRequestFailed
|
||||
*/
|
||||
void removeParticipants(in String[] participants);
|
||||
|
||||
/**
|
||||
* Sends a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833</a>,
|
||||
* event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15,
|
||||
* and event flash to 16. Currently, event flash is not supported.
|
||||
*
|
||||
* @param code the DTMF to send. Value 0 to 15 (inclusive) are valid inputs.
|
||||
* @param duration the interval in milli-seconds between the DTMFs
|
||||
*/
|
||||
void sendDtmf(int code, int duration);
|
||||
|
||||
/**
|
||||
* Sends an USSD message.
|
||||
*
|
||||
* @param ussdMessage USSD message to send
|
||||
*/
|
||||
void sendUssd(String ussdMessage);
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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.ImsStreamMediaProfile;
|
||||
import com.android.ims.ImsCallProfile;
|
||||
import com.android.ims.ImsReasonInfo;
|
||||
import com.android.ims.ImsConferenceState;
|
||||
import com.android.ims.internal.IImsCallSession;
|
||||
|
||||
/**
|
||||
* A listener type for receiving notification on IMS call session events.
|
||||
* When an event is generated for an {@link IImsCallSession}, the application is notified
|
||||
* by having one of the methods called on the {@link IImsCallSessionListener}.
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsCallSessionListener {
|
||||
/**
|
||||
* Notifies the result of the basic session operation (setup / terminate).
|
||||
*/
|
||||
void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile);
|
||||
void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile);
|
||||
void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
|
||||
void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo);
|
||||
|
||||
/**
|
||||
* Notifies the result of the call hold/resume operation.
|
||||
*/
|
||||
void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile);
|
||||
void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
|
||||
void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile);
|
||||
void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile);
|
||||
void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
|
||||
void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile);
|
||||
|
||||
/**
|
||||
* Notifiies the result of call merge operation.
|
||||
*/
|
||||
void callSessionMerged(in IImsCallSession session,
|
||||
in IImsCallSession newSession, in ImsCallProfile profile);
|
||||
void callSessionMergeFailed(in IImsCallSession session,
|
||||
in ImsReasonInfo reasonInfo);
|
||||
|
||||
/**
|
||||
* Notifies the result of call upgrade / downgrade or any other call updates.
|
||||
*/
|
||||
void callSessionUpdated(in IImsCallSession session,
|
||||
in ImsCallProfile profile);
|
||||
void callSessionUpdateFailed(in IImsCallSession session,
|
||||
in ImsReasonInfo reasonInfo);
|
||||
void callSessionUpdateReceived(in IImsCallSession session,
|
||||
in ImsCallProfile profile);
|
||||
|
||||
/**
|
||||
* Notifies the result of conference extension.
|
||||
*/
|
||||
void callSessionConferenceExtended(in IImsCallSession session,
|
||||
in IImsCallSession newSession, in ImsCallProfile profile);
|
||||
void callSessionConferenceExtendFailed(in IImsCallSession session,
|
||||
in ImsReasonInfo reasonInfo);
|
||||
void callSessionConferenceExtendReceived(in IImsCallSession session,
|
||||
in IImsCallSession newSession, in ImsCallProfile profile);
|
||||
|
||||
/**
|
||||
* Notifies the result of the participant invitation / removal to/from the conference session.
|
||||
*/
|
||||
void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session);
|
||||
void callSessionInviteParticipantsRequestFailed(in IImsCallSession session,
|
||||
in ImsReasonInfo reasonInfo);
|
||||
void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session);
|
||||
void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session,
|
||||
in ImsReasonInfo reasonInfo);
|
||||
|
||||
/**
|
||||
* Notifies the changes of the conference info. in the conference session.
|
||||
*/
|
||||
void callSessionConferenceStateUpdated(in IImsCallSession session,
|
||||
in ImsConferenceState state);
|
||||
|
||||
/**
|
||||
* Notifies the incoming USSD message.
|
||||
*/
|
||||
void callSessionUssdMessageReceived(in IImsCallSession session,
|
||||
int mode, String ussdMessage);
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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;
|
||||
|
||||
/**
|
||||
* A listener type for receiving notifications about the changes to
|
||||
* the IMS connection(registration).
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsRegistrationListener {
|
||||
/**
|
||||
* Notifies the application when the device is connected to the IMS network.
|
||||
*/
|
||||
void registrationConnected();
|
||||
|
||||
/**
|
||||
* Notifies the application when the device is disconnected from the IMS network.
|
||||
*/
|
||||
void registrationDisconnected();
|
||||
|
||||
/**
|
||||
* Notifies the application when its suspended IMS connection is resumed,
|
||||
* meaning the connection now allows throughput.
|
||||
*/
|
||||
void registrationResumed();
|
||||
|
||||
/**
|
||||
* Notifies the application when its current IMS connection is suspended,
|
||||
* meaning there is no data throughput.
|
||||
*/
|
||||
void registrationSuspended();
|
||||
|
||||
/**
|
||||
* Notifies the application when its current IMS connection is updated
|
||||
* since the service setting is changed or the service is added/removed.
|
||||
*
|
||||
* @param serviceClass a service class specified in {@link ImsServiceClass}
|
||||
* @param event an event type when this callback is called
|
||||
* If {@code event} is 0, meaning the specified service is removed from the IMS connection.
|
||||
* Else ({@code event} is 1), meaning the specified service is added to the IMS connection.
|
||||
*/
|
||||
void registrationServiceCapabilityChanged(int serviceClass, int event);
|
||||
}
|
48
telephony/java/com/android/ims/internal/IImsService.aidl
Normal file
48
telephony/java/com/android/ims/internal/IImsService.aidl
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 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.IImsUt;
|
||||
|
||||
/**
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsService {
|
||||
int open(int serviceClass, in PendingIntent incomingCallIntent,
|
||||
in IImsRegistrationListener listener);
|
||||
void close(int serviceId);
|
||||
boolean isConnected(int serviceId, int serviceType, int callType);
|
||||
boolean isOpened(int serviceId);
|
||||
void setRegistrationListener(int serviceId, in IImsRegistrationListener listener);
|
||||
|
||||
ImsCallProfile createCallProfile(int serviceId, int serviceType, int callType);
|
||||
|
||||
IImsCallSession createCallSession(int serviceId, in ImsCallProfile profile,
|
||||
in IImsCallSessionListener listener);
|
||||
IImsCallSession getPendingCallSession(int serviceId, String callId);
|
||||
|
||||
/**
|
||||
* Ut interface for the supplementary service configuration.
|
||||
*/
|
||||
IImsUt getUtInterface(int serviceId);
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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;
|
||||
|
||||
/**
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsStreamMediaSession {
|
||||
void close();
|
||||
}
|
73
telephony/java/com/android/ims/internal/IImsUt.aidl
Normal file
73
telephony/java/com/android/ims/internal/IImsUt.aidl
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 android.os.Bundle;
|
||||
|
||||
import com.android.ims.internal.IImsUtListener;
|
||||
|
||||
/**
|
||||
* Provides the Ut interface interworking to get/set the supplementary service configuration.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsUt {
|
||||
/**
|
||||
* Closes the object. This object is not usable after being closed.
|
||||
*/
|
||||
void close();
|
||||
|
||||
/**
|
||||
* Retrieves the configuration of the call barring.
|
||||
*/
|
||||
int queryCallBarring(int cbType);
|
||||
|
||||
/**
|
||||
* Retrieves the configuration of the call forward.
|
||||
*/
|
||||
int queryCallForward(int condition, String number);
|
||||
|
||||
/**
|
||||
* Retrieves the configuration of the call waiting.
|
||||
*/
|
||||
int queryCallWaiting();
|
||||
|
||||
/**
|
||||
* Updates or retrieves the supplementary service configuration.
|
||||
*/
|
||||
int transact(in Bundle ssInfo);
|
||||
|
||||
/**
|
||||
* Updates the configuration of the call barring.
|
||||
*/
|
||||
int updateCallBarring(int cbType, boolean enable);
|
||||
|
||||
/**
|
||||
* Updates the configuration of the call forward.
|
||||
*/
|
||||
int updateCallForward(int action, int condition, String number, int timeSeconds);
|
||||
|
||||
/**
|
||||
* Updates the configuration of the call waiting.
|
||||
*/
|
||||
int updateCallWaiting(boolean enable);
|
||||
|
||||
/**
|
||||
* Sets the listener.
|
||||
*/
|
||||
void setListener(in IImsUtListener listener);
|
||||
}
|
58
telephony/java/com/android/ims/internal/IImsUtListener.aidl
Normal file
58
telephony/java/com/android/ims/internal/IImsUtListener.aidl
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 2013 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 android.os.Bundle;
|
||||
|
||||
import com.android.ims.ImsCallForwardInfo;
|
||||
import com.android.ims.ImsSsInfo;
|
||||
import com.android.ims.internal.IImsUt;
|
||||
|
||||
/**
|
||||
* {@hide}
|
||||
*/
|
||||
interface IImsUtListener {
|
||||
/**
|
||||
* Notifies the result of the supplementary service configuration udpate.
|
||||
*/
|
||||
void utConfigurationUpdated(in IImsUt ut, int id);
|
||||
void utConfigurationUpdateFailed(in IImsUt ut, int id, int errorCode);
|
||||
|
||||
/**
|
||||
* Notifies the result of the supplementary service configuration query.
|
||||
*/
|
||||
void utConfigurationQueried(in IImsUt ut, int id, in Bundle ssInfo);
|
||||
void utConfigurationQueryFailed(in IImsUt ut, int id, int errorCode);
|
||||
|
||||
/**
|
||||
* Notifies the status of the call barring supplementary service.
|
||||
*/
|
||||
void utConfigurationCallBarringQueried(in IImsUt ut,
|
||||
int id, in ImsSsInfo[] cbInfo);
|
||||
|
||||
/**
|
||||
* Notifies the status of the call forwarding supplementary service.
|
||||
*/
|
||||
void utConfigurationCallForwardQueried(in IImsUt ut,
|
||||
int id, in ImsCallForwardInfo[] cfInfo);
|
||||
|
||||
/**
|
||||
* Notifies the status of the call waiting supplementary service.
|
||||
*/
|
||||
void utConfigurationCallWaitingQueried(in IImsUt ut,
|
||||
int id, in ImsSsInfo[] cwInfo);
|
||||
}
|
Reference in New Issue
Block a user