Commit Graph

17 Commits

Author SHA1 Message Date
Sojan Jose
fb4042c863 refactor(voice): use Twilio-native statuses and remove legacy fallbacks
- Drop FE normalizeStatus and BE STATUS_MAPPING
- Update bubbles/preview and store to use Twilio status values
- DRY ActionCable incoming-call payload builder
- Use server-provided conference_sid for client connect
- VoiceAPI: standardized returns, accept store, simplify disconnects
- Remove legacy/fallback comments introduced in this PR
2025-08-20 13:38:50 +02:00
Sojan Jose
a2b5cf57e4 chore(voice): keep minimal diffs; remove setMute and stray route; retain MessageBuilder EE hook 2025-08-18 18:29:06 +02:00
Sojan Jose
9a41017aa3 feat(voice): add Call action on contact details with modal picker
- Add ContactCallButton component; icon variant for sidebar, text variant for details header
- Place Call between Block and Send Message on contact details header
- Use modal to select Voice inbox when multiple numbers exist
- Allow optional inbox_id on contact call API and service
- Revert Compose New Conversation voice changes to reduce scope
- Add missing i18n strings (CALL_CONTACT, SELECT_NUMBER)
2025-08-18 16:11:20 +02:00
Sojan Jose
6c6a2ec58f Voice: refactor tokens to service; unify token endpoint; enforce Twilio signature validation; remove legacy tokens controller; keep phone-scoped routes in accounts and enterprise 2025-08-16 12:43:22 +02:00
Sojan Jose
af91b4af21 refactor(voice): unify inbound/outbound via orchestrator & message builder
- Add Voice::CallOrchestratorService to centralize flows
- Add Voice::CallMessageBuilder for consistent voice call messages
- Incoming/Outgoing services delegate to orchestrator; use CallStatus::Manager
- ConversationFinderService: phone optional; public call_sid lookup

feat(ui): simplify call widget + reliable incoming detection + ringtone

- Remove global widget toggling; rely on Vuex
- ActionCable: loosen created condition, backfill on updated
- Add ringtone on incoming via shared Audio helper
- Guard Twilio connect() to avoid duplicate active call errors

fix(voice): decline incoming ends call & updates status

- Reject call now completes Twilio call if in progress
- Update status via manager to no_answer with activity
2025-08-14 16:50:38 +02:00
Sojan Jose
c0b201f169 fix: improve call termination and auto-join for voice calls
- Fix outgoing call auto-join without manual button click
- Fix end call button to properly terminate calls on contact side
- Fix decline button to immediately disconnect customer calls
- Improve call state detection for outgoing vs incoming calls
- Add proper WebRTC disconnect handling when contact hangs up
- Enhanced error handling and state cleanup for all call scenarios
2025-08-14 15:53:09 +02:00
Sojan Jose
e535bc37e1 chore: apply simplified voice channel components from stash
- Simplify voice.js API from 960+ to 133 lines with clean architecture
- Convert VoiceCall.vue to Composition API with script setup
- Remove complex diagnostics and use essential functionality only
- Fix initiateCall endpoint URL for outgoing calls
- Maintain original green colors for call status indicators
2025-08-13 16:34:40 +02:00
Sojan Jose
9ce6d9076b chore: apply code quality improvements and linting fixes
- Remove remaining console.log statements and replace with comments
- Add ESLint disable comments for intentionally unused variables
- Improve code formatting and style consistency
- Fix remaining linting violations for better CI compliance
2025-08-13 13:53:56 +02:00
Sojan Jose
36d18c50e4 fix: resolve JavaScript errors and linting issues after merge
- Remove malformed console.log statements from voice.js API
- Fix variable shadowing in calls.js store module
- Clean up code formatting and add missing newline in MessagePreview.vue
- Resolve syntax errors that prevented application from loading
2025-08-13 13:47:44 +02:00
Sojan Jose
3116c6548f chore: clean up 2025-07-23 17:02:17 +04:00
Sojan Jose
669241801e chore: clean up 2025-07-17 04:53:37 -07:00
Sojan Jose
cb9d45a355 chore: clean up voice channel code for MVP
- Simplify message builder content_attributes handling
- Remove AI captain integration from incoming call service
- Clean up FloatingCallWidget by removing non-essential features:
  - Remove Gravatar/MD5 dependency
  - Remove keypad/DTMF functionality
  - Remove fullscreen toggle
  - Simplify avatar handling
- Apply consistent code formatting across voice components
- Remove debug logging and unused code

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14 02:22:07 -07:00
Sojan
aa4ef28e0e chore: fixes 2025-05-09 20:47:03 -07:00
Sojan
3692cde1a9 chore: inbound and outbound calls that work 2025-05-02 02:41:38 -07:00
Sojan
3f0c01e166 chore: floating button for incoming call 2025-04-29 03:45:08 -07:00
Sojan
a7ff808d01 chore: floating call button 2025-04-28 01:08:03 -07:00
Sojan
8d660df4c4 feat: Add voice channel support for Chatwoot 2025-04-27 00:48:05 -07:00