According to HeadFirst, should the concrete states decide what the next state will be is a question with no absolute answer.
If the state transitions are fixed, then it's appropriate for the context to decide the next state.
If the transitions are more dynamic, the decision is usually placed in the state classes (for example, if the decision is dependent of the runtime value of a variable in the context class).
Obviously, this creates dependencies between the state classes. This can be minimized by having the state as members in the context class.