Address a problem encountered already with proctoring uploads: in cases that count both as timeouts and errors, the rescheduling of the request would happen twice. If the condition persists, the number of requests can grow out of control
Allow in the include to selectively disable combinations of audio, camera and desktop recording (at least one stream needs to be enabled for proctoring to happen)
This allows to better tailor proctoring behavior to the user needs and privacy requirements
Always make sure to clear any previously scheduled upload, before scheduling another one
This handles the case when a connection times out (readyState 4 and status = 0). In this case both the rescheduling in the readystatechange handler and in the timeout handler would be executed.
Try to ask the browser to disable noise suppression on the microphone, so that silence detection won't trigger in case of "normal" environmental silence