Peter Steinberger
16fd604219
fix(security): pin tlon api source and secure hold music url
2026-03-03 01:45:24 +00:00
Peter Steinberger
82101b152a
test(voice-call): split call manager tests by scenario
2026-03-03 00:29:20 +00:00
Peter Steinberger
439a7732f4
refactor(voice-call): split webhook server and tailscale helpers
2026-03-03 00:29:20 +00:00
Peter Steinberger
a96b3b406a
refactor(voice-call): extract twilio twiml policy and status mapping
2026-03-03 00:29:20 +00:00
Hershey Goldberger
dee7cda1ec
feat(voice-call): add call-waiting queue for inbound Twilio calls
2026-03-03 00:17:21 +00:00
Peter Steinberger
fe14be2352
Merge pull request #4325 : fix(voice-call) verify stale calls with provider
2026-03-03 00:14:37 +00:00
Shakker
d6491d8d71
fix: narrow webhook event provider call id typing
2026-03-03 00:05:03 +00:00
drvoss
c5ddba52d7
fix(voice-call): retry Twilio signature verification without port in URL
...
Twilio signs webhook requests using the URL without the port component,
even when the publicUrl config includes a non-standard port. Add a fallback
that strips the port from the verification URL when initial validation fails,
matching the behavior of Twilio's official helper library.
Closes #6334
2026-03-03 00:02:03 +00:00
scoootscooob
24dcd68f42
fix: rename createInboundCall → createWebhookCall, preserve event direction
...
Address Greptile review: externally-initiated outbound-api calls were
stored with hardcoded direction: "inbound". Now createWebhookCall accepts
a direction parameter so the CallRecord accurately reflects the event's
actual direction. Also skip inboundGreeting for outbound calls and add a
test asserting inbound direction is preserved.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 23:56:41 +00:00
scoootscooob
a1b4a0066b
fix(voice-call): accept externally-initiated Twilio outbound-api calls
...
Fixes #30900 — Calls initiated directly via the Twilio REST API
(Direction=outbound-api) were rejected as "unknown call" because
processEvent only auto-registered calls with direction=inbound.
External outbound-api calls now get registered in the CallManager
so the media stream is accepted. Inbound policy checks still only
apply to true inbound calls.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 23:56:41 +00:00
Xinhua Gu
fe4c627432
fix(voice-call): speak inbound greeting for twilio answered calls
2026-03-02 23:54:54 +00:00
Andrii Furmanets
662f389f45
Tests: isolate webhook path suite and reset cron auth state
2026-03-02 18:57:46 +00:00
Andrii Furmanets
3bd0505433
Voice Call: enforce exact webhook path match
2026-03-02 18:57:46 +00:00
Peter Steinberger
ad8d766f65
refactor(extensions): dedupe channel config, onboarding, and monitors
2026-03-02 08:54:20 +00:00
garnetlyx
ffa7c13c9b
fix(voice-call): verify call status with provider before loading stale calls
...
On gateway restart, persisted non-terminal calls are now verified with
the provider (Twilio/Plivo/Telnyx) before being restored to memory.
This prevents phantom calls from blocking the concurrent call limit.
- Add getCallStatus() to VoiceCallProvider interface
- Implement for all providers with SSRF-guarded fetch
- Transient errors (5xx, network) keep the call with timer fallback
- 404/known-terminal statuses drop the call
- Restart max-duration timers for restored answered calls
- Skip calls older than maxDurationSeconds or without providerCallId
2026-03-01 22:13:24 -08:00
Peter Steinberger
6ba7238ac6
build: bump versions to 2026.3.2
2026-03-02 04:55:53 +00:00
Agent
e7cafed424
chore(release): bump version to 2026.3.1
2026-03-01 21:14:17 +00:00
Peter Steinberger
fe807e4bed
chore(release): bump 2026.2.27 and split changelog
2026-02-27 16:09:28 +01:00
Peter Steinberger
192df12d60
test(voice-call): cover verification key and header helpers
2026-02-26 21:54:09 +01:00
Peter Steinberger
535ef8991c
refactor(voice-call): enforce verified webhook key contract
2026-02-26 21:54:09 +01:00
Peter Steinberger
6f0b4caa26
refactor(voice-call): share header and guarded api helpers
2026-02-26 21:54:09 +01:00
Peter Steinberger
1aadf26f9a
fix(voice-call): bind webhook dedupe to verified request identity
2026-02-26 21:43:51 +01:00
Peter Steinberger
caace61ba1
chore: bump versions to 2026.2.26
2026-02-26 12:11:02 +01:00
Shakker
2652bb1d7d
Release: sync plugin versions to 2026.2.25
2026-02-25 04:19:59 +00:00
Brian Mendonca
a3c4f56b0b
security(voice-call): detect Telnyx webhook replay
2026-02-24 23:50:30 +00:00
Shakker
955cc9029f
chore: sync plugin versions to 2026.2.24
2026-02-24 22:45:46 +00:00
Peter Steinberger
1d28da55a5
fix(voice-call): block Twilio webhook replay and stale transitions
2026-02-24 02:37:24 +00:00
Peter Steinberger
75423a00d6
refactor: deduplicate shared helpers and test setup
2026-02-23 20:40:44 +00:00
Vignesh Natarajan
8d9d01447e
chore: align plugin versions and harden outbound cross-provider test
2026-02-22 23:04:17 -08:00
Peter Steinberger
1c753ea786
test: dedupe fixtures and test harness setup
2026-02-23 05:45:54 +00:00
Peter Steinberger
1d8968c8a8
fix(voice-call): harden media stream pre-start websocket handling
2026-02-22 23:25:32 +01:00
Peter Steinberger
081ab9c99d
fix(voice-call): tighten manager outbound behavior
2026-02-22 11:29:31 +00:00
Peter Steinberger
549549f6a0
fix(ci): sync plugin versions and harden install smoke
2026-02-21 20:18:37 +01:00
Peter Steinberger
95c14d9b5f
docs: prune low-signal changelog entries
2026-02-21 15:02:10 +01:00
Peter Steinberger
9231d7d30f
chore: bump version to 2026.2.21
2026-02-21 11:02:30 +01:00
Peter Steinberger
f66b23de75
chore(release): bump versions to 2026.2.20
2026-02-20 00:02:53 +01:00
Peter Steinberger
b0e55283d5
chore: bump release metadata to 2026.2.19
2026-02-19 16:17:34 +01:00
Peter Steinberger
10379e7dcd
fix: harden voice-call tts deep merge
2026-02-19 15:37:01 +01:00
Peter Steinberger
c06ad38a71
test(voice-call): merge provider credential source cases
2026-02-19 09:55:43 +00:00
Peter Steinberger
c241bf0049
test: dedupe voice-call provider config validation cases
2026-02-19 09:24:09 +00:00
Peter Steinberger
4bf3338834
chore: bump version to 2026.2.18 unreleased
2026-02-18 04:40:06 +01:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
Peter Steinberger
9a2c39419e
chore(release): bump version to 2026.2.17
2026-02-17 23:08:55 +01:00
Sebastian
210bc37971
chore(subagents): add regression coverage and changelog
2026-02-17 08:40:36 -05:00
Mariano
0c87dbdcfc
voice-call: harden closed-loop turn loop and transcript routing ( #19140 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 14a3edb005
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-17 13:02:38 +00:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
Sebastian
759c7fc18e
revert(voice-call): remove cached inbound greeting
2026-02-16 22:35:28 -05:00
Sebastian
950f36feff
revert(voice-call): undo oxfmt formatting pass
2026-02-16 22:35:28 -05:00