Index: interface/mi/CpMediaInterface.h
===================================================================
--- interface/mi/CpMediaInterface.h	(revision 11418)
+++ interface/mi/CpMediaInterface.h	(working copy)
@@ -388,6 +388,10 @@
      *             failure codes to expect, etc. -- kkyzivat 20070801 >>
      */
 
+   
+   virtual OsStatus disableMediaInputDevice(int connectiondId) = 0 ;
+   virtual OsStatus enableMediaInputDevice(int connectiondId) = 0 ;
+   
    virtual OsStatus startChannelTone(int connectiondId,
                                      int toneId, 
                                      UtlBoolean local, 
Index: sipXmediaMediaProcessing/include/CpPhoneMediaInterface.h
===================================================================
--- sipXmediaMediaProcessing/include/CpPhoneMediaInterface.h	(revision 11418)
+++ sipXmediaMediaProcessing/include/CpPhoneMediaInterface.h	(working copy)
@@ -151,6 +151,11 @@
    virtual OsStatus startTone(int toneId, UtlBoolean local, UtlBoolean remote);
    virtual OsStatus stopTone();
 
+
+     /// @copydoc CpMediaInterface::disableMediaInputDevice
+    virtual OsStatus disableMediaInputDevice(int connectiondId);
+    virtual OsStatus enableMediaInputDevice(int connectiondId);
+   
    virtual OsStatus startChannelTone(int connectionId, int toneId, UtlBoolean local, UtlBoolean remote);
    virtual OsStatus stopChannelTone(int connectionId);
 
Index: sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h
===================================================================
--- sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h	(revision 11418)
+++ sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h	(working copy)
@@ -181,6 +181,13 @@
    virtual OsStatus startTone(int toneId, UtlBoolean local, UtlBoolean remote);
      /// @copydoc CpMediaInterface::stopTone()
    virtual OsStatus stopTone();
+   
+   
+   
+     /// @copydoc CpMediaInterface::disableMediaInputDevice
+   virtual OsStatus disableMediaInputDevice(int connectiondId);
+   virtual OsStatus enableMediaInputDevice(int connectiondId);
+   
 
      /// @copydoc CpMediaInterface::startChannelTone()
    virtual OsStatus startChannelTone(int connectionId, int toneId, UtlBoolean local, UtlBoolean remote) ;
Index: sipXmediaMediaProcessing/src/CpPhoneMediaInterface.cpp
===================================================================
--- sipXmediaMediaProcessing/src/CpPhoneMediaInterface.cpp	(revision 11418)
+++ sipXmediaMediaProcessing/src/CpPhoneMediaInterface.cpp	(working copy)
@@ -1498,6 +1498,21 @@
 #endif // DISABLE_STREAM_PLAYER
 }
 
+
+OsStatus CpPhoneMediaInterface::disableMediaInputDevice(int connectionId)
+{
+
+    return OS_NOT_FOUND;
+}
+
+
+OsStatus CpPhoneMediaInterface::enableMediaInputDevice(int connectionId)
+{
+
+    return OS_NOT_FOUND;
+}
+
+
 OsStatus CpPhoneMediaInterface::startTone(int toneId,
                                           UtlBoolean local,
                                           UtlBoolean remote)
Index: sipXmediaMediaProcessing/src/CpTopologyGraphInterface.cpp
===================================================================
--- sipXmediaMediaProcessing/src/CpTopologyGraphInterface.cpp	(revision 11418)
+++ sipXmediaMediaProcessing/src/CpTopologyGraphInterface.cpp	(working copy)
@@ -1618,6 +1618,49 @@
    return stat;
 }
 
+
+OsStatus CpTopologyGraphInterface::disableMediaInputDevice(int connectionId)
+{
+   OsStatus stat = OS_FAILED;
+
+   if (mpTopologyGraph)
+   {  
+       UtlString inputDeviceName(DEFAULT_FROM_INPUT_DEVICE_RESOURCE_NAME);   
+       MpResourceTopology::replaceNumInName(inputDeviceName, connectionId);  
+       MpResource::disable(inputDeviceName, *getMsgQ());
+     
+   }
+   else
+   {
+      stat = OS_NOT_FOUND;
+   }
+
+   return stat;
+   
+      
+}
+
+
+OsStatus CpTopologyGraphInterface::enableMediaInputDevice(int connectionId)
+{
+   OsStatus stat = OS_FAILED;
+
+   if (mpTopologyGraph)
+   {
+       UtlString inputDeviceName(DEFAULT_FROM_INPUT_DEVICE_RESOURCE_NAME);   
+       MpResourceTopology::replaceNumInName(inputDeviceName, connectionId);  
+       MpResource::enable(inputDeviceName, *getMsgQ());
+   }
+   else
+   {
+       stat = OS_NOT_FOUND;
+   }
+
+   return stat;   
+      
+}
+
+
 OsStatus CpTopologyGraphInterface::startChannelTone(int connectionId,
                                                     int toneId,
                                                     UtlBoolean local,
Index: sipXmediaMediaProcessing/src/sipXmediaFactoryImpl.cpp
===================================================================
--- sipXmediaMediaProcessing/src/sipXmediaFactoryImpl.cpp	(revision 11418)
+++ sipXmediaMediaProcessing/src/sipXmediaFactoryImpl.cpp	(working copy)
@@ -290,6 +290,7 @@
    {
       MpCodec_setGain(miGain);
    }
+   
    return OS_SUCCESS;
 }
 
