audio: add VoIP RX/TX

Bug: 165755752
Test: Build pass
Signed-off-by: Carter Hsu <carterhsu@google.com>
Change-Id: I1393c55447b50dbff8ad590e48b9046a7f4ecc7d
diff --git a/audio/oriole/config/audio_platform_configuration.xml b/audio/oriole/config/audio_platform_configuration.xml
index ee21759..5ea3ce9 100644
--- a/audio/oriole/config/audio_platform_configuration.xml
+++ b/audio/oriole/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
         <usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+        <!-- for VOIP output, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
         <!-- for input -->
         <usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
         <usecase id="UC_HOSTLESS_UL" dev1="15"/>
+        <!-- for VOIP input, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
     </usecase_attr>
 
     <dsp_latency>
@@ -179,6 +183,10 @@
         <item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
     </xlate_id>
 
+    <voip_db_mapping>
+        <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+    </voip_db_mapping>
+
     <device_handle>
         <hadnler libname="audio_bt_aoc.so"/>
     </device_handle>
diff --git a/audio/oriole/config/audio_policy_configuration.xml b/audio/oriole/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/oriole/config/audio_policy_configuration.xml
+++ b/audio/oriole/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Headphones"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Speaker"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- A2dp Audio HAL -->
diff --git a/audio/oriole/config/mixer_paths.xml b/audio/oriole/config/mixer_paths.xml
index a029f01..e7bb63e 100644
--- a/audio/oriole/config/mixer_paths.xml
+++ b/audio/oriole/config/mixer_paths.xml
@@ -26,6 +26,9 @@
 <!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
 <mixer>
     <!-- Initial default value of ALSA command -->
+    <!-- PCM timeout -->
+    <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -98,6 +101,7 @@
     <ctl name="TDM_0_RX Mixer EP7" value="0"/>
     <ctl name="TDM_0_RX Mixer EP8" value="0"/>
     <ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+    <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -117,6 +121,7 @@
     <ctl name="USB_RX Mixer EP6" value="0"/>
     <ctl name="USB_RX Mixer EP7" value="0"/>
     <ctl name="USB_RX Mixer NoHost1" value="0"/>
+    <ctl name="USB_RX Mixer VOIP" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -126,6 +131,7 @@
     <ctl name="BT_RX Mixer EP6" value="0"/>
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
+    <ctl name="BT_RX Mixer VOIP" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -163,6 +169,7 @@
     <ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer BT_TX" value="0"/>
     <ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -171,6 +178,7 @@
     <ctl name="EP5 TX Mixer BT_TX" value="0"/>
     <ctl name="EP6 TX Mixer BT_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+    <ctl name="VOIP TX Mixer BT_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer USB_TX" value="0"/>
     <ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -179,6 +187,7 @@
     <ctl name="EP5 TX Mixer USB_TX" value="0"/>
     <ctl name="EP6 TX Mixer USB_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+    <ctl name="VOIP TX Mixer USB_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
     <ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -320,15 +329,6 @@
         <ctl name="USB_RX Mixer EP6" value="1"/>
     </path>
 
-    <path name="deep-buffer-playbackP usb-tty-full">
-    </path>
-
-    <path name="deep-buffer-playbackP usb-tty-hco">
-    </path>
-
-    <path name="deep-buffer-playbackP usb-tty-vco">
-    </path>
-
     <path name="deep-buffer-playbackP hearing-aid">
     </path>
 
@@ -356,15 +356,6 @@
         <ctl name="USB_RX Mixer EP2" value="1"/>
     </path>
 
-    <path name="low-latency-playbackP usb-tty-full">
-    </path>
-
-    <path name="low-latency-playbackP usb-tty-hco">
-    </path>
-
-    <path name="low-latency-playbackP usb-tty-vco">
-    </path>
-
     <path name="low-latency-playbackP hearing-aid">
     </path>
 
@@ -392,15 +383,6 @@
         <ctl name="USB_RX Mixer EP4" value="1"/>
     </path>
 
-    <path name="raw-playbackP usb-tty-full">
-    </path>
-
-    <path name="raw-playbackP usb-tty-hco">
-    </path>
-
-    <path name="raw-playbackP usb-tty-vco">
-    </path>
-
     <path name="raw-playbackP hearing-aid">
     </path>
 
@@ -470,38 +452,23 @@
         <ctl name="USB_RX Mixer EP7" value="1"/>
     </path>
 
-    <path name="compress-offload-playbackP usb-tty-full">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-hco">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-vco">
-    </path>
-
     <path name="compress-offload-playbackP hearing-aid">
         <path name="compress-offload-playback" />
     </path>
 
     <path name="voip-playbackP">
