steps

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: 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