diff options
Diffstat (limited to 'telephony/java/android/telephony/ims/feature/MmTelFeature.java')
-rw-r--r-- | telephony/java/android/telephony/ims/feature/MmTelFeature.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/telephony/java/android/telephony/ims/feature/MmTelFeature.java b/telephony/java/android/telephony/ims/feature/MmTelFeature.java index d7b0e0f030ab..e570fb6f5612 100644 --- a/telephony/java/android/telephony/ims/feature/MmTelFeature.java +++ b/telephony/java/android/telephony/ims/feature/MmTelFeature.java @@ -27,6 +27,8 @@ import android.telecom.TelecomManager; import android.telephony.ims.ImsCallProfile; import android.telephony.ims.ImsCallSession; import android.telephony.ims.ImsReasonInfo; +import android.telephony.ims.ImsService; +import android.telephony.ims.RtpHeaderExtensionType; import android.telephony.ims.aidl.IImsCapabilityCallback; import android.telephony.ims.aidl.IImsMmTelFeature; import android.telephony.ims.aidl.IImsMmTelListener; @@ -37,6 +39,7 @@ import android.telephony.ims.stub.ImsMultiEndpointImplBase; import android.telephony.ims.stub.ImsRegistrationImplBase; import android.telephony.ims.stub.ImsSmsImplBase; import android.telephony.ims.stub.ImsUtImplBase; +import android.util.ArraySet; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsEcbm; @@ -45,6 +48,8 @@ import com.android.ims.internal.IImsUt; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; +import java.util.Set; /** * Base implementation for Voice and SMS (IR-92) and Video (IR-94) IMS support. @@ -93,6 +98,18 @@ public class MmTelFeature extends ImsFeature { } @Override + public void changeOfferedRtpHeaderExtensionTypes(List<RtpHeaderExtensionType> types) + throws RemoteException { + synchronized (mLock) { + try { + MmTelFeature.this.changeOfferedRtpHeaderExtensionTypes(new ArraySet<>(types)); + } catch (Exception e) { + throw new RemoteException(e.getMessage()); + } + } + } + + @Override public IImsCallSession createCallSession(ImsCallProfile profile) throws RemoteException { synchronized (mLock) { return createCallSessionInterface(profile); @@ -623,6 +640,24 @@ public class MmTelFeature extends ImsFeature { } /** + * Called by the framework to report a change to the RTP header extension types which should be + * offered during SDP negotiation (see RFC8285 for more information). + * <p> + * The {@link ImsService} should report the RTP header extensions which were accepted during + * SDP negotiation using {@link ImsCallProfile#setAcceptedRtpHeaderExtensionTypes(Set)}. + * + * @param extensionTypes The RTP header extensions the framework wishes to offer during + * outgoing and incoming call setup. An empty list indicates that there + * are no framework defined RTP header extension types to offer. + * @hide + */ + @SystemApi + public void changeOfferedRtpHeaderExtensionTypes( + @NonNull Set<RtpHeaderExtensionType> extensionTypes) { + // Base implementation - should be overridden if RTP header extension handling is supported. + } + + /** * @hide */ public IImsCallSession createCallSessionInterface(ImsCallProfile profile) |