もし + [verb た-form] + ら もし + [verb (ば-form)] もし + [verb (plain)] + なら もし + [noun] / [na-adj] + だったら / なら
もし means "if". It goes at the front of a conditional clause and warns the listener that a supposition is coming. It does not make the condition by itself: the clause still ends in 〜~たら, 〜~ば or 〜~なら, exactly as it would without もし.
Drop もし and each sentence still means the same. With it, the "if" is clear from the first word, which helps most in a long sentence.
もし cannot hold up a clause that ends in a plain form, and it does not go with とき. The ending carries the condition; もし only announces it.
On its own, ~たら also means "when" for something that is sure to happen. もし rules that reading out: it marks the condition as one that may not happen.
So もし does not go with something certain.
These go beyond a plain "if".
With ~たら or ~ば, もし also sets up a situation contrary to fact. English switches to "were" or "had"; Japanese keeps the same ending.
The telephone greeting もしもし is a separate word. It comes from もうす申す "to say", not from this もし.