Sun Microsystems Inc. JAIN defines a set of communication protocol application programmer interfaces (API's) that implement various protocols to include call setup, IP telephony, and management functions. The advantage of using a language such as Java