Commit Graph

356 Commits

Author SHA1 Message Date
Leonardo Crauss Daronco
b12ea8252d Webhooks: fix callbacks not being sent for create meeting events
Meeting ID mappings have to be created before the meeting created event is
processed, otherwise they won't generate callbacks to hook registered for
that meetingID only.
2014-11-24 14:34:03 -02:00
Leonardo Crauss Daronco
b568560df4 Webhooks: any 2xx status should be taken as successful 2014-11-24 13:01:13 -02:00
Leonardo Crauss Daronco
9366bd766b Move labs/bbb-callback to labs/bbb-webhooks 2014-11-24 12:56:04 -02:00
Leonardo Crauss Daronco
feaf75901e Webhooks: add a post catcher application for testing 2014-11-14 17:55:44 -02:00
Leonardo Crauss Daronco
7efb3a18ab Webhooks: trigger callbacks for recording events too 2014-11-14 16:53:46 -02:00
Leonardo Crauss Daronco
81f5a109b6 Merge remote-tracking branch 'upstream/master' into webhooks-2.0 2014-11-14 14:28:35 -02:00
Leonardo Crauss Daronco
8fc251c55b Webhooks: follow redirects on callback calls, up to 10 times 2014-11-14 14:26:29 -02:00
Leonardo Crauss Daronco
536decff7c Webhooks: use winston for logging and rotate log files 2014-11-14 14:12:37 -02:00
Leonardo Crauss Daronco
6260f26101 Webhooks: adjustments for the app when running in production 2014-11-14 11:58:12 -02:00
Leonardo Crauss Daronco
31666bc7fb Webhooks: add config files for upstart and monit 2014-11-14 11:23:04 -02:00
Leonardo Crauss Daronco
592a2f92dd Webhooks: add an extra app to print events from a meeting
Utility app to help a user find out the events that happen in a meeting.
2014-11-14 11:07:16 -02:00
Leonardo Crauss Daronco
329a1ff959 Webhooks: local config, docs and improve how the checksum is calculated
The way the checksum is calculated now is more similar to the other API calls,
specially setConfigXML. It uses the content type 'application/x-www-form-urlencoded'
so the information in the post body doesn't have to be converted from/to
js/string, preventing possible checksum errors in different programming
languages.
2014-11-14 11:05:20 -02:00
Leonardo Crauss Daronco
6dbcf1bab2 Webhooks: rename MeetingIDMap to IDMapping 2014-11-13 12:15:20 -02:00
Leonardo Crauss Daronco
14641d1a3b Webhooks: expire mappings for inactive meetings
If a meeting has no events for too long (24 hours), remove the meeting
mapping to prevent too much data from being stored forever on redis.
2014-11-13 12:03:42 -02:00
Leonardo Crauss Daronco
66bfbeb1bc Webhooks: use external meeting ID as key in the mappings
It changes less than the internal meeting ID. An application can subscribe
to an external ID and use the hook for several different meetings that will
have the same external ID but different internal IDs.
2014-11-12 18:27:21 -02:00
Leonardo Crauss Daronco
5e141d324c Webhooks: better intervals for retying failed callbacks
Will try again a number of times for about 5min and then give up. On giving
up, the hook is removed.
And a few fixes for saving and loading data on redis.
2014-11-12 18:07:29 -02:00
Leonardo Crauss Daronco
6d63f2f299 Webhooks: persist data to redis
Save hooks and meetingID mappings to redis and get them back when the
application starts.
Still missing a way to remove old data in case the app loses events (e.g.
a hook for a specific meeting might stay on redis forever if the app
lost the meeting_destroyed event).
2014-11-12 16:35:25 -02:00
Leonardo Crauss Daronco
bfdae8f204 Webhooks: store meeting ID mappings in a global model 2014-11-12 13:07:54 -02:00
Fred Dixon
e84a65d986 Moved from labs; reformatted check.nginx 2014-11-12 09:22:50 -05:00
Leonardo Crauss Daronco
fd90a46563 Webhooks: implement the API method to list available hooks 2014-11-12 11:38:00 -02:00
Leonardo Crauss Daronco
79609fadb2 Webhooks: use more "hook" and less "subscription" for consistency
It now creates and destroys hooks instead of creating and removing
subscriptions.
2014-11-12 11:28:49 -02:00
Felipe Cecagno
739287bce0 added a nginx config file so anybody can run the client check from a dev environment 2014-11-12 10:54:38 -02:00
Felipe Cecagno
9a8e299648 changed the client check output dir from bin-release/ to check/ 2014-11-12 10:54:13 -02:00
Leonardo Crauss Daronco
c25082bafa Wehbooks: hooks can now subscribe to a single meeting
Hooks can be global, to receive events from all meetings, or can receive
events for a single meeting. Depends on whether the meetingID parameter is
informed or not in the hooks/subscribe API call.

