Types
Makes necessary initializations and returns the initial channel state if the initializations succeed.
The time-out values that can be returned have the same semantics as in a gen_server. If the time-out occurs, handle_msg/2 is called as handle_msg(timeout, State).