News

Samsung Transmission Problems Resolved

Thanks to a very generous user, I received a Samsung Captivate phone to debug the problem of not being able to transmit. I have since resolved the problem and Samsung phones should be able to transmit just fine. This particular bug may have affected other phones as well.

[What follows is technical, so close your eyes until you're done reading if you don't want to hear it]

Samsung phones had an extremely high minimum audio buffer size. The likely reason for this is to preserve battery. When you lower the buffer size, it requires more CPU interrupts to handle the audio. This means lower buffers results in faster battery drain. Unfortunately, Ventrilo servers with very low sample rates (8kHz and 11.025kHz) require extremely low buffer values. For example, Speex @8kHz quality 10 requires a 1920 byte buffer. If the minimum buffer is larger (which for Samsung it is), too much data gets buffered and the server rejects the audio packet.

The minimum buffer at 8kHz on a Samsung phone is 4160 bytes. Our solution to this is to record at the lowest available sample rate and then downsample the recording to the rate required by the Ventrilo protocol. Sadly, this will probably increase battery drain since downsampling is fairly CPU intensive. It is worth noting that if this problem is ever resolved on Samsung phones, Mangler will automatically detect it and this process won’t be necessary. On non-Samsung phones, this is not an issue.

[You can open your eyes now, the tech talk is over]

Mangler 1.0.2 is now released and it addresses this issue. You should be able to talk just fine on any server. If you do run into a problem, I am currently in possession of a Samsung phone and I am able to test.

As always, if you need support with a problem, please post in the forums using the link below rather than post in the comments of this post. Posts in the forums will notify our IRC channel. Comments on this blog post will not.

Join the forum discussion on this post

Mangler Added to Debian Repositories

Thanks to the work of Vincent Cheng, Mangler has been added to the Debian repositories. Packages are now available for Debian SID via the normal software installation process.

Ubuntu 11.10 has also picked up the package for inclusion, so the next release of Ubuntu will be able to use Mangler without having to deal with adding a PPA, compiling from source, or downloading the package manually.

I’m told that Linux Mint 12 will also include the package as part of the standard repositories as well.

Thanks again to Debian developer Vincent Cheng for getting this pushed through.

I’ve not heard a any word from a Fedora or OpenSUSE developer, so I’m not sure what (if any) progress is being made on those operating systems.

Mangler 1.2.2 for Linux Is Now Available

Mangler 1.2.2 is released in source format to address some minor bugs and add a minor feature. In this version, the client now has an input gain slider bar in the audio settings window. Additionally, multiple TTS messages should no longer cause a crash.

Binary versions of 1.2.2 are not currently available, but the source code can be downloaded from the Download page.

If you’re an Ubuntu user, you should start loudly complaining to the Ubuntu team to have Mangler included in the Ubuntu repositories. Going forward, we will not be supplying Debian packages.

Ventrilo client for iPhone may be in Cydia any day now

Someone popped in the #mangler channel on IRC and said he was going to release the GPL version of Ventafone on Cydia. He wanted to clarify the terms of the GPL and make sure he was in compliance. This is great news, because Daniel is a slacker and he’s the only one with the hardware to work on it.

So here was the question that was posed in IRC:

<Rescue9> I've built an iPone version from the SVN. it includes the source code in the binary. I'm going to publish my repo to cydia. As long as the source is packaged with he binary I'm complying with the GPL.  What else should I do to remain complaint with the GPL

I’m sorry I wasn’t there to respond to you Rescue9, but since you’ve taken it upon yourself to pick up Dan’s slack, the answer is yes! Distribution via Cydia is perfectly acceptable since the binaries can be redistributed freely. You don’t have to package the source code with the binary, but if you have that option, I would certainly recommend it.

If you make any changes to the source, you will certainly need to redistribute those changes if you also redistribute the binary. If you want to permanently maintain and support the iPhone version, I have no problem with you working with us on this either. If you want to commit your changes to our SVN repo, we can work out that arrangement as well.

It’s also important to make sure that Forwardcode, LLC is given credit for their work on porting the code to the iPhone in the first place. We certainly had no intentions of doing so. While the Ventafone application is based on the Mangler code, I’m sure they put in a lot of effort to port it over (and I pity them for having to decipher my hideous code).

My only issue with claiming the iPhone app as part of our project is that the name could possibly be considered a trademark violation. If we can find people that are willing to permanently support this, we can probably come to an agreement with all parties involved to make sure there is no confusion in the name of the app.

So again, Rescue9, feel free to stop by the channel any time.

Update: There is a cydia repo available at http://corridor9.net/cyrepo

We found this via Corridor9.net. I can’t guarantee this software is free of malware or anything like that. It sounds like he is not planning to maintain this, so if someone wants to come in and take up that task, there’s still a position avaialble.

iPhone Users Come Out of the Woodwork to Complain

