I was reading about SIP and found that there's an java API JAIN SIP to develop SIP based applications. Then I also found that there is JAIN SLEE and SIP servlets.
I believe JSLEE and SIP Servlets are containers to deploy applications based on JAIN and SIP servlets respectively.
Can some please explain. Also, please tell me which one is better to start with for learning.
Thanks
JAIN SIP is a java specification (https://jcp.org/en/jsr/detail?id=32) for writing Java SIP applications in a standard and portable manner (between JAIN SIP vendors).
JAIN SLEE is a java specification (https://jcp.org/en/jsr/detail?id=240) that defines an event and programming model, application lifecycle and management for writing portable communications application. It's basically an Application Server in which you can plug any protocols (Diameter, SIP, HTTP, XMPP, SS7, legacy protocols, ...) through a notion called the Resource Adaptor. The SIP Resource Aaptor in JAIN SLEE actually uses JAIN SIP as a standard.
SIP Servlets is a java specification (https://jcp.org/en/jsr/detail?id=289) that defines a programming model that is based on the popular HTTP Servlet Model but tailored to SIP. The focus of the specifications is on simplifying the writing of SIP (or converged SIP/HTTP or SIP/JEE) Applications by managing automatically the low level layers of SIP and letting the programmer focus on the business logic as much as possible.
In Mobicents, we actually implement JAIN SLEE (https://code.google.com/p/jain-slee/) and SIP Servlets (https://code.google.com/p/sipservlets/) which both uses JAIN SIP (https://java.net/projects/jsip/) as a SIP Stack.
So knowing very well all 3 technologies, I would recommend SIP Servlets if you're new to this and already have some HTTP Servlet programming background.