Category Archives: SIP

Restlet Framework 2.1 M3 and 2.0.6 released

Past months have been very intense for Noelios in a positive way and we are pleased to release those two new versions today. Our long running effort to develop our own non-blocking NIO connector into Restlet core, comparable in performance to Jetty/Netty/Grizzly but simpler and directly aligned to HTTP/SIP transport semantics is starting to give great results.

First, the 2.0.6 version fixes a couple of issues on the stable branch. In addition, version 2.1 Milestone 3 contains several major enhancements and new features summarized below.

Main changes

  • Support for GWT 2.2 has been added, but due to breaking changes inside GWT core API, we couldn’t maintain compatibility with previous versions of GWT. If you can’t upgrade your GWT version, you can still rely on the 2.0 branch of Restlet.
  • Stabilized the built-in SIP and HTTP client and server connectors based on our non-blocking NIO core layer, refactoring the previous design and fixing many bugs. This should solve most issues related to blocked connections and infinite loops that were encountered. See this blog post for an official announce.
  • Added a new SDC extension providing a client connector for the Google Secure Data Connector protocol compatible with the official SDC agent. This allows usage of this feature during development phases as well as for deployment to private clouds and other public clouds such as Amazon EC2 and Microsoft Azure. See this blog post for an official announce.
  • Improved ClientResource class by adding several properties
    • requestEntityBuffering, responseEntityBuffering properties to make transient entities reusable (retry attempts, chunk encoding issues with GAE, response entity reuse)
    • maxRedirects property to prevent infinite redirects, in addition to the existing infinite loop detection.
  • Added an easy to listener mechanism that facilitates the support of asynchronous representation consumption. We tested this feature successfully by consuming live feeds from CouchDB.
  • Updated several dependencies including Jetty to version 7.3.0 and Jackson to version 1.7.1

Recent contributors

  • Andreas Taube
  • Carolyn Duby
  • Charlie Mason
  • Henry Story
  • Guido Schmidt
  • John Logsdon
  • Kristoffer Gronowski
  • Leandro Oliveira
  • Olivier Miel
  • Phil Dunks
  • Sebastien Gaide

Thanks to all others who helped us in various ways for this third milestone.

Additional resources

Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes

Download links:

http://www.restlet.org/downloads/

Maven repositories:
http://maven.restlet.org

Restlet Framework unifies VoIP and Web applications

Introduction

Noelios Technologies is proud to announce the release of Restlet Framework version 2.1 Milestone 3, its leading RESTful web framework for Java. This version includes stable client and server connectors for SIP (see specifications and user guide section), the core protocol for VoIP applications that were co-developed with NetDev.

NetDev’s point of view

NetDev is a provider of carrier-grade voice applications for communications service providers. We were one of the first companies to introduce RESTful web services into the telecoms space over three years ago. Back then we were looking for a lightweight method to communicate between services over the web and had previously used SOAP, which was heavy, cumbersome and difficult to understand. We found Restlet, with an architectural style true to the web, and began using it for provisioning and reporting of our applications. We soon extended its use for call control within the NetDev Audio Conferencing solution.

We’ve always been innovators and we got to thinking about how we could improve our customer proposition and reach new market segments, ultimately with the aim of winning more business. That’s when we started looking at a solution for VoIP deployments that could open up our applications to different customers. We considered using an Open Source SIP stack, but we were passionate about Restlet and that’s when we started talking to Noelios about adding SIP. For the project to be a success we needed Restlet to provide greater capacity, higher throughput and prove that our applications could run on it.

After many months work, the release of version 2.1 M3 represents the stabilisation of SIP Restlet and it’s a great achievement. At NetDev we have been working to port our Audio Conferencing Application from our existing container environments to Restlet. We’re delighted that this has now been achieved. We have successfully emulated all features in Restlet that were available in our previous software container. Not only that, but we’ve removed complexity and made development and deployment of applications simpler and much more economical.

For VoIP deployments we now have a suite of applications which don’t rely on commercial third party software or license fees and that’s going to open up new business opportunities for us. Essentially, we can offer cost effective, turnkey voice applications to any communications service provider with VoIP connectivity. We can also, through partnerships, pursue our cloud services offer, create new business models (revenue share & pay as you grow) because we have an efficient way to deliver our standard services. Of course, we will still work with our existing partners for customer deployments, but we now have the opportunity to address the markets that were previously closed to us.

Jointly with Noelios, we have brought Restlet into the telecoms world and have proved that its flexible architecture is easy to adapt in a new domain. In effect Restlet is now an Open Source, converged voice and web container, which we think is a great thing for telecoms. We will continue to jointly innovate with Noelios and encourage other telecoms companies to do the same!

Noelios’s point of view

Noelios is a provider of open source web middleware, specialized in the REST architecture style and web APIs. We created the open source Restlet Framework 6 years ago and are leading its development with the support of our community. We have an active community, including independent developers as well as large organizations such as Google, IBM, Microsoft, Ericsson Research or the NASA.

