Tanmay Deep Sharma
|
17c3c89378
|
test(voice): WhatsApp Cloud Calling specs
|
2026-05-02 14:49:49 +07:00 |
|
Tanmay Deep Sharma
|
78c615fe42
|
chore(voice): align whatsapp_spec to incoming-pipeline (specs go to specs PR)
|
2026-05-02 14:49:21 +07:00 |
|
Tanmay Deep Sharma
|
907011e280
|
chore(voice): split spec changes out to feat/whatsapp-call-specs (sibling PR)
|
2026-05-02 14:48:41 +07:00 |
|
Tanmay Deep Sharma
|
a766ebf642
|
chore(voice): align FE files to incoming-pipeline base (UI changes consolidated to PR #14346)
|
2026-05-02 14:40:06 +07:00 |
|
Tanmay Deep Sharma
|
0e0e0868d7
|
chore(voice): split FE changes out to feat/whatsapp-call-ui (PR #14346)
|
2026-05-02 14:31:13 +07:00 |
|
Tanmay Deep Sharma
|
d9077c64d3
|
fix(voice): robust accept-with-fetch + remote-end recording race + single-duration bubble + audio playback signals
|
2026-05-01 18:29:54 +07:00 |
|
Tanmay Deep Sharma
|
1abb51992b
|
fix(voice): fall back to content_attributes.data for duration when call payload lacks it
|
2026-05-01 17:50:02 +07:00 |
|
Tanmay Deep Sharma
|
0282156821
|
fix(audio): allow audio attachments to serve inline so <audio> can play call recordings
|
2026-05-01 17:47:04 +07:00 |
|
Tanmay Deep Sharma
|
257a9129d7
|
fix(voice): create missed-call record when terminate webhook arrives before connect
|
2026-05-01 17:33:05 +07:00 |
|
Tanmay Deep Sharma
|
1ce316efc7
|
ui(voice): use ButtonV4 for header WhatsApp call button to match action toolbar styling
|
2026-05-01 17:27:57 +07:00 |
|
Tanmay Deep Sharma
|
ba94d8c2b0
|
fix(transcription): drop Whisper temperature to 0 to suppress hallucinations
|
2026-05-01 16:31:48 +07:00 |
|
Tanmay Deep Sharma
|
6e11bebeae
|
fix(audio): resolve real duration for MediaRecorder WebM blobs via end-seek trick
|
2026-05-01 11:16:55 +07:00 |
|
Tanmay Deep Sharma
|
069f25f88a
|
fix(voice): await remote-end upload before store removeCall to prevent sync cleanup race
|
2026-05-01 11:15:09 +07:00 |
|
Tanmay Deep Sharma
|
63c193358c
|
fix(voice): render audio + transcript + duration on call bubble; upload recording on remote-end too
|
2026-05-01 11:06:53 +07:00 |
|
Tanmay Deep Sharma
|
7663e2ac30
|
fix(voice): merge call store entries so cable + message.created races don't drop provider/sdp/caller
|
2026-05-01 10:54:47 +07:00 |
|
Tanmay Deep Sharma
|
0567655840
|
fix(voice): outbound STUN, mute toggle, skip voice_call bubble in send pipeline
|
2026-04-30 20:43:35 +07:00 |
|
Tanmay Deep Sharma
|
c25ed094fa
|
fix(voice): pipe Meta's remote audio to a hidden audio element so the agent hears the contact
|
2026-04-30 20:17:19 +07:00 |
|
Tanmay Deep Sharma
|
112a8f9e9e
|
feat(voice): branch contact-panel call button on inbox provider for WhatsApp
|
2026-04-30 20:14:21 +07:00 |
|
Tanmay Deep Sharma
|
723d416ce3
|
fix(voice): bump WhatsApp Cloud Calling endpoints to v22 (OSS phone_id_path is locked at v13)
|
2026-04-30 19:54:31 +07:00 |
|
Tanmay Deep Sharma
|
f3df486ce6
|
feat(voice): add WhatsApp calling enable toggle to inbox configuration
|
2026-04-30 19:39:19 +07:00 |
|
Tanmay Deep Sharma
|
c7b6a87e77
|
feat(voice): wire WhatsApp call UI on top of existing Twilio session flow
|
2026-04-30 19:30:43 +07:00 |
|
Tanmay Deep Sharma
|
19d91e47f1
|
fix(voice): rescue transport errors during permission_request send
|
2026-04-30 19:11:14 +07:00 |
|
Tanmay Deep Sharma
|
1c945899c7
|
fix(whatsapp): restrict voice_enabled? to embedded-signup whatsapp_cloud channels
|
2026-04-30 19:10:06 +07:00 |
|
Tanmay Deep Sharma
|
2c025755e2
|
fix(voice): wrap Meta transport errors during accept as CallFailed
|
2026-04-30 18:52:51 +07:00 |
|
Tanmay Deep Sharma
|
0618e6e229
|
fix(voice): close lock-window gaps in accept, throttle, and call_attributes_changed?
|
2026-04-30 18:46:09 +07:00 |
|
Tanmay Deep Sharma
|
cbef2d4e66
|
refactor(voice): memoize provider_service accessor in whatsapp calls controller
|
2026-04-30 18:26:43 +07:00 |
|
Tanmay Deep Sharma
|
cb93aba55c
|
refactor(voice): split call validations into single-purpose before_actions
|
2026-04-30 18:14:29 +07:00 |
|
Tanmay Deep Sharma
|
beef43f2bf
|
refactor(voice): hoist validations to before_action and centralize call-error rendering
|
2026-04-30 18:04:25 +07:00 |
|
Tanmay Deep Sharma
|
cbd3f759b5
|
fix(voice): order accept guards correctly and validate contact phone upstream
|
2026-04-30 17:46:24 +07:00 |
|
Tanmay Deep Sharma
|
a7fdc45977
|
fix(voice): bail on Meta failures and restrict initiate to WhatsApp inboxes
|
2026-04-30 17:26:01 +07:00 |
|
Tanmay Deep Sharma
|
41e3ea0d87
|
fix(voice): record permission_request wamid for context-based reply matching
|
2026-04-30 17:11:55 +07:00 |
|
Tanmay Deep Sharma
|
fd22017292
|
Merge feat/whatsapp-call-incoming-pipeline into feature/pla-150
|
2026-04-30 17:10:45 +07:00 |
|
Tanmay Deep Sharma
|
555894793e
|
fix(voice): match permission reply to originating conversation via context.id
|
2026-04-30 17:10:34 +07:00 |
|
Tanmay Deep Sharma
|
7c87d3d150
|
fix(voice): lock call state transitions, branch terminate on connection state, atomic recording upload, rescue CallFailed in initiate
|
2026-04-30 16:54:47 +07:00 |
|
Tanmay Deep Sharma
|
c37d1b1d6b
|
Merge feat/whatsapp-call-incoming-pipeline into feature/pla-150
|
2026-04-30 16:51:42 +07:00 |
|
Tanmay Deep Sharma
|
e5a03d08ea
|
fix(voice): resolve contact via source_id and i18n call message bubble
|
2026-04-30 16:51:29 +07:00 |
|
Tanmay Deep Sharma
|
bc80985f55
|
refactor(voice): align WhatsappCallsController with Chatwoot jbuilder + concern conventions
|
2026-04-30 16:38:08 +07:00 |
|
Tanmay Deep Sharma
|
83cd568ca2
|
feat(voice): add WhatsApp Cloud Calling agent service, controller and routes
|
2026-04-30 16:24:39 +07:00 |
|
Tanmay Deep Sharma
|
f32a7b3f77
|
refactor(voice): drop redundant CallMessageBuilder.update_status! class delegate
|
2026-04-30 16:13:53 +07:00 |
|
Tanmay Deep Sharma
|
ba0fcbfc7f
|
refactor(voice): tighten WhatsApp call pipeline and broadcast hyphenated terminate status
|
2026-04-30 16:04:39 +07:00 |
|
Tanmay Deep Sharma
|
546193de2a
|
refactor(voice): tighten predicate and trim STUN comment
|
2026-04-30 15:35:58 +07:00 |
|
Tanmay Deep Sharma
|
67b522c433
|
refactor(voice): expose voice_enabled? on Channel::Whatsapp for duck-typed checks
|
2026-04-30 15:34:08 +07:00 |
|
Tanmay Deep Sharma
|
f5eca9d1d0
|
refactor(voice): inline single-use helpers in WhatsApp call services
|
2026-04-30 15:28:41 +07:00 |
|
Tanmay Deep Sharma
|
5c4db3a6bc
|
refactor(voice): extract finalize_status! helper to DRY incoming call lifecycle
|
2026-04-30 15:19:21 +07:00 |
|
Tanmay Deep Sharma
|
792dc359d4
|
fix(voice): tighten WhatsApp call lifecycle handling and per-call locking
|
2026-04-30 15:07:51 +07:00 |
|
Tanmay Deep Sharma
|
2b0aaa237f
|
feat(voice): add WhatsApp inbound call webhook pipeline
|
2026-04-30 14:59:46 +07:00 |
|
Tanmay Deep Sharma
|
48022833ea
|
refactor(voice): address review feedback on WhatsApp Cloud Calling provider methods
|
2026-04-30 14:43:44 +07:00 |
|
Tanmay Deep Sharma
|
e2b3965a08
|
refactor(voice): raise typed Voice::CallErrors::CallFailed instead of StandardError
|
2026-04-30 14:43:44 +07:00 |
|
Tanmay Deep Sharma
|
17e25fa3c4
|
test(voice): cover WhatsApp Cloud Calling provider methods
|
2026-04-30 14:43:44 +07:00 |
|
Tanmay Deep Sharma
|
37963cc654
|
fix(voice): coerce non-Hash parsed_response in initiate_call error path
|
2026-04-30 14:43:44 +07:00 |
|