block public servers #1055
Replies: 17 comments 2 replies
-
If a separate icon is all that's needed, would adding a command line option to disable the servers list on connect work? |
Beta Was this translation helpful? Give feedback.
-
in the Mac installer, you get the choice of 2 icons to drag into applicaitons. One is the Jamulus client, the other is the Jamulus server. I'm assuming that the server icon is just a small wrapper that starts the same executable, so on the Mac, having that option at install would address this issue, and yes it would depend on a command line option to disable the servers. On the Windows installer, I think it would need to be a question during the installation, and the resulting start menu shortcut would pass the necessary option when running the .exe. On Linux, just the existence of the command line option would be enough. |
Beta Was this translation helpful? Give feedback.
-
this is a complex issue and easily thwarted, a rogue operator can have any
victim enter a non listed server in the connect dialog. Parental monitoring
and traffic control is needed, that is outside the remit of Jamulus. It
would be a serious undertaking to be responsible for content and usage.
Stephen
…On Sun 28 Jun 2020, 16:13 Peter L Jones, ***@***.***> wrote:
If a separate icon is all that's needed, would adding a command line
option to disable the servers list on connect work?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#406 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABIJSQMG2QEKZO3UKSHBDHLRY5MZ3ANCNFSM4OKSANUA>
.
|
Beta Was this translation helpful? Give feedback.
-
Yes - but. That's part of having a computer connected to a network. What I'm talking about is just not having the public servers listed, so that when a school asks a parent to install the software for a child, and when the parent is monitoring the child's use of the software, a list of strangers is not shown in the UI. |
Beta Was this translation helpful? Give feedback.
-
Do you really see a risk if a child sees the public server list? |
Beta Was this translation helpful? Give feedback.
-
It's also not a "one size fits all" -- for example, should the "Custom" server list option be available - in case a school offers "Music Room 1", "Music Room 2", "Piano practice", "Choir practice", etc? |
Beta Was this translation helpful? Give feedback.
-
Indeed. Custom main server, and private servers. I don't personally see any risk if a child sees the public server list. However I do see a risk that schools will reject the software because allowing access to chat with strangers would break one of their criteria. |
Beta Was this translation helpful? Give feedback.
-
This seems to be the main issue. "Does this let kids talk to strangers? If so, we can't use it." At the risk of being a bit cynical: they don't care about the kids in this context, they care about their own liability. |
Beta Was this translation helpful? Give feedback.
-
I am working with schools and the answer is yes. There are a TON of potential lawsuits happening if the school requires an app that then leads a student into a compromising position. The sad reality is that there are predators out there and though it's not likely, it only takes one. Security and Privacy are both important to educational institutions. |
Beta Was this translation helpful? Give feedback.
-
Just an other thought on the education topic. Jamulus wasn‘t and isn’t made for schools but in my opinion it does have the potential to be a great tool for this application, especially with all the new features like multithreading, the ability to run private servers, group function, compact skin, ... But there are probably still some legal (?) problems. All the typical conferencing tools provide ways to protect and manage a meeting: By using private servers, setting new client level to 0,... there’s quite a good "protection" since you can be relatively safe that no stranger enters the server/disturbs the session/... Of course somebody who knows the IP can join and listen. I think we should maybe also think of other features teachers/schools need. One problem I see at the moment is e.g. that there’s no way to manage connected users. The problem with implementing some kind of "hierarchy" is that on public servers there should be no way to kick/generally mute/... a user but on servers for educators it’s a must have. Especially since there are quite some teachers/parents who haven’t forgotten the problems with zoom (default unprotected links, no waiting room,...) which led to zoom bombing. The same goes with waiting rooms. I think the World Jam event does it with separate servers. But that would be security through obscurity. I‘ve looked into the code and tried to add a "block chat" function. That’s done by preventing the server to send chat messages to all users. But my code is probably not good since I‘m still looking through the code and examining what the functions do. |
Beta Was this translation helpful? Give feedback.
-
I mentioned this in another ticket. I believe that Jamulus could benefit hugely from a separation of concerns. The code should be separated into modules, with the core audio portion focused on the "engine". Chat, UX, security, etc... can all be handled by the app that uses the core engine as a dependency. Then, that engine gets a solid focus on working great on PC, Mac, Android, iOS, Chromebook, etc... The more simple the engine is the less code has to be ported to each platform. However, in addition, interfaces should be maintained to pull in other developers. For instance, Android is mainly Java/Kotlin, so having an interface class that bridges the Jamulus C code will help mobile developers use Jamulus in their apps. I've also mentioned a NodeJS module that offers a C bridge to the Jamulus engine. This will allow the development of Electron (and similar) apps. If you don't know what Electron is, it is a wrapper that apps like Slack and Visual Studio Code use to wrap up a NodeJS engine with either native UI elements or a DOM/Web interface. Another build it once, deploy anywhere idea that has had some solid success. The point is, there is a community of developers who have a TON of experience on UI/UX, security/auth, etc... but very few of those developers do that in C. Objective-C or C# is most aligned. If the engine was available to NodeJS in an electron wrapper though - it unlocks a HUGE developer pool that can contribute to the Jamulus ecosystem. Also, if there was a focus on the engine itself, and it was also ported to WebAssembly and worked though the browser fast enough - then get that working with MS's new Blazor... Could be pretty awesome. |
Beta Was this translation helpful? Give feedback.
-
Coming back to the topic, I have "solved" it with a custom build of Jamulus which doesn't have the official central servers included. Compiling on macOS and Linux was easy, Windows was a pain (since deploy_windows.bat makes dirty hacks for an old version of Visual Studio etc.) Could we load the central servers from a file somebody can exclude or change on build or during run time? This would allow us to easily add and remove new genre based server lists too. |
Beta Was this translation helpful? Give feedback.
-
I'm catching up with this topic. I see three topics. |
Beta Was this translation helpful? Give feedback.
-
1: can be done easily (without a lot of coding needed) |
Beta Was this translation helpful? Give feedback.
-
For #2 |
Beta Was this translation helpful? Give feedback.
-
Hi all - so that we can agree on what needs to be done for an actionable backlog ticket, I'm moving this to a discussion if that's OK. |
Beta Was this translation helpful? Give feedback.
-
@jp8 are you still interested in picking this up? Now we have improved private directory server support (thank you), would you want to add support for disabling the built in ones? Do you have an implementation proposal (i.e. could we get this back to being an actionable change with a target of 3.9.0)? |
Beta Was this translation helpful? Give feedback.
-
I've started to think about the needs of music educators. One requirement that I'm pretty sure of is the need to block all the public servers when a parent installs Jamulus onto a child's computer. The child would only be using Jamulus to communicate with their music teacher.
It's easy enough to comment out the public servers and build Jamulus. But it needs to be something a parent could download and install. A separate build would work, and might be the way forward, considering there could be other features in the future that are only relevant to music education.
But if not a separate build, maybe a question in the installer on Windows, or a third icon to drag into the Applications folder on Mac...
Beta Was this translation helpful? Give feedback.
All reactions