func (api *channellingAPI) HandleHello(session *channelling.Session, hello *channelling.DataHello, sender channelling.Sender) (*channelling.DataWelcome, error) {
	// TODO(longsleep): Filter room id and user agent.
	session.Update(&channelling.SessionUpdate{Types: []string{"Ua"}, Ua: hello.Ua})

	// Compatibily for old clients.
	roomName := hello.Name
	if roomName == "" {
		roomName = hello.Id
	}

	room, err := session.JoinRoom(roomName, hello.Type, hello.Credentials, sender)
	if err != nil {
		return nil, err
	}

	return &channelling.DataWelcome{
		Type:  "Welcome",
		Room:  room,
		Users: api.RoomStatusManager.RoomUsers(session),
	}, nil
}