The comments on our post about the Ventafone app violating our license are priceless. They range from people complaining about the GPL to people not understanding a thing about the GPL. One commenter said that the GPL was intended to prevent us from actually enforcing the GPL. I’m not sure how that works, but we got a good chuckle out of that anyway.

Before I give a status update on the iPhone issue, let’s get a refresher course on why this project exists in the first place. For years, Windows and Mac users have completely ignored their Linux gaming brethren. Linux users have spent countless hours trying to get the official Ventrilo program working under Linux with various levels of success. If the users of Ventrilo had decided to care in the slightest about cross-platform voice communications programs, they would have switched to Mumble (BSD licensed)… or even Teamspeak (which has Linux support, even if it is crappy).

Anyhow, Luigi Auriemma wrote a GPL implementation of the the Ventrilo call-home and encryption algorithm which is required for any implementation of the Ventrilo protocol. That code was the basis for the beginning of Spux (which, by necessity was GPL) by Michael Sierks and Cris Favero, which helped spawn the development of our little project here. Even if Luigi’s code hadn’t been GPL, we would have licensed our app as GPL anyway… but either way, we’re obligated to use the same license for our work.

I’m not sure exactly how many people have contributed code, testing, or other effort to Mangler. I’m sure it’s over 10 and probably over 20. Each of those contributors has put in time and effort to make up for the fact that Windows and Mac users did not care about their friends that run Linux. Daniel and I spent every waking moment — that we weren’t at work or sleeping — of 3 months studying and documenting the protocol, writing code, and testing… three months of staring at voice packet hex dumps fly by the screen trying to decipher what every single byte represented. For three months we spent over 8 hours each weekday and 16 to 18 hours per day on weekends working on this. We did this not because we wanted people to use Ventrilo; we did this because Linux users needed it. We did this because we care more about our fellow Linux users than their actual online gaming friends who easily could have switched to a demonstrably better and cross-platform solution.

So that was a bit over a year ago and here we are today. I find it incredibly amusing that users of closed systems are coming to us to give them access to a proprietary application that we clearly despise. And when we tell them no, they get mad and insult us — we’re dorks, losers, linuxtards. Perhaps you should be going to Flagship (the developers of Ventrilo) and demand the application from them. The fact that iPhone users are complaining to us Linux users that we won’t “allow” our code on their preferred platform is fascinating. Welcome to the world us Linux users lived in for years while you ignored us.

But it’s really not a matter of us allowing our code on the iPhone platform — in fact, we do allow it. The only matter of contention is the distribution. The source code to the iPhone version — contributed by Forwardcode, LLC — is in our SVN repository and it’s almost ready for distribution on Cydia. The fact of the matter is that even if we wanted to, we could not release our software on the iTunes App store. We are stewards of code for the community. The code is not ours to relicense and distribution on the App store is in violation of said license. In turn, it is an affront to every single person who has contributed to our project with the expectation that it was licensed under the GPL.

So iPhone users, here is your answer: Jailbreak your phone if you want to use our software, because we absolutely will not allow distribution via the App store unless Apple modifies the distribution terms of the store to comply with the GPLv3.

Ventrilo App for iPhone Infringes Our License

I knew it would happen eventually. An iPhone developer has written a Ventrilo app for Apple devices and has flat out copied our libventrilo3 library in direct violation of the licensing terms (GPLv3). After some quick sleuthing, we saw that the symbols in the iPhone app’s binary were identical to those in our library.

I have filed a copyright violation notice with Apple to have the software removed from the App store. Hopefully, the iPhone users that paid for our free software will be refunded and the source code for the iPhone application will be released in order to comply with the terms of our license.

Apple Inc. is currently in violation of our license by distributing our code in binary format without providing the source code and build system as required.

For evidence of infringing code, compare our code: http://svn.mangler.org/mangler/trunk/libventrilo3/libventrilo3_message.c

To this symbol list from their binary:

Users/kalne/Development/Xcode Projects/XXXXXXX/build/XXXXXXX.build/Distribution-iphoneos/XXXXXXX.build/Objects-normal/armv7/libventrilo3_message.o
 __v3_msg5c_scramble
 __v3_get_0x50
 __v3_get_0x62
 __v3_get_0x61
 __v3_get_0x5c
 __v3_get_0x58
__v3_get_0x57
 __v3_get_0x53
 __v3_get_0x46
__v3_get_0x3c
 __v3_get_0x3b
 __v3_get_0x37
 __v3_destroy_0x60
 __v3_destroy_0x5d
 __v3_destroy_0x52
 __v3_destroy_0x36
 __v3_destroy_0x33
 __v3_msg5c_gensum
 __v3_destroy_0x4a
 __v3_parse_filter
 __v3_put_msg_string
 __v3_put_msg_rank
 __v3_put_msg_channel
 __v3_put_msg_user 

Mangler for Android 1.0beta3 is available

