Speak Freely

Development Plans

by Brian C. Wiles

  I have had several people suggest improvements to me for making Speak Freely better than it already is.  If you have any ideas, please contact me.  As I said in an earlier email to the Speak Freely mailing list, this program won't get any better if people don't "speak" up.  This is always a work in progress.

My Original Ideas in November, 1997

  Before I get into what other people have suggested, let me state the ideas I would like to see featured and where they fall into the grand scheme of things.  I will also tell when I plan to include them.  After all, if I implemented all of these ideas by myself in version 7.0, it would delay its release further than I would like.
  1. Video Conferencing

  2. This is personally my most desired feature.  But, in order for that to happen I need a very fast video compressor/decompressor (codec).  I have only seen 1 public domain codec so far, Telenor's TMN and TMNDEC H.263 Software.  I will admit, however, that my search was brief, and there may very well be others out there.  The problem with TMN (the encoder part) is that it is too slow for real-time compression of video.  Unmodified, it would only yield 1 frame every 2 or 3 seconds on a Pentium 166.  My goal is to either optimize TMN or find another freely available codec that would perform as good or better than, say, Intel's Video Phone.  I would like to see this in the 7.0 release, but I think 8.0 is more realistic.
  3. Multiparty Conferencing

  4. There is a simple conference mode in version 7.0 starting with Beta 1, but it is very rudimentary at this point.  My goal (before the release of 7.0) is to implement audio blending where 2 people can talk to you at the same time, and you can hear them like you would on a 3-way conference call.
  5. Outgoing Answering Machine Message

  6. This has been implemented in 7.0 starting with Beta 1.
  7. Echo Mode

  8. This is another feature since 7.0 Beta 1, but it is very simple as well.  I just adapted the local loopback to loopback to other callers as well.
  9. LWL Server for Win32

  10. I would like to see this and other functionality remain cross-platform.  I'd also like to add syncronization between multiple servers, as well as support for larger numbers of users.  This is definitely for the 7.0 release.  I just haven't done too much with it yet.  I could use people with dedicated Internet connections to test this, especially with replication.  I want to use Berkeley DB for it to make sure it handles multiple simultaneous requests.
  11. Merge source to one common tree

  12. This is something that will take a lot of time and effort to make sure we don't break any platform in the process.  I think this should be done because I don't want to have to maintain two completely separate programs.  If a program is coded properly, it can support multiple platforms and be extended to support new ones easily.  This will be after 7.0, probably 7.1 or 8.0 (whatever the versions happen to be then).

Other Ideas Suggested to Me

  1. Distributed Conferencing

  2. Bruce Stephenson suggested a wonderful model for balancing the load for call relaying between several computers in a conference.  The latest design specs can be found here.  His original proposal is on his site.
  3. Support for third-party hardware via extension API

  4. David W. Erhart of Quicknet Technologies asked me to add support for his company's Internet PhoneJACK product.  This is what gave me the idea for an API that developers could use to add direct Speak Freely support for their hardware.  This would allow others to support their hardware without having to wait for the next release of Speak Freely to support it.  This is going to be in 7.0 without a doubt.
  5. ICQ interoperability

  6. Several people have asked me how to get the widely distributed SpeakICQ patch to work, or to change the directory it points to.  Rather than work with someone else's patch, I wrote my own using mostly the same methods as the popular patch.  It does one thing that the original patch didn't, and that is checking to see if Speak Freely has moved to a different directory since ICQ was last configured.  This makes it seamlessly work with ICQ.  It was implemented in 7.0 Beta 2.

Last updated: Monday, December 7, 1998 by Brian C. Wiles