Help us shape the future of Go! Take the 2026 Go Developer Survey

steps

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Step01_StartSession

func Step01_StartSession(state *model.ConnectionState) error

Step01_StartSession starts the BOSH session: sends the initial request, parses SID/AuthID.

func Step02_Authenticate

func Step02_Authenticate(state *model.ConnectionState) error

Step02_Authenticate sends the SASL auth request (ANONYMOUS) and checks for success.

func Step03_RestartStream

func Step03_RestartStream(state *model.ConnectionState) error

Step03_RestartStream sends the stream restart request after SASL success.

func Step04_BindResource

func Step04_BindResource(state *model.ConnectionState) error

Step04_BindResource sends an <iq type='set'> to bind a resource and gets your JID.

func Step05_CreateSession

func Step05_CreateSession(state *model.ConnectionState) error

Step05_CreateSession sends the IQ to create a session. Completes XMPP session negotiation after resource binding.

func Step06_DiscoverServices

func Step06_DiscoverServices(state *model.ConnectionState) error

Step06_DiscoverServices queries the STUN/TURN servers via extdisco.

func Step07_CreateConference

func Step07_CreateConference(state *model.ConnectionState) error

Step07_CreateConference sends the IQ to the focus component to create/join the conference.

func Step08_JoinRoom

func Step08_JoinRoom(state *model.ConnectionState) error

Step08_JoinRoom sends the initial <presence/> stanza to the MUC room.

func Step09_WaitForJingleOffer

func Step09_WaitForJingleOffer(state *model.ConnectionState) error

func Step10_SendSessionAccept

func Step10_SendSessionAccept(state *model.ConnectionState) error

func Step10_Sender_SendSessionAccept

func Step10_Sender_SendSessionAccept(state *model.ConnectionState) error

func Step11_Sender_AnnounceCameraSource

func Step11_Sender_AnnounceCameraSource(state *model.ConnectionState) error

Types

type CodecListElem

type CodecListElem struct {
	XMLName xml.Name `xml:"jabber:client jitsi_participant_codecList"`
	Value   string   `xml:",chardata"`
}

type DTLSFingerprint

type DTLSFingerprint struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:dtls:0 fingerprint"`
	Hash    string   `xml:"hash,attr"`
	Setup   string   `xml:"setup,attr"`
	Value   string   `xml:",chardata"`
}

type DiscoFeature

type DiscoFeature struct {
	XMLName xml.Name `xml:"http://jabber.org/protocol/disco#info feature"`
	Var     string   `xml:"var,attr"`
}

type DiscoIdentity

type DiscoIdentity struct {
	XMLName  xml.Name `xml:"http://jabber.org/protocol/disco#info identity"`
	Category string   `xml:"category,attr"`
	Type     string   `xml:"type,attr"`
	Name     string   `xml:"name,attr"`
}

type DiscoInfoQuery

type DiscoInfoQuery struct {
	XMLName    xml.Name `xml:"http://jabber.org/protocol/disco#info query"`
	Identities []DiscoIdentity
	Features   []DiscoFeature
}

type ExtDiscoServices

type ExtDiscoServices struct {
	XMLName xml.Name `xml:"urn:xmpp:extdisco:2 services"`
}

type ExtmapAllowMixed

type ExtmapAllowMixed struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0 extmap-allow-mixed"`
}

type FocusConference

type FocusConference struct {
	XMLName    xml.Name `xml:"http://jitsi.org/protocol/focus conference"`
	Room       string   `xml:"room,attr"`
	MachineUID string   `xml:"machine-uid,attr"`
	Properties []FocusProperty
}

type FocusProperty

type FocusProperty struct {
	XMLName xml.Name `xml:"http://jitsi.org/protocol/focus property"`
	Name    string   `xml:"name,attr"`
	Value   string   `xml:"value,attr"`
}

type HostCandidate

type HostCandidate struct {
	IP       string
	Port     int
	Priority int
}

type ICECandidateElem

