|
|
@@ -6,6 +6,7 @@ import { getLogger } from 'jitsi-meet-logger';
|
|
6
|
6
|
import * as JitsiConferenceEvents from './JitsiConferenceEvents';
|
|
7
|
7
|
import { ParticipantConnectionStatus }
|
|
8
|
8
|
from './modules/connectivity/ParticipantConnectionStatus';
|
|
|
9
|
+import { ERROR_FEATURE_VERSION_MISMATCH } from './modules/xmpp/Caps';
|
|
9
|
10
|
import * as MediaType from './service/RTC/MediaType';
|
|
10
|
11
|
|
|
11
|
12
|
const logger = getLogger(__filename);
|
|
|
@@ -246,11 +247,8 @@ export default class JitsiParticipant {
|
|
246
|
247
|
|
|
247
|
248
|
this._getFeaturesPromise = this._conference.xmpp.caps.getFeatures(this._jid, timeout)
|
|
248
|
249
|
.catch(error => {
|
|
249
|
|
- // FIXME there's a risk of getting into an endless loop should anything along the way decide to reject
|
|
250
|
|
- // with a string. Compare against a specific string instead.
|
|
251
|
|
- // when we detect version mismatch we return a string as error
|
|
252
|
|
- // we want to retry in such case
|
|
253
|
|
- if (error && error.constructor === String) {
|
|
|
250
|
+ // Retry on feature version mismatch
|
|
|
251
|
+ if (error === ERROR_FEATURE_VERSION_MISMATCH) {
|
|
254
|
252
|
return this._conference.xmpp.caps.getFeatures(this._jid, timeout);
|
|
255
|
253
|
}
|
|
256
|
254
|
|