Documentation
¶
Overview ¶
Package turn contains the STUN/TURN server.
Index ¶
- func DecodeCampfireMessage(p []byte) (*v1.CampfireMessage, error)
- func EncodeCampfireMessage(msg *v1.CampfireMessage) ([]byte, error)
- func IsCampfireMessage(p []byte) bool
- func NewCampFireManager(pc net.PacketConn, log *slog.Logger) *campFireManager
- func ValidateCampfireMessage(msg *v1.CampfireMessage) error
- type CampfireAnswer
- type CampfireCandidate
- type CampfireClient
- func (c *CampfireClient) Announce(ufrag, pwd string) error
- func (c *CampfireClient) Answers() <-chan CampfireAnswer
- func (c *CampfireClient) Candidates() <-chan CampfireCandidate
- func (c *CampfireClient) Close() error
- func (c *CampfireClient) Errors() <-chan error
- func (c *CampfireClient) Offers() <-chan CampfireOffer
- func (c *CampfireClient) SendAnswer(offerID, ufrag, pwd string, answer webrtc.SessionDescription) error
- func (c *CampfireClient) SendCandidate(offerID, ufrag, pwd string, candidate *webrtc.ICECandidate) error
- func (c *CampfireClient) SendOffer(ufrag, pwd string, offer webrtc.SessionDescription) error
- type CampfireClientOptions
- type CampfireOffer
- type Options
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeCampfireMessage ¶ added in v0.1.6
func DecodeCampfireMessage(p []byte) (*v1.CampfireMessage, error)
DecodeCampfireMessage decodes a campfire message.
func EncodeCampfireMessage ¶ added in v0.1.6
func EncodeCampfireMessage(msg *v1.CampfireMessage) ([]byte, error)
EncodeCampfireMessage encodes a campfire message.
func IsCampfireMessage ¶ added in v0.1.6
IsCampfireMessage returns true if the given packet is a campfire message.
func NewCampFireManager ¶ added in v0.1.6
func NewCampFireManager(pc net.PacketConn, log *slog.Logger) *campFireManager
NewCampFireManager creates a new campfire manager.
func ValidateCampfireMessage ¶ added in v0.1.6
func ValidateCampfireMessage(msg *v1.CampfireMessage) error
ValidateCampfireMessage validates a campfire message.
Types ¶
type CampfireAnswer ¶ added in v0.1.5
type CampfireAnswer struct {
// ID contains the ID of the negotiation. This will always be the same as the client ID.
ID string
// Ufrag contains the username fragment of the peer that sent the answer.
Ufrag string
// Pwd contains the password of the peer that sent the answer.
Pwd string
// SDP contains the SDP of the answer.
SDP webrtc.SessionDescription
}
CampfireAnswer represents an answer that was received from a peer.
type CampfireCandidate ¶ added in v0.1.5
type CampfireCandidate struct {
// ID contains the ID of the peer that initiated the negotiation.
ID string
// Ufrag contains the username fragment of the peer that sent the candidate.
Ufrag string
// Pwd contains the password of the peer that sent the candidate.
Pwd string
// Cand contains the candidate.
Cand webrtc.ICECandidateInit
}
CampfireCandidate represents a candidate that was received from a peer.
type CampfireClient ¶ added in v0.1.5
type CampfireClient struct {
// contains filtered or unexported fields
}
CampfireClient represents a client that can communicate with a TURN server supporting campfire.
func NewCampfireClient ¶ added in v0.1.5
func NewCampfireClient(opts CampfireClientOptions) (*CampfireClient, error)
NewCampfireClient creates a new CampfireClient.
func (*CampfireClient) Announce ¶ added in v0.1.5
func (c *CampfireClient) Announce(ufrag, pwd string) error
Announce announces interest in offers containing the given ufrag and pwd.
func (*CampfireClient) Answers ¶ added in v0.1.5
func (c *CampfireClient) Answers() <-chan CampfireAnswer
Answers returns a channel of answers received from peers.
func (*CampfireClient) Candidates ¶ added in v0.1.5
func (c *CampfireClient) Candidates() <-chan CampfireCandidate
Candidates returns a channel of candidates received from peers.
func (*CampfireClient) Close ¶ added in v0.1.5
func (c *CampfireClient) Close() error
Close closes the client.
func (*CampfireClient) Errors ¶ added in v0.1.5
func (c *CampfireClient) Errors() <-chan error
Errors returns a channel of errors.
func (*CampfireClient) Offers ¶ added in v0.1.5
func (c *CampfireClient) Offers() <-chan CampfireOffer
Offers returns a channel of offers received from peers.
func (*CampfireClient) SendAnswer ¶ added in v0.1.5
func (c *CampfireClient) SendAnswer(offerID, ufrag, pwd string, answer webrtc.SessionDescription) error
SendAnswer sends an answer to the peer with the given ufrag and pwd.
func (*CampfireClient) SendCandidate ¶ added in v0.1.5
func (c *CampfireClient) SendCandidate(offerID, ufrag, pwd string, candidate *webrtc.ICECandidate) error
SendCandidate sends a candidate to the peer with the given ufrag and pwd. If offerID is empty, the local ID is used.
func (*CampfireClient) SendOffer ¶ added in v0.1.5
func (c *CampfireClient) SendOffer(ufrag, pwd string, offer webrtc.SessionDescription) error
SendOffer sends an offer to the peer with the given ufrag and pwd.
type CampfireClientOptions ¶ added in v0.1.5
type CampfireClientOptions struct {
// ID is a unique identifier for the client. If left unset, a random ID will be
// generated.
ID string
// Addr is the address of the STUN/TURN server.
Addr string
// Ufrag is the username fragment to use when communicating with the server.
Ufrag string
// Pwd is the password to use when communicating with the server.
Pwd string
// PSK is the pre-shared key used for encrypting/decrypting the data in sent/received
// messages.
PSK []byte
}
CampfireClientOptions represents options for a CampfireClient.
type CampfireOffer ¶ added in v0.1.5
type CampfireOffer struct {
// ID contains the ID of the peer that sent the offer.
ID string
// Ufrag contains the username fragment of the peer that sent the offer.
Ufrag string
// Pwd contains the password of the peer that sent the offer.
Pwd string
// SDP contains the SDP of the offer.
SDP webrtc.SessionDescription
}
CampfireOffer represents an offer that was received from a peer.
type Options ¶
type Options struct {
// PublicIP is the public IP address of the TURN server. This is used for relaying.
PublicIP string
// RelayAddressUDP is the binding address the TURN server uses for request handling and STUN relays.
// Defaults to 0.0.0.0.
RelayAddressUDP string
// ListenUDP is the address the TURN server listens on for UDP requests.
ListenUDP string
// Realm is the realm used for authentication.
Realm string
// PortRange is the range of ports the TURN server will use for relaying.
PortRange string
// EnableCampfire enables relaying campfire packets.
EnableCampfire bool
}
Options contains the options for the TURN server.