model

package
v0.17.2 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectionState

type ConnectionState struct {
	// === Bot config ===
	Sender      bool
	Log         *log.Logger
	BOSHSender  httpxml.BOSHSender
	BotRandom   string
	Nickname    string
	LANServerIP string // e.g. "10.99.0.210"
	LANClientIP string // e.g. "10.99.0.219"

	// sender related fields
	SenderSSRC  *string
	SenderMSID  *string
	FrameSource ivf.FrameSource
	CameraPaths []string // IVF file paths for SVC probe

	// === Static config ===
	BoshURL    string // e.g. https://10.99.0.210/http-bind
	Domain     string // e.g. "10.99.0.210"
	RoomName   string // e.g. "asdf"
	MachineUID string // Unique ID for the client
	RID        int64  // Rolling BOSH request ID

	// === BOSH/XMPP session ===
	Sid           string // BOSH session ID
	AuthID        string // Auth ID from BOSH
	Jid           string // Full JID after bind
	Authenticated bool   // After SASL success
	Bound         bool   // After resource bind
	InRoom        bool   // After <presence>

	FocusJid string // Jicofo's JID

	// === ICE/STUN/TURN ===
	IceServers []ICEServer // Discovered via extdisco

	ICEUfrag    string // ICE username fragment
	ICEPwd      string // ICE password
	Fingerprint string // DTLS fingerprint

	Candidates []ICECandidate // ICE host/reflexive/relay candidates

	// === Jingle ===
	JingleSID string // Jingle session ID
	RemoteSDP string // Raw Jingle offer
	LocalSDP  string // Generated SDP

	// PendingBOSHResponse holds the raw response from the most recent BOSH
	// request (typically Step08's presence response) so that Step09 can
	// inspect it for stanzas (e.g. disco#info) that arrived before polling
	// began, rather than discarding them.
	PendingBOSHResponse string

	// === Optional ===
	ColibriWebSocketURL string // For optional low-level stats

	// === SSRCs ===
	Sources map[string][]uint32 // Example: map[mediaType][]SSRCs

	ForcedCandidateIP       string
	ForcedCandidatePort     int
	ForcedCandidatePriority int
}

ConnectionState is an object built by the signaling flow

type ICECandidate

type ICECandidate struct {
	Foundation string
	Component  int
	Protocol   string // udp, tcp
	Priority   uint32
	IP         string
	Port       int
	Type       string // host, srflx, relay
	Generation int
	ID         string // candidate ID
	Network    int
}

ICECandidate models one <candidate> from Jingle

type ICEServer

type ICEServer struct {
	Type       string // stun, turn, turns
	Transport  string // udp, tcp
	Host       string
	Port       int
	Username   string // for TURN
	Password   string // for TURN
	Expiry     string // expires ISO8601
	Restricted bool   // true if restricted TURN creds
}

ICEServer holds one STUN/TURN server entry

Jump to

Keyboard shortcuts

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