Fix extension transfer system and browser phone compatibility

Major Fixes:
- Fixed extension transfers going directly to voicemail for available agents
- Resolved browser phone call disconnections during transfers
- Fixed voicemail transcription placeholder text issue
- Added Firefox compatibility with automatic media permissions

Extension Transfer Improvements:
- Changed from active client dialing to proper queue-based system
- Fixed client name generation consistency (user_login vs display_name)
- Added 2-minute timeout with automatic voicemail fallback
- Enhanced agent availability detection for browser phone users

Browser Phone Enhancements:
- Added automatic microphone/speaker permission requests
- Improved Firefox compatibility with explicit getUserMedia calls
- Fixed client naming consistency across capability tokens and call acceptance
- Added comprehensive error handling for permission denials

Database & System Updates:
- Added auto_busy_at column for automatic agent status reversion
- Implemented 1-minute auto-revert system for busy agents with cron job
- Updated database version to 1.6.2 for automatic migration
- Fixed voicemail user_id association for extension voicemails

Call Statistics & Logging:
- Fixed browser phone calls not appearing in agent statistics
- Enhanced call logging with proper agent_id association in JSON format
- Improved customer number detection for complex call topologies
- Added comprehensive debugging for call leg detection

Voicemail & Transcription:
- Replaced placeholder transcription with real Twilio API integration
- Added manual transcription request capability for existing voicemails
- Enhanced voicemail callback handling with user_id support
- Fixed transcription webhook processing for extension voicemails

Technical Improvements:
- Standardized client name generation across all components
- Added ElevenLabs TTS integration to agent connection messages
- Enhanced error handling and logging throughout transfer system
- Fixed TwiML generation syntax errors in dial() methods

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-02 11:03:33 -07:00
parent ae92ea2c81
commit 7cd7f036ff
14 changed files with 1312 additions and 194 deletions

View File

@@ -1276,4 +1276,65 @@
.twp-btn.btn-active:hover {
background-color: #e55100 !important;
border-color: #bf360c !important;
}
/* Enhanced Queue Display Styles */
.user-extension-display {
background: #e8f4f8;
padding: 8px 12px;
border-radius: 4px;
margin-bottom: 10px;
font-size: 14px;
color: #2c5282;
text-align: center;
}
.queue-header {
display: flex;
align-items: center;
gap: 8px;
}
.queue-type-icon {
font-size: 16px;
flex-shrink: 0;
}
.queue-type-personal {
border-left: 4px solid #28a745;
}
.queue-type-hold {
border-left: 4px solid #ffc107;
}
.queue-type-general {
border-left: 4px solid #007bff;
}
.queue-item.queue-type-personal .queue-name {
color: #155724;
font-weight: 600;
}
.queue-item.queue-type-hold .queue-name {
color: #856404;
font-weight: 500;
}
.no-queues small {
color: #6c757d;
font-size: 12px;
}
/* Responsive queue enhancements */
@media (max-width: 480px) {
.user-extension-display {
font-size: 12px;
padding: 6px 10px;
}
.queue-type-icon {
font-size: 14px;
}
}