UdpTransport
Manages the UDP socket for a voice connection: IP discovery, keepalive, RTP receive, and audio send.
decryptPacket and onAudioPacket must be set by the owner before starting the receive loop.
Summary
Properties
UdpTransport.udpSocket :: stdPolyfills.UdpSocket?UdpTransport.udpReceiveThread :: thread?UdpTransport.keepaliveThread :: thread?UdpTransport.keepaliveSequence :: numberUdpTransport.keepaliveSentAt :: { [number]: number }UdpTransport.udpPing :: number?UdpTransport.ssrc :: number?UdpTransport.udpIp :: string?UdpTransport.udpPort :: number?UdpTransport.modes :: { string }?UdpTransport.streams :: { { [string]: any } }?UdpTransport.experiments :: { string }?UdpTransport.decryptPacket :: ((packet: buffer) -> buffer?)?UdpTransport.onAudioPacket :: ((ssrc: number, sequence: number, frame: buffer) -> ())?UdpTransport.logger :: logger.LoggerProperties
Section titled “Properties”udpSocket
Section titled “udpSocket”udpReceiveThread
Section titled “udpReceiveThread”keepaliveThread
Section titled “keepaliveThread”keepaliveSequence
Section titled “keepaliveSequence”keepaliveSentAt
Section titled “keepaliveSentAt”{ [number]: number } }
udpPing
Section titled “udpPing”udpPort
Section titled “udpPort”streams
Section titled “streams”{ { [string]: any } }
experiments
Section titled “experiments”decryptPacket
Section titled “decryptPacket”onAudioPacket
Section titled “onAudioPacket”logger
Section titled “logger”Methods
Section titled “Methods”cleanup
Section titled “cleanup”UdpTransport : cleanup ( ) -> ()
Closes the UDP socket and stops both the receive loop and keepalive loop.
discoverIpAsync
Section titled “discoverIpAsync”UdpTransport : discoverIpAsync ( ) -> ()
Performs UDP IP discovery via the voice server and returns the bot’s external IP and port.
_sendKeepalive
Section titled “_sendKeepalive”UdpTransport : _sendKeepalive ( ) -> ()
Sends a single UDP keepalive packet and records the send time for RTT measurement.
_startKeepaliveLoop
Section titled “_startKeepaliveLoop”UdpTransport : _startKeepaliveLoop ( ) -> ()
Starts the keepalive loop that fires every five seconds while the UDP socket is open.
_startUdpReceiveLoop
Section titled “_startUdpReceiveLoop”UdpTransport : _startUdpReceiveLoop ( ) -> ()
Starts the UDP receive loop. Routes keepalive echo packets to the RTT tracker and RTP audio
packets to onAudioPacket after decryption via decryptPacket.
sendOpusAsync
Section titled “sendOpusAsync”UdpTransport : sendOpusAsync ( audioFrame , rtpCrypto , daveEncryptor ) -> ()
Builds an RTP packet from the given Opus frame, encrypts it (with optional DAVE layer), and sends it over UDP.
Parameters
| audioFrame: buffer | |
| rtpCrypto: RtpCrypto | |
| daveEncryptor: any? |
Functions
Section titled “Functions”UdpTransport . new ( loggerInstance ) -> UdpTransport
Responsible for constructing this class.
Parameters
| loggerInstance: Logger |
Returns
| UdpTransport |