Mobicents Sip Servlets 0.6 achieves JSR-289 compliance


News: Mobicents Sip Servlets 0.6 achieves JSR-289 compliance

  1. Mobicents is the first Open Source SIP Servlets 1.1 server to pass the TCK. JBoss is now the only vendor to have implemented both the SIP Servlets, and JSLEE specifications. Jean Deruelle, Project Lead of Mobicents Sip Servlets blogs about it here. The JBoss container TCK results can be found here, and you can also look at the Tomcat container TCK results here. Download code.

    Threaded Messages (29)

  2. SIP Servlets?[ Go to top ]

    What are SIP Servlets?
  3. Re: SIP Servlets?[ Go to top ]

    You could also take a look at SailFin ( based on GlassFish project. It allows you to write converged Java EE 5 applications with Sip Servlets. - Binod.
  4. Re: SIP Servlets?[ Go to top ]

    Binod, as opposed to James Lorenzen message where it starts some open discussion on SIP BC and SIP Servlets, your message seems to be a silly self-promotion, even more than as says your project homepage you're still working towards achieving JSR 289 compatibility
  5. Re: SIP Servlets?[ Go to top ]

    SIP (Session Initiation Protocol), is a protocol often used for VoIP (Voice over IP) SIP Servlets defines a container based model that is an extension of the well understood Servlet model. It was designed to simplify the development of SIP based applications and thereby enhance the adoption of the SIP protocol. Sip Servlets v1.1 (JSR 289) notbaly allows you to build Java EE 5 converged applications to add telco features to your existing enterprise applications (such as in the See more examples here Jean Deruelle
  6. Re: SIP Servlets?[ Go to top ]

    Now how about in English? :) Actually, a short explanation of how and what would be great. Also what things are required on the end points.
  7. Re: SIP Servlets?[ Go to top ]

    Sip Servlets is like HTTP Servlets, however instead of implementing doGet() or doPost(), you implement doInvite(), doRegister(), etc. You probably already know the HTTP requests - GET, POST, etc. The SIP requests are INVITE (make a call), REGISTER (submit your contact info to the server), SUBSCRIBE (to receive status notifications from IM buddies) and so on. A very simple sip servlet looks like this: public class SimpleSipServlet extends SipServlet { protected void doInvite(SipServletRequest request) { SipServletResponse sipServletResponse = request.createResponse(SipServletResponse.SC_OK); sipServletResponse.send(); } } It simply responds with 200 OK (SIP response status codes are mostly the same as the codes from HTTP) which establishes a session between the client and the server. Within a session you can set up a voice/video connection, send IM messages and other things.
  8. Re: SIP Servlets?[ Go to top ]

    Thx Vladimir. I was looking for something more "high level" though.
  9. Re: SIP Servlets?[ Go to top ]

    SIP phones usually talks with various entities such as Proxies, Registrars, B2BUA and other SIP Phones to make calls or Instant Messaging or any Media Session. Sip Servlets provides you with a simple programming model and various facilities so that your application can be any of those entities and even compose those entities. Let's say User Alice wants to make a call to Bob. In this scenario both users can be registered to a registrar (which in our case will be a Sip Servlets application) to post their exact Contact information. (where they can actually be contacted such as ip address and port) When Alice makes a call to Bob (sends SIP INVITE request), it will go through a Location Service (which will also be a Sip Servlets application) that will check the registrar for the exact address of Bob and proxies the INVITE request to him to start the call. In between you can have all sorts of applications (that are Sip Servlets) like Call Blocking (if Bob doesn't want to be disrupted) or Call Forwarding (if Bob wants to forward all calls to his secretary) You can also build Call Center, PBX, Conferencing applications with Sip Servlets. Sip Servlets can even initiate calls and interact with Media Servers so that some announcements are played to you (such as reminder calls) and listen for DTMF events (you have pressed 1 on your phone) to build Interactive Voice response applications. Is this the level of abstraction you're looking for ?
  10. Re: SIP Servlets?[ Go to top ]

    That helps. Thx!
  11. Re: SIP Servlets?[ Go to top ]

    I have the following project in my mind and i would to ask if i am right for my thought: I want an architecture with softphones,Sip registrar,Sip proxy,Sip proxies and Sip Redirect Servers for simple voice interaction. -Softphones can be free downloaded. -The other server-side components can implemented via Sip servlets.Right?Ok is there any official-open source software that implement sip proxies,registrars,redirects with sip servlets which automate all this proccess?And if so i want to add my business-logic in the register function of a UA.I want to add some security issues to provide anonymity and other issues.Is this possible with sip servlets and the mobicent server? Thanks.
  12. Re: SIP Servlets?[ Go to top ]

    May be this will help - let's say you have a few SIP phones. SIP phones generally need a SIP server to be useful much like web browsers needs an HTTP server to be useful. The servers usually performs things like authentication, billing, call forwarding(proxying) or IM message routing. Servers are also able to behave like SIP phones (initiating and answering calls), which is useful for features like voicemail, wake-up calls, conference calls, IVR, etc. That's what you can do with Sip Servlets by handling incoming SIP requests and creating outgoing requests.
  13. Re: SIP Servlets?[ Go to top ]

    That helps too!
  14. Servlet to Servlet Communication[ Go to top ]

    Hi, I am working on an application where one sip servlet will register to other sip servlet and then reqular invite and response messages. 

    So anybody can help me how do I implement this and whether this functionality available?

    First servlet, that will initiate the process must be invoked from an external process (may be a website submit operation).


    Please let me know at you earlier.



  15. I actually haven't implemented a SIP Servlet, but I am an experienced SIP developer. The SIP spec is very complex. Do SIP Servlet developers have to be familiar with the spec? If so, I could see this as being a huge disadvantage. This is not meant to be a silly self-promotion, but have people thought about using the JBI SIP Binding Component instead of SIP Servlets? No coding is required. A person with an existing SIP Server could be up and running quickly using the SIP BC (sending instant messages and sending/receiving calls). As a developer on this project, and the XMPP Binding Component, ease of use was a major goal; not requiring the user to actually know SIP.
  16. With Sip Servlets you still must have some understanding of the SIP protocol, but many of the complicated details are hidden. Sip Servlets developers don't need to be aware of transactions/branches or how the system headers are modified when proxying/B2BUAing or how messages are routed in and out. In most cases the Sip Servlets applications can use the utility classes without ever touching SIP headers manually. I don't know SIP BC very well, but it seems to lack some important stuff - proxy apps, b2bua, 3pcc. Also no extensibility towards Media Servers or IMS and very limited possibility to handle requests in some custom way. There is some overlap between SIP BC and Sip Servlets, since the features in SIP BC can be implemented as reusable SIP servlets and exposed as web services. In fact I think Sip Servlets would be the perfect platform for implementing SIP BC.
  17. Vladimir seems to be right to the point, I don't know much about SIP BC neither so I might be wrong here but it seems to me that SIP BC and SIP Servlets target different audiences and are on different abstraction layers. SIP BC is targeted to people that don't want to code to use SIP or even know about SIP it seems to do simple stuff and very high level. SIP Servlets would seem to be a little more complex and a bit more low level (but still high level compared to JAIN SIP) than SIP BC and requires coding (but it will be very familiar to HTTP Servlets developers). So you have to have some basic SIP knowledge but the specification abstracts a lot for you so that it feels rather easy to implement all kind of services such as Call Blocking, Call forwarding, proxy servers, registrar, location services, conferencing, etc even allows you to compose your applications. You should give it a try really and even as Vladimir was mentioning maybe contributing SIP BC on top SIP Servlets :-)
  18. SIP and standard phones[ Go to top ]

    Is there any java techonology that enables server to user interaction with standard phone and phone systems? Such as capture in conversation events, button pressed, etc. much like SIP for IP phones?
  19. Re: SIP and standard phones[ Go to top ]

    If you mean capturing DTMF events(1 has just been pressed) over the RTP Stream (Media Stream) then yes. check out our media server at If you mean capturing DTMF events sent over SIP INFO message. SIP Servlets can do that just override the doInfo method of the SipServlet class
  20. Re: SIP and standard phones[ Go to top ]

    I assume by standard phone system you mean PSTN - landline and cellular networks. Thanks to PSTN gateway services you can talk to PSTN phones just like if they were SIP phones. Many people are doing it and it's very cheap, you can get unlimited worldwide calls (it is called 'termination') for less than $100 per month. Note that conversation events occur on serveral levels - the network level (IP), the session level(SIP) and the media level(RTP). With JSR 289 alone you deal only with the session level events. As Jean is saying in order to be able to do media analysis and processing you need to use Media Server (which is built-in in Mobicents Sip Servlets with JBoss AS).
  21. PSTN Phones[ Go to top ]

    Yes, it's the PSTN phones I'm asking. I suppose IP phones are the future yet for now, most businesses run on good old phones. Your Java stock has triggered a buy at $155.75. Press 1 to buy, press 2 to ignore or 3 to change the next trigger amount... Now press # to confirm or * to enter the amount again. Thank you, have a good day. SIP does that? For some reasons a summary browsing of the docs does not answer this question. Thanks.
  22. Re: PSTN Phones[ Go to top ]

    This is called IVR. Make some announcement, ask the user to press a button and execute some action depending on the button. We have an IVR example for order confirmation in the shopping demo And actually I've been working on a similar trading application for a FOREX platform and it is not very hard to do. Note that SIP alone can't do IVR, you need the media server for this.
  23. Thanks[ Go to top ]

    Most apprciated. I'll take a look at it this weekend.
  24. Re: Thanks[ Go to top ]

    Small clarification I'd like to make: As I said the IVR functionality in the telco applications needs a Media Server. Currently only Mobicents ships Sip Servlets with a Media Server out of the box, so media-enabled applications will NOT work in other Sip Servlets implementations since hosting media-enabled applications is NOT part of JSR-289. This has NOT been meant as a vendor-lock in any way, our Media Server is trying to stay up to date with the changes in the current JSR 309 standard and supports the MGCP standard.
  25. Re: Thanks[ Go to top ]

    Very interesting. Just some more questions. What exactly is the mechanism to interface (or talk) the Media server to SIP servlet and vice versa? For example, suppose someone wants to create a simple IVR. For example, Bob wants to leave a message to Alice but he must be sure that only Alice can listen to this message. Bob, has plenty of time and while waiting for the time to date Alice, he writes an IVR that does the following: Alice calls Bob (sends an INVITE message) Bob's sip servlet gets the doInvite (if i understood well) and then it must send an OK message back to Alice. Then the Sip Servlet must somehow command the media server to play the If_you_are_Alice_give_me_your_secret_code.wav file. After playing this wav file, the Media Server should wait to read the DTMF sequences that Alice dials on her phone. The Media Server then somehow must send these sequences (one by one as separate events? wait for some timeout and then concludes "26245683968" (bobiloveyou) and sends this to the sip servlet? ). if the secret code is not correct, then the media server should play the wrong_guess.wav otherwise it plays the meet_me_at_the_oak_tree_at_midnight_wear_only_your_perfume.wav audio. How does this conversation takes place? Is it by means of some other protocol that the SIP servlet has to handle? or some other way? Also, how does the media server gets the RTP stream from the Alice Bob communication channel in order to interfere with the messages? Disclaimer: (for alice's father: the above example was created for the shake of knowledge only - no other intention )
  26. Re: Thanks[ Go to top ]

    There are two mechanisms to interact with the Media Server. 1. Through the local Java API (based on the early versions of JSR 309) - you get a reference to the Media Server management object from JNDI and then you can create connections and add listeners to be notified of DTMF and other events. This is preferred when Media Server and Sip Servlets are in the same JVM. 2. MGCP - MGCP is a standard Media Server control protocol, which allows pretty much the same functionality as the Java PAI, but instead of method calls you use network transport for the messages and notifications. This allows to work with remote Media Servers, but is more complicated. For our examples we use the local Java API. DTMF password authentication is possible, but you can also use caller ID, SIP/HTTP digest authentication or P-Asserted-Identity for convenience (no need to enter passwords each time). Back to DTMF, you can capture DTMF events by adding a listener to the connection and implementing the callback like this: public void update(MsNotifyEvent event) { String dtmfButtonId = event.getMessage(); System.out.println("Button " + dtmfButtonId + " pressed!"; }
  27. Re: Thanks[ Go to top ]

    Thanks a lot Vladimir.
  28. SNMP Support[ Go to top ]

    Does Mobicents has adaptors for SNMP? Can we integrate SIP application with a SNMP server using Mobicents?
  29. Re: SNMP Support[ Go to top ]

    You can do that using the JBoss version of Mobicents Sip Servlets. JBoss supports SNMP and its integrated with JMX. Is that sufficient to meet your needs?
  30. international VoIP[ Go to top ]

    Buy termination routes from international VoIP carriers, or sell your A-to-Z VoIP/TDM routes to a large audience. ------------ shehanaaz MINUTETRADERS | Voice Exchange - Buy/Sell Wholesale AZ VoIP Termination Routes