Hackpads are smart collaborative documents. .

Peter F

469 days ago
Unfiled. Edited by Peter F , Jonathan Sieber , Severin 469 days ago
Peter F
  • Software architecture 
Central server
- Janus Videogateway with predefinied Chatrooms 
- Initial PeerVPN Node
- MQTT broker
- eWindow Server / API 
- PeerVPN Node
- UV4L
- eWindow Client 
eWindow Roommanager 
- Bookkeeping Chatrooms
  - ID
  - Status (free / occupied)
  - Clients
- Room management
  - Receive requests (mqtt)
  - assign Chatrooms
  - Garbage collection - Release chatrooms
eWindow Client
- build and hold MQTT connection
- Persistent msg in ew/nodes/<own id> with status, IP, last will: delete 
- subscribe on ew/nodes, mirror all changes in internal dict 
- Management of hardware Buttons / UI
- build call (ask node for connection: ew/nodes/<id>/call)
- Handling of return: 
  - Accept (Reciver is available) 
  - Hold (Reciver is occupied) 
  - Deny (Reciver is offline) 
- fetch room from room manager
- handle getting knocked (someone tries to connect to a already connected system)
- control of UV4L 
- Connection termination (Communication to Server) 
  • Tasks
Task: Prepare environment: 
  • Setup central system
  • Test: (@MuMaLab
  • User: mumalab, PW "ewindow123" (same as root pw)
Peter F
  • Setup Raspberry Clients 
  • Test video connection components manually
Task: Peer VPN
  • Test and configure working PeerVPN configuration
Task: Build UV4L control library 
  • Do it!
Task: Implement room manager
  • connect to mqtt
  • endpoint ew/rooms/get
  • give out leases for rooms
  • garbage collection over janus API? 
Task: Implement Client
  • connect to mqtt
  • publish state
  • control UV4L
  • handle mqtt calls (see diagram) 

Contact Support

Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!

Log in