I have been trying for a few days to understand how to renegotiate the video to be able to switch the camera. I understood that the lastest methods (eg. getSenders) are not yet implemented in the library.
MediaStreamTrack.prototype._switchCamera()
This function allows to switch the front / back cameras in a video track on the fly, without the need for adding / removing tracks or renegotiating.
BTW if you want to add/change the streams you are sending you could see at this example. Basically you need to create a new offer with the content you want to send.