diff --git a/react/features/dial-out/actions.js b/react/features/dial-out/actions.js index d10ec18dd6..e00dae5cdc 100644 --- a/react/features/dial-out/actions.js +++ b/react/features/dial-out/actions.js @@ -47,6 +47,19 @@ export function checkDialNumber(dialNumber) { return (dispatch, getState) => { const { dialOutAuthUrl } = getState()['features/base/config']; + if (!dialOutAuthUrl) { + // no auth url, let's say it is valid + const response = {}; + + response.allow = true; + dispatch({ + type: PHONE_NUMBER_CHECKED, + response + }); + + return; + } + const fullUrl = `${dialOutAuthUrl}?phone=${dialNumber}`; $.getJSON(fullUrl) @@ -82,6 +95,10 @@ export function updateDialOutCodes() { return (dispatch, getState) => { const { dialOutCodesUrl } = getState()['features/base/config']; + if (!dialOutCodesUrl) { + return; + } + $.getJSON(dialOutCodesUrl) .success(response => dispatch({ diff --git a/react/features/dial-out/components/DialOutDialog.web.js b/react/features/dial-out/components/DialOutDialog.web.js index 83d07d2893..b8d097378f 100644 --- a/react/features/dial-out/components/DialOutDialog.web.js +++ b/react/features/dial-out/components/DialOutDialog.web.js @@ -18,6 +18,11 @@ class DialOutDialog extends Component { * @static */ static propTypes = { + /** + * The redux state representing the list of dial-out codes. + */ + _dialOutCodes: React.PropTypes.array, + /** * Property indicating if a dial number is allowed. */ @@ -176,15 +181,23 @@ class DialOutDialog extends Component { * @returns {void} */ _onDialNumberChange(dialCode, dialInput) { - // We remove all starting zeros from the dial input before attaching it - // to the country code. - const formattedDialInput = dialInput.replace(/^(0+)/, ''); + let formattedDialInput, formattedNumber; - const dialNumber = `${dialCode}${formattedDialInput}`; + // if there are no dial out codes it is possible they are disabled + // so we get the input as is, it can be just a sip address + if (this.props._dialOutCodes) { + // We remove all starting zeros from the dial input before attaching + // it to the country code. + formattedDialInput = dialInput.replace(/^(0+)/, ''); - const formattedNumber = this._formatDialNumber(dialNumber); + const dialNumber = `${dialCode}${formattedDialInput}`; - this.props.checkDialNumber(formattedNumber); + formattedNumber = this._formatDialNumber(dialNumber); + + this.props.checkDialNumber(formattedNumber); + } else { + formattedNumber = formattedDialInput = dialInput; + } this.setState({ dialNumber: formattedNumber, @@ -205,9 +218,17 @@ class DialOutDialog extends Component { * }} */ function _mapStateToProps(state) { - const { isDialNumberAllowed } = state['features/dial-out']; + const { dialOutCodes, isDialNumberAllowed } = state['features/dial-out']; return { + /** + * List of dial-out codes. + * + * @private + * @type {array} + */ + _dialOutCodes: dialOutCodes, + /** * Property indicating if a dial number is allowed. * diff --git a/react/features/dial-out/components/DialOutNumbersForm.web.js b/react/features/dial-out/components/DialOutNumbersForm.web.js index 33a94b4d8a..899c43e256 100644 --- a/react/features/dial-out/components/DialOutNumbersForm.web.js +++ b/react/features/dial-out/components/DialOutNumbersForm.web.js @@ -141,12 +141,11 @@ class DialOutNumbersForm extends Component { */ render() { const { t, _dialOutCodes } = this.props; - const items - = _dialOutCodes ? this._formatCountryCodes(_dialOutCodes) : []; return (