2. What can you do with SailFin?
• Web Developers
> Add Click-To-Dial buttons to web pages, so two people
can talk or have a video chat
> Develop web-based conferencing applications
> Private presence and Instant Messaging servers
> With a little help from a media server, you can
– Web application that accept Touch Tone inputs from a phone
– More fancy: if you have a voice recognition engine, write
VoiceXML/IVR enabled web applications
• Telecommunications Applications
> All the way from cell and landline call setup to interactive
IPTV and network games with voice/video interaction
2
3. How does it happen?
• Session Initiation Protocol (SIP)
> arguably, the second most important internet protocol
• What does SIP enable?
Discovery of communication end points
>
Authentication of users
>
Negotiation of session media capabilities
>
Session creation and tear-down (SipSession), Timers
>
Multi-party session state (SipApplicationSession)
>
• Very accessible to web developers
> Sip Servlets model mimics Http Servlets model
3
4. SailFin Factoids
• Apr '07: Ericsson contributes SIP
Servlets container to GlassFish
• May '07 Gosling draws logo
• Jun '07 SailFin launched
• Sep '08: SailFin v1 (JSR116)
• Nov '08: IPTV live in Portugal
• Jan 23 '09: SailFin v1.5 (JSR289)
• 5000+ downloads per month, 200
registered community members,
45+ committers, 10+ customers
4
10. SIP Servlet Container
• Used a pre-existing and well tested JSR-116
implementation
• Added JSR289 features
> Converged SIP and Java EE Applications deployment
> Application Router, Resource Injection, New Sip Servlet
Annotations
• Enhanced Request processing with Grizzly NIO
> Near native throughput and latency and Highly scalable
> Over Load Protection: rejects requests if the load is high or
memory is over consumed
10
11. SIP Protocol Engine
Application SIP Servlet
Router Container
SSA
dispatch Application Dispatcher
Session Manager
Next Layer ()
Resolver Manager DNS (ENUM)
Overload Handler
Transaction Manager
Loadbalancer (user-centric) OTHER TP
Thread
Pool
Network Manager
11
13. Traditional Clusters
Layer 3 LB Layer 3 LB
Web Server Web Server
or or
L7 LB L7 LB
App App App App
Server Server Server Server
Application and Container State Replication
13
17. Overload Protection
• Triggered by CPU or Memory Utilization thresholds
• Optional layer in request path, returns 503 to the
client when the threshold is exceeded
• Configurable thresholds for Initial and Subsequent
• Sampling frequency is configurable
asadmin set server-config.sip-container.property.CpuOverloadRegulation=true
asadmin set server-config.sip-container.property.IrThreshold=65
asadmin set server-config.sip-container.property.SrThreshold=90
asadmin set server-config.sip-container.property.MmThreshold=70
asadmin set server-config.sip-container.property.HttpThreshold=60
asadmin set server-config.sip-container.property.MemHttpThreshold=80
asadmin set server-config.sip-container.property.SampleRate=5
asadmin set server-config.sip-container.property.NumberOfSamples=3
17
18. Other Clustering Highlights
• Handles both SIP and HTTP
• Two Policies
– Sticky Round Robin
– Consistent Hashing
• Cluster Heartbeat Service based on Project Shoal
• Scriptable Rules for Load Balancer
– Data Centric Rules
• Visualization Available
18
19. Security
• Confidentiality and Integrity of SIP messages using TLS
• User Authentication
– Sip Digest Authentication (MD5)
– Realms supported by default : JDBC
• P-Asserted-Identity
– Configuration to define trust domains eg: trusted sip
entities(hostname,ipaddress
19
20. Tools – NetBeans 6.5
NetBeans 6.5 Plugin
– JSR 289 and EE 5
– Deploy and debug
pure and
converged
Applications
– Wizard based SIP
Application
authoring
– SIP Testing Client
20
21. Tools – Eclipse
Ericsson SDS
• Free Download
• Eclipse 3.4 and WTP 3.0
• Eclipse ME 1.7.9
• IMS Support
– S-CSCF
– HSS
• Mobile Client Emulators
• IMS Client platform
• Traffic generation,
recording and
visualization
Download URL: http://www.ericsson.com/mobilityworld/sub/open/technologies/ims_poc/tools/sds_40
21
22. E-charts (AT&T Research)
– ECharts for SIP Servlets –
open-source, state-machine-
based framework for
programming converged
services
Changes programming
–
abstraction from servlet
callbacks to state machines
Application developer
–
specifies state-machine
logic, coded in programming
language
Arbitrary Java code can be
–
embedded in state machine,
allowing full access to SIP
Servlet API.
Particularly well-suited for
–
state-intensive nature of
B2BUA applications.
22
23. Distributions
• Supports JDK 1.5 and JDK 1.6
– 32-bit JVM now and 64-bit soon
• Solaris (SPARC and X64), SuSE and RedHat
• Developer only for MacOS X, Windows XP
• GUI and Jar based Installers
– Silent Install available
• Two installation Profiles
– Developer and Cluster
23
24. Resources
• On the Web
– http://sailfin.dev.java.net
– http://www.sun.com/sailfin
– http://www.ericssonmobilityworld.com
– http://echarts.org
– http://blogs.sun.com/sduv/entry/project_sailfin_launches_in_glassfish
• Meet Us Live
– Mobile World Congress, Barcelona 2009 Feb 16-20
– JavaOne 2009 June 2-5
– Sun Tech Days
24