Media HAL cleanup based on vendor feedback

Bug: 203240638
Test: Build
Change-Id: I6bdf47929385a5ed65f1a2ca34500c67888f8b07
diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp
index 3eb6bf2..d68f3d4 100644
--- a/radio/aidl/Android.bp
+++ b/radio/aidl/Android.bp
@@ -182,7 +182,8 @@
     vendor_available: true,
     srcs: ["android/hardware/radio/ims/media/*.aidl"],
     stability: "vintf",
-    imports: ["android.hardware.radio.data"],
+    imports: ["android.hardware.radio",
+              "android.hardware.radio.data"],
     backend: {
         cpp: {
             enabled: false,
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/CodecParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/CodecParams.aidl
index bd7ddae..3c48843 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/CodecParams.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/CodecParams.aidl
@@ -34,9 +34,9 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 parcelable CodecParams {
-  android.hardware.radio.ims.media.SpeechCodec codec;
-  int rxPayloadTypeNumber;
-  int txPayloadTypeNumber;
+  android.hardware.radio.ims.media.CodecType codecType;
+  byte rxPayloadTypeNumber;
+  byte txPayloadTypeNumber;
   byte samplingRateKHz;
   byte txCodecModeRequest;
   boolean dtxEnabled;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/EvsParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/EvsParams.aidl
index 46817df..8d5124b 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/EvsParams.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/EvsParams.aidl
@@ -34,6 +34,7 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 parcelable EvsParams {
+  android.hardware.radio.ims.media.EvsBandwidth bandwidth;
   android.hardware.radio.ims.media.EvsMode evsMode;
   byte channelAwareMode;
   boolean useHeaderFullOnlyOnTx;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaListener.aidl
index b15534c..efd59c3 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaListener.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaListener.aidl
@@ -34,8 +34,6 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 interface IImsMediaListener {
-  oneway void onBringupResponse(android.hardware.radio.ims.media.RtpError status, in android.hardware.radio.ims.media.SpeechCodec[] supportedCodecs);
-  oneway void onMediaStackStateChanged(android.hardware.radio.ims.media.MediaStackState state);
   oneway void onOpenSessionSuccess(int sessionId, android.hardware.radio.ims.media.IImsMediaSession session);
   oneway void onOpenSessionFailure(int sessionId, android.hardware.radio.ims.media.RtpError error);
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSession.aidl
index 48ffaa3..03d0fcc 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSession.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSession.aidl
@@ -41,6 +41,6 @@
   oneway void confirmConfig(in android.hardware.radio.ims.media.RtpConfig config);
   oneway void startDtmf(char dtmfDigit, int volume, int duration);
   oneway void stopDtmf();
-  oneway void sendHeaderExtension(in android.hardware.radio.ims.media.RtpHeaderExtension[] data);
+  oneway void sendHeaderExtension(in List<android.hardware.radio.ims.media.RtpHeaderExtension> extensions);
   oneway void setMediaQualityThreshold(in android.hardware.radio.ims.media.MediaQualityThreshold threshold);
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
index 761b143..ce55121 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
@@ -34,12 +34,12 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 interface IImsMediaSessionListener {
-  oneway void onSessionChanged(in android.hardware.radio.ims.media.RtpSession session);
+  oneway void onSessionChanged(android.hardware.radio.ims.media.RtpSessionState state);
   oneway void onModifySessionResponse(in android.hardware.radio.ims.media.RtpConfig config, android.hardware.radio.ims.media.RtpError error);
   oneway void onAddConfigResponse(in android.hardware.radio.ims.media.RtpConfig config, android.hardware.radio.ims.media.RtpError error);
   oneway void onConfirmConfigResponse(in android.hardware.radio.ims.media.RtpConfig config, android.hardware.radio.ims.media.RtpError error);
   oneway void onFirstMediaPacketReceived(in android.hardware.radio.ims.media.RtpConfig config);
-  oneway void onHeaderExtensionReceived(in android.hardware.radio.ims.media.RtpHeaderExtension[] data);
+  oneway void onHeaderExtensionReceived(in List<android.hardware.radio.ims.media.RtpHeaderExtension> extensions);
   oneway void notifyMediaInactivity(android.hardware.radio.ims.media.MediaProtocolType packetType, int duration);
   oneway void notifyPacketLoss(int packetLossPercentage);
   oneway void notifyJitter(int jitter);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/LocalEndPoint.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/LocalEndPoint.aidl
index cb352d6..6ec5156 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/LocalEndPoint.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/LocalEndPoint.aidl
@@ -34,6 +34,7 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 parcelable LocalEndPoint {
-  android.hardware.radio.ims.media.RtpAddress localAddress;
+  ParcelFileDescriptor rtpFd;
+  ParcelFileDescriptor rtcpFd;
   int modemId;
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/MediaStackState.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/MediaStackState.aidl
deleted file mode 100644
index a7bb323..0000000
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/MediaStackState.aidl
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-///////////////////////////////////////////////////////////////////////////////
-// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
-///////////////////////////////////////////////////////////////////////////////
-
-// This file is a snapshot of an AIDL file. Do not edit it manually. There are
-// two cases:
-// 1). this is a frozen version file - do not edit this in any case.
-// 2). this is a 'current' file. If you make a backwards compatible change to
-//     the interface (from the latest frozen version), the build system will
-//     prompt you to update this file with `m <name>-update-api`.
-//
-// You must not make a backward incompatible change to any AIDL file built
-// with the aidl_interface module type with versions property set. The module
-// type is used to build AIDL files in a way that they can be used across
-// independently updatable components of the system. If a device is shipped
-// with such a backward incompatible change, it has a high risk of breaking
-// later when a module using the interface is updated, e.g., Mainline modules.
-
-package android.hardware.radio.ims.media;
-@Backing(type="int") @VintfStability
-enum MediaStackState {
-  NOT_READY = 1,
-  READY = 2,
-  ERROR_FATAL = 3,
-}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtcpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtcpConfig.aidl
index b1f10f2..6a76d85 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtcpConfig.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtcpConfig.aidl
@@ -36,7 +36,6 @@
 parcelable RtcpConfig {
   String canonicalName;
   int transmitPort;
-  int receivePort;
   int transmitIntervalSec;
   int rtcpXrBlocks;
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpConfig.aidl
index d3af0f8..4b80378 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpConfig.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpConfig.aidl
@@ -34,11 +34,9 @@
 package android.hardware.radio.ims.media;
 @VintfStability
 parcelable RtpConfig {
-  int configId;
   android.hardware.radio.ims.media.MediaDirection direction;
+  android.hardware.radio.AccessNetwork accessNetwork;
   android.hardware.radio.ims.media.RtpAddress remoteAddress;
   android.hardware.radio.ims.media.RtpSessionParams sessionParams;
   android.hardware.radio.ims.media.RtcpConfig rtcpConfig;
-  android.hardware.radio.data.QosBandwidth downlink;
-  android.hardware.radio.data.QosBandwidth uplink;
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpError.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpError.aidl
index f5bc190..41b0aeb 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpError.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpError.aidl
@@ -40,5 +40,5 @@
   NO_MEMORY = 3,
   NO_RESOURCES = 4,
   PORT_UNAVAILABLE = 5,
-  REQUEST_NOT_SUPPORTED = 6,
+  NOT_SUPPORTED = 6,
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSession.aidl
deleted file mode 100644
index 93c8b16..0000000
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSession.aidl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-///////////////////////////////////////////////////////////////////////////////
-// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
-///////////////////////////////////////////////////////////////////////////////
-
-// This file is a snapshot of an AIDL file. Do not edit it manually. There are
-// two cases:
-// 1). this is a frozen version file - do not edit this in any case.
-// 2). this is a 'current' file. If you make a backwards compatible change to
-//     the interface (from the latest frozen version), the build system will
-//     prompt you to update this file with `m <name>-update-api`.
-//
-// You must not make a backward incompatible change to any AIDL file built
-// with the aidl_interface module type with versions property set. The module
-// type is used to build AIDL files in a way that they can be used across
-// independently updatable components of the system. If a device is shipped
-// with such a backward incompatible change, it has a high risk of breaking
-// later when a module using the interface is updated, e.g., Mainline modules.
-
-package android.hardware.radio.ims.media;
-@VintfStability
-parcelable RtpSession {
-  int sessionId;
-  android.hardware.radio.ims.media.LocalEndPoint localEndPoint;
-  android.hardware.radio.ims.media.RtpSessionState sessionState = android.hardware.radio.ims.media.RtpSessionState.CLOSED;
-  android.hardware.radio.ims.media.RtpConfig[] remoteConfigs;
-}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSessionParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSessionParams.aidl
index 8e1af23..97c5511 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSessionParams.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpSessionParams.aidl
@@ -35,9 +35,9 @@
 @VintfStability
 parcelable RtpSessionParams {
   byte pTimeMillis;
-  byte maxPtimeMillis;
+  int maxPtimeMillis;
   int maxMtuBytes;
-  int dscp;
+  byte dscp;
   android.hardware.radio.ims.media.DtmfParams dtmfParams;
   android.hardware.radio.ims.media.CodecParams codecParams;
 }
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/SpeechCodec.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/SpeechCodec.aidl
deleted file mode 100644
index 76a1070..0000000
--- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/SpeechCodec.aidl
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-///////////////////////////////////////////////////////////////////////////////
-// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
-///////////////////////////////////////////////////////////////////////////////
-
-// This file is a snapshot of an AIDL file. Do not edit it manually. There are
-// two cases:
-// 1). this is a frozen version file - do not edit this in any case.
-// 2). this is a 'current' file. If you make a backwards compatible change to
-//     the interface (from the latest frozen version), the build system will
-//     prompt you to update this file with `m <name>-update-api`.
-//
-// You must not make a backward incompatible change to any AIDL file built
-// with the aidl_interface module type with versions property set. The module
-// type is used to build AIDL files in a way that they can be used across
-// independently updatable components of the system. If a device is shipped
-// with such a backward incompatible change, it has a high risk of breaking
-// later when a module using the interface is updated, e.g., Mainline modules.
-
-package android.hardware.radio.ims.media;
-@VintfStability
-parcelable SpeechCodec {
-  android.hardware.radio.ims.media.CodecType codecType;
-  android.hardware.radio.ims.media.EvsBandwidth bandwidth;
-}
diff --git a/radio/aidl/android/hardware/radio/ims/media/CodecParams.aidl b/radio/aidl/android/hardware/radio/ims/media/CodecParams.aidl
index 6d38874..56f7936 100644
--- a/radio/aidl/android/hardware/radio/ims/media/CodecParams.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/CodecParams.aidl
@@ -17,24 +17,24 @@
 package android.hardware.radio.ims.media;
 
 import android.hardware.radio.ims.media.CodecSpecificParams;
-import android.hardware.radio.ims.media.SpeechCodec;
+import android.hardware.radio.ims.media.CodecType;
 
 @VintfStability
 parcelable CodecParams {
-    /** Negotiated codec and bandwidth */
-    SpeechCodec codec;
+    /** Negotiated codec type */
+    CodecType codecType;
     /**
      * Static or dynamic payload type number negotiated through the SDP for
      * the incoming RTP packets. This value shall be matched with the PT value
      * of the incoming RTP header. Values 0 to 127, see RFC 3551 section 6
      */
-    int rxPayloadTypeNumber;
+    byte rxPayloadTypeNumber;
     /**
      * Static or dynamic payload type number negotiated through the SDP for
      * the outgoing RTP packets. This value shall be set to the PT value
      * of the outgoing RTP header. Values 0 to 127, see RFC 3551 section 6
      */
-    int txPayloadTypeNumber;
+    byte txPayloadTypeNumber;
     /** Sampling rate in kHz*/
     byte samplingRateKHz;
     /**
diff --git a/radio/aidl/android/hardware/radio/ims/media/EvsParams.aidl b/radio/aidl/android/hardware/radio/ims/media/EvsParams.aidl
index 4bccf8a..ecbb958 100644
--- a/radio/aidl/android/hardware/radio/ims/media/EvsParams.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/EvsParams.aidl
@@ -17,9 +17,13 @@
 package android.hardware.radio.ims.media;
 
 import android.hardware.radio.ims.media.EvsMode;
+import android.hardware.radio.ims.media.EvsBandwidth;
 
 @VintfStability
 parcelable EvsParams {
+    /** EVS codec bandwidth */
+    EvsBandwidth bandwidth;
+
     /** mode-set: EVS codec mode to represent the bit rate */
     EvsMode evsMode;
     /**
diff --git a/radio/aidl/android/hardware/radio/ims/media/IImsMediaListener.aidl b/radio/aidl/android/hardware/radio/ims/media/IImsMediaListener.aidl
index 8f2585f..4078ea2 100644
--- a/radio/aidl/android/hardware/radio/ims/media/IImsMediaListener.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/IImsMediaListener.aidl
@@ -17,29 +17,13 @@
 package android.hardware.radio.ims.media;
 
 import android.hardware.radio.ims.media.IImsMediaSession;
-import android.hardware.radio.ims.media.MediaStackState;
 import android.hardware.radio.ims.media.RtpError;
-import android.hardware.radio.ims.media.SpeechCodec;
 
 /**
  * Interface declaring listener functions for unsolicited IMS media notifications.
  */
 @VintfStability
 oneway interface IImsMediaListener {
-    /**
-     * Notifies the media stack bring up status and capabilities.
-     *
-     * @param status bring up status
-     * @param supportedCodecs array of supported speech codecs by the implementation
-     */
-    void onBringupResponse(RtpError status, in SpeechCodec[] supportedCodecs);
-
-    /**
-     * Notifies the state of the media stack whenever there is a change.
-     *
-     * @param state current state of the media stack
-     */
-    void onMediaStackStateChanged(MediaStackState state);
 
     /**
      * Fired when a IImsMedia#openSession() API is successful.
diff --git a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl
index 98d7bda..3e29356 100644
--- a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl
@@ -93,9 +93,9 @@
     /**
      * Send RTP header extension to the other party in the next RTP packet.
      *
-     * @param data data to be transmitted via RTP header extension
+     * @param extensions data to be transmitted via RTP header extension
      */
-    void sendHeaderExtension(in RtpHeaderExtension[] data);
+    void sendHeaderExtension(in List<RtpHeaderExtension> extensions);
 
     /**
      * Sets the media quality threshold parameters of the session to get
diff --git a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
index b542079..01a042f 100644
--- a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl
@@ -20,7 +20,7 @@
 import android.hardware.radio.ims.media.RtpHeaderExtension;
 import android.hardware.radio.ims.media.RtpConfig;
 import android.hardware.radio.ims.media.RtpError;
-import android.hardware.radio.ims.media.RtpSession;
+import android.hardware.radio.ims.media.RtpSessionState;
 
 /**
  * Interface declaring listener functions for unsolicited IMS media notifications per session.
@@ -28,11 +28,11 @@
 @VintfStability
 oneway interface IImsMediaSessionListener {
     /**
-     * Notifies whenever a change occurs to the RTP session.
+     * Notifies whenever the session state changed.
      *
-     * @param session Updated RTP session
+     * @param state RTP session state
      */
-     void onSessionChanged(in RtpSession session);
+     void onSessionChanged(RtpSessionState state);
 
     /**
      * Notifies the result of IImsMediaSession#modifySession() API.
@@ -85,9 +85,9 @@
     /**
      * RTP header extension received from the other party
      *
-     * @param data content of the received RTP header extension
+     * @param extensions content of the received RTP header extension
      */
-     void onHeaderExtensionReceived(in RtpHeaderExtension[] data);
+     void onHeaderExtensionReceived(in List<RtpHeaderExtension> extensions);
 
     /**
      * Notifies media inactivity observed as per thresholds set by
diff --git a/radio/aidl/android/hardware/radio/ims/media/LocalEndPoint.aidl b/radio/aidl/android/hardware/radio/ims/media/LocalEndPoint.aidl
index cd8894b..2bd48c6 100644
--- a/radio/aidl/android/hardware/radio/ims/media/LocalEndPoint.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/LocalEndPoint.aidl
@@ -16,12 +16,14 @@
 
 package android.hardware.radio.ims.media;
 
-import android.hardware.radio.ims.media.RtpAddress;
+import android.os.ParcelFileDescriptor;
 
 @VintfStability
 parcelable LocalEndPoint {
-    /** IP address/port on the IMS network where the socket needs to be open */
-    RtpAddress localAddress;
+    /** Socket file descriptor for RTP traffic */
+    ParcelFileDescriptor rtpFd;
+    /** Socket file descriptor for RTCP traffic */
+    ParcelFileDescriptor rtcpFd;
     /** The logical modem ID, returned by IRadioConfig.getPhoneCapability() */
     int modemId;
 }
diff --git a/radio/aidl/android/hardware/radio/ims/media/MediaStackState.aidl b/radio/aidl/android/hardware/radio/ims/media/MediaStackState.aidl
deleted file mode 100644
index 25b239e..0000000
--- a/radio/aidl/android/hardware/radio/ims/media/MediaStackState.aidl
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2021 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 android.hardware.radio.ims.media;
-
-@VintfStability
-@Backing(type="int")
-enum MediaStackState {
-    /** The media stack is not initialized */
-    NOT_READY = 1,
-    /** The media stack is initialized and ready */
-    READY = 2,
-    /** The media stack is in unrecoverable error condition */
-    ERROR_FATAL = 3,
-}
diff --git a/radio/aidl/android/hardware/radio/ims/media/RtcpConfig.aidl b/radio/aidl/android/hardware/radio/ims/media/RtcpConfig.aidl
index 61f98d0..98bbfc6 100644
--- a/radio/aidl/android/hardware/radio/ims/media/RtcpConfig.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/RtcpConfig.aidl
@@ -22,8 +22,6 @@
     String canonicalName;
     /** Port for sending outgoing RTCP packets */
     int transmitPort;
-    /** Port where incoming RTCP packets are received */
-    int receivePort;
     /** Transmit interval in seconds. Value 0 indicates that RTCP reports should not be reported */
     int transmitIntervalSec;
     /** Bitmask of RTCP-XR blocks to enable as in RtcpXrReportBlockType */
diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpConfig.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpConfig.aidl
index 9f366f7..52ca712 100644
--- a/radio/aidl/android/hardware/radio/ims/media/RtpConfig.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/RtpConfig.aidl
@@ -16,7 +16,7 @@
 
 package android.hardware.radio.ims.media;
 
-import android.hardware.radio.data.QosBandwidth;
+import android.hardware.radio.AccessNetwork;
 import android.hardware.radio.ims.media.MediaDirection;
 import android.hardware.radio.ims.media.RtcpConfig;
 import android.hardware.radio.ims.media.RtpAddress;
@@ -24,18 +24,14 @@
 
 @VintfStability
 parcelable RtpConfig {
-    /** Unique identifier of the RTP config within a session */
-    int configId;
     /** Media flow direction */
     MediaDirection direction;
-    /** IP address and port number of the other party */
+    /** Radio Access Network */
+    AccessNetwork accessNetwork;
+    /** IP address and port number of the other party for RTP media */
     RtpAddress remoteAddress;
     /** Negotiated session parameters */
     RtpSessionParams sessionParams;
     /** RTCP configuration */
     RtcpConfig rtcpConfig;
-    /** Downlink bandwidth allocated by network in the dedicated bearer */
-    QosBandwidth downlink;
-    /** Uplink bandwidth allocated by network in the dedicated bearer */
-    QosBandwidth uplink;
 }
diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpError.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpError.aidl
index 84f26ae..11a3468 100644
--- a/radio/aidl/android/hardware/radio/ims/media/RtpError.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/RtpError.aidl
@@ -32,5 +32,5 @@
     /** The requested port number is not available */
     PORT_UNAVAILABLE = 5,
     /** The request is not supported by the implementation */
-    REQUEST_NOT_SUPPORTED = 6,
+    NOT_SUPPORTED = 6,
 }
diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpSession.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpSession.aidl
deleted file mode 100644
index 70443b4..0000000
--- a/radio/aidl/android/hardware/radio/ims/media/RtpSession.aidl
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2021 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 android.hardware.radio.ims.media;
-
-import android.hardware.radio.ims.media.LocalEndPoint;
-import android.hardware.radio.ims.media.RtpConfig;
-import android.hardware.radio.ims.media.RtpSessionState;
-
-@VintfStability
-parcelable RtpSession {
-    /** Unique identifier of the session */
-    int sessionId;
-    /** Local RTP address and logical modem identity */
-    LocalEndPoint localEndPoint;
-    /** RTP session state */
-    RtpSessionState sessionState = RtpSessionState.CLOSED;
-    /** List of remote configurations associated with this session */
-    RtpConfig[] remoteConfigs;
-}
diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpSessionParams.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpSessionParams.aidl
index 98aff1f..86a1d33 100644
--- a/radio/aidl/android/hardware/radio/ims/media/RtpSessionParams.aidl
+++ b/radio/aidl/android/hardware/radio/ims/media/RtpSessionParams.aidl
@@ -30,11 +30,11 @@
      * maxptime: Maximum amount of media that can be encapsulated in each packet
      * represented in milliseconds, see RFC 4566
      */
-    byte maxPtimeMillis;
+    int maxPtimeMillis;
     /** Maximum Rtp transfer unit in bytes */
     int maxMtuBytes;
     /** dscp: Differentiated Services Field Code Point value, see RFC 2474 */
-    int dscp;
+    byte dscp;
     /** DTMF payload and clock rate */
     DtmfParams dtmfParams;
     /** Negotiated codec parameters */
diff --git a/radio/aidl/android/hardware/radio/ims/media/SpeechCodec.aidl b/radio/aidl/android/hardware/radio/ims/media/SpeechCodec.aidl
deleted file mode 100644
index 5d5680f..0000000
--- a/radio/aidl/android/hardware/radio/ims/media/SpeechCodec.aidl
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2021 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 android.hardware.radio.ims.media;
-
-import android.hardware.radio.ims.media.CodecType;
-import android.hardware.radio.ims.media.EvsBandwidth;
-
-@VintfStability
-parcelable SpeechCodec {
-    /** Codec type */
-    CodecType codecType;
-    /** Codec bandwidth in case of EVS codec type */
-    EvsBandwidth bandwidth;
-}