The Walkietalkie manual

Walkietalkie is a simple program for streaming voice communications over
the internet. It uses minimal CPU/memory and bandwidth. It works at about
a telephone level of quality, conserving bandwidth.


NOTE (12-5-2010): This manual is grossly out of date. A lot of
what is discussed here no long applies. Just FYI...



General: 

When WT starts up, it is waiting to be called. When someone calls you,
it makes a noise, and logs a message to indicate who the caller is.
Calls are placed by entering either a username, an IP address, or the host
name of another computer.  Optionally, you can specify a port number
(other than the default) by appending a colon ':' and a number afterwards.
(172.16.31.2:51982, for example).

After entering the calling information, you hit the call button. If a
hostname or username is entered, WT will try and locate the corresponding
IP/port combination. If it is unable to, a log message will indicate it.

If the other party is running the program, they will hear a noise and see
a log message. The log message should also include the username you have
specified in the configuration area. They can pull down the answer-menu to
select from a list of callers. The call is accepted, and audio begins
streaming between the two parties. To set up a conference, have multiple
parties call a single host, and he can accept one after the other. All
parties should be able to hear each other.

If you want to set up a 'conference server' which will automatically
answer all calls and put them into one room, hold the push-to-talk
(default control) key while clicking the call button. This will enable
auto-answer mode. Have everyone call the server and start conferencing.

When in a call, you can switch to push-to-talk mode by toggling the
SPKR/PTT button. You hold the control key to transmit your voice. This
should work without requiring WT to be in the foreground.

You can specify a buddy icon by adding a file named 'buddyicon.png'
in the same directory as the application. It should be a 128x128 .png
in 24 or 32-bit format.

You can start the app in auto-answer (conference server mode) by
starting it from the command-line with the argument -autoanswer.





Configuration:

* Name:
- The user-name you want other people to see when you call them, or they
should enter in order to call you (if using a WT-locator server,
see below). The name is in effect with the specific locator-server you
specify for as long as you run the program.

* Encryption key:
- An optional key (password) that two parties can enter to encrypt
communications.
the key must match, and it is case-sensitive. Encryption uses 256-bit AES.
To disable encryption, leave this field blank.

* Port #:
- The UDP port number that WT will start up listening for calls (and
initiating outgoing) calls on. You have to restart WT after changing this.
Defaults to 51981. Must be in the range 1-65535.

Wt-locator server:
- This is the address (and optionally port) of another copy of WT running
which can coordinate finding user based on the username they have
configured. When WT starts up, it will attempt to contact the address
specified and register your name, and the IP you are reachable at. Other
parties can then call using this name, and if you use the same locator
server, the call should be set up. This is only used for mapping a name to
an IP/port, no call data passes thru. Each copy of WT runs a small locator
server, so setting up your own server is just a matter of leaving a copy
of WT running for others to use. The author runs one at
walkietalkie.domain17.net:51981.



Troubleshooting:

***A note about NAT***
Some routers have no problems with Walkietalkie, and others you have to
open ports for. The majority of the problems I get are related to NAT/PAT
problems. I recommand having the receiving end of the call open port 51981
on their router/firewall if having problems calling their username.
In some cases, this might not be possible.. one workaround is to set
up a conference-server who is reachable, and use him as the middle-man.
This not ideal, but it works pretty well. To read more about
Network Address translation, see
http://en.wikipedia.org/wiki/Network_address_translation
(Newer versions will indicate that a network connection problem is likely
 by saying that the peer did not ring, indicating it was unreachable.)


* Calling by username, but (no answer/disconnected/timed out)
- The first thing to try when unable to set up a call is to open a port on
your router/firewall. With most routers this is not necessary. Even when it
is, usually only the person receiving the call *has* to do it. By default
the port is UDP 51981. See google for how to open ports on your router.

* User <xxx> not found
- Make sure that both parties are using the same wt-locator server
address, and
that a copy of walkietalkie is running on that address, and is accessible
on the port specified (or 51981 if no port is specified). The author runs
an open server on walkietalkie.domain17.net:51981.

* The program doesn't start up
- Your computer must have a proper sound card with input sources, and the
audio driver must be set up correctly. If WT is unable to access the audio
system, it will quit. Check that your audio drivers are set up correctly.

* I don't hear any sound, or the remote end doesn't hear any sound
- Both ends must select the correct audio input device (usually a
microphone input). On a windows PC, you can do this by choosing your
default input device in the sound control panel. On a mac (os X), go to
the sound control panel under system preferences, and under the input tab,
choose the device to use. Restarting WT after making this change may be
necessary. You can test that audio is being recorded by blowing into the
microphone, and observing the input-level bars in WT, or by calling
yourself at '127.0.0.1' to test.

* Feedback loops
- A feedback loop occurs when audio being output is picked up on the input
on both ends. This is tolerable on one end, (you may hear yourself on your
friend's headphone), but if it happens on both sides, it can get louder
and louder quickly. At least one user should use a headphone, or switch
to PTT mode.

* Audio is choppy
- Check that the audio hardware is set up correctly by calling yourself at
127.0.0.1. If this is smooth, then check that no other software is
monopolizing your network bandwidth. P2P software commonly does this.
WT requires about 15kbit/sec (1.5Kbps), and should work pretty well over
a dial up connection.

* Other problems:
- I would love to lend what help I can. Send me an email at
justin@domain17.net and I'll respond as soon as I'm able.


I sincerely hope you find this software useful. I have enjoyed writing it.
If you have comments/suggestions/criticisms please email them my way.
Even if it's just to let me know you use it.

take care,
~Justin
