|
@@ -16,11 +16,10 @@ function Recording(type, eventEmitter, connection, focusMucJid, jirecon,
|
16
|
16
|
this.type = type;
|
17
|
17
|
this._isSupported
|
18
|
18
|
= ( type === Recording.types.JIRECON && !this.jirecon
|
19
|
|
- || type === Recording.types.JIBRI && !this._isServiceAvailable)
|
|
19
|
+ || (type !== Recording.types.JIBRI
|
|
20
|
+ && type !== Recording.types.COLIBRI))
|
20
|
21
|
? false : true;
|
21
|
22
|
|
22
|
|
- this._isServiceAvailable = false;
|
23
|
|
-
|
24
|
23
|
/**
|
25
|
24
|
* The ID of the jirecon recording session. Jirecon generates it when we
|
26
|
25
|
* initially start recording, and it needs to be used in subsequent requests
|
|
@@ -52,25 +51,20 @@ Recording.prototype.handleJibriPresence = function (jibri) {
|
52
|
51
|
return;
|
53
|
52
|
|
54
|
53
|
var newState = attributes.status;
|
55
|
|
- console.log("handle jibri presence : ", newState);
|
56
|
|
- var oldIsAvailable = this._isServiceAvailable;
|
57
|
|
- // The service is available if the statu isn't undefined.
|
58
|
|
- this._isServiceAvailable =
|
59
|
|
- (newState && newState !== "undefined");
|
60
|
|
-
|
61
|
|
- if (newState === "undefined"
|
62
|
|
- || oldIsAvailable != this._isServiceAvailable
|
63
|
|
- // If we receive an OFF state without any recording in progress we
|
64
|
|
- // consider this to be an initial available state.
|
65
|
|
- || (this.state === Recording.status.AVAILABLE
|
66
|
|
- && newState === Recording.status.OFF))
|
67
|
|
- this.state = (newState === "undefined")
|
68
|
|
- ? Recording.status.UNAVAILABLE
|
69
|
|
- : Recording.status.AVAILABLE;
|
70
|
|
- else
|
71
|
|
- this.state = attributes.status;
|
72
|
|
-
|
73
|
|
- logger.log("Handle Jibri presence: ", this.state);
|
|
54
|
+ console.log("Handle jibri presence : ", newState);
|
|
55
|
+
|
|
56
|
+ if (newState === this.state)
|
|
57
|
+ return;
|
|
58
|
+
|
|
59
|
+ if (newState === "undefined") {
|
|
60
|
+ this.state = Recording.status.UNAVAILABLE;
|
|
61
|
+ }
|
|
62
|
+ else if (newState === "off") {
|
|
63
|
+ this.state = Recording.status.AVAILABLE;
|
|
64
|
+ }
|
|
65
|
+ else {
|
|
66
|
+ this.state = newState;
|
|
67
|
+ }
|
74
|
68
|
|
75
|
69
|
this.eventEmitter.emit(XMPPEvents.RECORDER_STATE_CHANGED, this.state);
|
76
|
70
|
};
|
|
@@ -255,6 +249,7 @@ Recording.prototype.toggleRecording = function (options, statusChangeHandler) {
|
255
|
249
|
* Returns true if the recording is supproted and false if not.
|
256
|
250
|
*/
|
257
|
251
|
Recording.prototype.isSupported = function () {
|
|
252
|
+ console.log("IS SUPPORTED", this._isSupported);
|
258
|
253
|
return this._isSupported;
|
259
|
254
|
};
|
260
|
255
|
|