Revision History | ||
---|---|---|
Revision v1.1 | 3 March 2004 | rko |
Quickstart guides for Windows and Linux. Added appendix of similar voice programs and a few games to use voice with. | ||
Revision v1 | 1 February 2004 | rko |
This is the initial release. |
Abstract
An up-to-date version of this document can be obtained from the Speak-Freely Homepage as: Single html file | Sectioned html files
This document is intended to help newbies start using Speak-Freely. Copyright © 2004 Speak-Freely project. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license can be found at the Free Software Foundation. DocBook DTD
Table of Contents
Speak Freely is an Internet telephone for Microsoft Windows, Linux, and various flavors of Unix that allows you, with appropriate hardware and software, to send and receive audio, in real time, over a computer network. You can converse with anybody else similarly connected anywhere on Earth without paying long-distance phone charges.
Speak Freely is better than using your regular telephone not only because you aren't running up your phone bill, but also because your conversation is secure from eavesdroppers. Speak Freely provides three different kinds of encryption, including the same highly-secure IDEA algorithm PGP uses to encrypt message bodies. By using PGP to automatically exchange session keys, you can Speak Freely to total strangers, over public networks, with greater security than most readily available telephone scramblers provide.
Speak Freely for Windows is 100% compatible Speak Freely for Unix, currently available for a variety of Unix workstations, including Linux. Windows users can converse, over the Internet, with users of those Unix machines. In addition, Speak Freely supports the Internet Real-Time Protocol (RTP) and the original protocol used by the Lawrence Berkeley Laboratory's Visual Audio Tool (VAT); by selecting the correct protocol, you can communicate with any other network voice program which conforms to one of these standards.
Multicasting is implemented, allowing those whose networks support the facility to create multi-party discussion groups to which users can subscribe and drop at will. For those without access to Multicasting, a rudimentary Broadcast capability allows transmission of an audio feed to multiple hosts on a fast local network.
Since Speak Freely can be overwhelming for the first time user, this Quick Start Guide will guide you through setting up Speak Freely and making your first Internet telephone call in a few steps!
Download the file at: http://prdownloads.sourceforge.net/speak-freely/speakfb-7.6a.zip?download
If you do not have an unzip program installed, install http://www.7-zip.org/ or winzip and come back to this point again.
When is the last time you used your microphone? It's a good idea to test to make sure that it works.
Only if you still have problems with your microphone, try the following measures, in order from a through d.
Check the cable. Is the microphone plugged into the right place? Usually it has a red color indicator and small picture of a microphone to connect to the soundcard in the back of your computer.
What is your IP Address? This is the basic network address of your computer. This may change each time you connect your computer to the internet.
In Speak-Freely, choose
-> . This will display your current network IP address.Highlight your IP address, right mouse click, and select Copy. You will need it for later. :)
The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
If your IP address begins with: 10. , 172.16 through 172.31, 192.168, or 127.0.0.1, then this is not a real public internet IP address. It is useless to share this information to another person. You must ask the other person for his/her IP address and initiate the connection to them. If they don't have a real IP address either, then you cannot use speak-freely to contact each other directly. (Unless you are both within the same internal corporate network) See: NAT & Private IP Address Ranges Also: RFC 1918 - Address Allocation for Private Internets
Under the Connection menu, choose New...:
Paste or type your IP address in the connection box and click OK.
You will see a new connection window appear. Move your mouse pointer over the connection window, and it will turn into a telephone . This is Speak Freely's indication that it is not sending any audio right now.
Now, to start sending audio, press the SPACE BAR key.
When you see the icon of a telephone change into an ear , you can speak into the microphone. If all is working properly, you will hear your voice echoed back to you. If you do not hear anything at all, your microphone's record volume or speaker output volume is probably set too low or muted. You may also need to adjust your headphone or speaker volume.
When using headphones, please be careful about turning your volume too high. You may get a sudden burst of loud noise direct to your ears. Be safe and adjust with lower settings. Feedback from your microphone too close to your headphones or speakers may create a sudden burst of noise directly to your ears.
See the Frequently Asked Questions section if you have other problems.
Close the connection to yourself by clicking the X in the upper right corner of the connection window, or choose the Connection menu and select Close.
You need a real public IP address to initiate a connection to. The person with the valid IP address must let the other person initiate the call (open a connection).
Use the following services to notify the person you wish to speak to: Jabber , ICQ, Yahoo Messenger, or MSN Messenger. It does not matter which service you use, as long as you can contact the user you want to talk to. Personally, I prefer Jabber , which is decentralized and allows IM function between any other existing instant messaging solutions.
OR: Use global SMS messenging to send your IP address
OR: Put on a pair of sneakers and run to share your IP address with the person you intend to voice chat. In the old days, this is known as the Sneaker Net.
The main way to connect is to choose New... under the Connection menu and type your friend's IP address into the box and click OK. This is why you need prior knowledge of the called party's IP address since most Internet Service Providers assign each user a different IP address each time they connect to the Internet. The other person will need to find out their current IP address ahead of time, which they can do in Speak Freely by choosing the Help menu and selecting About Speak Freely, as shown above.
The second way to make a call is to use ICQ to establish the call. Do this by clicking on the desired person's name in ICQ, point to Internet Telephony/Games, and select Speak Freely. Then, enter a reason for the call, and wait for them to connect.
Once you have established the call, you can talk to the other person the same way you tested with the echo server. Press the space bar to start tramitting sound from your microphone to them.
If you do not have a full duplex sound card, only one person can talk at a time. A really old Pentium II computer may have a half-duplex sound card installed. This can be determined by choosing the Help menu and selecting "Extended Status". Look for where is says "duplex" for the type you have.
Congratulations! You are now capable of making free long distance calls over the Internet! After you are comfortable with the flow of the conversation, you can experiment with the other options such as Voice Activation. Generally, the best way to make a call function just like a regular telephone is to use Voice Activation on a full duplex call. To go into full duplex mode, both parties double click their mice in the connection window to force constant transmission with the ear icon showing. See the Voice Activation section for help in setting the optimal volume level. As with the echo server, when you are ready to end the call, just click the X in the connection window to disconnect. Have fun!
For dialup users, be aware that if you browse the web while voice chatting in speak-freely, both the web and speak-freely will slow and not function 100%. It will probably work 50% or less. :)
Table 1. Compression Options
Compression option | Bits per second | Bytes per second | Need fast CPU? | Sound fidelity |
---|---|---|---|---|
Best | LPC-10/CELP | LPC-10/CELP | GSM | GSM/CELP |
LPC-10 | 3460 | 346 | Pentium I | Ok (shortwave radio) |
CELP or Speex | 6000 | 600 | Pentium II 400mhz | Good |
LPC | 6500 | 650 | Pentium I | Depends. Bad for squeaky voices |
GSM | 16500 | 1650 | Pentium I | Good |
Once you have started Speak Freely, click on the Options menu as shown below:
Make sure that only GSM Compression or CELP is checked. If anything else on the Options menu is checked, uncheck it. Then, choose Voice Activation from the Options menu and make sure it is set to None. Jitter Compensation should be set to 1/4 Second, in case the network is slow. Finally, verify Transmission Protocol is set to Speak Freely and Robust Transmission to Normal.
Since Speak Freely can be overwhelming for the first time user, this Quick Start Guide will guide you through setting up Speak Freely and making your first Internet telephone call in a few steps!
Choose one of the ways below to install Speak-Freely. Choose the best one for you. RPM is the easiest, if your system can handle RPM packages.
Download the RPM file at: http://prdownloads.sourceforge.net/speak-freely/speak-freely-7.6a-2.i386.rpm?download
Use your RPM package manager program or install from the command line:
su rpm -ivv /the_path_to/speak-freely-7.6a-2.i386.rpm exit
Type part of the name and press TAB , the computer will fill the rest of the name for you as long as it is unique in the directory.
If you get "rpm program not found", then your system cannot handle RPM packages. Install RPM or use one of the methods below.
If you have apt-get installed:
su apt-get install speak-freely exit
Download the source tarball and compile yourself at: http://prdownloads.sourceforge.net/speak-freely/speak-freely_7.6a.orig.tar.gz?download
Following the instructions to compile the binaries from source are not difficult. Read the instructions. :)
When is the last time you used your microphone? It's a good idea to test to make sure that it works.
Adjust your sound settings with alsamixergui or whatever you have available.
What is your IP Address? This is the basic network address of your computer. This may change each time you connect your computer to the internet.
Highlight your IP address. This will automatically copy it in memory to paste it later. You will need it for later. :)
The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
If your IP address begins with: 10. , 172.16 through 172.31, 192.168, or 127.0.0.1, then this is not a real public internet IP address. It is useless to share this information to another person. You must ask the other person for his/her IP address and initiate the connection to them. If they don't have a real IP address either, then you cannot use speak-freely to contact each other directly. (Unless you are both within the same internal corporate network) See: NAT & Private IP Address Ranges Also: RFC 1918 - Address Allocation for Private Internets
If you are blessed with a true IP address, but tired of tracking what it is each time you connect to the known world. You may consider using a Dynamic DNS service to get your own Internet domain name for free. (as opposed to a Mickeysoft Domain). An example of an internet domain name is: bob.homeip.net or www.google.com. You can sign up for one at any of the services listed at: http://ez-ipupdate.com/
Open your network to allow incoming sound to your machine:
sfspeaker &
& tells unix to keep sfspeaker running in the background, until you close the parent screen.
Now tell your machine to start sending data from your microphone to the network:
sfmike [destination_ip_address]
Paste or type your IP address , without the brackets.
Now, to start sending audio, press the SPACE BAR key.
When using headphones, please be careful about turning your volume too high. You may get a sudden burst of loud noise direct to your ears. Be safe and adjust with lower settings. Feedback from your microphone too close to your headphones or speakers may create a sudden burst of noise directly to your ears.
You need a real public IP address to initiate a connection to. The person with the valid IP address must let the other person initiate the call (open a connection).
Use the following services to notify the person you wish to speak to: Jabber , ICQ, Yahoo Messenger, or MSN Messenger. It does not matter which service you use, as long as you can contact the user you want to talk to. Personally, I prefer Jabber , which is decentralized and allows IM function between any other existing instant messaging solutions.
OR: Use global SMS messenging to send your IP address
OR: Put on a pair of sneakers and run to share your IP address with the person you intend to voice chat. In the old days, this is known as the Sneaker Net.
The main way to connect is to choose New... under the Connection menu and type your friend's IP address into the box and click OK. This is why you need prior knowledge of the called party's IP address since most Internet Service Providers assign each user a different IP address each time they connect to the Internet. The other person will need to find out their current IP address ahead of time, which they can do in Speak Freely by choosing the Help menu and selecting About Speak Freely, as shown above.
The second way to make a call is to use ICQ to establish the call. Do this by clicking on the desired person's name in ICQ, point to Internet Telephony/Games, and select Speak Freely. Then, enter a reason for the call, and wait for them to connect.
Once you have established the call, you can talk to the other person the same way you tested with the echo server. Press the space bar to start tramitting sound from your microphone to them.
If you do not have a full duplex sound card, only one person can talk at a time. A really old Pentium II computer may have a half-duplex sound card installed. This can be determined by choosing the Help menu and selecting "Extended Status". Look for where is says "duplex" for the type you have.
Congratulations! You are now capable of making free long distance calls over the Internet! After you are comfortable with the flow of the conversation, you can experiment with the other options such as Voice Activation. Generally, the best way to make a call function just like a regular telephone is to use Voice Activation on a full duplex call. To go into full duplex mode, both parties double click their mice in the connection window to force constant transmission with the ear icon showing. See the Voice Activation section for help in setting the optimal volume level. As with the echo server, when you are ready to end the call, just click the X in the connection window to disconnect. Have fun!
For dialup users, be aware that if you browse the web while voice chatting in speak-freely, both the web and speak-freely will slow down and not function 100%. It will probably work 50% or less. :)
Table 2. Compression Options
Compression option | Bits per second | Bytes per second | Need fast CPU? | Sound fidelity |
---|---|---|---|---|
Best | LPC-10/CELP | LPC-10/CELP | GSM | GSM/CELP |
LPC-10 | 3460 | 346 | Pentium I | Ok (shortwave radio) |
CELP or Speex | 6000 | 600 | Pentium II 400mhz | Good |
LPC | 6500 | 650 | Pentium I | Depends. Bad for squeaky voices |
GSM | 16500 | 1650 | Pentium I | Good |
1. I can't get it to work... | |
| |
Q: | Nothing happens when I open a connection... |
A: | You must press the 'SPACE BAR' to start transmitting sound. You also won't hear anything until the other person starts sending sound successfully to you. You should have an icon of an 'ear', which indicates that you are sending sound out. The icon of a phone means that you are not sending out sound. |
Q: | When I send, nobody can hear me / I can't hear anybody else. |
A: | Test your microphone In Microsoft: Programs -> Accessories -> Entertainment -> Sound Recorder Test your microphone by recording something and playing it back. Usually the volume controls for recording or playing back sound from your microphone are not correctly set by default. Test this first. |
A: | (The following was contributed by John Deters). For those of you who aren't particularily familiar with Windows audio hardware but would like to use Speak Freely, here are some hints that might help get you started. First, does your sound card play regular Windows sounds? When you start Windows, do you hear the "Ta-Da"? If not, make sure your speakers are plugged in to the "speaker" or "output" jack coming from your sound card. While you're at it, make sure your microphone is plugged into the "mic in" jack. If there is a volume knob on your sound card, make sure it's turned up. If your speakers have a power supply (such as batteries or a power transformer) make sure you have power, such as fresh batteries or the transformer is plugged into a live outlet. Make sure your speakers are turned on. You may need to refer to your sound card or speaker's documentation to get it set up correctly. Some sound cards come with the microphone input not "turned on". What this means is that your sound card will not "listen" to your microphone until you tell it to. Included with your sound card was (probably) a "Mixer" application (if not, there may be a volume control application in your Accessories group.) Double click the Mixer to start it. With Sound Blaster cards, the mixer appears as columns of sliding volume knobs. Your sound card may have come with a different mixer. If there is a volume control labeled "Microphone", this refers to how much of the sound from the microphone input will come out through your speakers. For now, turn it on (by checking the box or whatever) and set the volume to the same level as the volume control marked "Wave". If you're not sure, just turn it all the way up (you can always turn it down later). Make sure the switch on your microphone is turned on, and tap on it or talk in it. Do you hear yourself? If not, you need to find the input side of the mixer. Hunt around for a menu option or button called "Recording Controls". When you select it, you'll see a similar looking screen that lists all of the inputs to your system. Turn the microphone input on by clicking the box, and if there is a "gain", set it to its maximum setting. Now, try tapping on the microphone. You should now hear the tapping coming from your speakers. Speak into the microphone, and compare the level of sound from your voice to that of the other sounds in your system. You want your voice to come out about the same loudness as the "ta-da", and you want it to be intelligible. You may need to adjust the gain downward a bit, or find the correct place to hold your microphone. Some microphones need to be held almost to your lips, while others meant for mounting on your monitor need to be a foot away from your face before you sound good. Experiment with this for a while until the sound coming out of your speakers sounds good to you. Once you have the microphone gain set, you should return to the output side of your mixer by finding the menu option or button labeled "Volume" or "Output". It might have opened a second window called "Recording Control" or "Input" that you will need to close. Once you get back there, you will probably want to turn the microphone OFF by un-checking the box. This will keep your side of the conversation off of your speaker, preventing nasty feedback squeals. When you've done that, you won't hear anything else from your microphone coming out your speaker, but you now know that your microphone is set up for recording your voice. (Special note to headphone users: if you use headphones, leave the microphone ON. It will help your voice sound better to you, and your conversations will sound more natural. You might wish to adjust the microphone volume setting.) For a good test, use the "Sound Recorder" program found in your "Accessories" group. You should be able to click on the "Record" dot, say something, click on stop, then rewind, then the play arrow, and hear yourself. Once your audio hardware is correctly set up and working to your satisfaction, you will probably find that Speak Freely now works surprisingly well. You can use the local loopback facility to verify correct operation with Speak Freely, then proceed to experimenting with an echo server. The Audio Monitor display may help in troubleshooting input and output audio settings. |
Q: | Help! I'm trapped behind a firewall and can't talk to people at other Internet sites. What can I do? |
A: | Little or nothing, unfortunately. Speak Freely communicates using Internet UDP protocol on non-privileged ports 2074 through 2075 and TCP protocol on port 2076 (the latter only if you're using a Look Who's Listening server). Most firewalls block all non-privileged (and hence unknown) port number packets, since there's no way to know they aren't being used by a mole or a Trojan Horse application to transmit sensitive data to a remote site. Speak Freely uses a nonprivileged port precisely to avoid the need for involving your system administrator in installing the program, but if you're behind a firewall you have no alternative. If you can persuade your jovial sysadmin to allow packets on ports 2074 through 2076 to pass both directions through the firewall, you'll be all set, but the odds of this are extremely slim--I certainly wouldn't permit it were I your site manager. Once there's a known port out of your system, any program, not just Speak Freely, can transmit anything it likes accessible on your system to any other host on the Internet; if you permit that, why have a firewall in the first place? Basically, you'll just have to wait until the demand for network voice conferencing becomes strong enough at your site that your administrator installs a secure proxy tool to create a bridge across the firewall that Speak Freely can cross. In the short term, there's nothing you or I can do to get across the firewall. If you do decide to create a bridge across your firewall for network voice, you should probably also allow packets on ports 5004 and 5005 to pass--this is the standard port pair for RTP protocol. |
Q: | My dial-up Internet connection gives me a different host name and IP address every time I connect. How can other people find me when I'm on-line? |
A: | Find a free dynamic DNS service Register and set your computer up for free dynamic dns entries at http://www.dyndns.org/services/dyndns/ or http://www.no-ip.com/ You can get a free DNS name like: bobf@homeip.net even though your IP address changes. Linux users can use a program called "ez-ipupdate". http://ez-ipupdate.com/ . Windows users can install a program called "DeeEnEs" at http://palacio-cristal.com/default.asp?main=/Products/DeeEnEs/. Other clients are listed at: http://www.dyndns.org/services/dyndns/clients.html |
A: | Publish your E-mail address on a Look Who's Listening server. People who wish to call you can look you up on the server, see if you're currently connected and, if so, connect to the address for this session. You can use the same procedure to locate other users with dial-up connections. Since your E-mail address is unique and does not change from session to session, it allows others to find you regardless of how you are currently connected to the Internet. |
Q: | I don't get it. I've installed Speak Freely and it runs OK, but nothing happens when I connect to the IRC server. What gives? |
A: | Speak Freely is a telephone, not a party-line chat program like IRC. You run a copy on your machine, the other person runs a copy on theirs, and then you talk to one another person-to-person--there's no server in the loop nor any need for one. Somebody could certainly make a voice chat program, but this isn't it. If your network supports multicasting, you can use that facility to organise conference groups individuals can join and leave at will. The Phonebook/Search... menu item permits you to access a Look Who's Listening server to locate other people running Speak Freely. |
Q: | My machine hangs as soon as I try to transmit. |
A: | This is usually the result of failing to set a compression mode appropriate for the speed of your Internet connection. What should happen in this case is that sound that can't be sent in time is just discarded, but some implementations of WINSOCK seem to hang the machine when a program tries to send data faster than the network can accept it. In many cases (assuming you have a fast enough computer), setting Options/GSM Compression will cure the problem. |
Q: | Is there / when will there be a Macintosh version? |
A: | As soon as somebody makes one. I have neither the knowledge nor the hardware to port Speak Freely to the Macintosh myself, but it would be a relatively straightforward project for a Mac developer experienced in both network and audio programming, I believe. The compression and encryption code should be usable with little or no modification. The bulk of the work would be in the user interface, network driver, and audio input/output which, due to great differences between Windows and the Macintosh, would have to be essentially rewritten. If you're interested in making a Mac version of Speak Freely, please get in touch (via the Speak Freely mailing list) so you can see if anybody else is already working on such a project. |
2. I have problems with.. | |
| |
Q: | Why do I get pauses and lost sound? |
A: | Unlike file transfers, transmitting intelligible audio requires not only adequate bandwidth but consistent delivery time. If one packet of sound takes a tenth of a second to arrive, the next two seconds, and the third half a second, not only will be there an audible pause but they'll be received and played out of order. Network congestion and moment-to-moment re-routing can cause precisely this kind of inconsistent delivery time. If you're using a public network, there's nothing you can do other than try again later when there may be less traffic. Remember, the Internet was never intended to transmit real-time data such as audio; it's a miracle it works as well as it does. |
Q: | Why do I connect to a machine (like furry.zoo.org) instead of a user (like panda@fuzzy.zoo.org)? |
A: | Because the audio hardware belongs to the machine, not the user. Think of it like a house with a single telephone; there may be several people living there, but they all share the same phone number and only one can use the telephone at a time. Your host name or IP address is just like a telephone number, and your computer the telephone. To find what host name a given user is connected to at the moment, look up their E-mail address on a Look Who's Listening server. |
Q: | Can Speak Freely talk to other network voice program? |
A: | Yes, as long as the program supports either Internet Real-Time Protocol (RTP) or the protocol used by the Lawrence Berkeley Laboratory's Visual Audio Tool (VAT). Speak Freely automatically detects which protocol a program is sending and displays the protocol in the connection window. When transmitting to a user running an RTP or VAT compatible program, be sure to set Options/Protocol to the protocol that program requires. Many commercial Internet voice programs use proprietary protocols to guarantee users can only talk to others with the same program. Until the vendors of these products adopt RTP as a means of communicating with other voice applications, it will not be possible to communicate with users of such products. |
Q: | How can I make sure Speak Freely is always running on my machine? |
A: | For Microsoft: Put a shortcut to Speak Freely in your Startup folder (or whatever it's called if you're running a non-English edition of Windows). You'll probably want to check the Options/Window Display Modes/Start Minimized menu item so Speak Freely starts as an icon. If you check the Use Notification ("System Tray") Icon and Hide When Minimized items as well, Speak Freely will lurk as a small icon to the right of the taskbar until you activate it by clicking the icon. If you also check the Open on New Connection item in this menu, the Speak Freely window will automatically pop open whenever a remote machine connects to yours. If you'd like to automatically establish one or more ready-to-use connections, specify the names of the connection files describing them on the command line of the shortcut, separated by spaces. |
A: | For Linux There are a few ways to do this. I forget at the moment. :) |
Q: | Aren't you going to wreck the Internet by clogging it with all this sound traffic? |
A: | Voice compression using common GSM, CELP, or Speex codecs use less than 1-2 kB/sec. This is less than half of the bandwidth used by your normal dialup connection. This is a legitimate concern in regard to video conferencing programs, but not with a voice-only tool like Speak Freely. With GSM compression, real-time audio requires a bandwidth of just 1650 bytes per second. This is far less than a typical FTP session, and people regularly make multi-megabyte FTP archives available without fear of clogging the Internet. A user accessing one of the many graphics-rich World-Wide Web sites can easily consume more Internet bandwidth than Speak Freely. In addition, the load created by real-time audio is inherently self-limiting. As a network link approaches saturation, the consistency of packet delivery time becomes dramatically worse, while non-real-time applications such as FTP and Web transfers simply begin to smoothly slow down. Long before the links between two sites reach their bandwidth limit, the audio users will have given up in frustration with break-ups and lost sound, to try again, perhaps, when the network is less busy. |
Q: | Why do face images go all weird when more than one person is connected at once? |
A: | This occurs when your system has a 256 colour display board, and each face has its own set of 256 colours. The active connection will be displayed with the correct colours but other connections must use a default colour table. If you upgrade your display adaptor to full-colour, multiple face images will display correctly. |
Q: | How secure is the encryption? |
A: | One of the reasons the complete source code for Speak Freely is available is to permit independent evaluation of the implementation and application of encryption within the program by experts in the community. With time, a consensus will emerge as to the degree of security Speak Freely provides and how to remedy any perceived weaknesses in future releases. Key file encryption is very insecure, but I already warned you about that; it's intended purely as a last-ditch alternative for users with computers too slow to run any of the other forms of encryption, yet who prefer any protection, however weak, to transmitting entirely in the clear. |
Q: | Why do you use datagram protocol with no end-to-end acknowledgment that would permit detecting and correcting errors? |
A: | Network transmission delays rule out end-to-end acknowledgment. Audio has to be delivered in real time to be intelligible. Waiting for an ack from the other end would, in many cases, require delaying up to a second before sending the next packet. The best we can do is blindly spray packets at the other end in the hope enough will arrive with sufficiently consistent delivery time to be intelligible. Over slow links to distant sites, several packets will be flowing through the network toward the destination at a given time. Providing connections with guaranteed bandwidth and consistent delivery time is one of the main challenges in extending the Internet to accommodate real time audio and video communication. |
Q: | I run the Windows debug kernel and I get whatever messages when I do... |
A: | I've sweated blood to try to make this thing debug kernel clean, and as of this writing, with half-duplex audio hardware, attempting to open input while output is open causes several "GlobalReAlloc failed" and "LocalAlloc failed" messages from the Kernel, which it presumably handles correctly since no apparent harm is done. But, as a battle-weary Windows warrior, I have no illusions that I've "found the last one". If you see warnings or errors unrelated to half-duplex output to input transitions, please announce them to the Speak Freely mailing list and provide as much information as you can about precisely what you were doing, what message(s) you got, whether you could reproduce the problem, and which sound card, network interface, and network (WINSOCK) software you're using. Thanks in advance. |
Speak-Freely with Speex codec + NAT -- This author has joined the Speak-Freely project team. It will soon be merged in the next release.
Recommended settings: Protocol RTP, Compression: Speex
. -- normal packet
X -- packet lost and extrapolated.
I -- packet lost and interpolated from redundancy.
D -- packet dropped from arriving too late. (should increase jitter delay if you have too many of these)
[ -- start of spurt
] -- end of spurt
Skype -- controversial closed-source Windows and Linux application
TeamSpeak - Linux and Windows for gaming.
Need a game to play?
Try " Battle for Wesnoth " at: http://www.wesnoth.org/
(opensource GPL for Linux, Mac, and Windows)
"Chain of Command" or "Call of Combat" at: http://www.coccentral.com/