123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /* global config,
- createConnectionExternally,
- getConfigParamsFromUrl,
- getRoomName */
-
- /**
- * Implements external connect using createConnectionExternally function defined
- * in external_connect.js for Jitsi Meet. Parses the room name and token from
- * the URL and executes createConnectionExternally.
- *
- * NOTE: If you are using lib-jitsi-meet without Jitsi Meet you should use this
- * file as reference only because the implementation is Jitsi Meet-specific.
- *
- * NOTE: For optimal results this file should be included right after
- * external_connect.js.
- */
-
- const hashParams = getConfigParamsFromUrl('hash', true);
- const searchParams = getConfigParamsFromUrl('search', true);
-
- // URL params have higher proirity than config params.
- let url
- = hashParams.hasOwnProperty('config.externalConnectUrl')
- ? hashParams['config.externalConnectUrl']
- : config.externalConnectUrl;
-
- if (url && window.createConnectionExternally) {
- const roomName = getRoomName();
-
- if (roomName) {
- url += `?room=${roomName}`;
-
- const token
- = hashParams['config.token'] || config.token || searchParams.jwt;
-
- if (token) {
- url += `&token=${token}`;
- }
-
- createConnectionExternally(
- url,
- connectionInfo => {
- // Sets that global variable to be used later by connect method
- // in connection.js.
- window.XMPPAttachInfo = {
- status: 'success',
- data: connectionInfo
- };
- checkForConnectHandlerAndConnect();
- },
- errorCallback);
- } else {
- errorCallback();
- }
- } else {
- errorCallback();
- }
-
- /**
- * Check if connect from connection.js was executed and executes the handler
- * that is going to finish the connect work.
- *
- * @returns {void}
- */
- function checkForConnectHandlerAndConnect() {
- window.APP
- && window.APP.connect.status === 'ready'
- && window.APP.connect.handler();
- }
-
- /**
- * Implements a callback to be invoked if anything goes wrong.
- *
- * @param {Error} error - The specifics of what went wrong.
- * @returns {void}
- */
- function errorCallback(error) {
- // The value of error is undefined if external connect is disabled.
- error && console.warn(error);
-
- // Sets that global variable to be used later by connect method in
- // connection.js.
- window.XMPPAttachInfo = {
- status: 'error'
- };
- checkForConnectHandlerAndConnect();
- }
|