David Colburn
faa870de3d
Move callbacks out of messageRouter ( #269 )
...
* move callbacks out of messageRouter
* OCD
* more OCD
* fix forwarder test
* even more OCD
* maximum OCD
* package name collision, copy lock by value
2021-12-17 13:19:23 -08:00
Raja Subramanian
e54ce4f674
Stream Allocator Try 3 ( #257 )
...
* Stream Allocator Try 3
Making an intermediate PR to do
- Special treatment for screen share tracks
- When allocating all tracks,
o try to stream all tracks by starting with the lowest layer
o multi-pass across tracks to get a more even distribution
Not yet done:
-------------
In deficient state,
o Allocate a specific track on a change
o Steal from other tracks
* Correct sense of managed track
* have to range to copy
* generate
* fix VideoLayers compare
* Use t.simulcasted
2021-12-14 12:48:09 +05:30
Mathew Kamkar
bd42a39117
Include node ID with Prometheus metrics ( #251 )
...
* include node id in prometheus metrics
* static prom init and nodeID
* update protocol dep
2021-12-10 15:49:14 -08:00
David Zhao
2d93ccd668
Updated protocol from protocol/proto -> protocol/livekit ( #242 )
...
* Updated protocol from protocol/proto -> protocol/livekit
* separate MediaTrack from PublishedTrack
2021-12-08 13:58:38 -08:00
David Colburn
c41384cd09
ActiveRecording ( #234 )
...
* ActiveRecording
* regenerate
* update to 0.10.3
* 1.17
2021-12-03 21:40:53 -08:00
Mathew Kamkar
e3c91de594
Configurable limit for number of tracks ( #197 )
...
* configurable node track limit
* sample config
* todos
* end of file new line
* default max num tracks
* bandwidth limit
* client message for limit exceeded node
* 10 Gbps default network limit
2021-11-23 15:48:07 -08:00
David Colburn
95e29d3766
Interface updates ( #194 )
...
* update interfaces, a bit of cleaning
* regenerate
* return interface for RoomService
* export packetBufferSize
* update router interface
* move participant key into router
* change locks back
* read only room store
* fix server rm locks
* update SendJoinResponse
* clean up imports
* update room messaging
* regenerate
2021-11-15 15:25:50 -06:00
David Zhao
ffb2c50a70
Fixed room API breakage ( #190 )
2021-11-14 11:18:01 -08:00
Mathew Kamkar
9336a0dab5
health check depends on updated stats ( #183 )
2021-11-10 14:11:44 -08:00
Mathew Kamkar
94aec3b98d
Node updates stats with KeepAlive message to self ( #177 )
...
* node sends KeepAlive message to self
* use WriteRTCNodeMessage instead of participants[0]
2021-11-09 17:19:46 -08:00
David Colburn
289ebd32ff
Telemetry refactor ( #172 )
...
* telemetry refactor
* fix imports
* update protocol
2021-11-08 20:00:34 -06:00
David Colburn
0c8fe361b2
Small refactor ( #148 )
...
* small refactor
* extra line
* fix room allocator test
* selector fakes not used
* keep decisions out of router
* put nodeId logic back
* fix room allocator test
2021-10-18 21:49:16 -05:00
David Zhao
575b99840a
Fixed handling of multiple nodes in region-aware routing
2021-10-10 22:25:29 -07:00
Brint E. Kriebel
822f8c3944
Region Aware node selection fixes and enhancements ( #141 )
...
* cli: Allow setting the current node region with flag or env variable
Also add region to "starting LiveKit server" log.
* routing: Add region to node registration
Register the node's region on the selected router so it can be used for
region aware node selection.
Also add the region to the list-nodes output.
* regionaware: Set minDist to zero for the current node
If you don't set the minDist when leaving the loop early for a node that
matches the current region, the minDist value with still be at max. This
causes the the wrong node to be selected if the current node is the
first one the loop passes through.
Add a test that validates this change. The new test fails if this new
change is not in place.
2021-10-10 22:21:37 -07:00
Mathew Kamkar
b212fb9a9e
Prometheus counter for Signal/RTC messages ( #139 )
2021-10-08 12:02:08 -07:00
David Zhao
52e10ea315
handle nil MessageChannel
2021-10-06 22:24:09 -07:00
David Zhao
c745f0a318
Region aware routing ( #135 )
...
* Region aware routing
* update config, fix spacing on commented out lines
2021-10-06 21:40:04 -07:00
David Zhao
cdb04248fb
Fixed reconnection for single node
...
It does not yet support resuming the session.
2021-09-24 14:19:23 -07:00
David Zhao
ff47301820
Implements protocol 3 speaker updates ( #120 )
...
* Disallow AddTrack from participants that don't have the permission
* Support protocol 3 speaker updates, client info
* update protocol
* Disallow AddTrack from participants that don't have the permission
* increase wait time for GH to pass
2021-09-17 11:47:13 -07:00
David Colburn
abde72a907
Remove room manager from room service ( #119 )
...
* start splitting
* room allocator
* remove room manager
* Update pkg/service/roomallocator.go
Co-authored-by: David Zhao <david@davidzhao.com >
Co-authored-by: David Zhao <david@davidzhao.com >
2021-09-17 01:29:29 -05:00
Mathew Kamkar
700a879c0b
Redis Router graceful stop ( #116 )
...
* prestop and hasparticipants in interface
* add prestop function to existing routers
* fakerouter prestop
* update protocol version
* read lock
* redis router graceful stop
* test fix
* force stop
2021-09-15 13:07:44 -07:00
David Colburn
2a3fb5f0e7
move logging to protocol ( #109 )
2021-09-09 00:45:42 -07:00
David Zhao
e82d50d717
Send explicit message to clients for mute/unmute. ( #107 )
...
* Send explicit message to clients for mute/unmute.
* documentation in config
2021-09-01 21:50:02 -07:00
David Colburn
4044c314b8
participant key ( #106 )
...
* participant key
* update fake router
* WriteRTCMessage
* move sink closing
* unused code
2021-08-31 16:14:06 -05:00
David Colburn
1f1eea383f
add ctx to interfaces ( #105 )
...
* add ctx to interfaces
* use existing context
2021-08-30 20:31:24 -05:00
David Colburn
1e10d440c8
export error
2021-08-30 17:03:39 -07:00
David Colburn
8a44fad307
protocol 0.8 ( #95 )
...
* protocol 0.8
* merge new selector
2021-08-27 13:16:33 -05:00
Mathew Kamkar
c437152e2b
NodeSelector using system load metric ( #94 )
...
* use load when selecting nodes
* Apply suggestions from code review
Co-authored-by: David Zhao <david@davidzhao.com >
* sysload selector test
* wire nodeSelectorFromConfig
* fix tests
* Update pkg/routing/selectorsystemload_test.go
Co-authored-by: David Zhao <david@davidzhao.com >
* dz review: nits
Co-authored-by: David Zhao <david@davidzhao.com >
2021-08-26 15:24:39 -07:00
Mathew Kamkar
f9590afe1a
include packet and system info with node stats ( #92 )
...
* include packet and system info with node stats
* add more packet and system stats
* revert magefile, clean up system stats error handling
* update procol version
* dz review: error return
2021-08-25 12:04:28 -07:00
Mathew Kamkar
f5466c74e6
list-nodes command action ( #87 )
...
* list-nodes command action
* refactor stats into a package
* store existing stats in redis, more refactoring
* dz review: atomic load
2021-08-24 10:14:39 -07:00
David Zhao
834dce543b
fix participant APIs when using LocalRouter ( #67 )
2021-07-22 11:06:23 -07:00
David Colburn
d7be9096c6
persist hidden field to startSession
2021-07-20 17:23:06 -07:00
David Colburn
4bab395ac9
Hidden participants ( #65 )
...
Enables hidden recording and/or forwarding participants
2021-07-19 18:33:28 -05:00
hn8
87dfb2b117
log: consistent log key ( #60 )
2021-07-19 10:28:51 -07:00
David Zhao
a80e8cf69f
Enable passing in local IP, refactored IP detection ( #48 )
...
* Enable passing in local IP, refactored IP detection
* update docker server instructions
2021-07-11 08:42:11 -07:00
David Zhao
4e6eafa63c
for test environments, allow use of internal IP if external IP isn't available
2021-06-30 15:14:58 -07:00
David Zhao
bbf7f83784
Improve integration test reliability, wait for RedisRouter to start
2021-06-09 09:51:44 -07:00
David Zhao
a3228c2ae9
resolve data race conditions, code quality
2021-06-04 14:57:55 -07:00
David Colburn
5baf97e99b
imports/inspections
2021-06-04 14:30:10 -05:00
David Colburn
69b94e1142
error logging
2021-06-03 01:57:43 -05:00
David Zhao
0900054c24
ability to disable auto subscribe per participant
2021-05-22 22:54:47 -07:00
David Zhao
0dddc3c0be
DeleteRoom now removes all participants in the room
2021-04-21 22:30:29 -07:00
David Zhao
93d10b2640
Manual negotiation and plan-b support
2021-04-16 00:56:25 -07:00
David Zhao
e4238890ff
Refactor/cleanup of negotiation path
2021-04-15 17:03:22 -07:00
David Zhao
144351a89a
use RWMutex for router channel lookup
2021-04-06 17:16:55 -07:00
David Zhao
f7ed2cee60
RoomService.updateParticipantMetadata, participant permissions
2021-03-16 01:22:21 -07:00
David Zhao
093d99b010
update dependencies, minor fixes
2021-03-15 11:42:57 -07:00
David Zhao
7d02c01fd8
refactor - moved common code to livekit/protocol
2021-03-13 22:01:51 -08:00
David Zhao
ddfddfff53
fixed mismatched codec type in pion, increase message chan buffer to avoid overflow during message handling
2021-03-02 01:10:34 -08:00
David Zhao
a010b618af
re-assign node for room if existing node for room is no longer available
2021-02-20 21:09:04 -08:00