Commit Graph

171 Commits

Author SHA1 Message Date
David Colburn
2c9ef2f6bb Update recording service (#137)
* update recording service

* return empty for EndRecording

* update protocol
2021-10-08 13:44:41 -05: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
Théo Monnom
939ed10ca6 Room Metadata Implementation (#126) 2021-10-02 22:08:29 -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 Colburn
d83b7b543d update protocol 2021-09-22 13:48:37 -07:00
David Colburn
347bf0345a Recording webhooks (#125)
* dump

* update protocol

* const

* regenerate wire

* message bus nil check

* nil message bus if no redis

* start and stop rec service
2021-09-21 23:46:25 -05:00
David Zhao
3ed3afad2c Recognize Go client in parsing 2021-09-17 16:25:47 -07:00
David Colburn
c4c14785be let the room manager delete from router and store (#121) 2021-09-17 13:57:06 -05: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 Zhao
614ede2edc Supports client protocol 3 - subscriber as primary (#110)
* use subscriber connection as primary whenever possible

* backwards compat for data messages

* bump protocol version
2021-09-09 00:53:15 -07:00
David Colburn
2a3fb5f0e7 move logging to protocol (#109) 2021-09-09 00:45:42 -07:00
David Colburn
e9ffbefa70 move recorder to msg bus (#108) 2021-09-02 17:06:48 -05: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
eb6e763e8d use request context in rtc service 2021-08-30 23:27:04 -07: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
2fd61531d2 small refactor (#104) 2021-08-30 18:22:11 -05:00
David Colburn
0bfd05c3b8 move router room manager link (#103) 2021-08-30 17:18:18 -05:00
David Colburn
69c1d4c295 Interfaces (#97)
* create interface

* move room manager to interface

* interfaces

* updates

* fix loop

* fix fakes

* remove node types
2021-08-28 18:28:08 -05: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
David Colburn
b95701c7da update protocol 2021-08-25 13:42:02 -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
PJC
9016da1936 check turn domain and port range (#90)
* check negative turn port

* check turn domain

* domain check test code
2021-08-23 10:49:16 -07:00
David Zhao
bcf6e15e07 SendData API & publishData permission (#88)
* SendData Server API

* SendData Server-API adjustments based on suggestions

* Update proto version

* enforce publishData permission

* go mod tidy

* fix go.mod

* go mod tidy

Co-authored-by: ChesterMing <89124853+ChesterMing@users.noreply.github.com>
2021-08-19 18:11:48 -07:00
David Zhao
29edf4e8d9 Improve dynamic simulcast, properly cleanup after pendingTracks (#84) 2021-08-13 15:49:25 -07:00
David Zhao
6fe0d4bafc webhook type -> event 2021-08-09 23:37:01 -07:00
David Zhao
9495646f1a webhooks support (#81) 2021-08-09 09:57:37 -07:00
David Colburn
1f4288744c upgrade protocol 2021-08-06 16:02:49 -07:00
David Colburn
6111b2d4f8 Recording apis (#78)
* apis with auth

* recording service

* record permission

* protocol 0.6.5

* bump version
2021-08-04 22:44:06 -05:00
David Colburn
a53deecb82 revert recording apis 2021-08-03 00:19:19 -07:00
David Zhao
a9c4851113 Fix external IP discovery. fix LeaveRequest during server disconnect (#72) 2021-07-28 21:33:34 -07:00
David Colburn
b00d5a02cb RoomRecorder (#70) 2021-07-27 00:39:48 -05:00
David Zhao
f8782fae3f Send stun servers to clients (#69)
* Send stun servers to clients

* use TURN/UDP as STUN servers
2021-07-26 15:43:26 -07:00
David Zhao
834dce543b fix participant APIs when using LocalRouter (#67) 2021-07-22 11:06:23 -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
hn8
06c44ca8f6 feat: support UDP in TURN (#61)
1. Add UDP option to TURN
2. GetLocalIPAddress default to IPv4
2021-07-19 09:21:59 -07:00
hn8
99e9997d0a feat: support SetLogger & SetLoggerFactory (#57)
* upgrade logr to stable release v1.0.0

* feat: support SetLogger & SetLoggerFactory
2021-07-18 21:28:09 -07:00
Andy Lindeman
7b05e2fb30 Propagate err2 if not nil (#56) 2021-07-17 10:14:52 -07:00
David Colburn
e3fc3397ce move cors to middleware (#54)
* move cors to middleware

* check for nil url

* remove snapshot
2021-07-15 18:36:54 -05:00
David Colburn
53bc65285c connection validation 2021-07-15 14:23:17 -07:00
David Zhao
53b52a67ca use protobuf for clients with protocol > 1 (#52) 2021-07-13 22:28:34 -07:00
David Zhao
850fecf931 Allow publishers to set layer availability (#51)
* support client message to update active layers

* update to match new protocol
2021-07-13 21:35:08 -07:00
David Colburn
5fdb6361cd Dev debug info (#50) 2021-07-13 14:05:25 -05:00
David Zhao
d38fc43b89 Lock room creation to ensure atomic creation & node assignment (#46)
* Lock room creation to ensure atomic creation & node assignment

* more tests
2021-07-12 14:50:14 -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 Colburn
50538db21f update log keys 2021-07-09 10:49:21 -07:00