Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin - Add Mumble support #980

Open
wants to merge 133 commits into
base: master
Choose a base branch
from
Open

Plugin - Add Mumble support #980

wants to merge 133 commits into from

Conversation

jonpas
Copy link
Member

@jonpas jonpas commented Jun 27, 2020

When merged this pull request will:

  • Add Mumble Plugin - close Mumble support #577
    • Requires a custom Mumble/Murmur version (coming soon) Mumble 1.4.*
  • Reorganize built plugins into sub-folders (ts3 and mumble)
  • Rename in-game "TeamSpeak" settings - All will reset!
  • Improve auto-copy plugin

Some merge commit references are wrong due to different repository.

TheMagnetar and others added 30 commits April 28, 2020 22:15
Mumble plugin: Base class refactoring.
@Krzmbrzl
Copy link

Krzmbrzl commented Dec 23, 2021

Public Beta testing

The code as-is does seem to work as expected and therefore I think it is now time to get the build out to everyone interested in order for you to try it out yourselves. Mind yourself though: This really is only a beta test, so things might end up breaking/freezing.

Requirements

  1. A Mumble server running at least Mumble 1.4.x. You can download one at https://www.mumble.info/downloads/. If you don't have your own server hardware, you may also use my own Mumble server (see below).
  2. A Mumble client version 1.4.x (or higher - aka: self-compiled). The officially released 1.4 client can be downloaded from the official website.
  3. A build of the ACRE plugin that includes the Mumble plugin. You can either build it yourself from the branch of this PR (mumble-plugin) or (probably more conveniently) download a pre-built version here. Note however that this version (atm) does not use SQFC (since the script compiler currently doesn't work on my system).

Server configuration

If you are using a fresh (unconfigured) Mumble server for your tests, you will probably want to configure it a bit, before diving in. To that end, perform the following steps

  1. Shut your server down
  2. Open a console and execute mumble-server -supw <YourPW> where <YourPW> is the password you want to asssign the SuperUser (aka: administrator)
  3. Start your server
  4. Connect to your server using the username SuperUser. This should prompt you for a password, at which point you enter <YourPW>.
  5. Once connected to your server as SuperUser, use the context menu to add new channels to your server. I adise to create at least a Lounge and a channel called ACRE (you will be automatically moved into this channel once ACRE connects to the game (assuming you haven't configured a different channel name for that in-game)).
  6. Re-connect to your server using a different username (As SuperUser, you won't be able to talk to anyone)

Plugin installation

Upon starting Arma with ACRE loaded, the plugin will (most likely) be installed automatically. Ideally you should make sure that you don't have Mumble open at this point in order to not accidentally block write-access to the necessary files by having them open in Mumble.

The automatic installation may complain about missing access rights. Just click on Continue to start Arma normally.

Regardless of whether ACRE complained or not, it is advisable to check the plugin installation manually. For that, navigate to C:\Users\<YourUserName>\AppData\Roaming\Mumble\Plugins\ and verify that the ACRE DLLs are present in this directory. If they are not, you can manually copy the suitable DLL from the @acre2\plugin\mumble\ directory into here.
If ACRE installed the DLLs automatically, you will find two versions of the DLL in your AppData directory: one for 32-bit systenms and one for 64-bit ones. If you leave both DLLs in here, Mumble will warn about an invalid plugin file (the one using the foreign architecture). While this warning doesn't prevent ACRE from working, it may be annoying, so you might as well manually delete the DLL for the architecture that doesn't fit your PC.

Using my Mumble server

You can reach my Mumble server at 178.254.32.29 using the default port (Mumble will auto-fill that for you). You are free to use this server for your tests but be aware of the following:

  1. This is only a small server and it is probably not able to handle large amounts of clients - I don't know the limit but you will probably not want to create large-scale events on it
  2. This is my Mumble development test-server. That means that occasionally I will shut the server down in order to deploy a new version. That includes unstable versions that may do weird things when you are connected to it. While I generally expect it to work fine for you, most of the time, I can't guarantee that you won't connect to it and it will not work for you.
  3. For above reasons: If you are planning on performing a small organized test with a couple of people on that server, reach out to me first and I will try to make sure that I don't kill the server during that time :) Otherwise, you don't have to announce using that server for any tests, though.
  4. If you require any additional channels on the server, reach out to me and I will create them.

Feedback

I would love to get feedback from you. I think probably the best place at this point is the ACRE Slack channel which I am part of.
Please report any issues you are encountering but also if the plugin seemed to have worked for you. This will help us/me evaluate how stable the plugin is currently functioning and which parts of it require more work.

The slack channel would also be the best place for asking questions about any kind of things related to this test (be it Mumble- or ACRE-related).

Fingers crossed it (mostly) works out well 🤞

@x390
Copy link

x390 commented Apr 9, 2022

Is this still being beta tested? Would love to see this finally in acre2.

@jonpas
Copy link
Member Author

jonpas commented Apr 9, 2022

Yes, current plan:

  • Update Plugin Auto-Copy to avoid warnings in Mumble about mismatched bitness.
  • Release as a dev-build for testing.

Just need to find time for it.

@Krzmbrzl
Copy link

Krzmbrzl commented Apr 9, 2022

Is this still being beta tested?

"still" might be too strong of a word. As of today, I have received exactly 0 (zero) reports of anyone having tried this out 🤷

@x390
Copy link

x390 commented Apr 10, 2022

I've done a little bit of testing and have found the following issues.

  1. ACRE does not install the mumble plugins in %APPDATA%\Mumble\Plugins instead it installs in %PROGRAMFILES%\Mumble\plugins which is a invaild folder and admin protected. See image at bottom
  2. One player couldn't hear me while in zeus and they couldn't hear me while also in zeus

Everything else seems to work so far but I will still need to test more.

One issue unrealated to acre is one player could not connect to my mumble server or yours, they are on a edu network but my server logs show an attempted connection but says remote closed.

1

@Krzmbrzl
Copy link

  1. is related to how ACRE currently tries to find the installation dir on its own and thereby bypassing the system that Mumble usually uses to install plugins 👀
  2. But other times the Zeus communication worked as expected?

The connection issues appears a bit odd to me... Maybe there was some kind of blocking involved that his network employed. But in that case I would have assumed that the connection wouldn't work at all (aka there is also no server log entry) 🤷

jonpas and others added 5 commits April 19, 2022 21:32
Co-authored-by: Drofseh <Drofseh@users.noreply.github.com>
Copy only to AppData and use installation to determine which architecture of plugin to copy (based on Program Files folder it is installed in).
Add 32-bit support for copying a 64-bit extension.
Only install the same plugin architecture as the Mumble installation (avoid warning in chat window).
Cleanup registry reading in Mumble auto-copy code, as it is not reliable.
@jonpas
Copy link
Member Author

jonpas commented Apr 20, 2022

Plugin auto-copy will now only copy to AppData/Roaming/Mumble/Plugins and only use Mumble installation itself to determine which architecture of plugin to copy (based on Program Files folder it is installed in). It will only install the same plugin architecture as the Mumble installation and avoid the warning in the chat window.

32-bit support for copying a 64-bit extension (or rather finding the architecture of installed Mumble) was also added.

Tested configurations (with fresh Mumble installs of version 1.4.230 and 1 time Mumble run to create AppData folders):

  • 32-bit Arma/auto-copy to 32-bit Mumble -> copies only 32-bit plugin
  • 32-bit Arma/auto-copy to 64-bit Mumble -> copies only 64-bit plugin
  • 64-bit Arma/auto-copy to 32-bit Mumble -> copies only 32-bit plugin
  • 64-bit Arma/auto-copy to 64-bit Mumble -> copies only 64-bit plugin

There are no official Portable installations for Mumble, so that was ignored, but it can still be done with the -mumblePath startup parameter. Both architectures of the plugin will be copied with that, as it is a development tool and not intended for general use.

@Freddo3000
Copy link
Contributor

Is there a compiled 2.10 plugin available?

@jonpas
Copy link
Member Author

jonpas commented Jun 25, 2022

See pinned items in ACE3 Discord #acre2 channel. It is an entirely separate build and the plugin will not work with stable release.

@Krzmbrzl
Copy link

Krzmbrzl commented Jul 22, 2022

I'll just leave a small checklist of things that as of now require investigation/fixing:

  • When ACRE shuts down, it seems like some thread is not terminating properly. Thus, Mumble seems to not be able to completely unload ACRE and if shut down while ACRE is active, the Mumble process will actually stay alive in the background and has to be terminated via the Task Manager. EDIT: This seems to only happen when Tracy support is enabled. So probably unrelated to the core plugin code.
  • Something in the processing loop appears to eat up a lot of performance when connected to Arma (with several other players). For further investigations Tracy support has been included in ACRE in my fork
  • The ACRE log in C:\Users\<User>\AppData\Local\Arma 3 still contains several error messages that should be investigated

@Sora012
Copy link

Sora012 commented May 30, 2024

Has there been any additional progress on this? Will the plugin ever be implemented into steam workshop?

@Krzmbrzl
Copy link

Krzmbrzl commented Jun 2, 2024

Unfortunately not - I wasn't able to pin down the performance issue as it seemed related to some of ACRE's internal workings and I didn't have the motivation to figure everything in there out by myself (and ACRE core devs are busy with other projects and therefore didn't have time to help me out with this).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mumble support
9 participants