Commit Graph

459 Commits

Author SHA1 Message Date
Paul Wells 96f3aaa587 free signal join response to gc after forwarding (#1619) 2023-04-16 17:38:09 -07:00
David Zhao 40ceddd18b Integrate QueuedNotifier, fixes out-of-order delivery (#1615) 2023-04-15 01:20:23 -07:00
Benjamin Pracht 843328125e Do not use redis transactions for the egress APIs. Make sure all ingress related keys are on the same cluster slot. #1606
This will break existing ingress in redis.
2023-04-13 08:09:00 -10:00
Raja Subramanian ac266fbcd6 Support subscriber_allow_pause connect option (#1612)
* Support subscriber_allow_pause connect option

* optional subscriber_allow_pause field
2023-04-13 17:00:32 +05:30
Raja Subramanian d2bf8f0ba1 Support simulating subscriber bandwidth. (#1609)
* Support simualting subscriber bandwidth.

When non-zero, a full allocation is triggered.
Also, probes are stopped.

When set to zero, normal probing mechanism should catch up.

Adding `allowPause` override which can be a connection option.

* fix log

* allowPause in participant params
2023-04-13 13:59:24 +05:30
Benjamin Pracht c2f76b79fa Validate IngressInfo, update the info if an ingress is active (#1605) 2023-04-12 13:27:57 -10:00
David Zhao 6abe3b1aee Adding logs when clients reconnect (#1598) 2023-04-10 21:26:16 -07:00
Paul Wells eb095db70a Batch signal retries (#1593)
* batch signal retries

* cleanup

* update protocol

* range check message dedup

* update protocol with codegen

* block while draining

* only log send timeouts

* cleanup

* cleanup

* cleanup

* typo

* update config yaml options

* update protocol
2023-04-09 18:18:21 -07:00
David Zhao e03f75d6a1 Implements source-specific permissions and client-driven metadata updates (#1590)
Closes #1565
2023-04-07 23:47:49 -07:00
Paul Wells 6b0cb33c53 set participant node for redis router in signal service (#1584) 2023-04-05 16:08:25 -07:00
Paul Wells 5552062228 drain signal stream before closing (#1582)
* drain signal stream before closing

* update psrpc

* cleanup
2023-04-05 12:29:52 -07:00
Paul Wells 6636e37664 add prometheus psrpc metrics observer (#1571)
* add prometheus psrpc metrics observer

* record rpc error counts

* update psrpc

* update protocol
2023-04-05 03:50:43 -07:00
Paul Wells 5564bc531f write signal messages from media without blocking (#1580) 2023-04-05 03:42:59 -07:00
David Zhao fc6a306031 Create a helper for retrieving a user's actual IP (#1579) 2023-04-04 19:32:49 -07:00
David Colburn 108b251045 egress updated webhook (#1555) 2023-03-27 16:34:44 -07:00
davidliu f05a3a047a add handling for react native and rust sdk client infos (#1544) 2023-03-25 01:27:37 +09:00
David Colburn 191a9e8014 update core to 0.0.5 (#1540)
* update core

* sort imports

* fix typos

* redundant types
2023-03-22 16:53:23 -07:00
David Colburn e8c7506d60 update deprecated egress client warning (#1533) 2023-03-20 13:46:47 -07:00
David Colburn b23a0e7f39 add active filter to ListEgress (#1517)
* add active filter to ListEgress

* update test

* missed a filter
2023-03-14 13:07:00 -07:00
Paul Wells 54bf7e0dac allow configuring signal message buffer size (#1504)
* allow configuring signal message buffer size

* update psrpc
2023-03-08 17:34:14 -08:00
Paul Wells 2c93d55e5c add stream retry middleware for signalling (#1503) 2023-03-08 00:51:19 -08:00
cnderrauber 11ae7fdbb6 Don't switch candidate if signal closed when pc failed (#1498)
* Don't switch candidate if signal closed when pc failed

* change comment

* test case
2023-03-08 15:16:40 +08:00
lukasIO 958d2f8284 Add topics to data channel messages (#1489)
* Add topics to data channel messages

* update protocol
2023-03-07 10:41:37 +01:00
Paul Wells e22de045ba add signal psrpc service (#1485)
* add signal psrpc service

* update protocol dep

* refactor for cloud

* update psrpc

* pr feedback
2023-03-03 15:49:46 -08:00
Benjamin Pracht 17ae1506f5 Chain twirpLogger and twirpRequestStatusHook properly for the Egress server (#1470) 2023-02-25 15:15:50 -07:00
David Colburn 3ac2a35c23 check nil video grants (#1463) 2023-02-23 11:30:59 -08:00
Haiyang Wang 15a9ad2b7a fix: unable to notify webhook when egress ending with status EgressStatus_EGRESS_LIMIT_REACHED (#1451) 2023-02-22 12:04:26 -08:00
Paul Wells b35d64ae86 finish timed version migration (#1443)
* finish timed version migration

* update protocol dep
2023-02-18 12:08:08 -08:00
David Colburn 6da9e85636 Remove deprecated ingress rpc (#1439)
* remove legacy ingress rpcs

* remove from io service
2023-02-17 11:40:38 -08:00
Raja Subramanian 14a94fe693 Fix panic when closing room (#1428) 2023-02-16 11:59:13 +05:30
David Colburn 10c53e0ebb Move psrpc to protocol (#1426)
* move psrpc to protocol

* update checks

* update protocol

* update protocol ref

* blank line
2023-02-15 16:47:38 -08:00
David Colburn c133b9f2e3 fix panic when output is missing (#1420) 2023-02-14 10:23:46 -08:00
David Zhao ea12e1477f Update to go-redis v9. Fixed Redis cluster support (#1415)
* Update to go-redis v9. Fixed Redis cluster support
2023-02-12 22:22:21 -08:00
Raja Subramanian 2006359a97 move SDP to Debugw (#1413) 2023-02-12 22:56:43 +05:30
David Zhao 3e08ff1043 version 1.3.4 (#1411) 2023-02-09 23:31:42 -08:00
David Zhao 9a7ea7a2fa Close previous request channels when during initial retry (#1409)
So we don't leave abandoned requests hanging on the media instance
2023-02-09 17:27:33 -08:00
Dan McFaul ad7e075c18 exit after panic (#1392)
* let panics crash

* Revert "let panics crash"

This reverts commit 8027cccadd.

* catch and log panics then os.Exit

* Recover only recovers, caller can exit

* only exit on pacic, still need Recover calls in goroutines
2023-02-09 16:33:22 -07:00
David Colburn d2f0496223 list egress by id (#1404)
* list egress by id

* update proto ref
2023-02-09 00:10:54 -08:00
cnderrauber 8b6dab780c Add reconnect reason and signal rtt calculation (#1381)
* Add connect reason and signal rtt calculate

* Update protocol

* solve comment
2023-02-06 11:12:25 +08:00
David Zhao be4764b93b Improve panic recovery to use participant logger. (#1375)
Also made IssueFullReconnect public
2023-02-02 14:55:50 -08:00
cnderrauber 7e5ba6a3b0 Improve connectivity check (#1366)
* Add Timer to detect dtls failure quickly

* Fix pc state check in timeout after ice

* More strict conditions to switch candidate type

* log for signal interuppt

* typo
2023-02-01 20:00:34 +08:00
Benjamin Pracht 30adc6ee15 Fix typo in twirp server status code parsing (#1361) 2023-01-31 17:43:59 -08:00
Raja Subramanian 71eac631a1 Log offer/answer close to WebSocket connection ingress/egress. (#1359) 2023-01-31 17:50:56 +05:30
Raja Subramanian 80c647ef15 Update PSRPC to 0.2.5 (#1357)
Not able to update cloud without this.
2023-01-31 14:11:44 +05:30
Benjamin Pracht c6e8887ab8 Allow requesting a specific Egress Cluster Id (#1342) 2023-01-30 17:04:26 -08:00
David Zhao 9a1f4ab18b Allow /rtc/validate to return room not found message (#1344)
It's not always possible for WebSocket clients to obtain status code or
error messages returned during WS Upgrade. Moving autocreation validation
to an explicit interface in the validation step so the /rtc/validate
would be able to return an appropriate message.
2023-01-29 21:41:44 -08:00
David Zhao 2fa46e2df4 Retry initial connection attempt should it fail (#1335)
Sometimes the initial selected node could fail. In that case, we'll give it a few more attempts to locate a media node for the session instead of failing it after the first try.
2023-01-25 22:59:57 -08:00
David Zhao bd39a96eac Tweak call stack depth to show more helpful error lines (#1333) 2023-01-25 15:35:18 -08:00
David Zhao cd6b8b80b9 feat: SubscriptionManager to consolidate subscription handling (#1317)
Added a new manager to handle all subscription needs. Implemented using reconciler pattern. The goals are:

improve subscription resilience by separating desired state and current state
reduce complexity of synchronous processing
better detect failures with the ability to trigger full reconnect
2023-01-24 23:06:16 -08:00
David Colburn e31b25300d update psrpc (#1312) 2023-01-18 13:52:03 -08:00