signalling

package
v2.11.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2025 License: Apache-2.0 Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnimplemented      = errors.New("unimplemented")
	ErrURLNotProvided     = errors.New("URL was not provided")
	ErrInvalidMessageType = errors.New("invalid message type")
	ErrInvalidParameter   = errors.New("invalid parameter")
	ErrCannotDialSignal   = errors.New("could not dial signal connection")
)

Functions

func NewHTTPHeaderWithToken added in v2.10.0

func NewHTTPHeaderWithToken(token string) http.Header

func ToHttpURL

func ToHttpURL(url string) string

func ToWebsocketURL

func ToWebsocketURL(url string) string

Types

type ConnectParams

type ConnectParams struct {
	AutoSubscribe          bool
	Reconnect              bool
	DisableRegionDiscovery bool

	RetransmitBufferSize uint16

	Metadata string // See WithMetadata

	Attributes map[string]string // See WithExtraAttributes

	Pacer pacer.Factory

	Interceptors []interceptor.Factory

	ICETransportPolicy webrtc.ICETransportPolicy
}

type SignalHandler

type SignalHandler interface {
	SetLogger(l protoLogger.Logger)

	HandleMessage(msg proto.Message) error
}

func NewSignalHandler

func NewSignalHandler(params SignalHandlerParams) SignalHandler

type SignalHandlerParams

type SignalHandlerParams struct {
	Logger    logger.Logger
	Processor SignalProcessor
}

type SignalProcessor

type SignalProcessor interface {
	OnJoinResponse(joinResponse *livekit.JoinResponse) error
	OnReconnectResponse(reconnectResponse *livekit.ReconnectResponse) error
	OnAnswer(sd webrtc.SessionDescription, answerId uint32)
	OnOffer(sd webrtc.SessionDescription, offerId uint32)
	OnTrickle(init webrtc.ICECandidateInit, target livekit.SignalTarget)
	OnParticipantUpdate([]*livekit.ParticipantInfo)
	OnLocalTrackPublished(response *livekit.TrackPublishedResponse)
	OnLocalTrackUnpublished(response *livekit.TrackUnpublishedResponse)
	OnSpeakersChanged([]*livekit.SpeakerInfo)
	OnConnectionQuality([]*livekit.ConnectionQualityInfo)
	OnRoomUpdate(room *livekit.Room)
	OnRoomMoved(moved *livekit.RoomMovedResponse)
	OnTrackRemoteMuted(request *livekit.MuteTrackRequest)
	OnTokenRefresh(refreshToken string)
	OnLeave(*livekit.LeaveRequest)
	OnLocalTrackSubscribed(trackSubscribed *livekit.TrackSubscribed)
	OnSubscribedQualityUpdate(subscribedQualityUpdate *livekit.SubscribedQualityUpdate)
	OnMediaSectionsRequirement(mediaSectionsRequirement *livekit.MediaSectionsRequirement)
}

type SignalTransport

type SignalTransport interface {
	SetLogger(l protoLogger.Logger)

	Start()
	IsStarted() bool
	Close()
	Join(
		ctx context.Context,
		url string,
		token string,
		connectParams ConnectParams,
		addTrackRequests []*livekit.AddTrackRequest,
		publisherOffer webrtc.SessionDescription,
	) error
	Reconnect(
		url string,
		token string,
		connectParams ConnectParams,
		participantSID string,
	) error
	SendMessage(msg proto.Message) error
}

func NewSignalTransportWebSocket

func NewSignalTransportWebSocket(params SignalTransportWebSocketParams) SignalTransport

type SignalTransportHandler

type SignalTransportHandler interface {
	OnTransportClose()
}

type SignalTransportWebSocketParams

type SignalTransportWebSocketParams struct {
	Logger                 logger.Logger
	Version                string
	Protocol               int
	Signalling             Signalling
	SignalTransportHandler SignalTransportHandler
	SignalHandler          SignalHandler
}

type Signalling

type Signalling interface {
	SetLogger(l protoLogger.Logger)

	Path() string
	ValidatePath() string

	PublishInJoin() bool

	ConnectQueryParams(
		version string,
		protocol int,
		connectParams *ConnectParams,
		addTrackRequests []*livekit.AddTrackRequest,
		publisherOffer webrtc.SessionDescription,
		participantSID string,
	) (string, error)
	HTTPRequestForValidate(
		ctx context.Context,
		version string,
		protocol int,
		urlPrefix string,
		token string,
		connectParams *ConnectParams,
		participantSID string,
	) (*http.Request, error)
	DecodeErrorResponse(errorDetails []byte) string

	SignalLeaveRequest(leave *livekit.LeaveRequest) proto.Message
	SignalICECandidate(trickle *livekit.TrickleRequest) proto.Message
	SignalSdpOffer(offer *livekit.SessionDescription) proto.Message
	SignalSdpAnswer(answer *livekit.SessionDescription) proto.Message
	SignalSimulateScenario(simulate *livekit.SimulateScenario) proto.Message
	SignalMuteTrack(mute *livekit.MuteTrackRequest) proto.Message
	SignalUpdateSubscription(updateSubscription *livekit.UpdateSubscription) proto.Message
	SignalSyncState(syncState *livekit.SyncState) proto.Message
	SignalAddTrack(addTrack *livekit.AddTrackRequest) proto.Message
	SignalSubscriptionPermission(subscriptionPermission *livekit.SubscriptionPermission) proto.Message
	SignalUpdateTrackSettings(settings *livekit.UpdateTrackSettings) proto.Message
	SignalUpdateParticipantMetadata(metadata *livekit.UpdateParticipantMetadata) proto.Message
}

func NewSignalling

func NewSignalling(params SignallingParams) Signalling

func NewSignallingJoinRequest added in v2.10.0

func NewSignallingJoinRequest(params SignallingJoinRequestParams) Signalling

type SignallingJoinRequestParams added in v2.10.0

type SignallingJoinRequestParams struct {
	Logger logger.Logger
}

type SignallingParams

type SignallingParams struct {
	Logger logger.Logger
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL