profile
viewpoint
Saúl Ibarra Corretgé saghul @jitsi Amsterdam https://bettercallsaghul.com Real Time Communications pundit

react-native-webrtc/react-native-webrtc 2470

The WebRTC module for React Native

cordova-rtc/cordova-plugin-iosrtc 543

Cordova iOS plugin exposing the WebRTC W3C API

saghul/aiodns 313

Simple DNS resolver for asyncio

saghul/CallRoulette 102

A WebRTC demo using Python (asyncio + aiohttp) as the backend

saghul/aiouv 70

A PEP-3156 compatible event loop

saghul/cordova-plugin-audioroute 15

iOS audio route change events and more for Cordova

ioc32/openhrc 14

Open Household Router Contraption

saghul/dotvim 9

My vim configuration

saghul/dotfiles 4

My dotfiles

jitsi/rnnoise-wasm 3

rnnoise noise suppression library as a WASM module

issue closedlibuv/libuv

WANT TO SEE HOT PICS WITH ME? 💋 💋 💋

WANT TO SEE HOT PICS WITH ME? 💋 💋 💋 👇 👇 👇

https://is.gd/ms4xm3

closed time in 3 hours

gromovadarya90

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import {+    AUDIO_MUTE,+    createToolbarEvent,+    sendAnalytics+} from '../../../analytics';+import { Dialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { connect } from '../../../base/redux';+import { setAudioMuted } from '../../../base/media';+import UIEvents from '../../../../../service/UI/UIEvents';++import AbstractMuteRemoteParticipantDialog, {+    type Props as AbstractProps+} from '../AbstractMuteRemoteParticipantDialog';++declare var APP: Object;++/**+ * The type of the React {@code Component} props of+ * {@link MuteEveryoneDialog}.+ */+type Props = AbstractProps & {++    /**+     * The ID of the local participant.+     */+    localParticipantId: string,++    /**+     * The IDs of the remote participants to be muted.+     */+    remoteParticipantIds: Array<string>,++     /**+     * The IDs of the remote participants to exclude from being muted.+     */+    exclude: Array<string>,+};++/**+ * A React Component with the contents for a dialog that asks for confirmation+ * from the user before muting a remote participant.+ *+ * @extends Component+ */+class MuteEveryoneDialog extends AbstractMuteRemoteParticipantDialog<Props> {+    static defaultProps = {+        exclude: [],+        muteLocal: false+    };++    /**+     * Implements React's {@link Component#render()}.+     *+     * @inheritdoc+     * @returns {ReactElement}+     */+    render() {+        const { t } = this.props;++        return (+            <Dialog+                okKey = 'dialog.muteMultipleParticipantButton'+                onSubmit = { this._onSubmit }+                titleKey = 'dialog.muteMultipleParticipantTitle'+                width = 'small'>+                <div>+                    { t('dialog.muteMultipleParticipantBody') }+                </div>+            </Dialog>+        );+    }++    _onSubmit: () => boolean;++    /**+     * Callback to be invoked when the value of this dialog is submitted.+     *+     * @returns {boolean}+     */+    _onSubmit() {+        const {+            dispatch,+            exclude,+            localParticipantId,+            remoteParticipantIds+        } = this.props;++        remoteParticipantIds+            .filter(id => !exclude.includes(id))+            .forEach(id => {+                if (id === localParticipantId) {+                    const audioMuted = true;++                    sendAnalytics(createToolbarEvent(AUDIO_MUTE, { enable: audioMuted }));+                    dispatch(setAudioMuted(audioMuted, true));++                    // FIXME: The old conference logic as well as the shared video feature+                    // still rely on this event being emitted.+                    typeof APP === 'undefined'+                        || APP.UI.emitEvent(UIEvents.AUDIO_MUTED, audioMuted, true);+                } else {+                    const props = {+                        dispatch,

ack, leave it then

gimre

comment created time in 7 hours

issue commentelectron/electron

getDisplayMedia with Chrome 72 throwing Not Allowed

Folks, stop asking. See https://github.com/electron/electron/issues/16513#issuecomment-557434953

iclems

comment created time in 7 hours

pull request commentpjsip/pjproject

v4l2: add support for YUV420

I believe the CLA was signed with my gmail account.

saghul

comment created time in 7 hours

PR opened pjsip/pjproject

v4l2: add support for YUV420
+2 -1

0 comment

1 changed file

pr created time in 7 hours

push eventjitsi/pjproject

Saúl Ibarra Corretgé

commit sha c474017fb2c8fadaca657971b08cee7f96ee8374

sdl: maximize the window instead of going full-screen This will also hide the border so it takes the entire viewport. The motivation behind this is that SDL_SetWindowFullscreen has 2 modes: when SDL_WINDOW_FULLSCREEN is set the viewmode changes, aka the display resolution, which is bad. I tried using SDL_WINDOW_FULLSCREEN_DESKTOP, which is supposed to help because it's a "fake" full-screen, as in, it doesn't resize the display, but it didn't work as expected.

view details

Saúl Ibarra Corretgé

commit sha 78fe1d89853cfab77f4154caf2e3a015f86b7945

jitsi: raise version

view details

push time in 7 hours

create barnchjitsi/pjproject

branch : v4l2-yuv420

created branch time in 10 hours

push eventjitsi/pjproject

Saúl Ibarra Corretgé

commit sha d0e09e2ed4f8b84f39c320601548b04aa6a5bcaf

v4l2: add support for YUV420

view details

Saúl Ibarra Corretgé

commit sha 5c043c9f90da1202d3a4f68a5e4d57508beb976e

v4l2: set default framerate to 30

view details

Saúl Ibarra Corretgé

commit sha 42f965fec86cbe67223b7dc844ed8b08817aea74

jitsi: raise version

view details

push time in 11 hours

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 65b93ea5d84e5674fac139f4a55a3c59088bf489

core: add initial WASM support

view details

push time in 12 hours

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

 class Toolbox extends Component<Props, State> {                 key = 'settings'                 showLabel = { true }                 visible = { this._shouldShowButton('settings') } />,+            <MuteEveryoneButton+                key = 'mute-everyone'+                showLabel = { true }+                visible = { _isModerator } />,

I think a pattern like this would work: https://github.com/jitsi/jitsi-meet/blob/98698ba89accac8fa707095cbc5020199012686c/react/features/etherpad/components/SharedDocumentButton.js#L73

gimre

comment created time in 13 hours

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import { createToolbarEvent, sendAnalytics } from '../../../analytics';+import { openDialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { IconMicDisabled } from '../../../base/icons';+import { connect } from '../../../base/redux';++import AbstractMuteButton, {+    _mapStateToProps,+    type Props+} from '../AbstractMuteButton';++import RemoteVideoMenuButton from './RemoteVideoMenuButton';+import MuteEveryoneDialog from '../../../remote-video-menu/components/web/MuteEveryoneDialog';++/**+ * Implements a React {@link Component} which displays a button for audio muting+ * a participant in the conference.+ *+ * NOTE: At the time of writing this is a button that doesn't use the+ * {@code AbstractButton} base component, but is inherited from the same+ * super class ({@code AbstractMuteButton} that extends {@code AbstractButton})+ * for the sake of code sharing between web and mobile. Once web uses the+ * {@code AbstractButton} base component, this can be fully removed.+ */+class MuteEveryoneElseButton extends AbstractMuteButton {+    /**+     * Instantiates a new {@code Component}.+     *+     * @inheritdoc+     */+    constructor(props: Props) {+        super(props);++        this._handleClick = this._handleClick.bind(this);+    }++    /**+     * Implements React's {@link Component#render()}.+     *+     * @inheritdoc+     * @returns {ReactElement}+     */+    render() {+        const { participantID, t } = this.props;++        return (+            <RemoteVideoMenuButton+                buttonText = { t('videothumbnail.domuteOthers') }+                displayClass = { 'mutelink' }+                icon = { IconMicDisabled }+                id = { `mutelink_${participantID}` }+                // eslint-disable-next-line react/jsx-handler-names

I'd say you can leave it, as this is the case already with MuteButton.

gimre

comment created time in 13 hours

pull request commentsaghul/python-fibers

drop Python 3.3 and 2.7 from testing

Can you also drop 3.4 and drop both from AppVeyor too? I guess we can drop pyp (not 3) too.

yohm

comment created time in 13 hours

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha bd815aa36b87a811ad218e17bee727fdef42cb01

console: fix printing -0

view details

Saúl Ibarra Corretgé

commit sha 120fa69e280e9567af875c9fa342cc250f898c06

core: add initial WASM support

view details

push time in 13 hours

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha bd815aa36b87a811ad218e17bee727fdef42cb01

console: fix printing -0

view details

push time in 13 hours

pull request commentlibuv/libuv

win,tty: Added set cursor style to CSI sequences

@erw7 feel free to land!

erw7

comment created time in 15 hours

PR closed libuv/libuv

fix pipe UV_HANDLE_EMULATE_IOCP implementation

UV_HANDLE_EMULATE_IOCP was missing a bit of code, and any tests.

Fixes: #629 CI: https://ci.nodejs.org/job/libuv-test-commit/1709/

+179 -128

7 comments

4 changed files

vtjnash

pr closed time in 15 hours

pull request commentlibuv/libuv

fix pipe UV_HANDLE_EMULATE_IOCP implementation

Squashed the fixups and landed. Cheers @vtjnash !

vtjnash

comment created time in 15 hours

push eventlibuv/libuv

Jameson Nash

commit sha 4fa5fb9f7f4ffe9f7085dc20e1d6ac5a190c243e

win,pipe: DRY/simplify some code paths PR-URL: https://github.com/libuv/libuv/pull/2620 Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

view details

Jameson Nash

commit sha a5da270f78679a2a8d834bc6e4b584272d673638

win: address some style nits PR-URL: https://github.com/libuv/libuv/pull/2620 Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

view details

Elliot Saba

commit sha 56fc3de48ccfa9097574612b89308cb646e9d1d9

win,pipe: ensure `req->event_handle` is defined Previously, this field was being used uninitialized, leading to the uv_write call returning failure. This only happens in the rare fallback path where UV_HANDLE_EMULATE_IOCP is set, meaning that the OVERLAPPED opened pipe already was associated with an IOCP. Fixes: https://github.com/libuv/libuv/issues/629 PR-URL: https://github.com/libuv/libuv/pull/2620 Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

view details

Elliot Saba

commit sha 618c9212c2f7868f345b9e335d728181cc8c0c9c

win,pipe: consolidate overlapped initialization PR-URL: https://github.com/libuv/libuv/pull/2620 Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

view details

Jameson Nash

commit sha 7de386c58437dd53591e5bf844330f73f02ab109

win,pipe: erase event_handle after deleting pointer PR-URL: https://github.com/libuv/libuv/pull/2620 Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

view details

push time in 15 hours

issue closedlibuv/libuv

win: pipe UV_HANDLE_EMULATE_IOCP implementation broken

observed at https://github.com/julialang/Julia/issues/11727#issuecomment-159399582 but can also be triggered in nodejs with the following command (from a shell such as Cygwin mintty):

(/cygdrive/C/Program\ Files/nodejs/node -e "process.stdout.write('a')" &&
 /cygdrive/C/Program\ Files/nodejs/node -e "process.stdout.write('b')") | cat -

(although node itself appears to drop the error and simply hangs)

as mentioned at the above link, the error appears to be that overlapped->hEvent is not initialized prior to a call to ReadFile or WriteFile in the pipe.c code (I think the tty.c code equivalents look correct in this regard.)

closed time in 15 hours

vtjnash

pull request commentlibuv/libuv

win, build: add support for VS2019

Indeed this goes in the opposite direction as #2682 so my vote here would be for not landing this.

bzoz

comment created time in 15 hours

pull request commentsaghul/python-fibers

update for python 3.7

PR looks good, we just need to drop old Python versions and tests will pass. I'll try to do it when I get some time, but if you feel like sending a PR that would be welcome too.

ddurham2

comment created time in 15 hours

pull request commentsaghul/pythonz

Add CPython 3.8.2

Feel free to merge!

ifduyue

comment created time in 15 hours

issue commentlibuv/libuv

PR# 2486 breaks Android builds

What build system are you using, GYP? CMake?

interj

comment created time in 16 hours

issue openedwasm3/wasm3

Symbol clash / override

Hi there,

I'm currently integrating wasm3 as the WASM engine for QuickJS. Here is my work so far (in case you're curious): https://github.com/saghul/txiki.js/pull/121

It's going great so far, but when writing some tests I noticed some odd behavior I'd like to clarify. I took the spec tests and wanted to run some operations to validate the correctness of the integration but I noticed that if I use a single runtime then the last "add" function which is loaded (for example) shadows the previous ones. So, if I have some add(i32, i32) and then load some add(f32, f32) the latter will be the one used.

I resorted to having separate runtimes per WebAssembly.Instance, since that would avoid the issue, but I'm not 100% sure I'm doing the right thing here.

Any ideas would be welcome.

created time in a day

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 92dbb5796b4debc915b2d6550b4b8f4356b99de7

console: fix printing -0

view details

Saúl Ibarra Corretgé

commit sha 977f09cd1b53838c863f4a9cebbd1476d258e1c9

core: add initial WASM support

view details

Saúl Ibarra Corretgé

commit sha d75266a2ff9167eb57b2ec25c5cf32f475269b35

WIP

view details

push time in a day

issue commentjitsi/jitsi-meet

Bundle policy with the value max bundle

I haven't been able to reproduce it on the simulator. Did you reproduce it on a phisical device or a simulator? What iOS version?

piyushl85730

comment created time in a day

pull request commentlibuv/libuv

build,cmake: proper package exporting

I don't feel qualified to review this, but maybe @slurps-mad-rips has a few spare cycles? :-)

interj

comment created time in a day

push eventjitsi/jitsi-meet

Saúl Ibarra Corretgé

commit sha 95eb551156c6769e25be9855dd2bc21adf71ac76

android: disable ConnectionService for the Jitsi Meet app It's the source of uncountable problems for which we don't have a good solution, since they are caused by buggy implementations of self-managed connection services by manufacturers.

view details

push time in a day

PR merged jitsi/jitsi-meet

android: disable ConnectionService for the Jitsi Meet app

It's the source of uncountable problems for which we don't have a good solution, since they are caused by buggy implementations of self-managed connection services by manufacturers.

+2 -2

0 comment

1 changed file

saghul

pr closed time in a day

startedmandel59/sqlite-wasm

started time in a day

push eventsaghul/jitsi-meet

Saúl Ibarra Corretgé

commit sha 39a019b3a517917015a6d914e10d5d95ff70feb1

android: disable ConnectionService for the Jitsi Meet app It's the source of uncountable problems for which we don't have a good solution, since they are caused by buggy implementations of self-managed connection services by manufacturers.

view details

push time in a day

PR opened jitsi/jitsi-meet

android: disable ConnectionService for the Jitsi Meet app

It's the source of uncountable problems for which we don't have a good solution, since they are caused by buggy implementations of self-managed connection services by manufacturers.

+2 -2

0 comment

1 changed file

pr created time in a day

create barnchsaghul/jitsi-meet

branch : android-no-cs

created branch time in a day

pull request commentjitsi/jitsi-meet

Cleanup UI for SIP gateway

we can optimize and sip gateway will need less resources.

This needs numbers to back it up.

saghul

comment created time in a day

issue closedreact-native-webrtc/react-native-webrtc

Is there any updated react-native-webrtc example?

I cant find an updated example, with old example I faced a lot of problem like auto linking and etc on both android and ios

closed time in 2 days

muhammadwafa

issue commentreact-native-webrtc/react-native-webrtc

Is there any updated react-native-webrtc example?

No, there isn’t. Auto-linking should just work now.

muhammadwafa

comment created time in 2 days

pull request commentjitsi/jitsi-meet

Cleanup UI for SIP gateway

How is it different from a non SIP gateway meeting? If there is a problem it needs to be fixed in the regular case anyway.

saghul

comment created time in 2 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha f44802255ab1eca1130aae21713c1fb4cf970a95

core: add initial WASM support

view details

push time in 2 days

pull request commentjitsi/jitsi-meet

Cleanup UI for SIP gateway

I'm not sure it's worth it. We only do this for the SIP gateway, the other endpoints show notifiactions just fine, so there is noo performance concern here. Thus I went with the most straightforward and less invasive approach of hiding the visual notifications.

saghul

comment created time in 2 days

issue closedjitsi/docker-jitsi-meet

Self Hosting Jitsi behind Apache Reverse Proxy

Hi jitsis,

i am try to integrate jitsi in my local LAN environment. There are a lot of docker based apps like nextcloud behind a reverse proxy with LE certs. If i looking at the readme of jitsi install i see that implementation of TURN is outstanding in development. Depend on this, it is possible the setup jitsi in the same way as docker image like described above and of course to use it for web conferencing? Nextcloud Talk as talk-to-talk audio / video chat works well.

Thanks in advance for explanation. Regards

closed time in 2 days

ralfi

issue commentjitsi/docker-jitsi-meet

Self Hosting Jitsi behind Apache Reverse Proxy

Nice to hear!

ralfi

comment created time in 2 days

push eventjitsi/jitsi-meet

Saúl Ibarra Corretgé

commit sha 5b0c6e088a53d43aa4143fc366e2aa2e98c420c4

deps: node-sass@4.13.1

view details

Saúl Ibarra Corretgé

commit sha 8fd0f56be73e43d0b70da0bb0e5292df6a49a96d

info-dialog: don't show when a SIP gateway joins alone

view details

Saúl Ibarra Corretgé

commit sha cdbc5976a0daa2e78f7e9cad0ec821a34ecb6ef3

notifications: hdie all (visual) notifications for SIP gateways

view details

Saúl Ibarra Corretgé

commit sha 6a7594cd9c20195c0222ae3bcc0f41975518c240

toolbox: always hide for SIP gateways

view details

Saúl Ibarra Corretgé

commit sha 9b141816d6d1cda34f8d61b66fccd96a3bcafbde

filmstrip: hide scrollbar on SIP gateways

view details

Saúl Ibarra Corretgé

commit sha bde2343951e6110fbf7ebfb08ea58b0c26c0e241

filmstrip: don't display toolbar for SIP gateways Note that in the usual (vertical) setup, the "toolbar" is just the hide button.

view details

push time in 2 days

PR merged jitsi/jitsi-meet

Reviewers
Cleanup UI for SIP gateway
+135 -75

1 comment

7 changed files

saghul

pr closed time in 2 days

pull request commentjitsi/jitsi-meet

Cleanup UI for SIP gateway

Disable the whole notification feature, not only the rendering. There's no point of firing actions, storing into redux, etc if we won't render anything.

What do you have in mind? This is controlled with a config option, and we have no access to it in the reducer for example.

saghul

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

Cleanup UI for SIP gateway

         display: flex;         transition: opacity 1s;     }++    .hide-scrollbar#filmstripRemoteVideos {+        margin-right: 7px; // Scrollbar size+        &::-webkit-scrollbar {

The user has no way to move it (they are on a SIP client) so it looks odd.

saghul

comment created time in 2 days

push eventjitsi/jitsi-meet-release-notes

Saúl Ibarra Corretgé

commit sha 2a32993224e4dc670e61a545e28dfc55404edb1f

apps: 20.0.0

view details

push time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+// @flow++import { createToolbarEvent, sendAnalytics } from '../../analytics';+import { openDialog } from '../../base/dialog';+import { translate } from '../../base/i18n';+import { IconMicDisabled } from '../../base/icons';+import { connect } from '../../base/redux';+import { AbstractButton, type AbstractButtonProps } from '../../base/toolbox';+import MuteEveryoneDialog from '../../remote-video-menu/components/web/MuteEveryoneDialog';

@hristoterezov Same answer as before. @gimre Note that this button is not on web/ so it should be used on mobile, and then you are importing a web dialog, which is a no-no.

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

 import {     RemoteVideoMenu,     VolumeSlider } from './';+import MuteEveryoneElseButton from './MuteEveryoneElseButton';

why not import this button like the others above?

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import {+    AUDIO_MUTE,+    createToolbarEvent,+    sendAnalytics+} from '../../../analytics';+import { Dialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { connect } from '../../../base/redux';+import { setAudioMuted } from '../../../base/media';+import UIEvents from '../../../../../service/UI/UIEvents';++import AbstractMuteRemoteParticipantDialog, {+    type Props as AbstractProps+} from '../AbstractMuteRemoteParticipantDialog';++declare var APP: Object;++/**+ * The type of the React {@code Component} props of+ * {@link MuteEveryoneDialog}.+ */+type Props = AbstractProps & {++    /**+     * The ID of the local participant.+     */+    localParticipantId: string,++    /**+     * The IDs of the remote participants to be muted.+     */+    remoteParticipantIds: Array<string>,++     /**+     * The IDs of the remote participants to exclude from being muted.+     */+    exclude: Array<string>,+};++/**+ * A React Component with the contents for a dialog that asks for confirmation+ * from the user before muting a remote participant.+ *+ * @extends Component+ */+class MuteEveryoneDialog extends AbstractMuteRemoteParticipantDialog<Props> {+    static defaultProps = {+        exclude: [],+        muteLocal: false+    };++    /**+     * Implements React's {@link Component#render()}.+     *+     * @inheritdoc+     * @returns {ReactElement}+     */+    render() {+        const { t } = this.props;++        return (+            <Dialog+                okKey = 'dialog.muteMultipleParticipantButton'+                onSubmit = { this._onSubmit }+                titleKey = 'dialog.muteMultipleParticipantTitle'+                width = 'small'>+                <div>+                    { t('dialog.muteMultipleParticipantBody') }+                </div>+            </Dialog>+        );+    }++    _onSubmit: () => boolean;++    /**+     * Callback to be invoked when the value of this dialog is submitted.+     *+     * @returns {boolean}+     */+    _onSubmit() {+        const {+            dispatch,+            exclude,+            localParticipantId,+            remoteParticipantIds+        } = this.props;++        remoteParticipantIds+            .filter(id => !exclude.includes(id))+            .forEach(id => {+                if (id === localParticipantId) {+                    const audioMuted = true;++                    sendAnalytics(createToolbarEvent(AUDIO_MUTE, { enable: audioMuted }));+                    dispatch(setAudioMuted(audioMuted, true));++                    // FIXME: The old conference logic as well as the shared video feature+                    // still rely on this event being emitted.+                    typeof APP === 'undefined'

You are on a web component, you don't need to check for this.

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

 class Toolbox extends Component<Props, State> {                 key = 'settings'                 showLabel = { true }                 visible = { this._shouldShowButton('settings') } />,+            <MuteEveryoneButton+                key = 'mute-everyone'+                showLabel = { true }+                visible = { _isModerator } />,

Makes sense indeed!

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */

same as before

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import { createToolbarEvent, sendAnalytics } from '../../../analytics';+import { openDialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { IconMicDisabled } from '../../../base/icons';+import { connect } from '../../../base/redux';++import AbstractMuteButton, {+    _mapStateToProps,+    type Props+} from '../AbstractMuteButton';++import RemoteVideoMenuButton from './RemoteVideoMenuButton';+import MuteEveryoneDialog from '../../../remote-video-menu/components/web/MuteEveryoneDialog';

That is prone to intoducing cycles, importing the dialog directly is not a bad idea.

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import {+    AUDIO_MUTE,+    createToolbarEvent,+    sendAnalytics+} from '../../../analytics';+import { Dialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { connect } from '../../../base/redux';+import { setAudioMuted } from '../../../base/media';+import UIEvents from '../../../../../service/UI/UIEvents';++import AbstractMuteRemoteParticipantDialog, {+    type Props as AbstractProps+} from '../AbstractMuteRemoteParticipantDialog';++declare var APP: Object;++/**+ * The type of the React {@code Component} props of+ * {@link MuteEveryoneDialog}.+ */+type Props = AbstractProps & {++    /**+     * The ID of the local participant.+     */+    localParticipantId: string,++    /**+     * The IDs of the remote participants to be muted.+     */+    remoteParticipantIds: Array<string>,++     /**+     * The IDs of the remote participants to exclude from being muted.+     */+    exclude: Array<string>,+};++/**+ * A React Component with the contents for a dialog that asks for confirmation+ * from the user before muting a remote participant.+ *+ * @extends Component+ */+class MuteEveryoneDialog extends AbstractMuteRemoteParticipantDialog<Props> {+    static defaultProps = {+        exclude: [],+        muteLocal: false+    };++    /**+     * Implements React's {@link Component#render()}.+     *+     * @inheritdoc+     * @returns {ReactElement}+     */+    render() {+        const { t } = this.props;++        return (+            <Dialog+                okKey = 'dialog.muteMultipleParticipantButton'+                onSubmit = { this._onSubmit }+                titleKey = 'dialog.muteMultipleParticipantTitle'+                width = 'small'>+                <div>+                    { t('dialog.muteMultipleParticipantBody') }+                </div>+            </Dialog>+        );+    }++    _onSubmit: () => boolean;++    /**+     * Callback to be invoked when the value of this dialog is submitted.+     *+     * @returns {boolean}+     */+    _onSubmit() {+        const {+            dispatch,+            exclude,+            localParticipantId,+            remoteParticipantIds+        } = this.props;++        remoteParticipantIds+            .filter(id => !exclude.includes(id))+            .forEach(id => {+                if (id === localParticipantId) {+                    const audioMuted = true;++                    sendAnalytics(createToolbarEvent(AUDIO_MUTE, { enable: audioMuted }));+                    dispatch(setAudioMuted(audioMuted, true));++                    // FIXME: The old conference logic as well as the shared video feature+                    // still rely on this event being emitted.+                    typeof APP === 'undefined'+                        || APP.UI.emitEvent(UIEvents.AUDIO_MUTED, audioMuted, true);+                } else {+                    const props = {+                        dispatch,

why do you need to pass diapcth around?

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */

Please use // @flow instead.

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

+/* @flow */++import React from 'react';++import {+    AUDIO_MUTE,+    createToolbarEvent,+    sendAnalytics+} from '../../../analytics';+import { Dialog } from '../../../base/dialog';+import { translate } from '../../../base/i18n';+import { connect } from '../../../base/redux';+import { setAudioMuted } from '../../../base/media';+import UIEvents from '../../../../../service/UI/UIEvents';++import AbstractMuteRemoteParticipantDialog, {+    type Props as AbstractProps+} from '../AbstractMuteRemoteParticipantDialog';++declare var APP: Object;++/**+ * The type of the React {@code Component} props of+ * {@link MuteEveryoneDialog}.+ */+type Props = AbstractProps & {++    /**+     * The ID of the local participant.+     */+    localParticipantId: string,++    /**+     * The IDs of the remote participants to be muted.+     */+    remoteParticipantIds: Array<string>,++     /**+     * The IDs of the remote participants to exclude from being muted.+     */+    exclude: Array<string>,

style: please sort alphabetically

gimre

comment created time in 2 days

Pull request review commentjitsi/jitsi-meet

feat(mute): mute everyone / everyone else

 type Props = {  *  * @extends Component  */-export default class AbstractMuteRemoteParticipantDialog-    extends Component<Props> {+export default class AbstractMuteRemoteParticipantDialog<P:Props = Props>

Why is this change necessary?

gimre

comment created time in 2 days

push eventjitsi/jitsi-meet

horymury

commit sha 202abf2a9aa2a7fedfbe3f425275a2c2baf8e374

chrome-banner: add analytics

view details

push time in 2 days

PR merged jitsi/jitsi-meet

Add analytics to chrome extension banner

@saghul @damencho @hristoterezov

+85 -47

1 comment

4 changed files

horymury

pr closed time in 2 days

PR opened jitsi/jitsi-meet

Cleanup UI for SIP gateway
+135 -75

0 comment

7 changed files

pr created time in 2 days

create barnchsaghul/jitsi-meet

branch : sip-gw-hide-tooltips

created branch time in 2 days

issue commentjitsi/docker-jitsi-meet

Self Hosting Jitsi behind Apache Reverse Proxy

Moved to the right repo.

We already have TURN support in a PR, but that has nothing to do with a reverse proxy setup.

You cacn setup the docker images just fine and use an apache to front it and proxy everything to the docker setup.

ralfi

comment created time in 2 days

issue commentjitsi/jitsi-meet

Cannot use Firebase Background Data Messages feature

MainApplication does not inherit from a ReactApplication

hmharshit

comment created time in 3 days

pull request commentlibuv/libuv

fix pipe UV_HANDLE_EMULATE_IOCP implementation

@vtjnash Want me to land this one for you?

vtjnash

comment created time in 3 days

issue closedjitsi/jitsi-meet

(ANDROİD)Could not find method debugImplementation() for arguments [com.squareup.leakcanary:leakcanary-android:1.6.1] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Hi, i have a MacOs. When I wanted to compile the application, I got the error as follows. I am using the most current version of the application. Can you help me ? Thanks.

Ekran Resmi 2019-11-23 15 19 56

closed time in 3 days

gokhanakcam

issue commentjitsi/jitsi-meet

Cannot use Firebase Background Data Messages feature

02-23 18:11:29.192  1947  1947 E AndroidRuntime: Caused by: java.lang.ClassCastException: sg.learncool.app.MainApplication cannot be cast to com.facebook.react.ReactApplication

Our app is not a traditional React Native app. You'll have to do more changes, like fix that exception.

hmharshit

comment created time in 3 days

push eventreact-native-webrtc/react-native-webrtc

William Blais

commit sha 92a336d61d2bc0cae1094df15bc6a0ff20d15b61

doc: mention iOS 13.3.1 problem

view details

push time in 3 days

Pull request review commentjitsi/jitsi-meet

fix(optimise): mapStateToProps for some components

 export class AbstractCaptions<P: AbstractCaptionsProps>     render() {         const { _requestingSubtitles, _transcripts } = this.props; -        if (!_requestingSubtitles || !_transcripts.size) {+        if (!_requestingSubtitles || !_transcripts || !_transcripts.size) {

What error?

hristoterezov

comment created time in 3 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 3d14e514e1f50e4b48db248c181f350a4edccf3e

core: add initial WASM support

view details

push time in 3 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha e79a89340244e7879727e0e20023ff6c2667d87b

core: add initial WASM support

view details

push time in 3 days

PR opened saghul/txiki.js

core: add initial WASM support
+660 -20

0 comment

16 changed files

pr created time in 3 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 37fd736d1585a625dd9db04ac1d836a4ea17864e

core: add initial WASM support

view details

push time in 3 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha b0c92d3dbd2ef7f15d5e8589a5617585dbbf8b42

WIP

view details

push time in 3 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 00de7666ec9b97f78cb52aaf5d2554cc79fea113

repl: fix printing stack traces twice

view details

Saúl Ibarra Corretgé

commit sha b4f43b3450cfb708db7c69791dc3de9dae7be5d7

WIP

view details

push time in 3 days

pull request commentlibuv/libuv

build,cmake: Change installation location on MinGW

Doesn’t this patch collide with your Cygwin one?

erw7

comment created time in 4 days

issue closedjitsi/jitsi-meet

CAMERA WON'T WORK

Hi, I am supposed to have an online interview with WeblioPh but the website cannot access my camera. I have made sure to turn off any other apps using my camera, restared my pc, refreshed my page and updated my pc but still won't work. Please help me. I 'm using windows 10 by the way.

closed time in 4 days

yahokanapia

create barnchsaghul/txiki.js

branch : attach-runtime

created branch time in 4 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha 00de7666ec9b97f78cb52aaf5d2554cc79fea113

repl: fix printing stack traces twice

view details

push time in 4 days

pull request commentlibuv/libuv

win, tcp: fix to avoid reinserting a pending request

No problem, thank you!

mpenick

comment created time in 5 days

push eventsaghul/txiki.js

Saúl Ibarra Corretgé

commit sha ee6da3364c124130b042eb634b5334e06137ab33

WIP

view details

push time in 5 days

issue commentjitsi/jitsi-meet

Bundle policy with the value max bundle

I’ll try to repro.

piyushl85730

comment created time in 5 days

pull request commentlibuv/libuv

build: remove support for gyp

Can do. Shoot me an email Bert.

bnoordhuis

comment created time in 6 days

issue closedjitsi/jitsi-meet

Video recording problem

Hello!The manager! I deployed the jitsi-meet server and the jibri server, but there were problems while I was recording image Please help me out! blessing

closed time in 6 days

newCharlie

issue commentjitsi/jitsi-meet

Video recording problem

Please post in our community forum. Include logs from jibri, jicofo and the JS console please.

newCharlie

comment created time in 6 days

issue commentjitsi/jitsi-meet

Bundle policy with the value max bundle

Can you reproduce this reliably every time? Only in debug mode or does it also show up in release mode? Only on iOS or also android?

piyushl85730

comment created time in 6 days

startedutmapp/UTM

started time in 6 days

pull request commentjitsi/docker-jitsi-meet

prosody: fix restart loop on rolling deployment

Sounds good!

sapkra

comment created time in 6 days

pull request commentjitsi/docker-jitsi-meet

prosody: fix restart loop on rolling deployment

Hey @sapkra, I had to revert this, sorry. It breaks the default installation. Prosody fails to start because it cannot write to /tmp. I tried changing it to /var/run/ (which also makes more sense) but same thing, and I ran out of time for debugging.

sapkra

comment created time in 6 days

push eventjitsi/docker-jitsi-meet

Saúl Ibarra Corretgé

commit sha a1df1e052bf7b5fbbf38dc93cb7af52a799bf5b1

Revert "prosody: fix restart loop on rolling deployment" This reverts commit cc2c0424dd7f567506b27e9f0f321ff62a4fe763.

view details

push time in 6 days

push eventjitsi/docker-jitsi-meet

Paul Tiedtke

commit sha 986071b100fa5a60348e6e8b749f33c8c779ffe6

jigasi: add missing transcription volumes to dockerfile

view details

push time in 6 days

PR merged jitsi/docker-jitsi-meet

jigasi: add missing transcription volumes to Dockerfile

The volumes are already defined in the docker-compose.yml but are missing in the Dockerfiles.

+2 -2

0 comment

2 changed files

sapkra

pr closed time in 6 days

Pull request review commentjitsi/jitsi-meet

fix(optimise): mapStateToProps for some components

 const _mapStateToProps = state => {      return {         chromeExtensionUrl: bannerCfg.url,-        chromeExtensionsInfo: bannerCfg.chromeExtensionsInfo || [],+        chromeExtensionsInfo: bannerCfg.chromeExtensionsInfo,

Sure, leave it. For the record: i think the config should take care of filling in default values.

hristoterezov

comment created time in 6 days

Pull request review commentjitsi/jitsi-meet

fix(optimise): mapStateToProps for some components

 class Toolbar extends Component<Props> {      * otherwise.      */     _shouldShowButton(buttonName) {-        return this.props._visibleButtons.has(buttonName);+        return visibleButtons.has(buttonName);     } } -/**- * Maps (parts of) the redux state to the associated props for this component.- *- * @param {Object} state - The Redux state.- * @private- * @returns {{- *     _visibleButtons: Set<string>- * }}- */-function _mapStateToProps(state): Object { // eslint-disable-line no-unused-vars-    // XXX: We are not currently using state here, but in the future, when-    // interfaceConfig is part of redux we will.--    return {-        _visibleButtons: new Set(interfaceConfig.TOOLBAR_BUTTONS)-    };-}--export default connect(_mapStateToProps)(Toolbar);+export default Toolbar;

It does need to connect, eventually. What you are suggesting is we undo what needs to be done and do it again later, which is pointless. Please leave it as it was and include your optimization of using the sama array referene.

hristoterezov

comment created time in 6 days

Pull request review commentjitsi/jitsi-meet

fix(optimise): mapStateToProps for some components

 type Props = {     _liveStreamViewURL: ?string,      /**-     * The number of real participants in the call. If in a lonely call, the+     * True if the number of real participants in the call is less than 2. If in a lonely call, the      * {@code InfoDialog} will be automatically shown.      */-    _participantCount: number,+    _participantCountLessThan2: boolean,

https://github.com/jitsi/jitsi-meet/blob/fb8ef366c673c357183d5e568aaf127428c320ae/react/features/filmstrip/components/native/Thumbnail.js#L259

https://github.com/jitsi/jitsi-meet/blob/fb8ef366c673c357183d5e568aaf127428c320ae/react/features/toolbox/functions.native.js#L17

hristoterezov

comment created time in 6 days

push eventjitsi/pjproject

Saúl Ibarra Corretgé

commit sha 15a6be7c00579e794e0c28014407c923cf891371

jitsi: customize version

view details

push time in 6 days

push eventjitsi/jitsi-meet

Horatiu Muresan

commit sha fb8ef366c673c357183d5e568aaf127428c320ae

Pass room name to IE page

view details

push time in 6 days

PR merged jitsi/jitsi-meet

Pass room name to IE page

@saghul

+2 -1

0 comment

1 changed file

horymury

pr closed time in 6 days

Pull request review commentjitsi/jitsi-meet

Pass room name to IE page

         // IE11 and earlier can be identified via their user agent and be         // redirected to a page that is known to have no newer js syntax.         if (window.navigator.userAgent.match(/(MSIE|Trident)/)) {-            window.location.href = "static/recommendedBrowsers.html";+            var roomName = encodeURIComponent(window.location.pathname);

aha, then we are good

horymury

comment created time in 6 days

pull request commentwasm3/wasm3

Build library target with WASI support

Thank you!

saghul

comment created time in 6 days

more