IT Projects‎ > ‎Java Projects List‎ > ‎

Multi User Voice Chat

Description: Multi User Voice Chat And Multi-Threaded TCP Server, 8,000F 8k mono sound, some basic lossy "compression" :) that gets the rates down to 3-6k depending on the settings and the data. Works on webpages, Applet and application code included. You can type /help for a list of commands. You can have as many users logged in as your bandwith can support. To test this you can run two clients on the same machine. Contact Outsiderook on AIM if you have any questions or comments. If you contact me wait for a response dont give me your e-mails and log off I will NOT send e-mail to anyone.

Although Voice over IP (VoIP) has existed for several years, it has only recently begun to take off as a viable alternative to traditional public switched telephone networks (PSTN). Interest in VoIP has grown in part because the technology can help organizations reduce costs by using a single IP network to support both data and voice applications. But cost is not the only factor driving VoIP’s growth. Service providers are also attracted by VoIP’s revenue potential. Operators can use their VoIP networks to rapidly deploy new value-added and high-margin applications and services. Organizations can choose from a variety of equipment and networking protocols to implement their VoIP solution. Just as in data networking, identifying the appropriate equipment and technology for the VoIP network depends heavily on an organization’s business and technical requirements. This paper describes the basic networking functions, components, and signaling protocols in VoIP networks. It explores the ramifications of deploying VoIP as well as the service considerations that drive specific equipment and technology choices. This paper is intended to provide organizations with a general understanding of VoIP, so that they will be better prepared to solve the more complex issues associated with deploying a secure and assured VoIP network. VoIP (or Internet telephony which is almost the same thing) is any one of everal technologies that allow you to make phone calls over the Internet instead of over the telephone network. Some more advanced and secure systems use a private data network instead of the Internet. This technology has been around since the 1970s but hasn't been practical until recently because for it to be effective you need a broadband/high-speed connection. Specifically you need a bit more than 100kbps per connection using modern VoIP transmission technologies. This has only recently become common among residential broadband subscribers. That kind of bandwidth has beenavailablein businesses for longer and technology is already well established in the business market

Understanding Basic PSTN and VoIP Network Functions

Before diving into the details of VoIP networking components and technologies, it is important to understand the basic network functions that make voice services possible. This section describes how PSTN and VoIP networks use: 

• Database services to locate endpoints and translate between the? addressing schemes used in two (usually heterogeneous)      networks
• Signaling to coordinate the actions of the various networking? components needed to complete a call between two endpoints 
• Call connect and disconnect (bearer control) mechanisms to transport ?audio content 
• Coder-decoder (CODEC) operations to convert analog waveforms to? digital

While circuit switching keeps the connection open and constant, packet switching opens a brief connections- just long enough to send a small chunk of data, called a packet, from one system to another. It works like this: The sending computer chops data into small packets, with an address on each one telling the network devices where to send them. Side of each packet is a payload. The payload is a piece of the E-Mail, a music file or whatever type of file is being transmitted inside the packet. The sending computer sends the packet to a nearby router and forgets about it. The nearby router sends the packet to another router that is closer to the recipient computer. That router sends the packet along to another, even closer router, and so on.


THE calls are transmitted at a fixed rate of 64 kilobits per second (Kbps) in each direction. Since there are 8 kilobits (Kb) in a kilobyte (KB), this translates to a transmission of 16 KB each second the circuit is open, and 960 KB every minute it's open. So in a 10-minute conversation, the total transmission is 9,600 KB, which is roughly equal to 10 megabytes . information for transport 

Understanding VoIP Solution Components

Although VoIP networks take a different approach to fulfilling the four primary networking functions, the major components of VoIP network ultimately deliver very similar functionality to that of a PSTN. Consequently, VoIP networks can perform all of the same tasks that the PSTN does. A typical VoIP network has five major components: 

• VoIP phones, consoles and other devices, which end users use to ?initiate and receive VoIP calls 
• The Call Processing Server/PBX, which manages all VoIP control ?connections 
• One or more Media/PSTN-to-VoIP Gateways, which convert voice ?content for transport over the IP network 
• The IP network, which transports the audio payload 
• One or more Session Border Controllers (SBCs), which control real-?time, session-based traffic at the signaling (call control) and transport layers as it crosses network borders and network domains


