← Back to PRs

#5537: fix(voice-call): hang up rejected inbound calls

by NSEvent open 2026-01-31 16:15 View on GitHub →
channel: voice-call
## Summary Adds an optional `rejectHangup` config setting for the voice-call plugin. When enabled, rejected inbound calls are actively terminated via `hangupCall()` instead of silently returning (letting the carrier timeout). **Default behavior unchanged** - `rejectHangup: false` preserves the current silent-return behavior. ## Changes - Add `voiceCall.rejectHangup` config option (default: `false`) - Make `HangupCallInput.callId` optional for provider-only hangups - Only call `hangupCall()` when `rejectHangup` is enabled ## Why `callId` can be optional Verified that no provider implementation uses `callId` in `hangupCall()`: | Provider | Uses `callId`? | What it uses | |----------|---------------|--------------| | Twilio | No | `providerCallId` only | | Telnyx | No | `providerCallId` only | | Plivo | No | `providerCallId` only | | Mock | No | No-op | All providers only need `providerCallId` to make the hangup API call. ## Config example ```yaml voiceCall: rejectHangup: true # Actively hang up rejected calls ``` ## Test plan - [x] `pnpm build` passes - [x] `pnpm lint` passes - [x] Voice-call tests pass (26 tests) 🤖 Generated with [Claude Code](https://claude.ai/code)

Most Similar PRs