diff --git a/pkg/service/ingress.go b/pkg/service/ingress.go index 73de7663c..a8fd81d6c 100644 --- a/pkg/service/ingress.go +++ b/pkg/service/ingress.go @@ -139,7 +139,10 @@ func (s *IngressService) CreateIngressWithUrl(ctx context.Context, urlStr string urlStr = urlObj.String() } - sk := utils.NewGuid("") + var sk string + if req.InputType != livekit.IngressInput_URL_INPUT { + sk = utils.NewGuid("") + } info := &livekit.IngressInfo{ IngressId: utils.NewGuid(utils.IngressPrefix), diff --git a/pkg/service/redisstore.go b/pkg/service/redisstore.go index e8fe4ecc9..df119a5e5 100644 --- a/pkg/service/redisstore.go +++ b/pkg/service/redisstore.go @@ -514,7 +514,7 @@ func (s *RedisStore) storeIngress(_ context.Context, info *livekit.IngressInfo) if info.IngressId == "" { return errors.New("Missing IngressId") } - if info.StreamKey == "" { + if info.StreamKey == "" && info.InputType != livekit.IngressInput_URL_INPUT { return errors.New("Missing StreamKey") } @@ -543,7 +543,9 @@ func (s *RedisStore) storeIngress(_ context.Context, info *livekit.IngressInfo) results, err := tx.TxPipelined(s.ctx, func(p redis.Pipeliner) error { p.HSet(s.ctx, IngressKey, info.IngressId, data) - p.HSet(s.ctx, StreamKeyKey, info.StreamKey, info.IngressId) + if info.StreamKey != "" { + p.HSet(s.ctx, StreamKeyKey, info.StreamKey, info.IngressId) + } if oldRoom != info.RoomName { if oldRoom != "" { @@ -799,7 +801,9 @@ func (s *RedisStore) UpdateIngressState(ctx context.Context, ingressId string, s func (s *RedisStore) DeleteIngress(_ context.Context, info *livekit.IngressInfo) error { tx := s.rc.TxPipeline() tx.SRem(s.ctx, RoomIngressPrefix+info.RoomName, info.IngressId) - tx.HDel(s.ctx, StreamKeyKey, info.IngressId) + if info.StreamKey != "" { + tx.HDel(s.ctx, StreamKeyKey, info.StreamKey) + } tx.HDel(s.ctx, IngressKey, info.IngressId) tx.Del(s.ctx, IngressStatePrefix+info.IngressId) if _, err := tx.Exec(s.ctx); err != nil {