Add default queue music setting and improve hold music fallback
## New Settings - Added "Default Queue Music URL" setting in admin settings - This setting provides fallback music for both queue waits and call hold - Hold Music URL field can now be left empty to use default queue music - Better organization of music settings with clear descriptions ## Hold Music Improvements - Hold music now falls back to default queue music if no specific hold music is set - Maintains backwards compatibility with existing hold music URLs - Provides consistent music experience across hold and queue functions ## Queue Music Enhancements - Queue wait music now uses default queue music as fallback - No more silent pauses when no queue-specific music is configured - Improved user experience with continuous music during waits ## Settings Organization - Default Queue Music is shown first as the primary setting - Hold Music field has placeholder text indicating it's optional - Clear descriptions explain the fallback behavior - Both settings properly registered in WordPress settings API This creates a more cohesive audio experience where: 1. Admin sets default queue music for system-wide use 2. Individual queues can override with their own music 3. Hold music can be customized or fall back to default 4. No more silent pauses during queue waits 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -973,8 +973,14 @@ class TWP_Webhooks {
|
||||
if ($queue && !empty($queue->wait_music_url)) {
|
||||
$play = $twiml->addChild('Play', $queue->wait_music_url);
|
||||
} else {
|
||||
$pause = $twiml->addChild('Pause');
|
||||
$pause->addAttribute('length', '30');
|
||||
// Fall back to default queue music if no queue-specific music is set
|
||||
$default_music_url = get_option('twp_default_queue_music_url', '');
|
||||
if (!empty($default_music_url)) {
|
||||
$play = $twiml->addChild('Play', $default_music_url);
|
||||
} else {
|
||||
$pause = $twiml->addChild('Pause');
|
||||
$pause->addAttribute('length', '30');
|
||||
}
|
||||
}
|
||||
|
||||
return $this->send_twiml_response($twiml->asXML());
|
||||
@@ -996,9 +1002,15 @@ class TWP_Webhooks {
|
||||
if ($queue && !empty($queue->wait_music_url)) {
|
||||
$play = $twiml->addChild('Play', $queue->wait_music_url);
|
||||
} else {
|
||||
// Add a pause to prevent rapid loops
|
||||
$pause = $twiml->addChild('Pause');
|
||||
$pause->addAttribute('length', '15'); // 15 second pause
|
||||
// Fall back to default queue music if no queue-specific music is set
|
||||
$default_music_url = get_option('twp_default_queue_music_url', '');
|
||||
if (!empty($default_music_url)) {
|
||||
$play = $twiml->addChild('Play', $default_music_url);
|
||||
} else {
|
||||
// Add a pause to prevent rapid loops
|
||||
$pause = $twiml->addChild('Pause');
|
||||
$pause->addAttribute('length', '15'); // 15 second pause
|
||||
}
|
||||
}
|
||||
|
||||
// Redirect back to this same endpoint to create continuous loop
|
||||
|
Reference in New Issue
Block a user