type ICECandidateElem struct {
	XMLName    xml.Name `xml:"urn:xmpp:jingle:transports:ice-udp:1 candidate"`
	Foundation string   `xml:"foundation,attr"`
	Component  string   `xml:"component,attr"`
	Protocol   string   `xml:"protocol,attr"`
	IP         string   `xml:"ip,attr"`
	Port       string   `xml:"port,attr"`
	Priority   string   `xml:"priority,attr"`
	Type       string   `xml:"type,attr"`
}

type ICETransport

type ICETransport struct {
	XMLName     xml.Name `xml:"urn:xmpp:jingle:transports:ice-udp:1 transport"`
	Ufrag       string   `xml:"ufrag,attr,omitempty"`
	Pwd         string   `xml:"pwd,attr,omitempty"`
	SCTPMap     *SCTPMapElem
	Fingerprint *DTLSFingerprint
	Candidate   *ICECandidateElem
}

type IQBind

type IQBind struct {
	XMLName xml.Name `xml:"jabber:client iq"`
	ID      string   `xml:"id,attr"`
	Type    string   `xml:"type,attr"`
	Bind    XMPPBind
}

type IQConference

type IQConference struct {
	XMLName    xml.Name `xml:"jabber:client iq"`
	ID         string   `xml:"id,attr"`
	Type       string   `xml:"type,attr"`
	To         string   `xml:"to,attr"`
	Conference FocusConference
}

type IQDiscoInfoResult

type IQDiscoInfoResult struct {
	XMLName xml.Name `xml:"jabber:client iq"`
	From    string   `xml:"from,attr"`
	To      string   `xml:"to,attr"`
	ID      string   `xml:"id,attr"`
	Type    string   `xml:"type,attr"`
	Query   DiscoInfoQuery
}

type IQDiscoverServices

type IQDiscoverServices struct {
	XMLName  xml.Name `xml:"jabber:client iq"`
	ID       string   `xml:"id,attr"`
	Type     string   `xml:"type,attr"`
	To       string   `xml:"to,attr"`
	Services ExtDiscoServices
}

type IQJingle

type IQJingle struct {
	XMLName xml.Name `xml:"jabber:client iq"`
	ID      string   `xml:"id,attr"`
	To      string   `xml:"to,attr"`
	Type    string   `xml:"type,attr"`
	Jingle  JingleElem
}

type IQPing

type IQPing struct {
	XMLName xml.Name `xml:"jabber:client iq"`
	ID      string   `xml:"id,attr"`
	To      string   `xml:"to,attr"`
	Type    string   `xml:"type,attr"`
	Ping    XMPPPing
}

type IQSession

type IQSession struct {
	XMLName xml.Name `xml:"jabber:client iq"`
	ID      string   `xml:"id,attr"`
	Type    string   `xml:"type,attr"`
	Session XMPPSession
}

type JingleContent

type JingleContent struct {
	XMLName     xml.Name `xml:"urn:xmpp:jingle:1 content"`
	Creator     string   `xml:"creator,attr"`
	Name        string   `xml:"name,attr"`
	Senders     string   `xml:"senders,attr,omitempty"`
	Description *RTPDescription
	Transport   ICETransport
}

type JingleElem

type JingleElem struct {
	XMLName   xml.Name `xml:"urn:xmpp:jingle:1 jingle"`
	Action    string   `xml:"action,attr"`
	Initiator string   `xml:"initiator,attr"`
	Responder string   `xml:"responder,attr"`
	SID       string   `xml:"sid,attr"`
	Group     JingleGroup
	Contents  []JingleContent
}

type JingleGroup

type JingleGroup struct {
	XMLName   xml.Name `xml:"urn:xmpp:jingle:apps:grouping:0 group"`
	Semantics string   `xml:"semantics,attr"`
	Contents  []JingleGroupContent
}

type JingleGroupContent

type JingleGroupContent struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:grouping:0 content"`
	Name    string   `xml:"name,attr"`
}

