mobicents summit 2012 - jean deruelle - mobicents sip servlets

27
Mobicents SIP Servlets Mobicents Summit, Rio, October 2012 http://dev.telestax.com/sipservlets/

Upload: telestax

Post on 14-Jun-2015

1.301 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Mobicents SIP Servlets

Mobicents Summit, Rio, October 2012

http://dev.telestax.com/sipservlets/

Page 2: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Agenda

● MSS Achievements

● Community

● Introducing Mobicents SIP Servlets 2.0

● Roadmaps

Page 3: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

MSS Achievements

Mobicents Summit, Rio, October 2012

Page 4: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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

Page 5: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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 level

ContainerListenervoid onCongestionControlStarted(CongestionControlEvent event) As soon as congestion starts in the underlying source, it calls this method to notify about it.void onCongestionControlStopped(CongestionControlEvent event) As soon as congestion 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 that comes in is not passed up to the application because of congestion control. Allow to modify the default response to add headers to it.

Page 6: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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

Page 7: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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.

Page 8: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

JAIN SIP NIO Architecture

Page 9: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

JAIN SIP NIO Threading Model

Page 10: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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

Page 11: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Member of JSR 359 - SIP Servlets 2.0 EG

JSR is open and public, anyone can chime in. Current items 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

Page 12: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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

Page 13: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

SIP Servlets CDIpublic class SimpleSipServlet {

@Injectprivate SipFactory sipFactory;

protected void handleInvite(@Observes @Invite SipServletRequest 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

Page 14: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Container Abstraction Layer

● 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 !

Page 15: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

● 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

MSS 2.0.0.Final !

Page 16: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Mobicents HTML 5 WebRTC Client Sneak Peek

Page 17: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Community

Mobicents Summit, Rio, October 2012

Page 18: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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.

Page 19: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

MSS Company Contributors

Page 20: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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

Page 22: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

International Events Presence

● Fosdem 2012 (Belgium) : Global Platform Presentation

● Mobile World Congress 2012

● CommunicAsia 2012

Page 23: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

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.

Page 24: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Roadmaps

Mobicents Summit, Rio, October 2012

Page 25: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

Mobicents SIP Servlets 2.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.

Page 26: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

● SIP Servlets 2.0 Non Backward Compatible Work

● Will be started early 2013 in parallel with 2.X branch

Mobicents SIP Servlets 3.X Roadmap

Page 27: Mobicents Summit 2012 - Jean Deruelle - Mobicents SIP Servlets

confidential

Thank you !

http://telestax.com/