Course Outline
Media Device Management
Browser Permissions via navigator.permissions
- Hardware access:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Limitations and browser compatibility considerations
Accessing Media Devices with navigator.mediaDevices
- Enumerating available devices
- Managing dynamic device changes
Cross-Browser Compatibility
- API utilization:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Implementing fallback strategies for Safari
Managing Media Devices
- Initializing devices: getUserMedia(constraints)
- Configuring media device constraints
- Controlling the start and stop of media streams
- Handling dynamic device changes
Recording with MediaRecorder
- Managing stream start/stop and recording sessions
- Downloading .webm files
- Generating real-time waveform previews
Optional Extensions:
- Saving audio in .wav format using ScriptProcessorNode
- Visualizing audio FFT spectra
- Displaying volume levels in decibels
- Implementing voice recognition with webkitSpeechRecognition
Peer Connections
Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Structuring signaling messages
- Building a simplified WebRTC client
- Executing the complete signaling flow
Video Chat using WebRTC
- System architecture: Node.js + ws
- WebRTC client implementation: RTCPeerConnection
- Conducting local end-to-end testing
Optional Enhancements:
- Handling call termination (closing connections, stopping media)
- Supporting group calls (multi-user rooms)
- Implementing simple token-based authentication
Screen Sharing
- Utilizing getDisplayMedia()
- Architectural options and considerations
Session Description Protocol (SDP)
- Overview and component contents
- Parsing and interpreting SDP data
- Codec management:
- Audio & Video formats
- Negotiation and control mechanisms
- Implementing fallback strategies
WebRTC Statistics via getStats()
- Categorizing types of statistics
- Methods for interpreting statistical data
- Generating live bitrate/jitter charts
- Strategies for adaptive quality management
All topics include
- Practical, hands-on use cases
Requirements
This course is tailored for frontend and full-stack developers, technical architects, and engineers focused on building browser-based 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 optional experience in Node.js and WebSocket-based communication.
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.