We offer consulting services, technical support and legal protection to Restlet users all over the world. This includes co-development services for customers willing to sponsor and collaborate with Noelios in order to bring new features in Restlet. In this regard, NetDev has been exemplary, leveraging the full range of our offer and understanding the economics of open source software development.

We have been working with them for 3 years, initially on their RESTful web services needs and progressively became knowledgeable about the VoIP world, its strong performance requirements and its core SIP protocol for which NetDev collaborates with the best industry experts.

The Restlet/SIP connector that we co-developed with NetDev opens new doors for usage of Restlet beyond its Web roots and reinforces its position as a unified development framework. This project which is available in the new 2.1 M3 version, adds a great value to our technology.

We are delighted to open Restlet to the telecom world with NetDev and encourage other companies to join our community and develop an ecosystem around this foundation as an alternative to traditional, complex and heavier SIP stacks such as JAIN SLEE and SIP Servlets, keeping alignment with Internet standards, lightweight, simplicity and performance as key characteristics!

Contributors

We would also like to thank other contributors that helped during the Restlet SIP specifications phase:

  • Vincent Nonnenmacher (TelNowLedge)
  • Kristoffer Gronowski (Ericsson Research)

 

Restlet Framework 2.0.4 and 2.1 M2 released

To celebrate Christmas, we are happy to announce two new releases! First, the 2.0.4 version tagged “stable” and the 2.1 M2 one tagged “testing”. Note that those tags are based on the Debian release terminology.

New stable version 2.0.4

This version fixes about 20 issues related to JAX-RS, XStream, OData, ROME, Atom, Spring extensions, GWT 2.1 support as well as a content negotiation and non-persistent connection bugs.

This is the version you want to use for all your projects in production or that will go in production by mid-2011. Note that version 1.1 is no longer maintained outside our professional support plans, so we urge you to upgrade if you haven’t done so already (see migration instructions).

New Maven repository policy

Listening to regular feed-back from the community, we have decided to refresh our Maven repository daily at 7 am (GMT+1) instead of twice a month. This will facilitate testing and feed-back on ongoing developments of the version in SVN trunk, currently 2.1 snapshots.

We have also retired our private repository, so customers with professional support plans relying on this protected repository are encouraged to update their POM file to point to http://maven.restlet.org For additional instructions, please see our Maven page.

Main changes

  • The logging system, based on JULI (java.util.logging), has been greatly enhanced and simplified. It is now possible to programmatically change the log level using the Engine#setLogLevel(…) and setRestletLogLevel(…) static methods. It is also possible to enable selective call logging by setting the Request#loggable property or by overriding the LogService#isLoggable(Request) method. Note that if you do provide a logging configuration file via the system properties, it will take over the programmatic configuration. Also, the new default log formatter will write each log entry in the console on a single compact line, reducing confusion while debugging.
  • The TaskService has also been enhanced to support scheduled tasks execution based on the standard ScheduledExecutorService interface.
  • New EncoderService added to automatically compress entities sent on both the client and the server side. Note that is turned off by default and that a minimum size and applicable media types can be defined. Note that the DecoderService now also works on the client-side.
  • Added server-side support for Amazon Web Services (S3) authentication.
  • Added a ConfidentialAuthorizer in the org.restlet.security package to limit access to resources via secure protocols such as HTTPS.
  • Added a new SIP extension providing support for the Session Initiation Protocol, largely used for voice over IP. This new extension, available in the Java SE, Java EE and Android editions, ships both client and server SIP connectors over TCP, reusing the NIO/HTTP internal connector engine as SIP is a cousin of HTTP, providing excellent scalability and performance. We will cover this new features in more details in an upcoming blog post. For now, you can read the Restlet/SIP specifications page.
  • Various bug fixes and optimizations were made on the new NIO/HTTP connector, covering TCP socket reuse, buffer overflow issues and IO buffer size configuration.

For those waiting for new content of the Restlet in Action book, we are currently handling the comments made by our editor on the initial drafts submitted. We should have chapter 8 and 10 sent to the MEAP subscribers early in January.

Recent contributors

  • Alex Bass
  • Bruno Gieder
  • David Fogel
  • Eric Hough
  • Florian Bucklers
  • George Calm
  • Guido Schmidt
  • Jean-Philippe Steinmetz
  • Jim Stabile
  • John Logsdon
  • Kristoffer Gronowski
  • Mark Thornton
  • Phil Dunks
  • Rhett Sutphin
  • Rickard Oberg
  • Simon Temple
  • Tim Peierls
  • Tom Andersson

Thanks to all others who helped us in various ways for this second milestone, especially NetDev for funding a large part of the new SIP connector and helping with testing and challenging use cases !

Additional resources

Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes

Download links:

http://www.restlet.org/downloads/

Maven repositories:
http://maven.restlet.org