type MUCPresence

type MUCPresence struct {
	XMLName    xml.Name `xml:"jabber:client presence"`
	To         string   `xml:"to,attr"`
	MUC        MUCX
	SourceInfo SourceInfoElem
	CodecList  CodecListElem
	Nick       NickElem
}

type MUCX

type MUCX struct {
	XMLName xml.Name `xml:"http://jabber.org/protocol/muc x"`
}

type NickElem

type NickElem struct {
	XMLName xml.Name `xml:"http://jabber.org/protocol/nick nick"`
	Value   string   `xml:",chardata"`
}

type PayloadType

type PayloadType struct {
	XMLName    xml.Name `xml:"urn:xmpp:jingle:apps:rtp:1 payload-type"`
	ID         string   `xml:"id,attr"`
	Name       string   `xml:"name,attr"`
	Clockrate  string   `xml:"clockrate,attr"`
	Channels   string   `xml:"channels,attr,omitempty"`
	Parameters []RTPParameter
	RTCPFBs    []RTCPFeedback
}

type RTCPFeedback

type RTCPFeedback struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0 rtcp-fb"`
	Type    string   `xml:"type,attr"`
	Subtype string   `xml:"subtype,attr,omitempty"`
}

type RTCPMuxElem

type RTCPMuxElem struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:1 rtcp-mux"`
}

type RTPDescription

type RTPDescription struct {
	XMLName          xml.Name `xml:"urn:xmpp:jingle:apps:rtp:1 description"`
	Media            string   `xml:"media,attr"`
	PayloadTypes     []PayloadType
	Sources          []RTPSource
	RTCPMux          *RTCPMuxElem
	HeaderExts       []RTPHeaderExt
	ExtmapAllowMixed *ExtmapAllowMixed
}

type RTPHeaderExt

type RTPHeaderExt struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0 rtp-hdrext"`
	ID      string   `xml:"id,attr"`
	URI     string   `xml:"uri,attr"`
}

type RTPParameter

type RTPParameter struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:1 parameter"`
	Name    string   `xml:"name,attr"`
	Value   string   `xml:"value,attr"`
}

type RTPSource

type RTPSource struct {
	XMLName    xml.Name `xml:"urn:xmpp:jingle:apps:rtp:ssma:0 source"`
	SourceName string   `xml:"name,attr"`
	SSRC       string   `xml:"ssrc,attr"`
	VideoType  string   `xml:"videoType,attr"`
	Parameters []SSMAParameter
}

type SASLAuth

type SASLAuth struct {
	XMLName   xml.Name `xml:"urn:ietf:params:xml:ns:xmpp-sasl auth"`
	Mechanism string   `xml:"mechanism,attr"`
}

type SCTPMapElem

type SCTPMapElem struct {
	XMLName  xml.Name `xml:"urn:xmpp:jingle:transports:dtls-sctp:1 sctpmap"`
	Number   string   `xml:"number,attr"`
	Protocol string   `xml:"protocol,attr"`
	Streams  string   `xml:"streams,attr"`
}

type SSMAParameter

type SSMAParameter struct {
	XMLName xml.Name `xml:"urn:xmpp:jingle:apps:rtp:ssma:0 parameter"`
	Name    string   `xml:"name,attr"`
	Value   string   `xml:"value,attr"`
}

type SourceInfoElem

type SourceInfoElem struct {
	XMLName xml.Name `xml:"jabber:client SourceInfo"`
	Value   string   `xml:",chardata"`
}

type XMPPBind

type XMPPBind struct {
	XMLName xml.Name `xml:"urn:ietf:params:xml:ns:xmpp-bind bind"`
}

type XMPPPing

type XMPPPing struct {
	XMLName xml.Name `xml:"urn:xmpp:ping ping"`
}

type XMPPSession

type XMPPSession struct {
	XMLName xml.Name `xml:"urn:ietf:params:xml:ns:xmpp-session session"`
}

Jump to

Keyboard shortcuts

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