Commit Graph

370 Commits

Author SHA1 Message Date
Peter Steinberger
304126ad79 refactor(realtime-voice): centralize consult policy helpers 2026-04-24 23:45:49 +01:00
Peter Steinberger
e2f13959d4 feat(voice-call): share realtime agent consult tool
Centralize the shared realtime agent consult tool for browser Talk, Google Meet, and Voice Call.
2026-04-24 23:11:18 +01:00
Peter Steinberger
8a9d02dd82 fix(voice-call): keep outbound realtime streams attached (#71266)
Fixes outbound Twilio realtime conversations so the TwiML fetch returns the realtime <Connect><Stream> path for outbound directions and the answered-call path does not overwrite it with legacy <Say> TwiML.

Local proof:
- pnpm test extensions/voice-call/src/manager.notify.test.ts extensions/voice-call/src/webhook.test.ts
- pnpm check:changed
- pnpm check
- pnpm build
- local VoiceCallWebhookServer + CallManager smoke for Direction=outbound-api

Closes #68713.
2026-04-24 22:35:26 +01:00
Peter Steinberger
27c61ed0d4 chore(deps): update workspace dependencies 2026-04-24 16:55:08 +01:00
Peter Steinberger
b5e5f2cede feat(google): add realtime voice provider 2026-04-24 09:36:20 +01:00
Peter Steinberger
fa139b4fca fix(voice-call): handle Telnyx callback payloads 2026-04-24 07:25:44 +01:00
Peter Steinberger
b164bb3717 refactor: centralize realtime voice resolution 2026-04-24 01:50:43 +01:00
Peter Steinberger
57e139100b refactor: share realtime voice bridge sessions 2026-04-24 01:50:43 +01:00
Peter Steinberger
958afeb397 refactor: share provider selection runtime helper 2026-04-24 01:50:43 +01:00
Peter Steinberger
7c19c31144 feat: support DTMF for voice-call 2026-04-24 01:50:42 +01:00
Peter Steinberger
61c25704e6 fix: harden realtime voice setup (#70764) 2026-04-23 21:54:50 +01:00
Peter Steinberger
e88d8512a7 perf(discord): narrow monitor runtime imports 2026-04-23 08:21:01 +01:00
Peter Steinberger
e3caacd530 lint: enforce exhaustive switches 2026-04-23 06:02:12 +01:00
Peter Steinberger
4aa35d85fa test: clean up voice-call event timers 2026-04-23 06:02:12 +01:00
Peter Steinberger
0b0662b1c9 chore: apply extension lint cleanups 2026-04-23 05:30:49 +01:00
Peter Steinberger
b2472d6560 build: migrate schema deps to typebox 2026-04-23 04:59:42 +01:00
Peter Steinberger
66576f3355 test(extensions): fix lint-clean test assertions 2026-04-22 01:43:18 +01:00
Peter Steinberger
78ae7bbd90 test: share voice call notify fixtures 2026-04-20 17:05:16 +01:00
Peter Steinberger
8116e638f3 chore: release 2026.4.20 2026-04-20 13:16:40 +01:00
Peter Steinberger
ac8f0c9c0d chore: prepare 2026.4.19-beta.1 release 2026-04-19 02:09:43 +01:00
Peter Steinberger
a5d6330f87 refactor: cache remaining runtime imports 2026-04-18 20:08:04 +01:00
Peter Steinberger
66385670e4 refactor: reduce unnecessary dynamic imports 2026-04-18 16:15:33 +01:00
Peter Steinberger
3f2e73b723 chore(release): bump version to 2026.4.18 2026-04-18 15:46:33 +01:00
Ayaan Zaidi
2a283e87a7 fix(plugins): enforce synchronous registration 2026-04-17 10:14:00 +05:30
Peter Steinberger
0dc4c4076c chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
Peter Steinberger
b3fa5880dd build(extensions): bump bundled plugin versions to 2026.4.15-beta.1 2026-04-15 15:06:13 +01:00
Agustin Rivera
692438cbb2 fix(stream): tighten voice stream ingress guards (#66027)
* fix(stream): tighten voice stream ingress guards

* fix(stream): address review follow-ups

* fix(stream): normalize trusted proxy ip matching

* changelog: note voice-call media-stream ingress guard tightening (#66027)

* fix(stream): require non-empty trusted proxy list before honoring forwarding headers

Without an explicit trusted proxy list, the prior gate treated every
remote as 'from a trusted proxy', so enabling trustForwardingHeaders
let any direct caller spoof X-Forwarded-For / X-Real-IP and rotate the
resolved IP per request to evade maxPendingConnectionsPerIp. Require
trustedProxyIPs to be non-empty AND match the remote before trusting
forwarding headers.

---------

Co-authored-by: Devin Robison <drobison@nvidia.com>
2026-04-13 16:51:16 -06:00
Vincent Koc
20248c475f fix(voice-call): keep retryable errors replayable 2026-04-13 17:50:27 +01:00
Vincent Koc
0369bd75c1 fix(voice-call): keep unknown-call replays retryable 2026-04-13 17:04:53 +01:00
Vincent Koc
2c3871b4b1 fix(voice-call): retry rejected inbound hangups 2026-04-13 17:00:08 +01:00
pashpashpash
383c854313 CI: fix mainline regression blockers (#65269)
* MSTeams: align logger test expectations

* Gateway: fix CI follow-up regressions

* Config: refresh generated schema baseline

* VoiceCall: type webhook test doubles

* CI: retrigger blocker workflow

* CI: retrigger retry workflow

* Agents: fix current mainline agentic regressions

* Agents: type auth controller test mock

* CI: retrigger blocker validation

* Agents: repair OpenAI replay pairing order
2026-04-13 06:18:37 +09:00
Peter Steinberger
a8e140e395 chore: bump version to 2026.4.12 2026-04-12 10:37:18 -07:00
Vincent Koc
0c0170b7fb test(voice-call): share websocket test helpers 2026-04-12 09:33:12 +01:00
Vincent Koc
bde62fcf82 test(ci): fix discord and voice-call type fixtures 2026-04-12 09:26:01 +01:00
Vincent Koc
0d2fcd3bbf test(voice-call): type twilio webhook helpers 2026-04-12 09:15:50 +01:00
Vincent Koc
52623e033f test(voice-call): share active call context helper 2026-04-12 08:41:30 +01:00
Vincent Koc
6259064f93 test(voice-call): share twilio webhook fixtures 2026-04-12 08:29:03 +01:00
Vincent Koc
97aa6e0815 test(voice-call): share signed telnyx request helper 2026-04-12 05:31:25 +01:00
Peter Steinberger
0e3f9657da fix(plugins): preserve bundled host compatibility floor 2026-04-12 00:22:32 +01:00
Peter Steinberger
eb7bdbf980 docs: remove extension changelogs 2026-04-11 14:05:07 +01:00
Peter Steinberger
564f64666b docs: remove plugin version-only changelog entries 2026-04-11 14:01:40 +01:00
Peter Steinberger
88be9b525c docs: update 2026.4.11 changelog 2026-04-11 14:00:42 +01:00
Peter Steinberger
1ab6e5dbf0 chore(release): bump version to 2026.4.11 2026-04-11 04:51:17 +01:00
Peter Steinberger
3e80bd33e4 refactor: simplify extension conversions 2026-04-11 01:37:23 +01:00
Tak Hoffman
6504087b97 fix: restore voice call replay dedupe keys 2026-04-10 19:09:00 -05:00
Peter Steinberger
a94b926944 refactor: simplify messaging conversions 2026-04-11 01:04:46 +01:00
Peter Steinberger
d236cb4680 chore: enable redundant type constituent checks 2026-04-10 21:23:40 +01:00
Peter Steinberger
cc6c5f3edb style: simplify lint-safe test helpers 2026-04-10 20:20:33 +01:00
Peter Steinberger
2786ed0f67 chore: enable no-base-to-string 2026-04-10 20:14:49 +01:00
Michael Appel
afadb7dae6 fix(voice-call): reject oversized realtime WebSocket frames
Reject realtime voice WebSocket frames above 256 KB before JSON parsing or bridge setup, and absorb ws error events so oversized frames close the connection instead of crashing the gateway.

Local verification:
- pnpm test extensions/voice-call/src/webhook/realtime-handler.test.ts
- pnpm check

Thanks @mmaps.

Co-authored-by: mmaps <3399869+mmaps@users.noreply.github.com>
2026-04-10 17:58:44 +01:00