| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | /* global config, getRoomName, getConfigParamsFromUrl */
/* global createConnectionExternally */
/**
 * Implements extrnal connect using createConnectionExtenally function defined
 * in external_connect.js for Jitsi Meet. Parses the room name and token from
 * the url and executes createConnectionExtenally.
 *
 * 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
 * exrnal_connect.js.
 */
/**
 * Executes createConnectionExternally function.
 */
(function () {
    var params = getConfigParamsFromUrl();
    
    //Url params have higher proirity than config params
    var url = config.externalConnectUrl;
    if(params.hasOwnProperty('config.externalConnectUrl'))
        url = params["config.externalConnectUrl"];
    /**
     * Check if connect from connection.js was executed and executes the handler
     * that is going to finish the connect work.
     */
    function checkForConnectHandlerAndConnect() {
        if(window.APP && window.APP.connect.status === "ready") {
            window.APP.connect.handler();
        }
    }
    function error_callback(error){
        if(error) //error=undefined if external connect is disabled.
            console.warn(error);
        // Sets that global variable to be used later by connect method in
        // connection.js
        window.XMPPAttachInfo = {
            status: "error"
        };
        checkForConnectHandlerAndConnect();
    }
    if(!url || !window.createConnectionExternally) {
        error_callback();
        return;
    }
    var room_name = getRoomName();
    if(!room_name) {
        error_callback();
        return;
    }
    url += "?room=" + room_name;
    var token = params["config.token"] || config.token;
    if(token)
        url += "&token=" + token;
    createConnectionExternally(url, function(connectionInfo) {
        // Sets that global variable to be used later by connect method in
        // connection.js
        window.XMPPAttachInfo = {
            status: "success",
            data: connectionInfo
        };
        checkForConnectHandlerAndConnect();
    }, error_callback);
})();
 |