You are not logged in.

#1 2012-06-05 18:09:43

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

New suckless voice chat program for UNIX systems

Hi all,

There is currently an effort to create a simple and secure voice chat program for UNIX systems.

*Update*

Currently, we are using libspeexdsp and libopus and we are planning to add ssl support.  The
currently released version is v0.2-rc3 (with many bugs, better to use tip on the repo).
Once we feel the project is stable enough we will release v0.2.

I am looking for some feedback from the community regarding this project.

The code lives on github at sscall

At the moment the code is usable on Linux/OpenBSD/FreeBSD and Solaris.

Any feedback is highly appreciated!

Last edited by dimigon (2012-07-03 18:13:07)

Offline

#2 2012-06-05 19:27:33

Stebalien
Member
Registered: 2010-04-27
Posts: 1,227
Website

Re: New suckless voice chat program for UNIX systems

Awesome. This could be very useful.

A few notes:
* Why do you have the user manually specify the source port? Just have the user run something like `sscall --listen <listen-addr>:<server-port>` on the server and `sscall --connect <server-addr>:<server-port>` on the client. You can get the reply port by reading the source-port field from the incoming UDP packets.
* Try to find some way to authenticate both sides of the conversation (give both sides a key instead of just the server).


Steven [ web : git ]
GPG:  327B 20CE 21EA 68CF A7748675 7C92 3221 5899 410C
Do not email: honeypot@stebalien.com

Offline

#3 2012-06-05 19:45:18

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

Stebalien wrote:

* Why do you have the user manually specify the source port? Just have the user run something like `sscall --listen <listen-addr>:<server-port>` on the server and `sscall --connect <server-addr>:<server-port>` on the client. You can get the reply port by reading the source-port field from the incoming UDP packets.

At this point each instance of sscall is as much a client as it is a server.  Will need to put some thought into this.  Currently you can even have 2 sscall instances on different machines one for the RX path and one for the TX path.

Stebalien wrote:

* Try to find some way to authenticate both sides of the conversation (give both sides a key instead of just the server).

We are already doing this, although that bit of code is not public yet (in development), each party will have its own key.

Last edited by dimigon (2012-06-13 14:34:34)

Offline

#4 2012-06-12 20:18:49

pigiron
Member
From: USA
Registered: 2009-07-14
Posts: 137

Re: New suckless voice chat program for UNIX systems

I just noticed this post and became intrigued. I've been searching for serverless audio chat apps for some time and have tried most of those currently available... and there's not many. While video is a very nice feature, it's not a "must have" for me at this point in time. So here's hoping that your project grows up to be an FOSS Skype killer.

I'm sure I'm not telling you anything you don't know; and yep, it's currently in the very Alpha stage; but it slams my little processor to 100%, so I'm not sure what part that may play in the low quality audio fidelity when I tested it.

Thought I'd pass along other projects that are similar, and not that easy to find on the interwebs. Perhaps you might examine them for some ideas and comparison.

Here's one (GPL licensed) that has some decent ideas about text commands and doesn't use much system resources, but the audio latency and fidelity isn't the best:

www.normalesup.org/~george/comp/speextalk/

But if you clone the git repository for the speex library source code (http://git.xiph.org/speex.git), there's a small VoIP application called speexclient that's not normally built. It's not included in their source code tarballs.

Since it's from the speex developers, it uses some great features of their library. Such as jitter to keep the UDP packets in order, along with echo cancellation. You might give it try and also examine the code (it's modified BSD licensed). It's got good (speex) audio latency and fidelity, along with low system resource and network usage. It's by far the best sounding app I've found at this point and should provide an audio quality goal to shoot for (and perhaps surpass).

Using some of those speex features would probably not only place criteria on your code design, but also on the user. For example, the speex documentation states that echo cancellation possibly won't work well if the audio capture device is different than the audio playback device... and Adobe seems to agree in their "best practices":

http://www.adobe.com/devnet/flashplayer … ation.html

And some echo calls need access to both the capture and playback buffers, but that little app makes me think that it's worth it.

Here's hoping for a bright future for sscall.

Offline

#5 2012-06-12 21:57:45

graysky
Member
From: /run/user/1000
Registered: 2008-12-01
Posts: 8,645
Website

Re: New suckless voice chat program for UNIX systems

@OP - why not package this in the AUR?


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#6 2012-06-13 14:28:44

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

pigiron wrote:

I just noticed this post and became intrigued. I've been searching for serverless audio chat apps for some time and have tried most of those currently available... and there's not many. While video is a very nice feature, it's not a "must have" for me at this point in time. So here's hoping that your project grows up to be an FOSS Skype killer.

Thanks!

pigiron wrote:

I'm sure I'm not telling you anything you don't know; and yep, it's currently in the very Alpha stage; but it slams my little processor to 100%, so I'm not sure what part that may play in the low quality audio fidelity when I tested it.

