diff --git a/src/CallHandler.js b/src/CallHandler.js
index 9b0a446565..acdc3e5122 100644
--- a/src/CallHandler.js
+++ b/src/CallHandler.js
@@ -61,7 +61,6 @@ import Matrix from 'matrix-js-sdk';
 import dis from './dispatcher';
 import SdkConfig from './SdkConfig';
 import { showUnknownDeviceDialogForCalls } from './cryptodevices';
-import SettingsStore from "./settings/SettingsStore";
 import WidgetUtils from './utils/WidgetUtils';
 import WidgetEchoStore from './stores/WidgetEchoStore';
 import ScalarAuthClient from './ScalarAuthClient';
@@ -301,67 +300,7 @@ function _onAction(payload) {
             break;
         case 'place_conference_call':
             console.log("Place conference call in %s", payload.room_id);
-
-            if (SettingsStore.isFeatureEnabled('feature_jitsi')) {
-                _startCallApp(payload.room_id, payload.type);
-            } else {
-                if (MatrixClientPeg.get().isRoomEncrypted(payload.room_id)) {
-                    // Conference calls are implemented by sending the media to central
-                    // server which combines the audio from all the participants together
-                    // into a single stream. This is incompatible with end-to-end encryption
-                    // because a central server would be decrypting the audio for each
-                    // participant.
-                    // Therefore we disable conference calling in E2E rooms.
-                    const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
-                    Modal.createTrackedDialog('Call Handler', 'Conference calls unsupported e2e', ErrorDialog, {
-                        description: _t('Conference calls are not supported in encrypted rooms'),
-                    });
-                    return;
-                }
-
-                if (!ConferenceHandler) {
-                    const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
-                    Modal.createTrackedDialog('Call Handler', 'Conference call unsupported client', ErrorDialog, {
-                        description: _t('Conference calls are not supported in this client'),
-                    });
-                } else if (!MatrixClientPeg.get().supportsVoip()) {
-                    const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
-                    Modal.createTrackedDialog('Call Handler', 'VoIP is unsupported', ErrorDialog, {
-                        title: _t('VoIP is unsupported'),
-                        description: _t('You cannot place VoIP calls in this browser.'),
-                    });
-                } else {
-                    const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
-                    Modal.createTrackedDialog('Call Handler', 'Conference calling in development', QuestionDialog, {
-                        title: _t('Warning!'),
-                        description: _t('Conference calling is in development and may not be reliable.'),
-                        onFinished: (confirm)=>{
-                            if (confirm) {
-                                ConferenceHandler.createNewMatrixCall(
-                                    MatrixClientPeg.get(), payload.room_id,
-                                ).done(function(call) {
-                                    placeCall(call);
-                                }, function(err) {
-                                    const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
-                                    console.error("Conference call failed: " + err);
-                                    Modal.createTrackedDialog(
-                                        'Call Handler',
-                                        'Failed to set up conference call',
-                                        ErrorDialog,
-                                        {
-                                            title: _t('Failed to set up conference call'),
-                                            description: (
-                                                _t('Conference call failed.') +
-                                                ' ' + ((err && err.message) ? err.message : '')
-                                            ),
-                                        },
-                                    );
-                                });
-                            }
-                        },
-                    });
-                }
-            }
+            _startCallApp(payload.room_id, payload.type);
             break;
         case 'incoming_call':
             {
@@ -543,6 +482,24 @@ const callHandler = {
         return null;
     },
 
+    /**
+     * The conference handler is a module that deals with implementation-specific
+     * multi-party calling implementations. Riot passes in its own which creates
+     * a one-to-one call with a freeswitch conference bridge. As of July 2018,
+     * the de-facto way of conference calling is a Jitsi widget, so this is
+     * deprecated. It reamins here for two reasons:
+     *  1. So Riot still supports joining existing freeswitch conference calls
+     *     (but doesn't support creating them). After a transition period, we can
+     *     remove support for joining them too.
+     *  2. To hide the one-to-one rooms that old-style conferencing creates. This
+     *     is much harder to remove: probably either we make Riot leave & forget these
+     *     rooms after we remove support for joining freeswitch conferences, or we
+     *     accept that random rooms with cryptic users will suddently appear for
+     *     anyone who's ever used conference calling, or we are stuck with this
+     *     code forever.
+     *
+     * @param {object} confHandler The conference handler object
+     */
     setConferenceHandler: function(confHandler) {
         ConferenceHandler = confHandler;
     },
diff --git a/src/settings/Settings.js b/src/settings/Settings.js
index 022fabc739..e3f5855f0d 100644
--- a/src/settings/Settings.js
+++ b/src/settings/Settings.js
@@ -83,12 +83,6 @@ export const SETTINGS = {
         supportedLevels: LEVELS_FEATURE,
         default: false,
     },
-    "feature_jitsi": {
-        isFeature: true,
-        displayName: _td("Jitsi Conference Calling"),
-        supportedLevels: LEVELS_FEATURE,
-        default: false,
-    },
     "MessageComposerInput.dontSuggestEmoji": {
         supportedLevels: LEVELS_ACCOUNT_SETTINGS,
         displayName: _td('Disable Emoji suggestions while typing'),