+        <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hac-handset">
     </path>
 
     <path name="voip-playbackP bt">
+        <ctl name="BT_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP usb-headphone">
-    </path>
-
-    <path name="voip-playbackP usb-tty-full">
-    </path>
-
-    <path name="voip-playbackP usb-tty-hco">
-    </path>
-
-    <path name="voip-playbackP usb-tty-vco">
+        <ctl name="USB_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hearing-aid">
@@ -548,31 +515,16 @@
         <ctl name="EP1 TX Mixer BT_TX" value="1"/>
     </path>
 
-    <path name="audio-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-vco-mic">
-    </path>
-
     <path name="voip-recordC">
+        <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
     </path>
 
     <path name="voip-recordC usb-headset-mic">
+        <ctl name="VOIP TX Mixer USB_TX" value="1"/>
     </path>
 
     <path name="voip-recordC bt-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-vco-mic">
+        <ctl name="VOIP TX Mixer BT_TX" value="1"/>
     </path>
 
     <!-- voice-call dynamic route -->
@@ -588,15 +540,6 @@
         <ctl name="USB_RX Mixer EP5" value="1"/>
     </path>
 
-    <path name="voice-callP usb-tty-full">
-    </path>
-
-    <path name="voice-callP usb-tty-hco">
-    </path>
-
-    <path name="voice-callP usb-tty-vco">
-    </path>
-
     <path name="voice-callP hearing-aid">
         <ctl name="INCALL_RX Mixer EP5" value="1"/>
     </path>
@@ -618,15 +561,6 @@
         <ctl name="EP4 TX Mixer BT_TX" value="1"/>
     </path>
 
-    <path name="voice-callC usb-tty-full-mic">
-    </path>
-
-    <path name="voice-callC usb-tty-hco-mic">
-    </path>
-
-    <path name="voice-callC usb-tty-vco-mic">
-    </path>
-
     <path name="voice-callC hearing-aid">
         <ctl name="EP4 TX Mixer INCALL_TX" value="1"/>
     </path>
diff --git a/audio/raven/config/audio_platform_configuration.xml b/audio/raven/config/audio_platform_configuration.xml
index ee21759..5ea3ce9 100644
--- a/audio/raven/config/audio_platform_configuration.xml
+++ b/audio/raven/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
         <usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+        <!-- for VOIP output, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
         <!-- for input -->
         <usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
         <usecase id="UC_HOSTLESS_UL" dev1="15"/>
+        <!-- for VOIP input, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
     </usecase_attr>
 
     <dsp_latency>
@@ -179,6 +183,10 @@
         <item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
     </xlate_id>
 
+    <voip_db_mapping>
+        <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+    </voip_db_mapping>
+
     <device_handle>
         <hadnler libname="audio_bt_aoc.so"/>
     </device_handle>
diff --git a/audio/raven/config/audio_policy_configuration.xml b/audio/raven/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/raven/config/audio_policy_configuration.xml
+++ b/audio/raven/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Headphones"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Speaker"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- A2dp Audio HAL -->
diff --git a/audio/raven/config/mixer_paths.xml b/audio/raven/config/mixer_paths.xml
index 5f7cb59..d32e122 100644
--- a/audio/raven/config/mixer_paths.xml
+++ b/audio/raven/config/mixer_paths.xml
@@ -26,6 +26,9 @@
 <!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
 <mixer>
     <!-- Initial default value of ALSA command -->
+    <!-- PCM timeout -->
+    <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -98,6 +101,7 @@
     <ctl name="TDM_0_RX Mixer EP7" value="0"/>
     <ctl name="TDM_0_RX Mixer EP8" value="0"/>
     <ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+    <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -117,6 +121,7 @@
     <ctl name="USB_RX Mixer EP6" value="0"/>
     <ctl name="USB_RX Mixer EP7" value="0"/>
     <ctl name="USB_RX Mixer NoHost1" value="0"/>
+    <ctl name="USB_RX Mixer VOIP" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -126,6 +131,7 @@
     <ctl name="BT_RX Mixer EP6" value="0"/>
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
+    <ctl name="BT_RX Mixer VOIP" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -163,6 +169,7 @@
     <ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer BT_TX" value="0"/>
     <ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -171,6 +178,7 @@
     <ctl name="EP5 TX Mixer BT_TX" value="0"/>
     <ctl name="EP6 TX Mixer BT_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+    <ctl name="VOIP TX Mixer BT_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer USB_TX" value="0"/>
     <ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -179,6 +187,7 @@
     <ctl name="EP5 TX Mixer USB_TX" value="0"/>
     <ctl name="EP6 TX Mixer USB_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+    <ctl name="VOIP TX Mixer USB_TX" value="0"/>
 
     <ctl name="EP4 TX Mixer I2S_2_TX" value="0"/>
 
