Documentation ¶
Index ¶
- type DTLSTransport
- func (t *DTLSTransport) GetLocalParameters() (DTLSParameters, error)
- func (t *DTLSTransport) GetRemoteCertificate() []byte
- func (t *DTLSTransport) ICETransport() *ICETransport
- func (t *DTLSTransport) OnStateChange(f func(DTLSTransportState))
- func (t *DTLSTransport) Start(remoteParameters DTLSParameters) error
- func (t *DTLSTransport) State() DTLSTransportState
- func (t *DTLSTransport) Stop() error
- func (t *DTLSTransport) WriteRTCP(pkts []rtcp.Packet) (int, error)
- type ICECredentialType
- type ICEGatherer
- func (g *ICEGatherer) Close() error
- func (g *ICEGatherer) Gather() error
- func (g *ICEGatherer) GetLocalCandidates() ([]ICECandidate, error)
- func (g *ICEGatherer) GetLocalParameters() (ICEParameters, error)
- func (g *ICEGatherer) OnLocalCandidate(f func(*ICECandidate))
- func (g *ICEGatherer) OnStateChange(f func(ICEGathererState))
- func (g *ICEGatherer) State() ICEGathererState
- type ICEServer
- type ICETransport
- func (t *ICETransport) AddRemoteCandidate(remoteCandidate *ICECandidate) error
- func (t *ICETransport) GetSelectedCandidatePair() (*ICECandidatePair, error)
- func (t *ICETransport) OnConnectionStateChange(f func(ICETransportState))
- func (t *ICETransport) OnSelectedCandidatePairChange(f func(*ICECandidatePair))
- func (t *ICETransport) Role() ICERole
- func (t *ICETransport) SetRemoteCandidates(remoteCandidates []ICECandidate) error
- func (t *ICETransport) Start(gatherer *ICEGatherer, params ICEParameters, role *ICERole) error
- func (t *ICETransport) State() ICETransportState
- func (t *ICETransport) Stop() error
- type PeerConnection
- func (pc *PeerConnection) AddICECandidate(candidate ICECandidateInit) error
- func (pc *PeerConnection) AddTrack(track TrackLocal) (*RTPSender, error)
- func (pc *PeerConnection) AddTransceiverFromKind(kind RTPCodecType, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)
- func (pc *PeerConnection) AddTransceiverFromTrack(track TrackLocal, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)
- func (pc *PeerConnection) Close() error
- func (pc *PeerConnection) ConnectionState() PeerConnectionState
- func (pc *PeerConnection) CreateAnswer(options *AnswerOptions) (SessionDescription, error)
- func (pc *PeerConnection) CreateDataChannel(label string, options *DataChannelInit) (*DataChannel, error)
- func (pc *PeerConnection) CreateOffer(options *OfferOptions) (SessionDescription, error)
- func (pc *PeerConnection) CurrentLocalDescription() *SessionDescription
- func (pc *PeerConnection) CurrentRemoteDescription() *SessionDescription
- func (pc *PeerConnection) GetConfiguration() Configuration
- func (pc *PeerConnection) GetReceivers() (receivers []*RTPReceiver)
- func (pc *PeerConnection) GetSenders() (result []*RTPSender)
- func (pc *PeerConnection) GetStats() StatsReport
- func (pc *PeerConnection) GetTransceivers() []*RTPTransceiver
- func (pc *PeerConnection) ICEConnectionState() ICEConnectionState
- func (pc *PeerConnection) ICEGatheringState() ICEGatheringState
- func (pc *PeerConnection) LocalDescription() *SessionDescription
- func (pc *PeerConnection) OnConnectionStateChange(f func(PeerConnectionState))
- func (pc *PeerConnection) OnDataChannel(f func(*DataChannel))
- func (pc *PeerConnection) OnICECandidate(f func(*ICECandidate))
- func (pc *PeerConnection) OnICEConnectionStateChange(f func(ICEConnectionState))
- func (pc *PeerConnection) OnICEGatheringStateChange(f func(ICEGathererState))
- func (pc *PeerConnection) OnNegotiationNeeded(f func())
- func (pc *PeerConnection) OnSignalingStateChange(f func(SignalingState))
- func (pc *PeerConnection) OnTrack(f func(*TrackRemote, *RTPReceiver))
- func (pc *PeerConnection) PendingLocalDescription() *SessionDescription
- func (pc *PeerConnection) PendingRemoteDescription() *SessionDescription
- func (pc *PeerConnection) RemoteDescription() *SessionDescription
- func (pc *PeerConnection) RemoveTrack(sender *RTPSender) (err error)
- func (pc *PeerConnection) SCTP() *SCTPTransport
- func (pc *PeerConnection) SetConfiguration(configuration Configuration) error
- func (pc *PeerConnection) SetIdentityProvider(provider string) error
- func (pc *PeerConnection) SetLocalDescription(desc SessionDescription) error
- func (pc *PeerConnection) SetRemoteDescription(desc SessionDescription) error
- func (pc *PeerConnection) SignalingState() SignalingState
- func (pc *PeerConnection) WriteRTCP(pkts []rtcp.Packet) error
- type SettingEngine
- func (e *SettingEngine) DetachDataChannels()
- func (e *SettingEngine) DisableCertificateFingerprintVerification(isDisabled bool)
- func (e *SettingEngine) DisableMediaEngineCopy(isDisabled bool)
- func (e *SettingEngine) DisableSRTCPReplayProtection(isDisabled bool)
- func (e *SettingEngine) DisableSRTPReplayProtection(isDisabled bool)
- func (e *SettingEngine) SetAnsweringDTLSRole(role DTLSRole) error
- func (e *SettingEngine) SetDTLSReplayProtectionWindow(n uint)
- func (e *SettingEngine) SetEphemeralUDPPortRange(portMin, portMax uint16) error
- func (e *SettingEngine) SetHostAcceptanceMinWait(t time.Duration)
- func (e *SettingEngine) SetICECredentials(usernameFragment, password string)
- func (e *SettingEngine) SetICEMulticastDNSMode(multicastDNSMode ice.MulticastDNSMode)
- func (e *SettingEngine) SetICEProxyDialer(d proxy.Dialer)
- func (e *SettingEngine) SetICETCPMux(tcpMux ice.TCPMux)
- func (e *SettingEngine) SetICETimeouts(disconnectedTimeout, failedTimeout, keepAliveInterval time.Duration)
- func (e *SettingEngine) SetICEUDPMux(udpMux ice.UDPMux)
- func (e *SettingEngine) SetInterfaceFilter(filter func(string) bool)
- func (e *SettingEngine) SetLite(lite bool)
- func (e *SettingEngine) SetMulticastDNSHostName(hostName string)
- func (e *SettingEngine) SetNAT1To1IPs(ips []string, candidateType ICECandidateType)
- func (e *SettingEngine) SetNetworkTypes(candidateTypes []NetworkType)
- func (e *SettingEngine) SetPrflxAcceptanceMinWait(t time.Duration)
- func (e *SettingEngine) SetRelayAcceptanceMinWait(t time.Duration)
- func (e *SettingEngine) SetSDPMediaLevelFingerprints(sdpMediaLevelFingerprints bool)
- func (e *SettingEngine) SetSRTCPReplayProtectionWindow(n uint)
- func (e *SettingEngine) SetSRTPProtectionProfiles(profiles ...dtls.SRTPProtectionProfile)
- func (e *SettingEngine) SetSRTPReplayProtectionWindow(n uint)
- func (e *SettingEngine) SetSrflxAcceptanceMinWait(t time.Duration)
- func (e *SettingEngine) SetVNet(vnet *vnet.Net)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DTLSTransport ¶
type DTLSTransport struct {
// contains filtered or unexported fields
}
DTLSTransport allows an application access to information about the DTLS transport over which RTP and RTCP packets are sent and received by RTPSender and RTPReceiver, as well other data such as SCTP packets sent and received by data channels.
func (*DTLSTransport) GetLocalParameters ¶
func (t *DTLSTransport) GetLocalParameters() (DTLSParameters, error)
GetLocalParameters returns the DTLS parameters of the local DTLSTransport upon construction.
func (*DTLSTransport) GetRemoteCertificate ¶
func (t *DTLSTransport) GetRemoteCertificate() []byte
GetRemoteCertificate returns the certificate chain in use by the remote side returns an empty list prior to selection of the remote certificate
func (*DTLSTransport) ICETransport ¶
func (t *DTLSTransport) ICETransport() *ICETransport
ICETransport returns the currently-configured *ICETransport or nil if one has not been configured
func (*DTLSTransport) OnStateChange ¶
func (t *DTLSTransport) OnStateChange(f func(DTLSTransportState))
OnStateChange sets a handler that is fired when the DTLS connection state changes.
func (*DTLSTransport) Start ¶
func (t *DTLSTransport) Start(remoteParameters DTLSParameters) error
Start DTLS transport negotiation with the parameters of the remote DTLS transport
func (*DTLSTransport) State ¶
func (t *DTLSTransport) State() DTLSTransportState
State returns the current dtls transport state.
func (*DTLSTransport) Stop ¶
func (t *DTLSTransport) Stop() error
Stop stops and closes the DTLSTransport object.
type ICECredentialType ¶
type ICECredentialType int
ICECredentialType indicates the type of credentials used to connect to an ICE server.
const ( // ICECredentialTypePassword describes username and password based // credentials as described in https://tools.ietf.org/html/rfc5389. ICECredentialTypePassword ICECredentialType = iota // ICECredentialTypeOauth describes token based credential as described // in https://tools.ietf.org/html/rfc7635. ICECredentialTypeOauth )
func (ICECredentialType) String ¶
func (t ICECredentialType) String() string
type ICEGatherer ¶
type ICEGatherer struct {
// contains filtered or unexported fields
}
ICEGatherer gathers local host, server reflexive and relay candidates, as well as enabling the retrieval of local Interactive Connectivity Establishment (ICE) parameters which can be exchanged in signaling.
func (*ICEGatherer) Close ¶
func (g *ICEGatherer) Close() error
Close prunes all local candidates, and closes the ports.
func (*ICEGatherer) GetLocalCandidates ¶
func (g *ICEGatherer) GetLocalCandidates() ([]ICECandidate, error)
GetLocalCandidates returns the sequence of valid local candidates associated with the ICEGatherer.
func (*ICEGatherer) GetLocalParameters ¶
func (g *ICEGatherer) GetLocalParameters() (ICEParameters, error)
GetLocalParameters returns the ICE parameters of the ICEGatherer.
func (*ICEGatherer) OnLocalCandidate ¶
func (g *ICEGatherer) OnLocalCandidate(f func(*ICECandidate))
OnLocalCandidate sets an event handler which fires when a new local ICE candidate is available Take note that the handler is gonna be called with a nil pointer when gathering is finished.
func (*ICEGatherer) OnStateChange ¶
func (g *ICEGatherer) OnStateChange(f func(ICEGathererState))
OnStateChange fires any time the ICEGatherer changes
func (*ICEGatherer) State ¶
func (g *ICEGatherer) State() ICEGathererState
State indicates the current state of the ICE gatherer.
type ICEServer ¶
type ICEServer struct { URLs []string `json:"urls"` Username string `json:"username,omitempty"` Credential interface{} `json:"credential,omitempty"` CredentialType ICECredentialType `json:"credentialType,omitempty"` }
ICEServer describes a single STUN and TURN server that can be used by the ICEAgent to establish a connection with a peer.
type ICETransport ¶
type ICETransport struct {
// contains filtered or unexported fields
}
ICETransport allows an application access to information about the ICE transport over which packets are sent and received.
func NewICETransport ¶
func NewICETransport(gatherer *ICEGatherer, loggerFactory logging.LoggerFactory) *ICETransport
NewICETransport creates a new NewICETransport.
func (*ICETransport) AddRemoteCandidate ¶
func (t *ICETransport) AddRemoteCandidate(remoteCandidate *ICECandidate) error
AddRemoteCandidate adds a candidate associated with the remote ICETransport.
func (*ICETransport) GetSelectedCandidatePair ¶
func (t *ICETransport) GetSelectedCandidatePair() (*ICECandidatePair, error)
GetSelectedCandidatePair returns the selected candidate pair on which packets are sent if there is no selected pair nil is returned
func (*ICETransport) OnConnectionStateChange ¶
func (t *ICETransport) OnConnectionStateChange(f func(ICETransportState))
OnConnectionStateChange sets a handler that is fired when the ICE connection state changes.
func (*ICETransport) OnSelectedCandidatePairChange ¶
func (t *ICETransport) OnSelectedCandidatePairChange(f func(*ICECandidatePair))
OnSelectedCandidatePairChange sets a handler that is invoked when a new ICE candidate pair is selected
func (*ICETransport) Role ¶
func (t *ICETransport) Role() ICERole
Role indicates the current role of the ICE transport.
func (*ICETransport) SetRemoteCandidates ¶
func (t *ICETransport) SetRemoteCandidates(remoteCandidates []ICECandidate) error
SetRemoteCandidates sets the sequence of candidates associated with the remote ICETransport.
func (*ICETransport) Start ¶
func (t *ICETransport) Start(gatherer *ICEGatherer, params ICEParameters, role *ICERole) error
Start incoming connectivity checks based on its configured role.
func (*ICETransport) State ¶
func (t *ICETransport) State() ICETransportState
State returns the current ice transport state.
func (*ICETransport) Stop ¶
func (t *ICETransport) Stop() error
Stop irreversibly stops the ICETransport.
type PeerConnection ¶
type PeerConnection struct {
// contains filtered or unexported fields
}
PeerConnection represents a WebRTC connection that establishes a peer-to-peer communications with another PeerConnection instance in a browser, or to another endpoint implementing the required protocols.
func NewPeerConnection ¶
func NewPeerConnection(configuration Configuration) (*PeerConnection, error)
NewPeerConnection creates a PeerConnection with the default codecs and interceptors. See RegisterDefaultCodecs and RegisterDefaultInterceptors.
If you wish to customize the set of available codecs or the set of active interceptors, create a MediaEngine and call api.NewPeerConnection instead of this function.
func (*PeerConnection) AddICECandidate ¶
func (pc *PeerConnection) AddICECandidate(candidate ICECandidateInit) error
AddICECandidate accepts an ICE candidate string and adds it to the existing set of candidates.
func (*PeerConnection) AddTrack ¶
func (pc *PeerConnection) AddTrack(track TrackLocal) (*RTPSender, error)
AddTrack adds a Track to the PeerConnection
func (*PeerConnection) AddTransceiverFromKind ¶
func (pc *PeerConnection) AddTransceiverFromKind(kind RTPCodecType, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)
AddTransceiverFromKind Create a new RtpTransceiver and adds it to the set of transceivers.
func (*PeerConnection) AddTransceiverFromTrack ¶
func (pc *PeerConnection) AddTransceiverFromTrack(track TrackLocal, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)
AddTransceiverFromTrack Create a new RtpTransceiver(SendRecv or SendOnly) and add it to the set of transceivers.
func (*PeerConnection) Close ¶
func (pc *PeerConnection) Close() error
Close ends the PeerConnection
func (*PeerConnection) ConnectionState ¶
func (pc *PeerConnection) ConnectionState() PeerConnectionState
ConnectionState attribute returns the connection state of the PeerConnection instance.
func (*PeerConnection) CreateAnswer ¶
func (pc *PeerConnection) CreateAnswer(options *AnswerOptions) (SessionDescription, error)
CreateAnswer starts the PeerConnection and generates the localDescription
func (*PeerConnection) CreateDataChannel ¶
func (pc *PeerConnection) CreateDataChannel(label string, options *DataChannelInit) (*DataChannel, error)
CreateDataChannel creates a new DataChannel object with the given label and optional DataChannelInit used to configure properties of the underlying channel such as data reliability.
func (*PeerConnection) CreateOffer ¶
func (pc *PeerConnection) CreateOffer(options *OfferOptions) (SessionDescription, error)
CreateOffer starts the PeerConnection and generates the localDescription https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-createoffer
func (*PeerConnection) CurrentLocalDescription ¶
func (pc *PeerConnection) CurrentLocalDescription() *SessionDescription
CurrentLocalDescription represents the local description that was successfully negotiated the last time the PeerConnection transitioned into the stable state plus any local candidates that have been generated by the ICEAgent since the offer or answer was created.
func (*PeerConnection) CurrentRemoteDescription ¶
func (pc *PeerConnection) CurrentRemoteDescription() *SessionDescription
CurrentRemoteDescription represents the last remote description that was successfully negotiated the last time the PeerConnection transitioned into the stable state plus any remote candidates that have been supplied via AddICECandidate() since the offer or answer was created.
func (*PeerConnection) GetConfiguration ¶
func (pc *PeerConnection) GetConfiguration() Configuration
GetConfiguration returns a Configuration object representing the current configuration of this PeerConnection object. The returned object is a copy and direct mutation on it will not take affect until SetConfiguration has been called with Configuration passed as its only argument. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-getconfiguration
func (*PeerConnection) GetReceivers ¶
func (pc *PeerConnection) GetReceivers() (receivers []*RTPReceiver)
GetReceivers returns the RTPReceivers that are currently attached to this PeerConnection
func (*PeerConnection) GetSenders ¶
func (pc *PeerConnection) GetSenders() (result []*RTPSender)
GetSenders returns the RTPSender that are currently attached to this PeerConnection
func (*PeerConnection) GetStats ¶
func (pc *PeerConnection) GetStats() StatsReport
GetStats return data providing statistics about the overall connection
func (*PeerConnection) GetTransceivers ¶
func (pc *PeerConnection) GetTransceivers() []*RTPTransceiver
GetTransceivers returns the RtpTransceiver that are currently attached to this PeerConnection
func (*PeerConnection) ICEConnectionState ¶
func (pc *PeerConnection) ICEConnectionState() ICEConnectionState
ICEConnectionState returns the ICE connection state of the PeerConnection instance.
func (*PeerConnection) ICEGatheringState ¶
func (pc *PeerConnection) ICEGatheringState() ICEGatheringState
ICEGatheringState attribute returns the ICE gathering state of the PeerConnection instance.
func (*PeerConnection) LocalDescription ¶
func (pc *PeerConnection) LocalDescription() *SessionDescription
LocalDescription returns PendingLocalDescription if it is not null and otherwise it returns CurrentLocalDescription. This property is used to determine if SetLocalDescription has already been called. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-localdescription
func (*PeerConnection) OnConnectionStateChange ¶
func (pc *PeerConnection) OnConnectionStateChange(f func(PeerConnectionState))
OnConnectionStateChange sets an event handler which is called when the PeerConnectionState has changed
func (*PeerConnection) OnDataChannel ¶
func (pc *PeerConnection) OnDataChannel(f func(*DataChannel))
OnDataChannel sets an event handler which is invoked when a data channel message arrives from a remote peer.
func (*PeerConnection) OnICECandidate ¶
func (pc *PeerConnection) OnICECandidate(f func(*ICECandidate))
OnICECandidate sets an event handler which is invoked when a new ICE candidate is found. Take note that the handler is gonna be called with a nil pointer when gathering is finished.
func (*PeerConnection) OnICEConnectionStateChange ¶
func (pc *PeerConnection) OnICEConnectionStateChange(f func(ICEConnectionState))
OnICEConnectionStateChange sets an event handler which is called when an ICE connection state is changed.
func (*PeerConnection) OnICEGatheringStateChange ¶
func (pc *PeerConnection) OnICEGatheringStateChange(f func(ICEGathererState))
OnICEGatheringStateChange sets an event handler which is invoked when the ICE candidate gathering state has changed.
func (*PeerConnection) OnNegotiationNeeded ¶
func (pc *PeerConnection) OnNegotiationNeeded(f func())
OnNegotiationNeeded sets an event handler which is invoked when a change has occurred which requires session negotiation
func (*PeerConnection) OnSignalingStateChange ¶
func (pc *PeerConnection) OnSignalingStateChange(f func(SignalingState))
OnSignalingStateChange sets an event handler which is invoked when the peer connection's signaling state changes
func (*PeerConnection) OnTrack ¶
func (pc *PeerConnection) OnTrack(f func(*TrackRemote, *RTPReceiver))
OnTrack sets an event handler which is called when remote track arrives from a remote peer.
func (*PeerConnection) PendingLocalDescription ¶
func (pc *PeerConnection) PendingLocalDescription() *SessionDescription
PendingLocalDescription represents a local description that is in the process of being negotiated plus any local candidates that have been generated by the ICEAgent since the offer or answer was created. If the PeerConnection is in the stable state, the value is null.
func (*PeerConnection) PendingRemoteDescription ¶
func (pc *PeerConnection) PendingRemoteDescription() *SessionDescription
PendingRemoteDescription represents a remote description that is in the process of being negotiated, complete with any remote candidates that have been supplied via AddICECandidate() since the offer or answer was created. If the PeerConnection is in the stable state, the value is null.
func (*PeerConnection) RemoteDescription ¶
func (pc *PeerConnection) RemoteDescription() *SessionDescription
RemoteDescription returns pendingRemoteDescription if it is not null and otherwise it returns currentRemoteDescription. This property is used to determine if setRemoteDescription has already been called. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-remotedescription
func (*PeerConnection) RemoveTrack ¶
func (pc *PeerConnection) RemoveTrack(sender *RTPSender) (err error)
RemoveTrack removes a Track from the PeerConnection
func (*PeerConnection) SCTP ¶
func (pc *PeerConnection) SCTP() *SCTPTransport
SCTP returns the SCTPTransport for this PeerConnection
The SCTP transport over which SCTP data is sent and received. If SCTP has not been negotiated, the value is nil. https://www.w3.org/TR/webrtc/#attributes-15
func (*PeerConnection) SetConfiguration ¶
func (pc *PeerConnection) SetConfiguration(configuration Configuration) error
SetConfiguration updates the configuration of this PeerConnection object.
func (*PeerConnection) SetIdentityProvider ¶
func (pc *PeerConnection) SetIdentityProvider(provider string) error
SetIdentityProvider is used to configure an identity provider to generate identity assertions
func (*PeerConnection) SetLocalDescription ¶
func (pc *PeerConnection) SetLocalDescription(desc SessionDescription) error
SetLocalDescription sets the SessionDescription of the local peer
func (*PeerConnection) SetRemoteDescription ¶
func (pc *PeerConnection) SetRemoteDescription(desc SessionDescription) error
SetRemoteDescription sets the SessionDescription of the remote peer nolint: gocyclo
func (*PeerConnection) SignalingState ¶
func (pc *PeerConnection) SignalingState() SignalingState
SignalingState attribute returns the signaling state of the PeerConnection instance.
type SettingEngine ¶
type SettingEngine struct { BufferFactory func(packetType packetio.BufferPacketType, ssrc uint32) io.ReadWriteCloser LoggerFactory logging.LoggerFactory // contains filtered or unexported fields }
SettingEngine allows influencing behavior in ways that are not supported by the WebRTC API. This allows us to support additional use-cases without deviating from the WebRTC API elsewhere.
func (*SettingEngine) DetachDataChannels ¶
func (e *SettingEngine) DetachDataChannels()
DetachDataChannels enables detaching data channels. When enabled data channels have to be detached in the OnOpen callback using the DataChannel.Detach method.
func (*SettingEngine) DisableCertificateFingerprintVerification ¶
func (e *SettingEngine) DisableCertificateFingerprintVerification(isDisabled bool)
DisableCertificateFingerprintVerification disables fingerprint verification after DTLS Handshake has finished
func (*SettingEngine) DisableMediaEngineCopy ¶
func (e *SettingEngine) DisableMediaEngineCopy(isDisabled bool)
DisableMediaEngineCopy stops the MediaEngine from being copied. This allows a user to modify the MediaEngine after the PeerConnection has been constructed. This is useful if you wish to modify codecs after signaling. Make sure not to share MediaEngines between PeerConnections.
func (*SettingEngine) DisableSRTCPReplayProtection ¶
func (e *SettingEngine) DisableSRTCPReplayProtection(isDisabled bool)
DisableSRTCPReplayProtection disables SRTCP replay protection.
func (*SettingEngine) DisableSRTPReplayProtection ¶
func (e *SettingEngine) DisableSRTPReplayProtection(isDisabled bool)
DisableSRTPReplayProtection disables SRTP replay protection.
func (*SettingEngine) SetAnsweringDTLSRole ¶
func (e *SettingEngine) SetAnsweringDTLSRole(role DTLSRole) error
SetAnsweringDTLSRole sets the DTLS role that is selected when offering The DTLS role controls if the WebRTC Client as a client or server. This may be useful when interacting with non-compliant clients or debugging issues.
DTLSRoleActive:
Act as DTLS Client, send the ClientHello and starts the handshake
DTLSRolePassive:
Act as DTLS Server, wait for ClientHello
func (*SettingEngine) SetDTLSReplayProtectionWindow ¶
func (e *SettingEngine) SetDTLSReplayProtectionWindow(n uint)
SetDTLSReplayProtectionWindow sets a replay attack protection window size of DTLS connection.
func (*SettingEngine) SetEphemeralUDPPortRange ¶
func (e *SettingEngine) SetEphemeralUDPPortRange(portMin, portMax uint16) error
SetEphemeralUDPPortRange limits the pool of ephemeral ports that ICE UDP connections can allocate from. This affects both host candidates, and the local address of server reflexive candidates.
func (*SettingEngine) SetHostAcceptanceMinWait ¶
func (e *SettingEngine) SetHostAcceptanceMinWait(t time.Duration)
SetHostAcceptanceMinWait sets the ICEHostAcceptanceMinWait
func (*SettingEngine) SetICECredentials ¶
func (e *SettingEngine) SetICECredentials(usernameFragment, password string)
SetICECredentials sets a staic uFrag/uPwd to be used by pion/ice
This is useful if you want to do signalless WebRTC session, or having a reproducible environment with static credentials
func (*SettingEngine) SetICEMulticastDNSMode ¶
func (e *SettingEngine) SetICEMulticastDNSMode(multicastDNSMode ice.MulticastDNSMode)
SetICEMulticastDNSMode controls if pion/ice queries and generates mDNS ICE Candidates
func (*SettingEngine) SetICEProxyDialer ¶
func (e *SettingEngine) SetICEProxyDialer(d proxy.Dialer)
SetICEProxyDialer sets the proxy dialer interface based on golang.org/x/net/proxy.
func (*SettingEngine) SetICETCPMux ¶
func (e *SettingEngine) SetICETCPMux(tcpMux ice.TCPMux)
SetICETCPMux enables ICE-TCP when set to a non-nil value. Make sure that NetworkTypeTCP4 or NetworkTypeTCP6 is enabled as well.
func (*SettingEngine) SetICETimeouts ¶
func (e *SettingEngine) SetICETimeouts(disconnectedTimeout, failedTimeout, keepAliveInterval time.Duration)
SetICETimeouts sets the behavior around ICE Timeouts * disconnectedTimeout is the duration without network activity before a Agent is considered disconnected. Default is 5 Seconds * failedTimeout is the duration without network activity before a Agent is considered failed after disconnected. Default is 25 Seconds * keepAliveInterval is how often the ICE Agent sends extra traffic if there is no activity, if media is flowing no traffic will be sent. Default is 2 seconds
func (*SettingEngine) SetICEUDPMux ¶
func (e *SettingEngine) SetICEUDPMux(udpMux ice.UDPMux)
SetICEUDPMux allows ICE traffic to come through a single UDP port, drastically simplifying deployments where ports will need to be opened/forwarded. UDPMux should be started prior to creating PeerConnections.
func (*SettingEngine) SetInterfaceFilter ¶
func (e *SettingEngine) SetInterfaceFilter(filter func(string) bool)
SetInterfaceFilter sets the filtering functions when gathering ICE candidates This can be used to exclude certain network interfaces from ICE. Which may be useful if you know a certain interface will never succeed, or if you wish to reduce the amount of information you wish to expose to the remote peer
func (*SettingEngine) SetLite ¶
func (e *SettingEngine) SetLite(lite bool)
SetLite configures whether or not the ice agent should be a lite agent
func (*SettingEngine) SetMulticastDNSHostName ¶
func (e *SettingEngine) SetMulticastDNSHostName(hostName string)
SetMulticastDNSHostName sets a static HostName to be used by pion/ice instead of generating one on startup
This should only be used for a single PeerConnection. Having multiple PeerConnections with the same HostName will cause undefined behavior
func (*SettingEngine) SetNAT1To1IPs ¶
func (e *SettingEngine) SetNAT1To1IPs(ips []string, candidateType ICECandidateType)
SetNAT1To1IPs sets a list of external IP addresses of 1:1 (D)NAT and a candidate type for which the external IP address is used. This is useful when you are host a server using Pion on an AWS EC2 instance which has a private address, behind a 1:1 DNAT with a public IP (e.g. Elastic IP). In this case, you can give the public IP address so that Pion will use the public IP address in its candidate instead of the private IP address. The second argument, candidateType, is used to tell Pion which type of candidate should use the given public IP address. Two types of candidates are supported:
ICECandidateTypeHost:
The public IP address will be used for the host candidate in the SDP.
ICECandidateTypeSrflx:
A server reflexive candidate with the given public IP address will be added
to the SDP.
Please note that if you choose ICECandidateTypeHost, then the private IP address won't be advertised with the peer. Also, this option cannot be used along with mDNS.
If you choose ICECandidateTypeSrflx, it simply adds a server reflexive candidate with the public IP. The host candidate is still available along with mDNS capabilities unaffected. Also, you cannot give STUN server URL at the same time. It will result in an error otherwise.
func (*SettingEngine) SetNetworkTypes ¶
func (e *SettingEngine) SetNetworkTypes(candidateTypes []NetworkType)
SetNetworkTypes configures what types of candidate networks are supported during local and server reflexive gathering.
func (*SettingEngine) SetPrflxAcceptanceMinWait ¶
func (e *SettingEngine) SetPrflxAcceptanceMinWait(t time.Duration)
SetPrflxAcceptanceMinWait sets the ICEPrflxAcceptanceMinWait
func (*SettingEngine) SetRelayAcceptanceMinWait ¶
func (e *SettingEngine) SetRelayAcceptanceMinWait(t time.Duration)
SetRelayAcceptanceMinWait sets the ICERelayAcceptanceMinWait
func (*SettingEngine) SetSDPMediaLevelFingerprints ¶
func (e *SettingEngine) SetSDPMediaLevelFingerprints(sdpMediaLevelFingerprints bool)
SetSDPMediaLevelFingerprints configures the logic for DTLS Fingerprint insertion If true, fingerprints will be inserted in the sdp at the fingerprint level, instead of the session level. This helps with compatibility with some webrtc implementations.
func (*SettingEngine) SetSRTCPReplayProtectionWindow ¶
func (e *SettingEngine) SetSRTCPReplayProtectionWindow(n uint)
SetSRTCPReplayProtectionWindow sets a replay attack protection window size of SRTCP session.
func (*SettingEngine) SetSRTPProtectionProfiles ¶
func (e *SettingEngine) SetSRTPProtectionProfiles(profiles ...dtls.SRTPProtectionProfile)
SetSRTPProtectionProfiles allows the user to override the default SRTP Protection Profiles The default srtp protection profiles are provided by the function `defaultSrtpProtectionProfiles`
func (*SettingEngine) SetSRTPReplayProtectionWindow ¶
func (e *SettingEngine) SetSRTPReplayProtectionWindow(n uint)
SetSRTPReplayProtectionWindow sets a replay attack protection window size of SRTP session.
func (*SettingEngine) SetSrflxAcceptanceMinWait ¶
func (e *SettingEngine) SetSrflxAcceptanceMinWait(t time.Duration)
SetSrflxAcceptanceMinWait sets the ICESrflxAcceptanceMinWait
func (*SettingEngine) SetVNet ¶
func (e *SettingEngine) SetVNet(vnet *vnet.Net)
SetVNet sets the VNet instance that is passed to pion/ice
VNet is a virtual network layer for Pion, allowing users to simulate different topologies, latency, loss and jitter. This can be useful for learning WebRTC concepts or testing your application in a lab environment