Commit Graph

619 Commits

Author SHA1 Message Date
zarazaex69 82e8067384 fix(client,server): defer shutdown BEFORE bringUpLink to close MUC on early failures
When bringUpLink errored — a handshake timeout against a wedged transport,
for instance — Run/RunWithReady returned straight to the caller without
calling shutdown, so the carrier link that had already joined the MUC
was never closed. The result was a ghost participant lingering on
Jicofo/JVB until idle timeout, which the next test in the same room
inherited as stale endpoints in 'bridge open'.

The clue from logs was that failing seichannel runs produced one
'leave-muc handshake ok' instead of two: the server's normal
ctx-cancel path got there cleanly, but the client's bringUpLink
returned early and skipped its defer.

Both paths now register shutdown before the bringUpLink call. shutdown
is nil-safe and idempotent so it works whether or not bringUpLink
actually populated link/session fields. server's wg.Wait moves into
the same defer so wg goroutines spawned by partial setup also drain
before Run returns.
2026-05-16 01:38:52 +03:00
zarazaex69 bc22e0c76b build(deps): bump github.com/zarazaex69/j 2026-05-16 01:23:05 +03:00
zarazaex69 f7c157dfe3 fix(jitsi): align session close with leave flow 2026-05-16 01:09:01 +03:00
zarazaex69 0676fc2e47 fix(engine): delay session close teardown 2s 2026-05-16 00:09:41 +03:00
zarazaex69 4db4007985 fix(jitsi): wait longer after leaving MUC 2026-05-16 00:04:51 +03:00
zarazaex69 71db9c4700 fix(jitsi): start stanza drain before session accept 2026-05-15 23:41:36 +03:00
zarazaex69 5e0a89a78d Revert "fix(transport): isolate peer frames by channel id"
This reverts commit 75e2674f48.
2026-05-15 23:09:24 +03:00
zarazaex69 a9512d2488 Revert "fix(transport): pin peer channel after validation"
This reverts commit 7f9351dad6.
2026-05-15 23:09:24 +03:00
zarazaex69 7f9351dad6 fix(transport): pin peer channel after validation 2026-05-15 22:53:58 +03:00
zarazaex69 75e2674f48 fix(transport): isolate peer frames by channel id 2026-05-15 22:47:32 +03:00
zarazaex69 86193f4749 fix(wbstream): use server URL from token response 2026-05-15 22:26:57 +03:00
zarazaex69 6536249f72 feat: add randomID function to generate unique track and stream IDs 2026-05-15 22:00:45 +03:00
zarazaex69 bd09495e8f feat(jitsi): request video after session accept 2026-05-15 18:48:00 +03:00
zarazaex69 714d2f9f48 fix(jitsi): avoid closing session on connect failure 2026-05-15 16:55:25 +03:00
zarazaex69 e86604276d fix(jitsi): transliterate Cyrillic in sanitiseNick 2026-05-15 16:47:16 +03:00
zarazaex69 6276bf0fc6 test(e2e): treat real provider transports as pass-only 2026-05-15 16:47:09 +03:00
zarazaex69 36d1243395 fix(carrier): classify auth provider failures 2026-05-15 16:32:59 +03:00
zarazaex69 9cfb4fd9c3 docs: make jitsi the default recommended provider 2026-05-15 16:15:55 +03:00
zarazaex69 5d54209e24 fix(session): allow providers without default URL 2026-05-15 16:08:28 +03:00
zarazaex69 fa17aefe25 fix(jitsi): send jingle terminate before close 2026-05-15 15:48:48 +03:00
zarazaex69 85a3186703 refactor(jitsi): extract helpers and simplify tests 2026-05-15 15:45:07 +03:00
zarazaex69 eceeaeba92 feat(jitsi): add Jitsi auth provider and engine 2026-05-15 15:37:58 +03:00
zarazaex69 af87120f73 docs: update transport compatibility docs 2026-05-14 20:22:37 +03:00
zarazaex69 6ba8fcdbe8 test(e2e): mark jazz non-data transports as fail 2026-05-14 19:51:26 +03:00
zarazaex69 f6e654dfce fix(salutejazz): include video tracks in publisher offer 2026-05-14 19:42:54 +03:00
zarazaex69 3c4ae52027 fix(salutejazz): unmute camera after publisher offer 2026-05-14 19:09:35 +03:00
zarazaex69 1c43379448 feat(salutejazz): support ICE and staged video offers 2026-05-14 18:39:10 +03:00
zarazaex69 c6c4fd10a4 test(e2e): restrict jazz pass cases to datachannel 2026-05-14 18:03:57 +03:00
zarazaex69 f16262c485 fix(salutejazz): align request headers and errors 2026-05-14 17:41:29 +03:00
zarazaex69 812ba2a9a2 fix: golangci lint 2026-05-14 05:02:54 +03:00
zarazaex69 31fa1a99ff fix(salutejazz): disable media auto-subscribe support 2026-05-14 05:00:21 +03:00
zarazaex69 9a0ac097b6 docs(configuration): translate docs to Russian 2026-05-14 04:44:45 +03:00
zarazaex69 9e64cbc506 feat(salutejazz): send track:add before publisher offer 2026-05-14 04:41:02 +03:00
zarazaex69 c69aee3fc4 test(e2e): correct tunnel carrier expectations 2026-05-14 04:27:30 +03:00
zarazaex69 76c709f9a5 fix: golangci lint fix 2026-05-14 04:21:11 +03:00
zarazaex69 b569e08fac test(e2e): cover jazz expectations in real matrix 2026-05-14 04:10:44 +03:00
zarazaex69 9fc6938d75 ci: run workflow on all pushes 2026-05-14 04:01:46 +03:00
zarazaex69 82afc24238 docs: clarify wbstream datachannel limitations 2026-05-14 03:58:39 +03:00
zarazaex69 1897c13550 feat(code): add token grant logging and message stats 2026-05-14 03:56:31 +03:00
zarazaex69 3249a109f8 test(wbstream): increase channel test message attempts to 60 2026-05-14 03:24:09 +03:00
zarazaex69 246c30f9c4 fix(code): use hardcoded room id for POCs 2026-05-14 03:21:28 +03:00
zarazaex69 763cba2aa0 test(e2e): require wbstream tunnel test to pass 2026-05-14 03:11:53 +03:00
zarazaex69 19df0cef68 test(e2e): relax wbstream tunnel expectations 2026-05-14 03:01:39 +03:00
zarazaex69 b36bee3f0e fix: harden reconnect shutdown and vp8 startup 2026-05-14 02:45:11 +03:00
zarazaex69 25d0e98698 doc: add YAML configuration support 2026-05-13 23:10:23 +03:00
zarazaex69 1e8f378844 fix(logger): skip logging for "srtp" scope 2026-05-13 22:35:59 +03:00
zarazaex69 adf4b011b9 feat(session): add session open/close and traffic callbacks 2026-05-13 22:18:11 +03:00
zarazaex69 20f2c1397c feat: add timeout to openControlStream function 2026-05-13 22:07:34 +03:00
zarazaex69 bcc6b2ee5c feat: remove unused client ID from config 2026-05-13 20:03:58 +03:00
zarazaex69 d1cc68c64a Merge remote-tracking branch 'origin/master' into refactor/universal-carrier 2026-05-13 19:10:48 +03:00