== 1.4.0
To learn how to migrate to 1.4.0 see: https://github.com/mconf/bigbluebutton_rails/wiki/Migrate-to-1.4.0
* New dependencies:
* resque: To keep track of meetings that happened.
* strong_parameters: To allow controllers to decide which parameters can be modified and which can't. Default in Rails 4, should also be used in Rails 3.
* With strong_parameters in all controllers now the application can decide which parameters can be accessed and which can't. You can have different logics for different types of users.
* Use params[:redir_url] (if present) to redirect the user to a custom URL in all actions where possible. This can be set by the application to redirect the user to a custom location after updating a model, for instance.
* Register meetings that happened: new model BigbluebuttonMeeting that stores instances of meetings that happened in a room. Uses resque to monitor when meetings started. They are also associated with recordings, so the application can show a registry of meetings that happened and their respective recording.
* MySQL as a default database (was sqlite).
* First logic layout to set a custom config.xml when joining a room:
* Every room has an associated BigbluebuttonRoomOptions model;
* This model contains custom options that will be set in the config.xml when a user joins the associated room;
* When the user joins, the library will get the default config.xml from the server, modify it according to the BigbluebuttonRoomOptions, and set it on the server to use it in the join API call;
* Currently the only parameters that can be customized are: default layout, presenter_share_only, auto_start_audio, and auto_start_video.
* Fixed the mobile urls generated in join_mobile.
* Updated ruby to 1.9.3-p484.
* New controller method bigbluebutton_create_options. Can return a hash of parameters that will override the parameters in the database when sending a create call. Can be used to force some options when creating a meeting without needing to save it to the database.
* Removed the routes to join external rooms. This feature was never really used, so was just consuming space and time. Removed the actions RoomsController#external and RoomsController#external_auth. The flag external in BigbluebuttonRoom is still there, since it is used to identify external meetings when fetching the meetings from a server.
* New logic to join meetings from mobile devices: now there's no specific page to join from a mobile. Once /join is called, if the user is in a mobile device (detected using the user's "user-agent") then a page will be rendered and the user will be automatically redirected to the conference using the mobile client. This page has also more information just in case the user is not properly redirected (if the mobile client is not installed, for example).
* Removed the login via QR Code.
== 1.3.0
To learn how to migrate to 1.3.0 see: https://github.com/mconf/bigbluebutton_rails/wiki/Migrate-to-1.3.0
* New dependency:
* whenever: To configure cron to trigger resque.
* Support for recordings. Details at https://github.com/mconf/bigbluebutton_rails/wiki/How-Recordings-Work. #459.
* Updated most of the dependencies to their latest version.
* Tested against Rails 3.2 (was Rails 3.0).
* New option :as in router helpers (more at https://github.com/mconf/bigbluebutton_rails/wiki/How-to%3A-Routes)
* New option :only in router helpers (more at https://github.com/mconf/bigbluebutton_rails/wiki/How-to%3A-Routes)
* Set the HTTP header x-forwarded-for with the IP of the client so servers can know who is creating/joining a meeting, for example.
* Removed assets (jquery, image) from the generator and from the gem.
* Removed the option to randomize meeting IDs, now they are fixed and generated as a globally unique meeting ID ("#{SecureRandom.uuid}-#{Time.now.to_i}"). #734, #735.
* Added logic to control who can create meetings (method called bigbluebutton_can_create?).
== 1.2.0
* Updated ruby to 1.9.3-194.
* Support to BigBlueButton 0.8 rc1.
* Updated bigbluebutton-api-ruby to 1.1.0.
== 1.1.0
* Rooms are now decoupled from servers:
* A room can exist without a server;
* Everytime a 'send_create' is called in a room, the method 'select_server' is called to select a server where the meeting will be held. The room is saved if the server changed;
* The method 'select_server' by default selects the server with less rooms;
* The routes for rooms are not nested with servers anymore ('/bigbluebutton/rooms' instead of '/bigbluebutton/server/:id/rooms').
* Because of this change all path helpers for rooms must be updated!
* rooms/external now receives a parameter "server_id" to indicate the server in which the external rooms is running. The views were updated.
* "bigbluebutton_routes :room_matchers" now generates all routes available for rooms, not only a selected set as before.
== 1.0.0
* First version with support to BigBlueButton 0.8:
* The support is still very basic: you can use the gem with BBB 0.8 but not all features are supported yet, such as pre-upload of slides and anything related to recordings.
* Updated bigbluebutton-api-ruby to 0.1.0 to support BBB 0.8.
* Added several integration tests.
* Several small bug fixes
== 0.0.6
* After fetch_meetings, the rooms that are not found in the DB are *not* saved by default anymore.
* New action to join external rooms (rooms that are not in the DB but exist in the BBB server).
* Fixed some errors and warnings for Ruby 1.8.
* Some changes in the logic of RoomsController#auth to enable a user to join a room that has a blank password.
* Improvements in the mobile_join view to show a link that includes user authentication. But the QR code is still a bare link to the BBB server.
* Made some improvements based on tips by rails_best_practices and increased the test coverage to 100% for almost all classes.
== 0.0.5
* URLs for both servers and rooms are now defined with a string attribute (called "param") instead of the model ID.
* New return values for bigbluebutton_role: :password and nil.
* Private rooms now require a password to be valid.
* New action "join_mobile" for rooms that renders a QR code to join the conference using the protocol "bigbluebutton://".
* New action "activity" for servers that shows a view to monitors a BBB server.
* Added json responses for most of the actions.
* logout_url can be an incomplete url and it will be completed with the current domain/protocol when a room is created in the BBB server.
* The generator bigbluebutton_rails:public was removed. It's features are now inside bigbluebutton_rails:install.
* After fetch_meetings all rooms are automatically stored in the DB if they are not there yet.
== 0.0.4
* A random voice_bridge with 5 digits (recommended) is set when a room is created.
* Routes generators now allow specifying custom controllers instead of the defaults Bigbluebutton::ServersController and Bigbluebutton::RoomsController.
* Some bug fixes (including fixes for ruby 1.8).
== 0.0.3
* Rooms can be public or private
* New route RoomsController#invite used to request a password to join a room or to allow anonymous users to join.
* Room's "meeting_id" attribute renamed to "meetingid".
* A room can have it's meetingid randomly generated for each "send_create" call if randomize_meetingid is set.
* New attributes for rooms: logout_url, dial_number, voice_bridge and max_participant.
== 0.0.2
* New "fetch" and "send" methods in BigbluebuttonRooms to fetch info about meetings from BBB and store in the model.
* New class BigbluebuttonAttendee to store attendee information returned by BBB in get_meeting_info.
* New class BigbluebuttonMeeting to store meeting information returned by BBB in get_meetings.
== 0.0.1
* First version
* DB models for BigBlueButton servers and rooms
* Controller to access servers and rooms
* rooms_controller interacts with a BBB server using bigbluebutton-api-ruby