mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
Mumble is an open-source, low-latency, high quality voice chat software.
audioclientcmakecross-platformgaminghacktoberfestlinuxmacosopen-sourcequality-voice-chatservervoicechatvoipwindows
Murmur uses the saiTcpLocalAddress field of ServerUser to determine the correct source address of outgoing UDP packets. On some systems, such as multi-homed setups, this is important for correct datagram delivery. The saiTcpLocalAddress field is initialized when the client first connects. Its value is extracted from QHostAddress, and then converted to a sockaddr struct via our own HostAddress class's toSockAddr method. HostAddress::toSockAddr is implemented such that any IPv4 address (including IPv4-mapped IPv6 addresses) will always cause a sockaddr struct belonging to the AF_INET (IPv4) family to be output. Pure IPv6 addresses will be output as an AF_INET6 sockaddr. The code that this change touches assumed that it could use the value of saiTcpLocalAddress directly as the source address in UDP packets. This is not always the case. On most systems, Murmur will listen on [::]:64738 by default, and as such, the address of the server's UDP socket will be in the AF_INET6 family. Attempting to send packets with a source address in the AF_INET family using that socket will cause sendmsg() to return EINVAL on some systems, if not all. The new code for the sendmsg() code path converts the ServerUser's saiTcpLocalAddress back into a HostAddress, which, internally, is fully IPv6. If the input address is IPv4, HostAddress will convert it to an IPv4-mapped IPv6 address. When the client's UDP socket is of the AF_INET6 family, we can now trust that the HostAddress, 'tcpha', is either a real IPv6 address, or an IPv4-mapped IPv6 address. This allows us to use the 'tcpha' address regardless of the address family of the saiTcpLocalAddress. We can simply memcpy it in place. When the UDP socket is of the AF_INET family, we can only set the source address if the saiTcpLocalAddress is also AF_INET, or if it is of the AF_INET6 family and its address is an IPv4-mapped IPv6 address. When a pure IPv6 address is encountered in that path, it is simply dropped. |
||
|---|---|---|
| 3rdPartyLicenses | ||
| celt-0.7.0-build | ||
| celt-0.7.0-src@6c79a9325c | ||
| celt-0.11.0-build | ||
| celt-0.11.0-src@e3d39fec7c | ||
| doc | ||
| g15helper | ||
| icons | ||
| installer | ||
| macx | ||
| man | ||
| opus-build | ||
| opus-src@d060dd7cbd | ||
| overlay | ||
| overlay_gl | ||
| plugins | ||
| samples | ||
| sbcelt-helper-build | ||
| sbcelt-lib-build | ||
| sbcelt-src@a2ce9cf9b8 | ||
| scripts | ||
| speex@a6d05eb5ff | ||
| speexbuild | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| CHANGES | ||
| compiler.pri | ||
| Doxyfile | ||
| INSTALL | ||
| LICENSE | ||
| main.pro | ||
| README | ||
| README.Linux | ||
| README.static.linux | ||
| README.static.osx | ||
| symbols.pri | ||
| winpaths_default.pri | ||
M U M B L E
A voicechat utility for gamers
http://mumble.info/
#mumble on freenode
Mumble is a voicechat program for gamers written on top of Qt and Speex.
There are two modules in Mumble; the client (mumble) and the server
(murmur). The client works on Win32/64, Linux and Mac OS X, while the
server should work on anything Qt can be installed on.
Note that when we say Win32, we mean Windows XP or newer.
Running Mumble
==============
On Windows, after installation, you should have a new Mumble folder in your
Start Menu, from which you can start Mumble.
On Mac OS X, to install Mumble, drag the application from the downloaded
disk image into your /Applications folder.
Once Mumble is launched, you need a server to connect to. Either create your
own or join a friend's.
Running Murmur on Unix-like systems
===================================
Murmur should be run from the command line, so start a shell (command prompt)
and go to wherever you installed Mumble. Run murmur as
murmurd [-supw <password>] [-ini <inifile>] [-fg] [v]
-supw Set new password for the user SuperUser, which is hardcoded to
bypass ACLs. Keep this password safe. Until you set a password,
the SuperUser is disabled. If you use this option, murmur will
set the password in the database and then exit.
-ini Use a inifile other than murmur.ini, use this to run several isntances
of murmur from the same directory. Make sure each instance is using
a separate database.
-fg Run in the foreground, logging to standard output.
-v More verbose logging.
Running Murmur on Mac OS X
==========================
On Mac OS X, Murmur is available inside your Mumble application bundle. If you
copied the Mumble program into your Applications directory, you should be able
to run it by executing:
/Applications/Mumble.app/Contents/MacOS/murmurd -v -fg
in a Terminal. For more information, please see the 'Running Murmur on Unix-
like sytems' above.
To easily override the default Murmur configuration, a murmur.ini file can be placed in
your user's 'Library/Preferences/Mumble/' directory.
Example configuration files and other scripts can be found inside the Murmur
directory of the Mumble installation disk image.
Running Murmur on Win32
=======================
Doubleclick the Murmur icon to start murmur. There will be a small icon on your
taskbar from which you can view the log.
To set the superuser password, run murmur with the parameters '-supw <password>'.
Bandwidth usage
===============
Mumble will use 10-40 kbit/s outgoing, and the same incoming for each user.
So if there are 10 other users on the server with you, your incoming
bandwidth requirement will be 100-400 kbit/s if they all talk at the same time.