I've testet the unmute/mute function with the VoxCommando hook-plugin and it works perfect.
How it works in my example:
When I press the "zirkumflex" button on the keyboard, VC generate the event "Hook.Oem5" and unmute the mic input to speak my command. When I release the button it generate the event "Hook.Oem5.Up" which mute the mic input.
Here the description:
1. enable the hook plugin in VC (VC Option menu -> plugins tab -> set checkmark at the hook plugin and restart VC to save the settings)
2. open the hook plugin and set a checkmark at "Key Hook Enabled", "Generate Named Events", "Specific Keys" and "Log Keys"
3. press for my example the "zirkumflex" button (see attached picture) on your keyboard (if everthing setting up correct, it will show you "Oem5" in the plugin log-window at the left)
4. select in the log-window the Oem5 entry and then click on "Add Selected". After that, you will see the "Oem5" on the right window in the plugin.
5. as next unmark the "Log Keys" in the plugin and click on "Save all" to store your settings and close the plugin.
6. insert the following commandgroup code in your VC commandtree
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.0.3-->
<commandGroup open="True" name="automute mic with hook plugin" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="897" name="automute mic" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)==(B)</ifType>
<ifParams>{LastEvent}&&Hook.Oem5</ifParams>
<then>
<action>
<cmdType>Sound.MicUnmute</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)==(B)</ifType>
<ifParams>{LastEvent}&&Hook.Oem5.Up</ifParams>
<then>
<action>
<cmdType>Sound.MicMute</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<event>Hook.Oem5*</event>
</command>
</commandGroup>
I hope this is helpful