Contents
This project publishes the Reference Implementation, Technology
Compatibility Kit, examples and tools for JAIN-SIP-1.2 (JSR-32
maintenance release) and an SDP library that conforms to the public
release of JSR 141 (JAIN-SDP) interfaces. JAIN-SIP is a low level Java
API speicification for SIP Signaling. The intended users of this project
are SIP developers.
This project publishes a full implementation of the RFC 3261
Specification and as well as suppport for several SIP RFCs.
You can embed the JAIN-SIP stack in an applet, HTTP servlet or an
application. JAIN-SIP can be used in SIP Proxy Servers (stateful and
statelss) and in SIP User Agents. JAIN-SIP has been used to build a
Session Border Controller, a few Softphones, a Resource Adapter for the
JAVA Service Logic Execution Environment, a SIP Servlet Implementation
and in a few Test tools.
The JAIN-SIP Reference implementation is a product of the Advanced
Networking Technologies Division at the National Institute of Standards
and Technology (NIST). The JAIN SIP RI, TCK and tools published by this
project are in the public domain.
Artifacts and Downloads
Javadoc
Click here to get the latest cruise control build snapshot.
The best way to keep up to date with the latest source is to use cvs.
To access cvs you need to join the project as an observer. For code checkin you need to be a developer.
-
You need to join java.net first before you apply to the project for
an observer role. After your requested role is approved
check out the project from java.net using cvs.
- To check out the project from java.net use CVS :
Performance and Stability
This project includes an extensive test suite that is run when ever a change is made to the CVS repository.
Visit the download link above to see the tests run by cruise control for each commit.
JAIN-SIP has been leak tested under both error conditions and error
free operational scenarios. Here are the results of long term stability
testing (Pascal Maugeri: "Genaker VoIP API using JAIN-SIP v1.2.85"):
See Stability testing results.
Getting Started
A nice getting started article.
Recent Developments
- JAIN-SIP-2.0 specification work is under way. Please check out and contribute.
See JAIN-SIP 2.0 Proposed Draft Spec
- Significant performance enhancements. Many thanks to Jean Deruelle ( Redhat ).
- SCTP support (experimental). Many thanks to Jeroen van Bemmel for adding this support.
- HA support ( see mobicents project ) described here :
http://jeanderuelle.blogspot.com/2010/08/introducing-jain-sip-ha-or-how-you-can.html
Related Projects
Some other active projects that use JAIN-SIP:
SIP-FOR-ME: SIP is not just for you. Its for ME too! A usable subset of this project has been "ported" to j2me.
JAIN-SIP-APPLET-PHONE: Its an Applet! No its a Phone! No its jain-sip-applet-phone!!
SIP Communicator: A very cool multiprotocol communicator.
Cafe-SIP: An open source project that builds SIP tools and the Jiplet container.
KIT-KAT: A cool testing tool from AT&T that uses JAIN-SIP
The SipXecs open source PBX uses JAIN-SIP.
The Mobicents JAIN-SLEE Container uses JAIN-SIP for its resource adapter.
SIP Servlets implementation on JAIN-SIP ( with extensions )
The openfire XMPP container uses JAIN-SIP for its SIP plugin.
OpenJSip: A simple well documented JAIN-SIP proxy server.
A ESB Connector for SIP that is built on JAIN-SIP
Voicetechnology uses JAIN-SIP in a Hosted PBX product. Deployed in Brazil and Japan to provide Hosted PBX Services.
RFC 3263 Router for JAIN-SIP
A SIP tester that uses JAIN-SIP
Please Contribute
You can contribute to this project by :
- Using it in your product or project and providing feedback
for the next version of JSIP.
- Fixing Bugs : export a
diff listing from cvs, open an issue for the bug on java.net
and attach your suggested solution there.
You can discuss your bug on the NIST-SIP
mailing list or the JAIN-SIP project user list.
- Reporting Bugs : To report a bug provide a small self-contained
example that illustrates the bug. You can pattern the test case usually
along the lines of examples/simplecallsetup. Having a test case handy
speeds up the bug fix. Your test case will be included in the project
as a test case. Please enter an issue in the java.net issue tracker so
other users can know about the issue and its status. Please attach your
test case or bug description with debug log file there.
- Contributing Extensions and enhancements (i.e. support for SIP
extension RFCs and drafts that are not covered by JAIN-SIP): For this
you need to discuss your planned contribution with the project owners
and sign up as a developer. Note that there are no content developer
roles for this project. Please discuss your planned contribution with
the owners before applying for a developer role. You may be requested
to submit contributions as patches for some time before developer role
is granted.
- Contributing code snippets and examples to be included
with the distribution.
- Contributing test cases to be included in the distribuiton.
Your contributions will be acknowledged individually in the code (as a
comment) and in the acknowledgement page.
Please run the ant runtck target
before submitting patches and make sure your bug fix does
not break something else. Please follow coding guidelines. If you are
using eclipse, codefmt.xml is the style file to use.
Note that all contributions to the gov/nist hierarchy are in the public
domain.
You are encouraged to subscribe to the jain-sip
user mailing list for project announcements.
Credits
- Architecture / API design (JAIN-SIP Spec Leads):
M. Ranganathan (NIST / Nortel) and Phelim O'Doherty (Oracle)
with substantial input from early adopters.
Special mention: Jeroen van Bemmel (Lucent), Sarit Gallanos (Radvision)
and Ben Evans (Open Cloud).
- Implementation Lead: M. Ranganathan
- Implementation Team:
Version 1.1: M. Ranganathan and Olivier Deruelle
Version 1.2: M. Ranganathan and Jeroen van Bemmel (review and bug fixes)
- TCK : Version 1.1 : Emil Ivov (Louis Pasteur University) and M. Ranganathan (NIST).
Version 1.2 : M. Ranganathan and Jeroen van Bemmel
- Cruise Control Builds: Luis Barriero (Redhat Mobicents QA).
- Substantial input from Users and Early Adopters is acknowledged.