We're building a platform that will have video conferencing built-in (1:1 sessions with video recording). These are the requirements:
- Setup Jitsi with Autoscaling on AWS. Deployment scripts (in terraform ideally) and a CI pipeline need to be provided.
- Ensure every session is recorded and uploaded on S3
- Ensure recorded sessions can be streamed in HLS directly from S3 *only within the app*.
- Integration with our ReactJS application. Users need to be able to share the screen, take snapshots, turn audio and video on or off and have the video displayed as PIP within the app.
- Integration with our AWS microservices (we'll request a slot from an AWS lambda)
- Video recording per each session (60mins) and uploading & encrypted to S3 as HLS
- Encryption must be as such so that a user can't access other user's sessions (e.g. custom key)
- A user should be able to join the call mid-way if he dropped
- Video Screenshots taken on demand (instructed by the frontend) in the cloud and stored in the S3 bucket.
- One of the users (the one with special privileges) would be able to multiple "mark" parts of the call and label them with names.
- Video conferences need to be limited in time as instructed by the meeting setup call.
- Support for 6 months after delivery.
Meeting creation should be on-demand and limited in time (like Amazon Chime, for example). We'll create two attendees and send them a token each so that they can join in for the duration of the meeting.