can startRinging() with no time specified, will ring until told to stopRinging()
update() and rangEnough() modified