• You pick up the receiver, which sends a signal to the ATA. 
•The ATA receives the signal and sends a dial tone. This lets you know that you have a connection to the Internet.
• You dial the phone number of the party you wish to talk to. The tones are converted by the ATA into digital data and temporarily stored. 
• The phone number data is sent in the form of a request to your VoIP Company’s call processor. The call processor checks it to ensure that it is in a valid format.
• The call processor determines to whom to map the phone number. In mapping, the phone number is translated to an IP address. The soft switch connects the two devices on either end of the call. On the other end, a signal is sent to your friend's ATA, telling it to ask the connected phone to ring. 
• Once your friend picks up the phone, a session is established between your computer and your friend's computer. This means that each system knows to expect packets of data from the other system. In the middle, the normal Internet infrastructure handles the call as if it were e-mail or a Web page. Each system must use the same protocol to communicate. The systems implement two channels, one for each direction, as part of the session.
• You talk for a period of time. During the conversation, your system and your friend's system transmit packets back and forth when there is data to be sent. The ATAs at each end translate these packets as they are received and convert them to the analog audio signal that you hear. Your ATA also keeps the circuit open between itself and your analog phone while it forwards packets to and from the IP host at the other end. 
• You finish talking and hang up the receiver.
• When you hang up, the circuit is closed between your phone and the ATA.

Media/VoIP Gateways/Gatekeepers

The VoIP network uses media gateways to perform the traditional CODEC functions—th e analog-to-digital conversion of voice traffic—an d to create voice IP packets. The media gateway provides the necessary interface for transporting voice content over the IP network and is the source of VoIP bearer traffic for that IP network. Typically, the media gateways convert each conversation or call into a single IP session that can be transported by a RTP that runs over User Datagram Protocol (UDP). Media gateways also provide optional features, such as analog and/or digital voice compression, echo cancellation, silence suppression, and statistics gathering. Media gateways exist in several forms. For example, media gateways could be a dedicated telecommunication equipment chassis, or even a generic PC running VoIP software. In the case of an IP phone, the media gateway function resides in the handheld device. 

Compensating for Packet Loss

Packet loss can occur for many reasons, and in some cases, is unavoidable. During network congestion, routers and switches can overflow their queue buffers and be forced to discard packets. Packet loss for non-real-time applications, such as Web browsers and file transfers, is undesirable, but not critical. The protocols used by non-real-time applications, usually TCP, have retransmission capabilities that enable them to tolerate some amount of packet loss. 

Real-time applications based on UDP are significantly less tolerant of packet loss. UDP does not have retransmission facilities; however, retransmissions would almost never help. In an RTP session, by the time a media gateway could receive a retransmission, it would no longer be relative to the reconstructed voice waveform; that part of the waveform in the retransmitted packet would arrive too late. 

Although packet loss of any kind is undesirable, some voice packet loss can be tolerated as long as the loss is spread out over a large amount of users. Voice quality is not generally affected if the amount of packet loss is less than five percent for the total number of calls. 

Conclusion Although VoIP is an attractive alternative to traditional PSTN voice services, deploying VoIP is not a simple process. Before choosing a VoIP solution, organizations should consider both the required functionality and the potential issues associated deploying a VoIP network. These service considerations drive the protocol and equipment choices organizations when designing their VoIP solution. Although the wide range of VoIP protocols has caused some confusion in the marketplace, it is precisely this protocol flexibility that makes VoIP-based voice systems so much more useful than legacy voice systems. In designing their VoIP solution, organizations also need to consider how their chosen solutions will address the latency, jitter, bandwidth, packet loss, reliability, and security issues raised in this paper. By working with vendors that can provide this VoIP flexibility, companies can take advantage of the efficiencies of VoIP while building scalable and reliable networks that can meet the needs of the next generation of services. 

What is JAVA?
Java is an entire programming language resembling C or C++. It takes a sophisticated programmer to create Java code. And it requires a sophisticated programmer to maintain it. With Java, you can create complete applications. Or you can attach a small group of instructions, a Java "applet" that improves your basic HTML. A Java Applet can also cause text to change color when you roll over it. A game, a calendar, a scrolling text banner can all be created with Java Applets. There are sometimes compatibility problems between Java and various browsers, operating systems or computers, and if not written correctly, it can be slow to load. Java is a powerful programming language with excellent security, but you need to be aware of the tradeoffs.

