Course Outline
Managing Media Devices
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permission status
- Limitations and browser compatibility
2. Reading Media Devices with navigator.mediaDevices
- Enumerating devices
- Handling device changes
3. Cross-browser Compatibility
- API usage:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategy for Safari fallback
4. Media Device Handling
- Initialising devices: getUserMedia(constraints)
- Configuring media device constraints
- Starting and stopping media streams
- Handling device changes
5. Recording Devices with MediaRecorder
- Starting/stopping streaming and recording
- Downloading .webm files
- Real-time waveform previews
Optional Add-ons:
- Saving in .wav format using ScriptProcessorNode
- Visualizing the audio FFT spectrum
- Displaying a volume bar in decibels
- Voice recognition using webkitSpeechRecognition
Peer Connection
1. Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Message structure
- Building a simplified WebRTC client
- Executing the full signaling flow
2. Video Chat via WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Conducting local E2E testing
Optional Features:
- Handling call hang-ups (closing connections, stopping media)
- Facilitating group calls (multi-user rooms)
- Implementing simple token-based authentication
3. Screen Sharing
- Utilising getDisplayMedia()
- Architecture and implementation options
4. Session Description Protocol (SDP)
- Introduction and core contents
- Reading and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and control
- Fallback strategies
5. WebRTC Statistics with getStats()
- Types of statistics available
- Interpreting stats effectively
- Creating live bitrate/jitter charts
- Strategies for quality adaptation
6. All topics include
- Hands-on use cases
Requirements
This course is tailored for frontend and full-stack developers, technical architects, and engineers who are developing real-time communication features such as video chat, screen sharing, or audio streaming. Participants should possess a solid working knowledge of JavaScript and web technologies, with prior experience in Node.js and WebSocket-based communication being advantageous.
Testimonials (3)
The training helped me expand my knowledge and understanding of Burp Suite. I also realized that what I had learned through self-study was still quite limited. This training was very helpful to me as a QA because Burp Suite is a valuable tool for performing security testing and improving the overall quality of application testing. I will continue exploring this tool and learning more about its features and capabilities.
Rea Mendez - BAKAWAN Data Anallytics Inc.
Course - OWASP Top 10 2025
I really enjoyed learning about AI attacks and the tools out there to begin practicing and actively using for security testing. I took a lot of knowledge away which I didn't have at the beginning and the course met what I hoped it would be. My favorite part shown from the training was Comet Browser and was amazed at what it could do. Definitely something will be looking into more. Overall it was a great course and enjoyed learning all OWASP GenAI Top 10.
Patrick Collins - Optum
Course - OWASP GenAI Security
Hands-on, exercises, in-person helping and questioning.