Yes, it does cram the CPU quite a lot, this is one of the issues that need to be fixed before the v0.2 release.  Audio quality etc. will also need to be fine grained.

pigiron wrote:

Thought I'd pass along other projects that are similar, and not that easy to find on the interwebs. Perhaps you might examine them for some ideas and comparison.

Thanks a lot for these resources, I will have a proper look over the weekend!  These look like they should provide meaningful insight.

Last edited by dimigon (2012-06-13 14:30:26)

Offline

#7 2012-06-13 14:31:02

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

graysky wrote:

@OP - why not package this in the AUR?

We could do this, but at this point it is not entirely usable, so it may be wise to delay this for some time.

Offline

#8 2012-06-13 14:32:26

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

pigiron wrote:

I'm sure I'm not telling you anything you don't know; and yep, it's currently in the very Alpha stage; but it slams my little processor to 100%, so I'm not sure what part that may play in the low quality audio fidelity when I tested it.

Did you get any audio corruption issues other than just low quality audio?

Offline

#9 2012-06-13 14:38:24

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

To be honest, speexclient looks very insightful.  I will incorporate some of its features to sscall over the weekend.

Offline

#10 2012-06-14 14:48:34

pigiron
Member
From: USA
Registered: 2009-07-14
Posts: 137

Re: New suckless voice chat program for UNIX systems

dimigon wrote:

Did you get any audio corruption issues other than just low quality audio?

Yea, sort of. If I said "Hello!" into the mic, after a long pause, what came out on the other box sounded more like a burp to be truthful. But again, since my tiny CPU was maxed, I'm guessing it played a part in that.

dimigon wrote:

To be honest, speexclient looks very insightful.  I will incorporate some of its features to sscall over the weekend.

I was hoping you'd see the potential capabilities in that little program. If the first stable release of sscall has those audio qualities (or better!), I'll be a happy user.

Keep up the good fight.

Offline

#11 2012-06-23 15:43:13

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

pigiron wrote:

Yea, sort of. If I said "Hello!" into the mic, after a long pause, what came out on the other box sounded more like a burp to be truthful. But again, since my tiny CPU was maxed, I'm guessing it played a part in that.

Hi man, could you pull the latest development version (tip on the repo) and check whether you have the same issue?  Try a local loopback configuration, one more thing to add is to pack several Speex frames into a single packet to take advantage of the ~1500 byte payload we can use, however, you should have clear audio locally at least.

Last edited by dimigon (2012-06-23 15:45:42)

Offline

#12 2012-06-24 16:57:03

pigiron
Member
From: USA
Registered: 2009-07-14
Posts: 137

Re: New suckless voice chat program for UNIX systems

Well, I gave it a shot, but the program has three threads. Two of which are in a tight nonblocking loop, so my processor melted when trying to run two copies.

So I tried to split the CPU cycles by running it on two different boxes. No change. Still sounds somewhat like a burp on my puny systems, but that's not too surprising.

Until the CPU demands change, I'm probably not a good test candidate.

As for the 15000 byte buffer, I'm confused by the algorithm. But I do know this... When:

inbytes = X;
inbytes *= frate;
inbytes /= frate;

Then inbytes will always equal X.

Offline

#13 2012-06-24 17:36:16

dimigon
Member
Registered: 2009-03-07
Posts: 139
Website

Re: New suckless voice chat program for UNIX systems

pigiron wrote:

Well, I gave it a shot, but the program has three threads. Two of which are in a tight nonblocking loop, so my processor melted when trying to run two copies.

So I tried to split the CPU cycles by running it on two different boxes. No change. Still sounds somewhat like a burp on my puny systems, but that's not too surprising.

Until the CPU demands change, I'm probably not a good test candidate.

Yea that needs sorting out.

pigiron wrote:

As for the 15000 byte buffer, I'm confused by the algorithm. But I do know this... When:

inbytes = X;
inbytes *= frate;
inbytes /= frate;

Then inbytes will always equal X.

This calculation will be factored out into another function.  Just left it there to make it clear for me later on.

Last edited by dimigon (2012-06-24 17:52:48)

Offline

#14 2012-10-14 16:58:51

bassu
Member
Registered: 2011-12-21
Posts: 90

Re: New suckless voice chat program for UNIX systems

dimigon wrote:

Hi all,

There is currently an effort to create a simple and secure voice chat program for UNIX systems.
......
Any feedback is highly appreciated!

I've missed this type of a solution since the beginning of dawn. Gonna try it and will report how it goes.
Good job dimigon!


The greatest threat to knowledge is not ignorance - it is the illusion of knowledge!

Offline

#15 2012-10-18 06:01:15

kalle97
Member
Registered: 2012-07-18
Posts: 80

Re: New suckless voice chat program for UNIX systems

This is really cool Ill try it when I get home.

Offline

Board footer

Powered by FluxBB