Firstly, the host should be able to decide whether he wants to allow spectators or not. If yes, the room should be extended to 10 players; everyone joins normally. Then in the team settings the host should get "spectator" as option in addition to team alpha and bravo. Simple as that.
I don't know what spectator modes look like in other shooters, but I think spectators should be able to switch between all players and view exact copies of the player's perspectives. Fancy camera options are no must in my opinion.
Spectating in public rooms is problematic for obvious bandwidth reasons, but maybe they could put people who are joining into the spectating mode like it's done in Mario Kart.