this presentation to a WebSphere Users Group
Upcoming SlideShare
Loading in...5
×
 

this presentation to a WebSphere Users Group

on

  • 1,033 views

 

Statistics

Views

Total Views
1,033
Views on SlideShare
1,032
Embed Views
1

Actions

Likes
0
Downloads
14
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • CM: what about adding this slide? Mix of idea from Can Paul & I

this presentation to a WebSphere Users Group this presentation to a WebSphere Users Group Presentation Transcript

  • Introduction to SIP in WebSphere Erik Burckart WebSphere Architect
  • What is SIP?
    • Session Initiation Protocol
      • Negotiate a session between two users or services, often utilizing a different protocol.
      • Often used for peer to peer models.
    • Control protocol for many types of new communications
      • Voice over IP (VoIP)
      • Instant Messaging (IM)
    • Pivotal protocol in building the next generation telecommunications networks
  • How does SIP work? Sarah dials Todd Trying Ringing OK ACK Telephone Network INVITE Todd Todd picks up Hello Sarah? Hi Todd!
  • More on SIP…
    • A SIP URL looks like an email address
      • SIP:user@example.com
      • SIP:+19195551234@example.com;user=phone
    • TEL URLs are also used
      • TEL:+1-919-555-1234
    • Since SIP is used to initiate another session, the popular protocol used to describe that session is called Session Description Protocol (SDP, defined in RFC 2327
    • Helpful terminology…
      • A Dialog is a peer to peer relationship between two user agents (SIP nodes)
      • A User Agent Client (UAC) creates a request or dialog
      • A User Agent Server (UAS) handles a request or dialog
      • A Back to Back User Agent (B2BUA) is UAS/UAC combination that handles completes the incoming call and creates another identical one.
      • A proxy is a stateful server which forwards on the request to another user agent to handle.
  • Proxy server.telco2.com Proxy proxy.telco1.com User Agent [email_address] User Agent [email_address] INVITE INVITE INVITE 100 TRYING 100 TRYING 180 RINGING 180 RINGING 180 RINGING 200 OK 200 OK 200 OK ACK 200 OK BYE Media Session
  • More in depth details… Sarah dials Todd SIP/2.0 180 Ringing Route: <sip:s1.telco.com> From: Sarah <sip:sarah@example.com> To: Todd <sip:todd@example.com> Call-ID: abc123 CSeq: 1 INVITE Contact: <sip:todd@nokia-e60.example.com> SIP/2.0 200 OK Route: <sip:s1.telco.com> From: Sarah <sip:sarah@example.com> To: Todd <sip:todd@example.com> Call-ID: abc123 CSeq: 1 INVITE Contact: <sip:todd@nokia-e60.example.com> ACK sip:todd@example.com SIP/2.0 Route: <sip:s1.telco.com> From: Sarah <sip:sarah@example.com> To: Todd <sip:todd@example.com> Call-ID: abc123 CSeq: 1 ACK Telephone Network INVITE sip:todd@example.com SIP/2.0 Route: <sip:s1.telco.com> From: Sarah <sip:sarah@example.com> To: Todd <sip:todd@example.com> Call-ID: abc123 CSeq: 1 INVITE Contact: <sip:sarah@razr.example.com> Todd picks up Hello Sarah? Hi Todd! Negotiated Media Session
  • What can I do with SIP?
    • Utilize SIP environments
      • VoIP
      • IM
      • IPTV
      • Audio/Video conferencing.
      • Next generation Telco networks.
    • Embed intelligent communications in applications
      • Improve Business Productivity
        • Click to call, IM
        • Manage calls on the web
          • Caller ID information
          • Three way calling, voicemail, etc.
      • Integrate with Business Processes
        • Automatically generated phone calls in a workflow.
  • Examples of Other Potential Applications
    • Multimedia messaging with email, fax, voice mail, video mail, IM notification
    • IM with multimedia
    • Presence based applications
    • Interactive Gaming
    • Text, Picture and Voice Messaging
    • Subscription Media Push
    • Video on demand to mobile phone
    • Personalized call tones
    • Inbound call screening
    • Friends & Family Tracking
    • Security/Medical Monitoring
    • Business Conferencing
    • Mobile Conferencing
    • Virtual Receptionist
    • Prepaid Calling Cards
    • Push to Talk over Cellular (PoC)
    • Voice with Push to See
    • Voice with Push to Video
    • Voice with push of Media
      • Mapping services
    • Converged mobility
      • WiFi to GSM roaming
    • White Boarding (sharing)
    • Field Force Efficiency
    • Field Force Automation
    • Fleet Management & Logistics
  • Why IBM?
    • IBM’s vision is that intelligent communications can be embedded in all applications.
    • IBM has been utilizing SIP since 2000.
    • WebSphere Application Server is the first vendor to include SIP in their base Java EE environment, allowing all applications to utilize SIP.
    • IBM has many products utilizing SIP
      • WebSphere Application Server
      • WebSphere Presence Server (with Group List management)
      • WebSphere IP Multimedia Subsystem Connectors
      • WebSphere Telecom Web Services Server
      • Lotus Sametime Gateway
      • WebSphere Voice Server
      • WebSphere Voice Response
      • More to come…
  • WebSphere SIP
    • SIP Servlet 1.0 API
      • JSR 116
      • Built into the Servlet container that also hosts Portlets and HTTP Servlets.
      • IBM Extensions to SIP and HTTP session to provide fully converged functionality.
    • SIP Servlet tooling
      • Wizards
      • Graphical Deployment Descriptor Editors
  • WebSphere Proxy with SIP
    • High availability that understands applications which include SIP and HTTP.
    • Converged Proxy server
      • HTTP Reverse Proxy
      • Stateless SIP Proxy
      • Routes messages to keep SIP and HTTP Sessions in a single Application Session together.
  • SIP Servlet 1.0 vs HTTP Servlets
    • Asynchronous instead of synchronous.
      • Servlet has methods for the requests and responses separately.
    • Multiple servlets can act on a single message
    • Stateful proxying APIs.
    • Application can be UAC, UAS, B2BUA, or Proxy.
    • Provides SipFactory per application for creating requests, sessions, etc.
    • SipSession and SipApplicationSession
    • IBM provides useful extensions to the specifications
    HttpSession SipSession SipApplicationSession IBMSession IBMApplicationSession extends extends contains contains references references doGet doPost doPut doHead doDelete doTrace doOptions HTTP Servlet doInvite doAck doOptions doBye doCancel doRegister doSubscrbe doNotify doMessage doInfo doPrack SIP Servlet requests doProvisionalResponse doSuccessResponse doRedirectResponse doErrorResponse SIP Servlet responses
  • SIP Servlet 1.0 API – JSR 116 destroy() service() init() doResponse() doRequest() servlet Create Request() Create Response() SIP Message Client SIP Container SIP Servlet Methods Rules SIP Message doInvite() doAck() doOptions() doCancel() doRegister() doPrack() doInfo() doNotify() doMessage() doSubscribe() doProvisionalResponse() doSuccessResponse() doErrorResponse() doRedirectResponse()
  • SIP Servlet 1.1 API – JSR 289
    • Application Router functionality
      • Allows the Deployer to add functionality to dynamically select which Servlets will be executed.
      • Spans multiple applications and there will be one per server.
    • Better support for convergence
      • Session convergence like the WebSphere 6.1 model.
      • More flexible ways to get to the SipFactory within an application.
    • Alignment with Java EE 5
      • Alignment with Servlet 2.5 specification
      • Annotations support
        • Utilizes JSR 250 and the Servlet 2.5 specification
        • Adds Type level annotations like @SipServlet.
      • Resource injection where appropriate, like accessing the SipFactory
    Application Router SIP Application SIP Servlet API WebSphere Servlet Container SIP Application SIP Application SIP Application SIP HTTP
  • Example: Caller ID in a web page
    • Include information about incoming callers on existing Portals.
      • Could include looking up customer records, LDAP, etc.
    • Works with SIP network, but does not require SIP phones.
    Initiate Call Publish call info Subscribe to a topic Poll the server for caller ID Send caller ID
  • Example: Click to call in a webpage
    • Make every phone number a clickable link.
      • Could include call status
      • Helps efficiency by ensuring phone numbers are not mistyped.
    • Works with SIP network, but does not require SIP phones.
    • Another option below is that the HTTP Servlet can look at the information in the SIP Session since they are tied together
    Publish call status Subscribe to a topic Request a call be made Send status Make call Make call Poll for status
  • Example: Click to call with expert routing
    • Make asking for help a clickable link
    • Allows an expert to be chosen from a group
    • Works with SIP network, but does not require SIP phones.
    • Another option below is that the HTTP Servlet can look at the information in the SIP Session since they are tied together
    Request Help Find experts Find availability Of experts Fetch help context Make call Make call Accept call Accept call Expert Customer
  • Quick code example, click to call sipFactory = (SipFactory)getServletContext().getAttribute(SipServlet.SIP_FACTORY); SipURI uriFrom = (SipURI) sipFactory.createURI(from); SipURI uriTo = (SipURI) sipFactory.createURI(to); SipServletRequest req = sipFactory.createRequest(appSession, &quot;INVITE&quot;, uriFrom, uriTo); req.setRequestURI(uriTo); req.send(); SipURI uriFrom = (SipURI) sipFactory.createURI(previousTo); SipURI uriTo = (SipURI) sipFactory.createURI(previousFrom); SipServletRequest req = sipFactory.createRequest(appSession, &quot;INVITE&quot;, uriFrom, uriTo); req.setRequestURI(uriTo); req.send(); Create a call to from the first side. This can be called from the HTTP Servlet by fetching the SipFactory from the Servlet Context. After the first invitation comes back successful, create a call to the other side with the To and From flipped. This can be added in the doSuccessResponse method of the SipServlet.
  • Questions?
    • References
      • Introducing SIP Article
    • http://www-128.ibm.com/developerworks/websphere/techjournal/0606_burckart/0606_burckart.html
      • Developing Converged Applications Article
    • http://www-128.ibm.com/developerworks/websphere/techjournal/0608_burckart/0608_burckart.html
      • Developing SIP and IP Multimedia Subsystem Applications Redbook
      • http://www.redbooks.ibm.com/redbooks.nsf/e9abd4a2a3406a7f852569de005c909f/4ccb6d54f16a5a2f85257134005468db?OpenDocument
      • WebSphere Application Server SIP documentation
      • http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/welc6tech_sip_links.html
  • BACKUP
  • Architecture
    • Converged Container
      • Seamless integration between JSR 116 SIP Servlets and HTTP Servlets or Portlets.
      • Built on proven WebSphere technology.
    • Converged Proxy
      • Ensures single point of session affinity management at the application session level, across HTTP and SIP
      • Provides high availability without expensive hardware.
    Servlet Container Servlets, SIP Servlets, Portlets Proxy Server Stateless SIP Proxy and HTTP reverse proxy
  • Specifications – What WAS SIP Supports Locating SIP Servers RFC 3263 IETF SIP: Session Initiation Protocol 1.0 RFC 2543 IETF SIP extension for Event State Publication RFC 3903 IETF Using E.164 numbers with SIP RFC 3824 IETF SIP REFER Method. RFC 3515 IETF The Reason Header Field for SIP RFC 3326 IETF SIP Specific Event Notification RFC 3265 IETF Reliability of Provisional Responses in SIP. (PRACK Support) RFC 3262 IETF SIP: Session Initiation Protocol 2.0 RFC 3261 IETF SIP Servlet 1.0 JSR 116 JCP Title Number Body
  • Specifications – Applications on WAS.
    • Many SIP related RFCs can be supported by the applications written on WAS SIP.
    • 2848, 2976, 3050, 3087, 3264, 3266, 3312, 3313, 3319, 3327, 3372, 3398, 3428, 3455, 3578, 3603, 3608, 3665, 3666, 3680, 3725, 3840, 3842, 3856, 3857, 3959, 3960, 3976, 4032, 4092, 4117, 4235, 4240, 4353, 4354, 4411, 4457, 4458, 4483, 4497, 4508
  • Performance Monitoring
    • Available in WAS 6.1
      • # of active SIP application sessions for the whole container
      • # of active SIP sessions for the whole container
      • # of active SIP sessions / application
      • # of active SIP Application Sessions per application
      • # of SIP transactions / sec
        • Average number of messages per second handled by the container and calculated over a configurable period.
      • # of new SIP Application sessions / sec
        • Call arrival rate - Average number of new application sessions, per second, calculated over a configurable period.
      • Number of messages, of each type, coming in and out of each application
      • Some others