@@ -470,38 +479,23 @@
         <ctl name="USB_RX Mixer EP7" value="1"/>
     </path>
 
-    <path name="compress-offload-playbackP usb-tty-full">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-hco">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-vco">
-    </path>
-
     <path name="compress-offload-playbackP hearing-aid">
         <path name="compress-offload-playback" />
     </path>
 
     <path name="voip-playbackP">
+        <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hac-handset">
     </path>
 
     <path name="voip-playbackP bt">
+        <ctl name="BT_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP usb-headphone">
-    </path>
-
-    <path name="voip-playbackP usb-tty-full">
-    </path>
-
-    <path name="voip-playbackP usb-tty-hco">
-    </path>
-
-    <path name="voip-playbackP usb-tty-vco">
+        <ctl name="USB_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hearing-aid">
@@ -548,31 +542,16 @@
         <ctl name="EP1 TX Mixer BT_TX" value="1"/>
     </path>
 
-    <path name="audio-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-vco-mic">
-    </path>
-
     <path name="voip-recordC">
+        <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
     </path>
 
     <path name="voip-recordC usb-headset-mic">
+        <ctl name="VOIP TX Mixer USB_TX" value="1"/>
     </path>
 
     <path name="voip-recordC bt-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-vco-mic">
+        <ctl name="VOIP TX Mixer BT_TX" value="1"/>
     </path>
 
     <!-- voice-call dynamic route -->
@@ -588,15 +567,6 @@
         <ctl name="USB_RX Mixer EP5" value="1"/>
     </path>
 
-    <path name="voice-callP usb-tty-full">
-    </path>
-
-    <path name="voice-callP usb-tty-hco">
-    </path>
-
-    <path name="voice-callP usb-tty-vco">
-    </path>
-
     <path name="voice-callP hearing-aid">
         <ctl name="INCALL_RX Mixer EP5" value="1"/>
     </path>
@@ -618,15 +588,6 @@
         <ctl name="EP4 TX Mixer BT_TX" value="1"/>
     </path>
 
-    <path name="voice-callC usb-tty-full-mic">
-    </path>
-
-    <path name="voice-callC usb-tty-hco-mic">
-    </path>
-
-    <path name="voice-callC usb-tty-vco-mic">
-    </path>
-
     <path name="voice-callC hearing-aid">
         <ctl name="EP4 TX Mixer INCALL_TX" value="1"/>
     </path>
diff --git a/audio/slider/config/audio_platform_configuration.xml b/audio/slider/config/audio_platform_configuration.xml
index d903af4..e151158 100644
--- a/audio/slider/config/audio_platform_configuration.xml
+++ b/audio/slider/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
         <usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+        <!-- for VOIP output, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
         <!-- for input -->
         <usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
         <usecase id="UC_HOSTLESS_UL" dev1="15"/>
+        <!-- for VOIP input, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
     </usecase_attr>
 
     <dsp_latency>
@@ -179,6 +183,10 @@
         <item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
     </xlate_id>
 
+    <voip_db_mapping>
+        <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+    </voip_db_mapping>
+
     <device_handle>
         <hadnler libname="audio_bt_aoc.so"/>
     </device_handle>
diff --git a/audio/slider/config/audio_policy_configuration.xml b/audio/slider/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/slider/config/audio_policy_configuration.xml
+++ b/audio/slider/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Headphones"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT A2DP Speaker"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -92,6 +97,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- A2dp Audio HAL -->
diff --git a/audio/slider/config/mixer_paths.xml b/audio/slider/config/mixer_paths.xml
index 460cb39..4b47887 100644
--- a/audio/slider/config/mixer_paths.xml
+++ b/audio/slider/config/mixer_paths.xml
@@ -26,6 +26,9 @@
 <!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
 <mixer>
     <!-- Initial default value of ALSA command -->
+    <!-- PCM timeout -->
+    <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -91,6 +94,7 @@
     <ctl name="TDM_0_RX Mixer EP6" value="0"/>
     <ctl name="TDM_0_RX Mixer EP7" value="0"/>
     <ctl name="TDM_0_RX Mixer EP8" value="0"/>
+    <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -104,6 +108,7 @@
     <ctl name="USB_RX Mixer EP6" value="0"/>
     <ctl name="USB_RX Mixer EP7" value="0"/>
     <ctl name="USB_RX Mixer NoHost1" value="0"/>