What is JSP?
Short for Java Server Page. A server-side technology, Java Server Pages are an extension to the Java servlet technology that was developed by Sun. JSPs have dynamic scripting capability that works in tandem with HTML code, separating the page logic from the static elements -- the actual design and display of the page -- to help make the HTML more functional(i.e. dynamic database queries). A JSP is translated into Java servlet before being run, and it processes HTTP requests and generates responses like any servlet. However, JSP technology provides a more convenient way to code a servlet. Translation occurs the first time the application is run. A JSP translator is triggered by the .jsp file name extension in a URL. JSPs are fully interoperable with servlets. You can include output from a servlet or forward the output to a servlet, and a servlet can include output from a JSP or forward output to a JSP. JSPs are not restricted to any specific platform or server. It was orignially created as an alternative to Microsoft's ASPs (Active Server Pages). Recently, however, Microsoft has countered JSP technology with its own ASP.NET, part of the .NET initiative.

What is JavaScript?
When new technologies start, they sometimes acquire names that will be confusing in the future. That's the case with JavaScript. JavaScript is not 'Java'. JavaScript is a simple programming language that was developed by Netscape that writes commands to your browser when the HTML page is loaded. Note: you can have compatibility issues with Java Script, especially in newer versions of Browsers.

What is Java?
Java is a simple, distributed object oriented programming language which provides the security, High performance, robustness.
Java is a portable and Architectural neutral language which can be Interpreted.
Java is multithreaded and Dynamic language.

About Java
Java is a Programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java Platform. The language derives much of its Syntax from c and C++ but has a simpler object Model and fewer low-level facilities. Java applications are typically compiled to bytecode(class file) that can run on any Java Virtual machine (JVM) regardless of computer architecture.

Why Software Developers Choose Java?
Java with its versatilty, efficiency, and portability, Java has become invaluable to developers by enabling them to:

• Write software on one platform and run it on virtually any other platform
• Create programs to run within a Web browser and Web services
• Develop server-side applications for online forums, stores, polls, HTML forms processing, and more
• Combine applications or services using the Java language to create highly customized applications or services
• Write powerful and efficient applications for mobile phones, remote processors, low-cost consumer products, and practically any other device with a digital heartbeat.

Goals in creation of Java
There were five primary goals in the creation of the Java language

1. It should be "simple, object oriented".
2. It should be "robust and secure".
3. It should be "architecture neutral and portable".
4. It should execute with "high performance".
5. It should be "interpreted, threaded, and dynamic".

Architecture of Java
Java's architecture arises out of four distinct but interrelated technologies: 

• The Java programming language 
• The Java class file format 
• The Java Application Programming Interface 
• The Java virtual machine 

When you write and run a Java program, you are tapping the power of these four technologies. You express the program in source files written in the Java programming language, compile the source to Java class files, and run the class files on a Java virtual machine. When you write your program, you access system resources (such as I/O, for example) by calling methods in the classes that implement the Java Application Programming Interface, or Java API. As your program runs, it fulfills your program's Java API calls by invoking methods in class files that implement the Java API. 

The Java Virtual Machine
At the heart of Java's network-orientation is the Java virtual machine, which supports all three prongs of Java's network-oriented architecture: platform independence, security, and network-mobility. 

A Java virtual machine's main job is to load class files and execute the bytecodes they contain. As you can see in Figure 1-3, the Java virtual machine contains a class loader, which loads class files from both the program and the Java API. Only those class files from the Java API that are actually needed by a running program are loaded into the virtual machine. The bytecodes are executed in an execution engine. 

Coding standard
Java suggests set of coding standard to follow while writing java program. Coding standard helps author as well as others to better understand program. It reduce amount of debugging time considerably. Basically coding standard suggests how to name class, methods variables of different scope, package etc.

Writing a Java program
In the Java programming language, all source code is first written in plain text files ending with the .java extension. Those source files are then compiled into .class files by the javac compiler. A .class file does not contain code that is native to your processor; it instead contains bytecodes — the machine language of the Java Virtual Machine1 (Java VM). The java launcher tool then runs your application with an instance of the Java Virtual Machine.

Download Multi User Voice Chat