393 Commits

Author SHA1 Message Date
zarazaex69
af9eeea740 docs: add meet.cryptopro.ru as alternative Jitsi server option 2026-05-25 15:43:28 +03:00
zarazaex69
fe85457754 fix(jitsi): add RTCP keepalive to prevent JVB session expiry 2026-05-25 12:57:18 +03:00
zarazaex69
e64ed167cc refactor(jitsi): extract openBridgeWS and openBridgeSCTP helpers 2026-05-25 11:39:22 +03:00
zarazaex69
c2170c058b feat(jitsi): add SCTP fallback when colibri-ws is unavailable
- Fixed instances that were not working x3
2026-05-25 10:41:23 +03:00
zarazaex69
12a28e6cbf chore: replace default jitsi URL with meet1.arbitr.ru 2026-05-25 10:08:26 +03:00
zarazaex69
e677261fd5 refactor: improve error wrapping and extract constructor helper 2026-05-25 04:06:26 +03:00
zarazaex69
83a94948ae fix(vp8channel): latch peer epoch on first frame received 2026-05-24 18:05:43 +03:00
zarazaex69
6d529c16a8 fix(vp8channel): latch peer only after handshake confirms it
Previously the client latched on the first epoch it saw, which could
be another client in the room. Now it accepts frames from all epochs
until onData delivers the first KCP message (handshake welcome),
then locks to that epoch and ignores others.

Fixes #67
2026-05-24 17:49:02 +03:00
zarazaex69
11dfdcb512 fix(vp8channel): demote noisy 'ignoring frame' log to trace 2026-05-24 17:36:19 +03:00
zarazaex69
d0b0b8e9db fix(vp8channel): client ignores frames from other participants
In single-peer mode (client), frames from unknown epochs are now
silently dropped instead of triggering a reconnect loop. This
prevents the client from mistaking another client's VP8 track
for a server restart.

Part of #67
2026-05-24 17:33:51 +03:00
zarazaex69
cefd260e5d fix(vp8channel): support multiple simultaneous clients in same room
Implement PeerTransport interface (SendTo/SupportsPeerRouting) so the
server can route KCP traffic to individual peers by their epoch.

When OnPeerData is set (server mode), each remote epoch gets its own
KCP runtime instead of triggering a reconnect loop.

Also add DNS retry in protect.NewHTTPClient to handle transient
resolver failures.

