From d6ebc081d50574f7bb23cf2746d1534f3ed34fc9 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Sat, 2 Sep 2023 17:36:55 -0700 Subject: [PATCH] Use random NodeID instead of MAC based (#2029) Makes it possible to run multiple instances of livekit-server locally. Also enables Signal Relay by default as default signal proxy. --- config-sample.yaml | 4 ++-- pkg/config/config.go | 2 +- pkg/routing/node.go | 5 +---- pkg/routing/redisrouter.go | 4 ++-- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/config-sample.yaml b/config-sample.yaml index aa2b01889..c800abd16 100644 --- a/config-sample.yaml +++ b/config-sample.yaml @@ -152,7 +152,7 @@ keys: # enable_remote_unmute: true # # limit size of room and participant's metadata, 0 for no limit # max_metadata_size: 0 -# # control playout delay in ms of video track (and associated audio track) +# # control playout delay in ms of video track (and associated audio track) # playout_delay: # enabled: true # min: 100 @@ -171,7 +171,7 @@ keys: # since v1.4.0, a more reliable, psrpc based signal relay is available # this gives us the ability to reliably proxy messages between a signal server and RTC node # signal_relay: -# # disabled by default. will be enabled by default in future versions +# # enabled by default as of v1.5.0, legacy signal proxy will be removed in v1.6 # enabled: true # # amount of time a message delivery is tried before giving up # retry_timeout: 30s diff --git a/pkg/config/config.go b/pkg/config/config.go index 828ba0bf3..b8dc6044e 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -476,7 +476,7 @@ var DefaultConfig = Config{ CPULoadLimit: 0.9, }, SignalRelay: SignalRelayConfig{ - Enabled: false, + Enabled: true, RetryTimeout: 7500 * time.Millisecond, MinRetryInterval: 500 * time.Millisecond, MaxRetryInterval: 4 * time.Second, diff --git a/pkg/routing/node.go b/pkg/routing/node.go index 16dc769a2..022d740ae 100644 --- a/pkg/routing/node.go +++ b/pkg/routing/node.go @@ -27,10 +27,7 @@ import ( type LocalNode *livekit.Node func NewLocalNode(conf *config.Config) (LocalNode, error) { - nodeID, err := utils.LocalNodeID() - if err != nil { - return nil, err - } + nodeID := utils.NewGuid(utils.NodePrefix) if conf.RTC.NodeIP == "" { return nil, ErrIPNotSet } diff --git a/pkg/routing/redisrouter.go b/pkg/routing/redisrouter.go index ef679261f..a3e7e8365 100644 --- a/pkg/routing/redisrouter.go +++ b/pkg/routing/redisrouter.go @@ -212,7 +212,7 @@ func (r *RedisRouter) WriteParticipantRTC(_ context.Context, roomName livekit.Ro return err } - rtcSink := NewRTCNodeSink(r.rc, livekit.NodeID(rtcNode), livekit.ConnectionID("ephemeral"), pkey, pkeyB62) + rtcSink := NewRTCNodeSink(r.rc, livekit.NodeID(rtcNode), "ephemeral", pkey, pkeyB62) msg.ParticipantKey = string(ParticipantKeyLegacy(roomName, identity)) msg.ParticipantKeyB62 = string(ParticipantKey(roomName, identity)) return r.writeRTCMessage(rtcSink, msg) @@ -229,7 +229,7 @@ func (r *RedisRouter) WriteRoomRTC(ctx context.Context, roomName livekit.RoomNam } func (r *RedisRouter) WriteNodeRTC(_ context.Context, rtcNodeID string, msg *livekit.RTCNodeMessage) error { - rtcSink := NewRTCNodeSink(r.rc, livekit.NodeID(rtcNodeID), livekit.ConnectionID("ephemeral"), livekit.ParticipantKey(msg.ParticipantKey), livekit.ParticipantKey(msg.ParticipantKeyB62)) + rtcSink := NewRTCNodeSink(r.rc, livekit.NodeID(rtcNodeID), "ephemeral", livekit.ParticipantKey(msg.ParticipantKey), livekit.ParticipantKey(msg.ParticipantKeyB62)) return r.writeRTCMessage(rtcSink, msg) }