Browse Source

Fixes using options from correct locations, per conference or per connection.

master
damencho 9 years ago
parent
commit
7cc832e9ee
2 changed files with 34 additions and 32 deletions
  1. 1
    1
      modules/xmpp/ChatRoom.js
  2. 33
    31
      modules/xmpp/moderator.js

+ 1
- 1
modules/xmpp/ChatRoom.js View File

@@ -76,7 +76,7 @@ function ChatRoom(connection, jid, password, XMPP, options, settings) {
76 76
     this.bridgeIsDown = false;
77 77
     this.options = options || {};
78 78
     this.moderator = new Moderator(this.roomjid, this.xmpp, this.eventEmitter,
79
-        settings);
79
+        settings, {connection: this.xmpp.options, conference: this.options});
80 80
     this.initPresenceMap();
81 81
     this.session = null;
82 82
     var self = this;

+ 33
- 31
modules/xmpp/moderator.js View File

@@ -21,7 +21,7 @@ function createExpBackoffTimer(step) {
21 21
     };
22 22
 }
23 23
 
24
-function Moderator(roomName, xmpp, emitter, settings) {
24
+function Moderator(roomName, xmpp, emitter, settings, options) {
25 25
     this.roomName = roomName;
26 26
     this.xmppService = xmpp;
27 27
     this.getNextTimeout = createExpBackoffTimer(1000);
@@ -29,11 +29,13 @@ function Moderator(roomName, xmpp, emitter, settings) {
29 29
     // External authentication stuff
30 30
     this.externalAuthEnabled = false;
31 31
     this.settings = settings;
32
+    this.options = options;
33
+
32 34
     // Sip gateway can be enabled by configuring Jigasi host in config.js or
33 35
     // it will be enabled automatically if focus detects the component through
34 36
     // service discovery.
35
-    this.sipGatewayEnabled = this.xmppService.options.hosts &&
36
-        this.xmppService.options.hosts.call_control !== undefined;
37
+    this.sipGatewayEnabled = this.options.connection.hosts &&
38
+        this.options.connection.hosts.call_control !== undefined;
37 39
 
38 40
     this.eventEmitter = emitter;
39 41
 
@@ -94,10 +96,10 @@ Moderator.prototype.getFocusUserJid =  function () {
94 96
 
95 97
 Moderator.prototype.getFocusComponent =  function () {
96 98
     // Get focus component address
97
-    var focusComponent = this.xmppService.options.hosts.focus;
99
+    var focusComponent = this.options.connection.hosts.focus;
98 100
     // If not specified use default:  'focus.domain'
99 101
     if (!focusComponent) {
100
-        focusComponent = 'focus.' + this.xmppService.options.hosts.domain;
102
+        focusComponent = 'focus.' + this.options.connection.hosts.domain;
101 103
     }
102 104
     return focusComponent;
103 105
 };
@@ -109,7 +111,6 @@ Moderator.prototype.createConferenceIq =  function () {
109 111
     // Session Id used for authentication
110 112
     var sessionId = this.settings.getSessionId();
111 113
     var machineUID = this.settings.getUserId();
112
-    var options = this.xmppService.options;
113 114
 
114 115
     logger.info(
115 116
             "Session ID: " + sessionId + " machine UID: " + machineUID);
@@ -123,48 +124,49 @@ Moderator.prototype.createConferenceIq =  function () {
123 124
     if (sessionId) {
124 125
         elem.attrs({ 'session-id': sessionId});
125 126
     }
126
-    if (options.hosts !== undefined && options.hosts.bridge !== undefined) {
127
+    if (this.options.connection.hosts !== undefined
128
+        && this.options.connection.hosts.bridge !== undefined) {
127 129
         elem.c(
128 130
             'property', {
129 131
                 name: 'bridge',
130
-                value: options.hosts.bridge
132
+                value: this.options.connection.hosts.bridge
131 133
             }).up();
132 134
     }
133
-    if (options.enforcedBridge !== undefined) {
135
+    if (this.options.connection.enforcedBridge !== undefined) {
134 136
         elem.c(
135 137
             'property', {
136 138
                 name: 'enforcedBridge',
137
-                value: options.enforcedBridge
139
+                value: this.options.connection.enforcedBridge
138 140
             }).up();
139 141
     }
140 142
     // Tell the focus we have Jigasi configured
141
-    if (options.hosts !== undefined &&
142
-        options.hosts.call_control !== undefined) {
143
+    if (this.options.connection.hosts !== undefined &&
144
+        this.options.connection.hosts.call_control !== undefined) {
143 145
         elem.c(
144 146
             'property', {
145 147
                 name: 'call_control',
146
-                value: options.hosts.call_control
148
+                value: this.options.connection.hosts.call_control
147 149
             }).up();
148 150
     }
149
-    if (options.channelLastN !== undefined) {
151
+    if (this.options.conference.channelLastN !== undefined) {
150 152
         elem.c(
151 153
             'property', {
152 154
                 name: 'channelLastN',
153
-                value: options.channelLastN
155
+                value: this.options.conference.channelLastN
154 156
             }).up();
155 157
     }
156
-    if (options.adaptiveLastN !== undefined) {
158
+    if (this.options.conference.adaptiveLastN !== undefined) {
157 159
         elem.c(
158 160
             'property', {
159 161
                 name: 'adaptiveLastN',
160
-                value: options.adaptiveLastN
162
+                value: this.options.conference.adaptiveLastN
161 163
             }).up();
162 164
     }
163
-    if (options.disableAdaptiveSimulcast !== undefined ||
164
-        options.disableSimulcast) {
165
+    if (this.options.conference.disableAdaptiveSimulcast !== undefined ||
166
+        this.options.conference.disableSimulcast) {
165 167
         // disableSimulcast implies disableAdaptiveSimulcast.
166
-        var value = options.disableSimulcast ? true :
167
-            options.disableAdaptiveSimulcast;
168
+        var value = this.options.conference.disableSimulcast ? true :
169
+            this.options.conference.disableAdaptiveSimulcast;
168 170
         elem.c(
169 171
             'property', {
170 172
                 name: 'disableAdaptiveSimulcast',
@@ -172,35 +174,35 @@ Moderator.prototype.createConferenceIq =  function () {
172 174
             }).up();
173 175
     }
174 176
     // TODO: re-enable once rtx is stable
175
-    //if (options.disableRtx !== undefined) {
177
+    //if (this.options.conference.disableRtx !== undefined) {
176 178
         elem.c(
177 179
             'property', {
178 180
                 name: 'disableRtx',
179
-                //value: options.disableRtx
181
+                //value: this.options.conference.disableRtx
180 182
                 value: true
181 183
             }).up();
182 184
     //}
183
-    if (options.openSctp !== undefined) {
185
+    if (this.options.conference.openSctp !== undefined) {
184 186
         elem.c(
185 187
             'property', {
186 188
                 name: 'openSctp',
187
-                value: options.openSctp
189
+                value: this.options.conference.openSctp
188 190
             }).up();
189 191
     }
190
-    if (options.startAudioMuted !== undefined)
192
+    if (this.options.conference.startAudioMuted !== undefined)
191 193
     {
192 194
         elem.c(
193 195
             'property', {
194 196
                 name: 'startAudioMuted',
195
-                value: options.startAudioMuted
197
+                value: this.options.conference.startAudioMuted
196 198
             }).up();
197 199
     }
198
-    if (options.startVideoMuted !== undefined)
200
+    if (this.options.conference.startVideoMuted !== undefined)
199 201
     {
200 202
         elem.c(
201 203
             'property', {
202 204
                 name: 'startVideoMuted',
203
-                value: options.startVideoMuted
205
+                value: this.options.conference.startVideoMuted
204 206
             }).up();
205 207
     }
206 208
 
@@ -272,7 +274,7 @@ Moderator.prototype.parseConfigOptions =  function (resultIq) {
272 274
  */
273 275
 Moderator.prototype.allocateConferenceFocus =  function (callback) {
274 276
     // Try to use focus user JID from the config
275
-    this.setFocusUserJid(this.xmppService.options.focusUserJid);
277
+    this.setFocusUserJid(this.options.connection.focusUserJid);
276 278
     // Send create conference IQ
277 279
     var self = this;
278 280
     this.connection.sendIQ(
@@ -331,7 +333,7 @@ Moderator.prototype._allocateConferenceFocusError = function (error, callback) {
331 333
     if ($(error).find('>error>not-authorized').length) {
332 334
         logger.warn("Unauthorized to start the conference", error);
333 335
         var toDomain = Strophe.getDomainFromJid(error.getAttribute('to'));
334
-        if (toDomain !== self.xmppService.options.hosts.anonymousdomain) {
336
+        if (toDomain !== self.options.connection.hosts.anonymousdomain) {
335 337
             //FIXME "is external" should come either from the focus or config.js
336 338
             self.externalAuthEnabled = true;
337 339
         }

Loading…
Cancel
Save