Voice over IP

L

laurascomputer4

hi

as a rookie with java, i would like to ask for some help with starting
to create a basic java software to allow voice over ip. i understnad
that layers will have to be used for functionality. and that a
standard will be needed so that 2 computers can communicate with one
another.

However with a project such as this, how would one begin? can anyone
suggest any helpfull hints or tips?

thanks.
 
M

Martin Gregorie

hi

as a rookie with java, i would like to ask for some help with starting
to create a basic java software to allow voice over ip. i understnad
that layers will have to be used for functionality. and that a
standard will be needed so that 2 computers can communicate with one
another.

However with a project such as this, how would one begin? can anyone
suggest any helpfull hints or tips?
You'll probably need three types of program - the VOIP client, some sort
of directory server and a directory maintenance program, though the last
might be simply a text editor - so, lets assume it is, and the directory
is a simple text file with each subscriber's details on a separate line.

Start by writing the client and directory programs. Concentrate first on
having the client do a directory lookup and then making a connection to
a second client. Making them exchange text files in both directions
simultaneously would be a straight forward initial test and much easier
to debug. Sending the files line by line is an approximation to sending
audio packets.

When that's working reliably you can replace the text exchange with
audio packets. Hint, look at the RFCs and other relevant standards for
streaming audio protocols before designing your own - there's no sense
in repeating work that's been done already.
 
L

laurascomputer4

Thanks Martin,


i dont think i will be creating my own standard but using ones already
available.

however on initial testing i was thinking of using the computers IP
address to make the initial connection, with a number pad designed in
the GUI, however im unsure how to go about doing so.

if computers are already connected on a network, picking the IP
address of one individual computer, then sending information to that
one only..??
 
R

Roedy Green

as a rookie with java, i would like to ask for some help with starting
to create a basic java software to allow voice over ip

You need several pieces.

1. Something that will capture microphone output in real time.

2. Something that will play a short sound file in real time, without
pause between the next.

3. Something to compress/decompress the voice. It might even pay to
do FFTs and compress that.

4. transport layer, most likely UDP Datagrams. If you lose a packet,
you'd better hear silence than have a echo delay introduced that you
never make up.

5. Some sort of server phone book and a scheme to make connections and
warn subscribers of incoming calls.

See http://mindprod.com/jgloss/udp.html
http://mindprod.com/jgloss/jmf.html
http://mindprod.com/jgloss/fft.html
http://mindprod.com/jgloss/servletwomb.html
 
J

Jeff Higgins

laurascomputer4 said:
hi

as a rookie with java, i would like to ask for some help with starting
to create a basic java software to allow voice over ip. i understnad
that layers will have to be used for functionality. and that a
standard will be needed so that 2 computers can communicate with one
another.

However with a project such as this, how would one begin? can anyone
suggest any helpfull hints or tips?

If you are hoping to work from first principles then Martin and Roedy
have given good starting points. If you just want to get something
up and running I can suggest an introductory walk through text by
Cokorda Raka Angga Jananuraga in his PDF booklet titled,
"Introduction to Telephony Application Development
Using Asterisk, AsteriskJava, and SIP" (~5M).
<http://www.geocities.com/rakabali78/booklet1/>

JH
 
M

Martin Gregorie

>
however on initial testing i was thinking of using the computers IP
address to make the initial connection, with a number pad designed in
the GUI, however im unsure how to go about doing so.
You could do that, but why not use the host names? They're easier to
remember and can simply be input via a JTextField if you want to use a GUI.

Running the VOIP program in the background as a server and controlling
it from a command line client ("java voip hostname" makes a call and
"java voip end" ends it) is simple to do, avoids cluttering your desktop
with a GUI and the complexity of supporting it. The VOIP program would
listen on a socket for commands from the command line utility.

The command line utility can be replaced later with a GUI without
altering the VOIP program in any way or you can use desktop icons to
issue the commands via scripts. Most operating systems have utilities
that can prompt for a string and pass it back to its calling script.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top