Fix IVR queue options dropping calls #4

Merged
jknapp merged 1 commits from feature/webview-softphone into main 2026-10-07 17:20:50 +00:00
Owner

Problem

Callers who pressed an IVR menu option that routes to a queue (e.g. 1 = Support, 2 = Sales) were disconnected about 1 second after their choice. The voicemail option worked fine.

The IVR response handler returned <Enqueue> with no queue name and a <Task> child. <Task> is only valid with TaskRouter (workflowSid), which this plugin does not use, so Twilio rejected the TwiML and ended the call. The production log showed the call added to the queue, then removed right away with status: completed.

Fix

The IVR queue option now does what the workflow queue step (TWP_Workflow) already does: it plays a hold message and then <Redirect>s to the custom queue-wait handler.

Testing

  • php -l passes
  • Deployed to phone.cloud-hosting.io and confirmed with a live call: pressing 1 keeps the caller on hold instead of disconnecting

🤖 Generated with Claude Code

## Problem Callers who pressed an IVR menu option that routes to a queue (e.g. 1 = Support, 2 = Sales) were disconnected about 1 second after their choice. The voicemail option worked fine. The IVR response handler returned `<Enqueue>` with no queue name and a `<Task>` child. `<Task>` is only valid with TaskRouter (`workflowSid`), which this plugin does not use, so Twilio rejected the TwiML and ended the call. The production log showed the call added to the queue, then removed right away with `status: completed`. ## Fix The IVR queue option now does what the workflow queue step (`TWP_Workflow`) already does: it plays a hold message and then `<Redirect>`s to the custom `queue-wait` handler. ## Testing - `php -l` passes - Deployed to phone.cloud-hosting.io and confirmed with a live call: pressing 1 keeps the caller on hold instead of disconnecting 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jknapp added 1 commit 2026-10-07 17:20:27 +00:00
IVR menu options routed to a queue returned <Enqueue> with no queue name
and a <Task> child, which is invalid without TaskRouter, so Twilio hung up
immediately. Redirect to the custom queue-wait handler instead, matching
the workflow queue step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jknapp merged commit 4707213ee9 into main 2026-10-07 17:20:50 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wp-plugins/twilio-wp-plugin#4