+    <ctl name="USB_RX Mixer VOIP" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -113,6 +118,7 @@
     <ctl name="BT_RX Mixer EP6" value="0"/>
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
+    <ctl name="BT_RX Mixer VOIP" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -127,8 +133,15 @@
     <ctl name="EP2 TX Mixer TDM_0_TX" value="0"/>
     <ctl name="EP4 TX Mixer TDM_0_TX" value="0"/>
     <ctl name="EP4 TX Mixer I2S_2_TX" value="0"/>
+
     <ctl name="EP1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="EP2 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="EP3 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="EP4 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer BT_TX" value="0"/>
     <ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -137,6 +150,7 @@
     <ctl name="EP5 TX Mixer BT_TX" value="0"/>
     <ctl name="EP6 TX Mixer BT_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+    <ctl name="VOIP TX Mixer BT_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer USB_TX" value="0"/>
     <ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -145,6 +159,7 @@
     <ctl name="EP5 TX Mixer USB_TX" value="0"/>
     <ctl name="EP6 TX Mixer USB_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+    <ctl name="VOIP TX Mixer USB_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
     <ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -284,15 +299,6 @@
         <ctl name="USB_RX Mixer EP6" value="1"/>
     </path>
 
-    <path name="deep-buffer-playbackP usb-tty-full">
-    </path>
-
-    <path name="deep-buffer-playbackP usb-tty-hco">
-    </path>
-
-    <path name="deep-buffer-playbackP usb-tty-vco">
-    </path>
-
     <path name="deep-buffer-playbackP hearing-aid">
     </path>
 
@@ -320,15 +326,6 @@
         <ctl name="USB_RX Mixer EP2" value="1"/>
     </path>
 
-    <path name="low-latency-playbackP usb-tty-full">
-    </path>
-
-    <path name="low-latency-playbackP usb-tty-hco">
-    </path>
-
-    <path name="low-latency-playbackP usb-tty-vco">
-    </path>
-
     <path name="low-latency-playbackP hearing-aid">
     </path>
 
@@ -356,15 +353,6 @@
         <ctl name="USB_RX Mixer EP4" value="1"/>
     </path>
 
-    <path name="raw-playbackP usb-tty-full">
-    </path>
-
-    <path name="raw-playbackP usb-tty-hco">
-    </path>
-
-    <path name="raw-playbackP usb-tty-vco">
-    </path>
-
     <path name="raw-playbackP hearing-aid">
     </path>
 
@@ -434,38 +422,23 @@
         <ctl name="USB_RX Mixer EP7" value="1"/>
     </path>
 
-    <path name="compress-offload-playbackP usb-tty-full">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-hco">
-    </path>
-
-    <path name="compress-offload-playbackP usb-tty-vco">
-    </path>
-
     <path name="compress-offload-playbackP hearing-aid">
         <path name="compress-offload-playback" />
     </path>
 
     <path name="voip-playbackP">
+        <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hac-handset">
     </path>
 
     <path name="voip-playbackP bt">
+        <ctl name="BT_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP usb-headphone">
-    </path>
-
-    <path name="voip-playbackP usb-tty-full">
-    </path>
-
-    <path name="voip-playbackP usb-tty-hco">
-    </path>
-
-    <path name="voip-playbackP usb-tty-vco">
+        <ctl name="USB_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hearing-aid">
@@ -512,31 +485,16 @@
         <ctl name="EP1 TX Mixer BT_TX" value="1"/>
     </path>
 
-    <path name="audio-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="audio-recordC usb-tty-vco-mic">
-    </path>
-
     <path name="voip-recordC">
+        <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
     </path>
 
     <path name="voip-recordC usb-headset-mic">
+        <ctl name="VOIP TX Mixer USB_TX" value="1"/>
     </path>
 
     <path name="voip-recordC bt-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-full-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-hco-mic">
-    </path>
-
-    <path name="voip-recordC usb-tty-vco-mic">
+        <ctl name="VOIP TX Mixer BT_TX" value="1"/>
     </path>
 
     <!-- voice-call dynamic route -->
@@ -552,15 +510,6 @@
         <ctl name="USB_RX Mixer EP5" value="1"/>
     </path>
 
-    <path name="voice-callP usb-tty-full">
-    </path>
-
-    <path name="voice-callP usb-tty-hco">
-    </path>
-
-    <path name="voice-callP usb-tty-vco">
-    </path>
-
     <path name="voice-callP hearing-aid">
         <ctl name="INCALL_RX Mixer EP5" value="1"/>
     </path>
