Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

2,193 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,193
On SlideShare
0
From Embeds
0
Number of Embeds
46
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

  1. Mobicents SIP Servlets http://dev.telestax.com/sipservlets/Mobicents Summit, Rio, October 2012
  2. Agenda● MSS Achievements● Community● Introducing Mobicents SIP Servlets 2.0● Roadmaps
  3. MSS AchievementsMobicents Summit, Rio, October 2012
  4. More RFCs Support● RFC 5626 - Managing Client-Initiated Connections in the Session Initiation Protocol Also known as SIP Outbound : Defines a keep-alive mechanism used to keep NAT bindings fresh, and to allow the UA to detect when a flow has failed. ○ Allow for KeepAlives to keep the NAT pinholes open https://mobicents.ci.cloudbees. com/job/Mobicents-SipServlets-Release/lastSuccessfulBuild/artifact/documentation/jsr289-extensions- apidocs/org/mobicents/servlet/sip/SipConnector.html#setKeepAliveTimeout(java.lang.String, int, long) which Allow to set/reset the RFC5626 Section 4.4.1 keeplive on a given TCP/TLS/SCTP connection to a given remote host and port and https://mobicents.ci.cloudbees.com/job/Mobicents-SipServlets- Release/lastSuccessfulBuild/artifact/documentation/jsr289-extensions- apidocs/org/mobicents/servlet/sip/listener/SipConnectorListener.html#onKeepAliveTimeout(org.mobicents.servlet. sip.SipConnector, java.lang.String, int) which if a RFC 5626 KeepAlive timeout has fired, gives the connector on which it happened and the peer information involved. ○ Support for Flow Tokens (A Flow is a transport-layer association between two hosts that is represented by the network address and port number of both ends and by the transport protocol. For TCP, a flow is equivalent to a TCP connection) to be matched to connections so that in dialog requests uses the correct IP and Port for reaching SIP UAs behind NAT● RFC 4916 - Connected Identity in the Session Initiation Protocol : Allow for From and To Header Modification within a dialog as per Section 4.1.2 of JSR 289
  5. Congestion Control ● Present at the SIP Stack level through a Valve before it gets to the TU, access to low level details from the SIP Stack, pluggable mechanism ● Congestion Control at the Container level, based on Memory Usage (CPU and Session based control to be added) => Now Allow Notifications to be popped up at the container levelContainerListenervoid onCongestionControlStarted(CongestionControlEvent event) As soon ascongestion starts in the underlying source, it calls this method to notify about it.void onCongestionControlStopped(CongestionControlEvent event) As soon ascongestion abates in the underlying source, it calls this method to notify about it.javax.servlet.sip.SipServletResponse onRequestThrottled(javax.servlet.sip.SipServletRequest request, CongestionControlEvent event) When a request thatcomes in is not passed up to the application because of congestion control. Allow to modify the defaultresponse to add headers to it.
  6. SIP Servlets Testing ● Released Arquillian Integration ALPHA 1 to create a standard test framework for testing SIP Servlets applications (See Georges Presentation). ● Took over Leadership of SipUnit under Mobicents Umbrella in agreement with CafeSip team
  7. JAIN SIP NIO Support ● Blocking IO is limiting the number of concurrent connections to the server as each connection is creating 2 threads thus reaching pretty fast the OS limits of max threads. ● NIO Support allows to solve that issue and process a larger amount of concurrent connections capped only by the processing power of the hardware (RAM, CPU) ● NIO only supported for TCP/TLS no UDP Support for NIO. ● Allowed the JAIN SIP Stack to reach 5000 registrations & calls TCP or TLS (10K concurrent connections). Tests done by a customer on a 2 GB RAM - 32 bits OS.
  8. JAIN SIP NIO Architecture
  9. JAIN SIP NIOThreading Model
  10. General● More than 150 bug fixes scattered over MSS, SIP LB, JAIN SIP, JAIN SIP HA, JAIN SIP Ext, Cluster● More Extensions to JSR 289● Member of JSR 359 - SIP Servlets 2.0 Expert Group
  11. Member of JSR 359 -SIP Servlets 2.0 EGJSR is open and public, anyone can chime in. Currentitems being discussed or that wil be discussed ● SIP Outbound (RFC5626) Extension ● WebRTC / SIP Over WebSockets Integration ● IMS Extensions : ○ 3GPP TS24.229 V10.2.0 Section 5.2.8.1.2 : support Termination of Session from Proxy● Proxy 1xx Timeout● SIP Session Timers (RFC4028)● Interworking of SIP Servlets with other protocols.● Concurrency issues and Threading Model● Java EE7/CDI Integration Brainstorm
  12. SIP Servlets CDI ● Released CDI Telco Framework ALPHA 1 : CDI Integration with SIP Servlets with the end goal to feed it back to SIP Servlet 2.0 spec
  13. SIP Servlets CDIpublic class SimpleSipServlet { @Inject private SipFactory sipFactory; protected void handleInvite(@Observes @InviteSipServletRequest req){ ... } protected void handleSuccessResponse(@Observes@SuccessResponse SipServletResponse resp) {....}}● Loose coupling with strong typing● Reusable components● Enhanced event notifications mechanism● Out of the box integration with the rest of the Java EE ecosystem
  14. Container AbstractionLayer● Internal API for Plugging MSS into any type of container● Containers Supported for Tomcat 6, Tomcat 7, JBoss AS5, JBoss AS7● Can support more containers such as Jetty, contributions are welcomed !
  15. MSS 2.0.0.Final ! ● SIP Over WebSockets (See other Presentations + Demo from Vladimir and Francois-Joseph from Orange Labs) ● NIO Support ● Support for JBoss AS 7 in standalone mode : ○ TCK Certified ○ AS7 Management Integration through SIP Subsystem ○ Fast Startup Time and Low Mem Footprint (Comparable to Tomcat but for a full JEE Container) ● Missing Features planned for 2.X versions ○ Failover - Replication ○ SNMP
  16. Mobicents HTML 5WebRTC Client Sneak Peek
  17. CommunityMobicents Summit, Rio, October 2012
  18. Git and CloudBeesmigration● Rebranded the project to TeleStax leadership● Moved the project to Git and independent google code project. Ported the Code + some of the Documentation to Wiki● Moved the CI infra to CloudBees, allow external contributors to start CI jobs and reduce overhead.
  19. MSS CompanyContributors
  20. Contributions ● Jose M Recio from Solaiemes : AS7 support ● Laurent Strullu, François-Joseph Levée, Camille Oudot from Orange Labs : JAIN SIP JS + bug fixes. ● Jonas Borjesson from Twilio : RFC 5626 Flow ob parameter Support + TLS Documentation ● Georges Vagenas : Leading CDI Telco Framework and Sip Servlets Testing with Arquillian and SipUnit + Helping on RestComm ● Thomas Quintana : Leading RestComm ● Alex Vinogradov and Alex Saveliev from Codeminders; commissioned by Avistar Communications Corp : bug fixes + testing
  21. Downloads ● 5200 downloads on cumulated versions since last Summit (source http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/stats/timeline? dates=2011-12-02+to+2012-10-04)
  22. International Events Presence ● Fosdem 2012 (Belgium) : Global Platform Presentation ● Mobile World Congress 2012 ● CommunicAsia 2012
  23. ShortComings● Too few community releases : One 1.X FINAL release, One 2.X FINAL release● Late on schedule : due to migration of projects to TeleStax and git + setting up the TelScale Product Line. Also moved to major version which implied more work.
  24. RoadmapsMobicents Summit, Rio, October 2012
  25. Mobicents SIP Servlets2.X Roadmap ● HA for JBoss AS7 ● Improvement to WebRTC Client ● SNMP for JBoss AS7 ● Auto Scaling ● Rolling Upgrades ● More RFCs Support ● Better Support for NAT (ICE - TURN) ● Regular Business of bug fixing and contributions.
  26. Mobicents SIP Servlets3.X Roadmap ● SIP Servlets 2.0 Non Backward Compatible Work ● Will be started early 2013 in parallel with 2.X branch
  27. Thank you ! http://telestax.com/ confidential

×