1 / 24

Introduction to SIP in WebSphere

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

purity
Download Presentation

Introduction to SIP in WebSphere

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to SIP in WebSphere Erik Burckart WebSphere Architect

  2. 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

  3. Telephone Network How does SIP work? Sarah dials Todd INVITE Todd OK Trying ACK Ringing Todd picks up Hello Sarah? Hi Todd!

  4. 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.

  5. Proxy proxy.telco1.com Proxy server.telco2.com User Agent sarah@example1.com User Agent todd@example2.com INVITE INVITE INVITE 100 TRYING 100 TRYING 180 RINGING 180 RINGING 200 OK 180 RINGING 200 OK 200 OK ACK Media Session BYE 200 OK

  6. Telephone Network More in depth details… Sarah dials Todd 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> 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> 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> 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 Todd picks up Negotiated Media Session Hello Sarah? Hi Todd!

  7. 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.

  8. Examples of Other Potential Applications • 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 • 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

  9. 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…

  10. 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

  11. 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.

  12. SIP Servlet requests HTTP Servlet doInvite doAck doOptions doBye doCancel doRegister doSubscrbe doNotify doMessage doInfo doPrack doGet doPost doPut doHead doDelete doTrace doOptions SIP Servlet responses doProvisionalResponse doSuccessResponse doRedirectResponse doErrorResponse 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 IBMApplicationSession extends references SipApplicationSession IBMSession references contains contains extends HttpSession SipSession

  13. doProvisionalResponse() doSuccessResponse() doErrorResponse() doRedirectResponse() doInvite() doAck() doOptions() doCancel() doRegister() doPrack() doInfo() doNotify() doMessage() doSubscribe() SIP Servlet 1.0 API – JSR 116 Client SIP Container SIP Servlet Methods init() service() servlet destroy() Rules SIP Message doRequest() Create Request() SIP Message Create Response() doResponse()

  14. SIP Servlet 1.1 API – JSR 289 SIP Application SIP Application SIP Application SIP Application Application Router • 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 SIP Servlet API WebSphere Servlet Container SIP HTTP

  15. 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. Poll the server for caller ID Subscribe to a topic Send caller ID Publish call info Initiate Call

  16. 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 Request a call be made Poll for status Subscribe to a topic Send status Make call Make call Publish call status

  17. 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 Find availability Of experts Find experts Request Help Fetch help context Make call Make call Expert Customer Accept call Accept call

  18. Quick code example, click to call Create a call to from the first side. This can be called from the HTTP Servlet by fetching the SipFactory from the Servlet Context. sipFactory = (SipFactory)getServletContext().getAttribute(SipServlet.SIP_FACTORY); SipURI uriFrom = (SipURI) sipFactory.createURI(from); SipURI uriTo = (SipURI) sipFactory.createURI(to); SipServletRequest req = sipFactory.createRequest(appSession, "INVITE", uriFrom, uriTo); req.setRequestURI(uriTo); req.send(); 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. SipURI uriFrom = (SipURI) sipFactory.createURI(previousTo); SipURI uriTo = (SipURI) sipFactory.createURI(previousFrom); SipServletRequest req = sipFactory.createRequest(appSession, "INVITE", uriFrom, uriTo); req.setRequestURI(uriTo); req.send();

  19. 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

  20. BACKUP

  21. 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

  22. Specifications – What WAS SIP Supports

  23. 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

  24. 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

More Related