diff --git a/audio/whitefin/config/audio_platform_configuration.xml b/audio/whitefin/config/audio_platform_configuration.xml
index d903af4..e151158 100644
--- a/audio/whitefin/config/audio_platform_configuration.xml
+++ b/audio/whitefin/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
         <usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+        <!-- for VOIP output, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
         <!-- for input -->
         <usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
         <usecase id="UC_HOSTLESS_UL" dev1="15"/>
+        <!-- for VOIP input, 4 * 10ms buffer -->
+        <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
     </usecase_attr>
 
     <dsp_latency>
@@ -179,6 +183,10 @@
         <item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
     </xlate_id>
 
+    <voip_db_mapping>
+        <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+    </voip_db_mapping>
+
     <device_handle>
         <hadnler libname="audio_bt_aoc.so"/>
     </device_handle>
diff --git a/audio/whitefin/config/audio_policy_configuration.xml b/audio/whitefin/config/audio_policy_configuration.xml
index c501061..23f9ae0 100644
--- a/audio/whitefin/config/audio_policy_configuration.xml
+++ b/audio/whitefin/config/audio_policy_configuration.xml
@@ -67,6 +67,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -87,6 +92,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
index a83de6d..547af60 100644
--- a/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -67,6 +67,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -87,6 +92,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- Bluetooth Audio HAL -->
diff --git a/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index f661328..3a87d2d 100644
--- a/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -67,6 +67,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
                 </mixPort>
+                <mixPort name="voip_rx" role="source"
+                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                           samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="primary input" role="sink">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
@@ -87,6 +92,11 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
                 </mixPort>
+                <mixPort name="voip_tx" role="sink"
+                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Speaker Safe"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Device Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="USB Headset Out"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
                 <route type="mix" sink="primary input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="hotword input"
                        sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
                 <route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
                 <route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
-                <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Headset"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="BT SCO Car Kit"
-                       sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
-                <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+                <route type="mix" sink="voip_tx"
+                       sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
             </routes>
         </module>
         <!-- A2dp Audio HAL -->
diff --git a/audio/whitefin/config/mixer_paths.xml b/audio/whitefin/config/mixer_paths.xml
index 03a9f5e..d17b895 100644
--- a/audio/whitefin/config/mixer_paths.xml
+++ b/audio/whitefin/config/mixer_paths.xml
@@ -26,6 +26,9 @@
 <!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
 <mixer>
     <!-- Initial default value of ALSA command -->
+    <!-- PCM timeout -->
+    <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -99,6 +102,7 @@
     <ctl name="TDM_0_RX Mixer EP7" value="0"/>
     <ctl name="TDM_0_RX Mixer EP8" value="0"/>
     <ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+    <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -118,6 +122,7 @@
     <ctl name="USB_RX Mixer EP6" value="0"/>
     <ctl name="USB_RX Mixer EP7" value="0"/>
     <ctl name="USB_RX Mixer NoHost1" value="0"/>
+    <ctl name="USB_RX Mixer VOIP" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -127,6 +132,7 @@
     <ctl name="BT_RX Mixer EP6" value="0"/>
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
+    <ctl name="BT_RX Mixer VOIP" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -164,6 +170,7 @@
     <ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+    <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer BT_TX" value="0"/>
     <ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -172,6 +179,7 @@
     <ctl name="EP5 TX Mixer BT_TX" value="0"/>
     <ctl name="EP6 TX Mixer BT_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+    <ctl name="VOIP TX Mixer BT_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer USB_TX" value="0"/>
     <ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -180,6 +188,7 @@
     <ctl name="EP5 TX Mixer USB_TX" value="0"/>
     <ctl name="EP6 TX Mixer USB_TX" value="0"/>
     <ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+    <ctl name="VOIP TX Mixer USB_TX" value="0"/>
 
     <ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
     <ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -485,15 +494,18 @@
     </path>
 
     <path name="voip-playbackP">
+        <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP hac-handset">
     </path>
 
     <path name="voip-playbackP bt">
+        <ctl name="BT_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP usb-headphone">
+        <ctl name="USB_RX Mixer VOIP" value="1"/>
     </path>
 
     <path name="voip-playbackP usb-tty-full">
@@ -559,12 +571,15 @@
     </path>
 
     <path name="voip-recordC">
+        <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
     </path>
 
     <path name="voip-recordC usb-headset-mic">
+        <ctl name="VOIP TX Mixer USB_TX" value="1"/>
     </path>
 
     <path name="voip-recordC bt-mic">
+        <ctl name="VOIP TX Mixer BT_TX" value="1"/>
     </path>
 
     <path name="voip-recordC usb-tty-full-mic">