---
title: "Mute/Unmute Call | Micdrop"
description: "Control microphone input during a conversation by muting and unmuting the microphone while keeping the call active."
url: "https://micdrop.dev/docs/client/mute-unmute-call"
---

*   [Getting Started](/docs/getting-started)
*   [Client (Browser)](/docs/client)
    
    *   [Installation](/docs/client/installation)
    *   [React Hooks](/docs/client/react-hooks)
    *   [Start/Stop Call](/docs/client/start-stop-call)
    *   [Pause/Resume Call](/docs/client/pause-resume-call)
    *   [Mute/Unmute Call](/docs/client/mute-unmute-call)
    *   [Call State](/docs/client/call-state)
    *   [Display Conversation Messages](/docs/client/display-conversation-messages)
    *   [Handling Tool Calls](/docs/client/handling-tool-calls)
    *   [Device Management](/docs/client/devices-management)
    *   [Voice Activity Detection (VAD)](/docs/client/vad)
    *   [Error Handling](/docs/client/error-handling)
    *   Utility Classes
        
        *   [Mic](/docs/client/utility-classes/mic)
        *   [MicdropClient](/docs/client/utility-classes/micdrop-client)
        *   [MicRecorder](/docs/client/utility-classes/mic-recorder)
        *   [Speaker](/docs/client/utility-classes/speaker)
        
    
*   [Server (Node.js)](/docs/server)
    
    *   [Installation](/docs/server/installation)
    *   [With Fastify](/docs/server/with-fastify)
    *   [With NestJS](/docs/server/with-nestjs)
    *   [Auth and Parameters](/docs/server/auth-and-parameters)
    *   [First Message](/docs/server/first-message)
    *   [Save Messages](/docs/server/save-messages)
    *   [Resume a Conversation](/docs/server/resume-conversation)
    *   [Recording Audio](/docs/server/recording-audio)
    *   [Error Handling](/docs/server/error-handling)
    *   [Tools](/docs/server/tools)
    *   [Extract Value from Answer](/docs/server/extract)
    *   [Auto End Call](/docs/server/auto-end-call)
    *   [Semantic Turn Detection](/docs/server/semantic-turn-detection)
    *   [Noise Filtering](/docs/server/noise-filtering)
    *   [Micdrop Protocol](/docs/server/protocol)
    
*   [AI Integrations](/docs/ai-integration)
    
    *   Provided Integrations
        
        *   [AI SDK](/docs/ai-integration/provided-integrations/ai-sdk)
        *   [Cartesia](/docs/ai-integration/provided-integrations/cartesia)
        *   [ElevenLabs](/docs/ai-integration/provided-integrations/elevenlabs)
        *   [Gladia](/docs/ai-integration/provided-integrations/gladia)
        *   [Gradium](/docs/ai-integration/provided-integrations/gradium)
        *   [Mistral](/docs/ai-integration/provided-integrations/mistral)
        *   [OpenAI](/docs/ai-integration/provided-integrations/openai)
        
    *   Custom Integrations
        
        *   [Agent (LLM)](/docs/ai-integration/custom-integrations/custom-agent)
        *   [Speech-to-Text (STT)](/docs/ai-integration/custom-integrations/custom-stt)
        *   [Text-to-Speech (TTS)](/docs/ai-integration/custom-integrations/custom-tts)
        
    *   Fallback Strategies
        
        *   [FallbackAgent](/docs/ai-integration/fallback-strategies/agent-fallback)
        *   [FallbackSTT](/docs/ai-integration/fallback-strategies/stt-fallback)
        *   [FallbackTTS](/docs/ai-integration/fallback-strategies/tts-fallback)
        
    *   [IA Vocale Souveraine 🇫🇷🇪🇺](/docs/ai-integration/sovereign-voice-ai)
    

[Micdrop](/) › [Documentation](/docs/getting-started)

# Mute/Unmute Call

Control microphone input during a conversation by muting and unmuting the microphone while keeping the call active.

## Mute Call

Temporarily mute the microphone to stop sending audio while keeping the conversation active:

```
import { Micdrop } from '@micdrop/client'
// Mute the microphone - stops recording but keeps call activeMicdrop.mute()
console.log('Call muted:', Micdrop.isMuted) // true
```

When muted:

*   ⏸️ Microphone stops recording
*   ⏸️ No audio is sent to the server
*   ✅ Voice activity detection stays enabled
*   ✅ WebSocket connection remains active
*   ✅ Assistant audio continues to play
*   ✅ Call processing continues normally

## Unmute Call

Unmute the microphone to resume sending audio:

```
// Unmute the microphone - restarts recordingMicdrop.unmute()
console.log('Call muted:', Micdrop.isMuted) // falseconsole.log('Now listening:', Micdrop.isListening) // true
```

When unmuted:

*   ✅ Microphone starts recording again

## State Monitoring

Monitor mute/unmute state changes:

```
Micdrop.on('StateChange', (state) => {  if (state.isMuted) {    console.log('🔇 Microphone is muted')    // Update UI to show muted state    updateStatus('Muted - Click to unmute')  } else if (state.isListening) {    console.log('🎤 Microphone unmuted - Listening...')    // Update UI to show active state    updateStatus('Listening for your voice')  }})
```

## UI Integration

Create mute/unmute controls in your interface:

```
// Button handler for mute/unmute togglefunction toggleMute() {  if (Micdrop.isMuted) {    Micdrop.unmute()    document.getElementById('muteBtn').textContent = 'Mute'  } else {    Micdrop.mute()    document.getElementById('muteBtn').textContent = 'Unmute'  }}
```

React example:

```
import { useMicdropState } from '@micdrop/react'
function CallControls() {  const state = useMicdropState()
  return (    <button onClick={state.isMuted ? Micdrop.unmute : Micdrop.mute}>      {state.isMuted ? '🔊 Unmute' : '🔇 Mute'}    </button>  )}
```

## Difference from Pause

Unlike pausing, muting only affects the microphone input:

Feature

Mute

Pause

Microphone

❌ Disabled

❌ Disabled

Assistant Audio

✅ Continues

❌ Stopped

Processing

✅ Active

❌ Paused

Connection

✅ Active

✅ Active

Use **mute** when you want to temporarily stop speaking but continue listening to the assistant. Use **pause** when you want to completely halt the conversation.

[Previous← Pause/Resume Call](/docs/client/pause-resume-call)[NextCall State →](/docs/client/call-state)

On this page

*   [Mute Call](#mute-call)
*   [Unmute Call](#unmute-call)
*   [State Monitoring](#state-monitoring)
*   [UI Integration](#ui-integration)
*   [Difference from Pause](#difference-from-pause)