Also improved the log messages a bit.
2014-11-12 10:53:49 -02:00
Felipe Cecagno
740d61f205 fixed the build.xml so ant works in a clean environment 2014-11-12 10:53:38 -02:00
Felipe Cecagno
21f0ea139a renamed BBBClientCheck.html to index.html; moved the locale to outside the src directory (mxml warning) 2014-11-12 10:53:02 -02:00
Felipe Cecagno
535604b8b6 Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into improving-client-checks 2014-11-12 10:38:00 -02:00
Fred Dixon
1ef484ba95 Aligned URL path for config.xml with install directory 2014-11-11 17:00:05 -05:00
Leonardo Crauss Daronco
31fe86c19d Webhooks: keep a mapping of internal and external meeting IDs 2014-11-11 18:48:23 -02:00
Leonardo Crauss Daronco
e884643ac0 Webhooks: fix callbacks being called multiple times 2014-11-11 17:54:00 -02:00
Leonardo Crauss Daronco
4e72d53b94 Webhooks: sign callback calls with a checksum
Simple signature done initially in a way similar to how bbb-web does it.
2014-11-11 17:36:01 -02:00
Pedro Beschorner Marin
d2cda28761 Merge branch 'improving-client-checks' of https://github.com/mconf/bigbluebutton into improving-client-checks 2014-11-11 17:31:54 -02:00
Pedro Beschorner Marin
3c4b980ace Bugfix: removing event listeners and closing netconnections 2014-11-11 17:16:16 -02:00
Leonardo Crauss Daronco
e070f3c5c5 Webhooks: block multiple subscriptions to the same callback URL
Will allow only one subscription to a given callback URL. If trying to
subscribe again to the same URL, will return success but with a message
saying the callback URL is duplicated, very similar to the response of
create when called multiple times.
2014-11-11 16:56:15 -02:00
Leonardo Crauss Daronco
6fc50f0a7e Webhooks: use hooks in memory when generating callback calls 2014-11-11 16:43:41 -02:00
Felipe Cecagno
ca1fbb136d cleanup; using a config.xml template, and added some logic in the build.xml to set config.xml with the proper host IP 2014-11-11 16:33:25 -02:00
Leonardo Crauss Daronco
dae00ac668 Webhooks: implement subscribe and unsubscribe API calls
Saving subscriptions to a local database for now.
2014-11-11 15:48:36 -02:00
Leonardo Crauss Daronco
cbc144b5cc Webhooks: add config file for nginx
To proxy API calls to the webhooks app.
2014-11-11 15:07:43 -02:00
Leonardo Crauss Daronco
21d9d8ae96 Webhooks: basic routes and checksum calculation 2014-11-11 15:07:05 -02:00
Leonardo Crauss Daronco
7f8eb12f77 Webhooks app will now have a web server, reorganizing it
It will receive API calls to deal with web hooks to make it independent from
other components such as bbb-web.
2014-11-11 11:58:28 -02:00
Leonardo Crauss Daronco
8c8c93beb7 Webhooks: overall improvements in comments and prints 2014-11-11 11:20:55 -02:00
Felipe Cecagno
7667abc106 a few tweaks on the client check page: build.xml downloads the image for the download speed test, config doesn't have someone's IP address (just like a config.xml.template), securityError on port check doesn't throw an exception anymore 2014-11-11 09:25:56 -02:00
Leonardo Crauss Daronco
6f72a4e5e3 Webhooks: first version of a queue to retry callbacks
Simple queue that retries to emit the callbacks in case they fail. A lot to
improve yet, but the basic is working.
2014-11-10 19:12:37 -02:00
Leonardo Crauss Daronco
9b94688f93 Webhooks: filter the events we want to generate callback calls for 2014-11-10 18:11:09 -02:00
Leonardo Crauss Daronco
1a6799a833 Webhooks posting all events to all callbacks registered
First step toward allowing callbacks to be called for all meetings in a
server, not for only a single meeting. Will need to change the way data
is stored on redis to improve the webhooks app, but it already works the
way it is now.
2014-11-10 17:32:51 -02:00
Leonardo Crauss Daronco
04e678f171 First version of webhooks subscribing to all channels and organized repo
Started using coffee-script, updated the libraries, and now it subscribes
to all channels under 'bigbluebutton:*' so we can receive all events that
happened and select the ones we want.
2014-11-10 15:51:41 -02:00
Fred Dixon
6603820eef Merge pull request #410 from SenecaCDOT-BigBlueButton/bigbluebutton-client-system-check-app
modifying build.xml to copy custom BBBClientCheck.html file, adding addi...
2014-10-25 00:49:20 -04:00
syeshchenko
0d54cfad2c modifying build.xml to copy custom BBBClientCheck.html file, adding additional value to gitignore 2014-10-22 17:13:49 -04:00
syeshchenko
5c93bddb48 clearing more files that are not required and additional paramaters to gitignore 2014-10-22 13:52:07 -04:00
syeshchenko
2d0faf7922 adding gitignore, removing files that are not required 2014-10-22 13:46:29 -04:00