hi,
unlike the other bidders, I have already build something like that (using JsSIP not SipML5),
well not the same as what you have asked for, you are asking for a lot of features :)
but anyways I'm certain almost all of these can be done,
just one i'm not sure (speaker to headphone) as thats something which is handled by the browser.
I have done this using SIPjs or JSSIP whichever you like (found SipML5 to be a little more work then these two)
kindly let me know if we can have a little chat about it so we may better understand what are we going to develop