From 482e6da9720ec8467c9deb5e11874f78caa3eae4 Mon Sep 17 00:00:00 2001 From: Shriram Ganesh Date: Mon, 13 Oct 2014 11:31:50 -0700 Subject: [PATCH] IMS: Peer capabilities support Add support for querying peer capabilities IMS: Add support for HD icon display related information Added support to pass the restrict cause associated with the peer in order to enable display of the HD icon when necessary.Added support to pass local audio codec information and defined values for new codecs not defined. Change-Id: If05d46bdb3907a0ec7efdde48337a7932a7a5c21 --- .../java/com/android/ims/ImsCallProfile.java | 19 +++++++++++++++++-- .../android/ims/ImsStreamMediaProfile.java | 14 +++++++++++--- .../android/ims/internal/IImsCallSession.aidl | 7 +++++++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/telephony/java/com/android/ims/ImsCallProfile.java b/telephony/java/com/android/ims/ImsCallProfile.java index 8b7901ccda76e..9de938a0e54db 100644 --- a/telephony/java/com/android/ims/ImsCallProfile.java +++ b/telephony/java/com/android/ims/ImsCallProfile.java @@ -114,6 +114,10 @@ public class ImsCallProfile implements Parcelable { public static final String EXTRA_CALL_MODE_CHANGEABLE = "call_mode_changeable"; public static final String EXTRA_CONFERENCE_AVAIL = "conference_avail"; + // Extra string for internal use only. OEMs should not use + // this for packing extras. + public static final String EXTRA_OEM_EXTRAS = "OemCallExtras"; + /** * Integer extra properties * oir : Rule for originating identity (number) presentation, MO/MT. @@ -150,6 +154,18 @@ public class ImsCallProfile implements Parcelable { // Call for USSD message public static final int DIALSTRING_USSD = 2; + /** + * Values for causes that restrict call types + */ + // Default cause not restricted at peer and HD is supported + public static final int CALL_RESTRICT_CAUSE_NONE = 0; + // Service not supported by RAT at peer + public static final int CALL_RESTRICT_CAUSE_RAT = 1; + // Service Disabled at peer + public static final int CALL_RESTRICT_CAUSE_DISABLED = 2; + // HD is not supported + public static final int CALL_RESTRICT_CAUSE_HD = 3; + /** * String extra properties * oi : Originating identity (number), MT only @@ -164,11 +180,10 @@ public class ImsCallProfile implements Parcelable { public int mServiceType; public int mCallType; + public int mRestrictCause = CALL_RESTRICT_CAUSE_NONE; public Bundle mCallExtras; public ImsStreamMediaProfile mMediaProfile; - - public ImsCallProfile(Parcel in) { readFromParcel(in); } diff --git a/telephony/java/com/android/ims/ImsStreamMediaProfile.java b/telephony/java/com/android/ims/ImsStreamMediaProfile.java index 003499c9cd188..359b2707658c2 100644 --- a/telephony/java/com/android/ims/ImsStreamMediaProfile.java +++ b/telephony/java/com/android/ims/ImsStreamMediaProfile.java @@ -41,10 +41,18 @@ public class ImsStreamMediaProfile implements Parcelable { * 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); + public static final int AUDIO_QUALITY_AMR = 1; + public static final int AUDIO_QUALITY_AMR_WB = 2; + public static final int AUDIO_QUALITY_QCELP13K = 3; + public static final int AUDIO_QUALITY_EVRC = 4; + public static final int AUDIO_QUALITY_EVRC_B = 5; + public static final int AUDIO_QUALITY_EVRC_WB = 6; + public static final int AUDIO_QUALITY_EVRC_NW = 7; + public static final int AUDIO_QUALITY_GSM_EFR = 8; + public static final int AUDIO_QUALITY_GSM_FR = 9; + public static final int AUDIO_QUALITY_GSM_HR = 10; - /** + /** * Video information */ public static final int VIDEO_QUALITY_NONE = 0; diff --git a/telephony/java/com/android/ims/internal/IImsCallSession.aidl b/telephony/java/com/android/ims/internal/IImsCallSession.aidl index 16b0cd5e1c95c..d1946e3f37f46 100644 --- a/telephony/java/com/android/ims/internal/IImsCallSession.aidl +++ b/telephony/java/com/android/ims/internal/IImsCallSession.aidl @@ -54,6 +54,13 @@ interface IImsCallSession { */ ImsCallProfile getLocalCallProfile(); + /** + * Gets the remote call profile that this session is associated with + * + * @return the remote call profile that this session is associated with + */ + ImsCallProfile getRemoteCallProfile(); + /** * Gets the value associated with the specified property of this session. *