New features/fixes in beta3 include:

  • Support for various character encoding settings. Default is standard Latin1 (ISO-8859-1) Others include West/East European, Japanese, Hebrew, Cyrillic, Greek, Arabic, Chinese, and Thai
  • Fixes transmit issues on some devices. This possibly fixes Samsung devices as well, but not sure. Leave feedback and let us know.
  • May fix some crashes when returning to the app after it has been backgrounded

Mangler 1.2.0 is released

Mangler 1.2.0 is officially released. There were some minor bugs fixed during the beta, but overall not much has changed. As always, the packages and source code can be found on the Download page.

New features since the last stable release (1.0.1) include:

  • ALSA support
  • OSSv4 support
  • A new configuration file system. Your config file will be automatically migrated from ~/.manglerrc to a newly created directory of ~/.mangler
  • The “send silenty” option is available for setting comments
  • An on-screen display (overlay) is available
  • Support for the celt codec (note that the Windows/Mac client will not be able to hear this)
  • You can right click on the status icon to mute or quickly open the settings window
  • You can adjust the master volume by using the mouse scroll wheel on the status icon
  • The server ban list editor is available
  • The server properties editor is available
  • You can specify command line arguments to automatically connect to a server at startup
  • Channel mute is supported
  • User mute state is remembered
  • Ability to record to VRF format (compatible with the Windows/Mac client)
  • Some TTS notifications
  • G15 Keyboard support (requires g15daemon to be running)
  • User paging support
  • Music player integration for Rhythmbox (show the currently playing song)
  • Voice activation for transmit
  • Support for setting a default channel at login. Right click on the channel and select “set default”
  • Allow custom ALSA device names to be entered
  • Fix clipping on amplification
  • Added a VU meter to show outbound transmission signal strength
  • Added a CLI jukebox client that will play MP3s to a channel and accept commands via global chat
  • Channel editor, user editor, and rank editor is available for admins
  • Ability to compile libventrilo3 on Apple platforms
  • Added support for many admin functions in libventrilo3 (see the wiki for details)
  • Master volume control
  • Accessibility fixes for orca users
  • Per-user volume settings are saved across restarts
  • Channel passwords are saved across restarts
  • New admin button to log in as a server admin
  • Added an [ADMIN] flag if the user is logged in as a server admin
  • Added an [A] channel flag if you’re an admin on a specific channel
  • Admin users can drag/drop users into channels
  • Admin users can kick and ban users via right-click menu
  • Channel admins can move users between channels if they have appropriate access
  • Rank tags are prepended to the user’s name in the channel list
  • Users are now sorted alphabetically in the channel list
  • Added ability to mute a specific user via the right-click menu
  • Traffic statistics added to the server panel on the GUI
  • Private chat is available
  • Added Mute Mic and Mute Sound checkboxes to the main GUI window
  • The Server Config is now split into tabs so it will be less cluttered
  • Auto-reconnect on disconnect and kick
  • Transmit button is now “sticky.” Pressing will toggle transmit.

Mangler 1.2.0beta1 now available for download

It’s been a long time since we released 1.0 — over 6 months. Today, we’re releasing the first beta of 1.2.0. Everyone is encouraged to upgrade. If you’re upgrading from 1.0, you’ll find that there are a lot of new features. Way too many to list them all. You can go through the previous news items to see the full list. For those of you that have been using our 1.1 developer snapshots, here is what’s newly available in 1.2.0:

  • OSSv4 support!
  • A new configuration file system. Your config file will be automatically migrated from ~/.manglerrc to a newly created directory of ~/.mangler
  • The “send silenty” option is available for setting comments
  • An on-screen display (overlay) is available
  • Support for the celt codec (note that the Windows/Mac client will not be able to hear this)
  • You can right click on the status icon to mute or quickly open the settings window
  • You can adjust the master volume by using the mouse scroll wheel on the status icon
  • The server ban list editor is available
  • The server properties editor is available
  • You can specify command line arguments to automatically connect to a server at startup
  • Channel mute is supported
  • User mute state is remembered
  • Ability to record to VRF format (compatible with the Windows/Mac client)
  • Some TTS notifications
  • G15 Keyboard support (requires g15daemon to be running)
  • User paging support
  • Many new, exciting and mysterious bugs were added!

Thanks to Haxar, Bob Shaffer, humbaba, Daniel Sloof, cesium, Mesreth, Roman Tetelman, FWishbringer and everyone else that contributed code, donations, provided feedback, and helped test for bugs. Without the community, this project would not have been possible.

Mangler 1.2 beta available on May 9th

On May 9th, we’ll be releasing Mangler 1.2 beta. There will be numerous new features available including a better UI, admin support, vrf recording and playback, ALSA and OSS support, chat, etc.

The list of new features is quite long, but I’ll save that for actual release. After we release the beta, we would like for all users to upgrade to the beta version and report bugs.