Fixes #67
2026-05-24 17:27:02 +03:00
zarazaex69
cb6fe0980d feat(protect): add DNS retry logic to HTTP client 2026-05-24 17:27:02 +03:00
zarazaex69
98c6dec4a0 docs: normalize em dash to hyphen in Russian documentation and code comments 2026-05-24 05:31:55 +03:00
zarazaex69
cfe9565c21 test(e2e): remove standalone pion loopback PoC after integration into memoryStream 2026-05-24 04:46:53 +03:00
zarazaex69
4d22169be6 test(e2e): add in-memory WebRTC loopback for video transport testing 2026-05-24 04:45:06 +03:00
zarazaex69
f63aa0bc43 refactor(e2e): extract local soak transport error constants 2026-05-24 02:57:30 +03:00
zarazaex69
bb2e1ee1c8 test(e2e): allow multiple transports in local soak test via comma-separated list or 'all' 2026-05-24 02:42:13 +03:00
spkprsnts
5e4c2e27ee refactor(server): split socks5 connect logic
- Extract auth logic to helper functions
- Add linter directives for gosec and globals
2026-05-24 02:18:34 +05:00
spkprsnts
d5973cf2c7 feat(server): add username/password auth for outbound SOCKS5 proxy (RFC 1929) 2026-05-23 05:14:25 +05:00
zarazaex69
fb5ce90e61 refactor(e2e): extract soak pump helpers and modernize range lnt 2026-05-22 20:51:46 +03:00
zarazaex69
d8139a7178 refactor(muxconn): recycle plaintext buffers via sync.Pool 2026-05-22 20:37:17 +03:00
zarazaex69
99a7b12538 refactor(muxconn): replace mutex/cond buffer with channel pipeline 2026-05-22 19:55:13 +03:00
zarazaex69
e9373aabd8 perf(crypto): replace random nonces with salt+counter scheme 2026-05-22 19:38:29 +03:00
zarazaex69
d0b5074072 test(e2e): add local throughput soak test 2026-05-22 18:27:20 +03:00
zarazaex69
c45e12d5c6 chore: replace default Jitsi URL with meet.cryptopro.ru 2026-05-21 19:07:31 +03:00
zarazaex69
9bf81248c4 docs: replace 1.1.1.1 with 8.8.8.8 as default DNS server 2026-05-21 19:01:10 +03:00
zarazaex69
0ec244e0dc docs: update docs and remove wbstream room creation support 2026-05-21 18:51:38 +03:00
zarazaex69
19dba1691d test(e2e): handle clean exits in tunnel startup 2026-05-21 17:12:30 +03:00
zarazaex69
618b210926 fix: golangci 2026-05-21 14:30:18 +03:00
zarazaex69
5839b05763 fix: cancel go t -> startControlLoop 2026-05-21 14:17:39 +03:00
zarazaex69
4b7185f411 fix(client): survive liveness loss without killing SOCKS listener 2026-05-21 13:42:22 +03:00
zarazaex69
bfa6d73ad1 feat(vp8channel): batch multiple KCP packets per RTP sample 2026-05-20 00:12:01 +03:00
zarazaex69
74bb402289 fix(runtime): account for smux frame overhead in wire payload cap 2026-05-19 23:34:37 +03:00
zarazaex69
ccf3ff0988 fix: golangci 2026-05-19 22:02:56 +03:00
zarazaex69
2b6f77f0f6 refactor(vp8channel): add ResetPeer with epoch rotation and mutex #60 2026-05-19 21:58:12 +03:00
zarazaex69
085aadcad7 refactor: remove SaluteJazz carrier support 2026-05-19 21:39:07 +03:00
zarazaex69
d84fb78eef test(e2e): mark jitsi video and vp8 transports as unstable 2026-05-19 09:29:19 +03:00
zarazaex69
3bee3ddbe6 chore(vp8channel): update default fps to 60 and batch size to 64 2026-05-19 09:08:01 +03:00
zarazaex69
31796efe15 docs: replace meet.cryptopro.ru with meet.small-dm.ru as default 2026-05-18 23:37:10 +03:00
zarazaex69
d872f3c900 docs: replace jitsi.etudevs.ru with meet.cryptopro.ru 2026-05-18 22:30:51 +03:00
zarazaex69
65611d903e docs: replace meet.cryptopro.ru with jitsi.etudevs.ru as default 2026-05-18 22:20:02 +03:00
zarazaex69
535c3b75d1 refactor(server): replace context with done channel for stop signal 2026-05-18 08:14:39 +03:00
zarazaex69
4ce5d0356e refactor(logger): extract DisableNoisyPionLogs helper 2026-05-18 05:41:04 +03:00
zarazaex69
143f6dd8a6 feat: add peer-addressed routing across transport and engine layers 2026-05-18 02:38:45 +03:00
zarazaex69
95b73750c9 fix: golangci 2026-05-18 00:46:26 +03:00
zarazaex69
4adea8824f feat(config,script): validate UTF-8 config and hex encryption keys 2026-05-17 22:20:14 +03:00
zarazaex69
f1cad5d6a2 fix(logger): suppress noisy Pion TURN refresh logs 2026-05-17 20:40:42 +03:00
zarazaex69
c6c301c058 fix: handle graceful control shutdown and reconnects 2026-05-17 18:35:05 +03:00
zarazaex69
9a2bbfd44e feat(videochannel): add per-fragment ack tracking 2026-05-17 05:45:43 +03:00
zarazaex69
33cccbc906 fix(e2e): pace stress bulk echo by chunk roundtrip 2026-05-17 05:07:00 +03:00