Concept and Architecture - IoT
The IoT SDK provides tools and APIs for enabling real-time communication directly through IoT devices. It allows a user to join meetings, share and receive audio streams, and interact with other participants, including AI agents, using lightweight devices such as ESP boards.
Concepts
1. Meeting / Room
Meeting or Room object in the VideoSDK provides a virtual place for participants to interact and engage in real-time audio session. The object is in charge of handling media streams and participant communication.
- To create a meeting room refer 
Meeting Initialization 
2. Participant
- 
A participant represents a user in the meeting and can share or receive audio streams via the IoT SDK.
 - 
2.1
Local Participant:- The local participant represents the user on the ESP device using the IoT SDK.
 - The user on the ESP device controls their own audio streams and can also receive audio from others in real time.
 
 - 
2.2
Remote Participant:- A remote participant is any other participant in the meeting apart from the user.
 - The user can subscribe to the audio stream of the remote participant.
 
 - 
Each participant is uniquely identified by a ParticipantId in the meeting.
 
3. Session
- A Session is the instance of an ongoing meeting/room which has one or more participants in it. A single room or meeting can have multiple sessions.
 - Each session can be uniquely identified by 
sessionId. 

4. AudioStream
- An audio stream is a continuous flow of sound data transmitted in real time, allowing participants to hear and communicate instantly in a meeting.
 - Publish Audio
- The user captures audio through the ESP device and shares it in real time.
 - To publish audio refer this 
Publish_Audio 
 - Subscribe Audio
- The user receives audio and plays it through the ESP device.
 - To Subscribe audio refer this 
Subscribe_Audio 
 
Architecture
This diagram illustrates the complete interaction of a user joining a meeting through the IoT SDK on an ESP device. It covers sending a join request to the server, publishing and subscribing to audio streams, and leaving the meeting, showing how the SDK and server coordinate to enable seamless real-time communication.

Got a Question? Ask us on discord

