Is it possible in WebRTC?
Every peer will have a negotiation progress before they can receiving any stream. Senders already in this channel will know that they have to change their stream profiles during this progress.
If things happen to be someone already in this channel does not have enough bandwidth, the sender MediaOptimization module will know through RTCP receiver sent, and adjust the bitrate.
If yes is this feature implemented in any of (agora | tokbox | vidyo | twilio)
As far as I know, all they did at on the web are based on WebRTC (apparently they have rare choice).
Their native SDKs may have better quality on resolution switching, as they can use technologies like SVC, multi-streams and so on.