Phelim O’Doherty Sun Microsystems

Slides:



Advertisements
Similar presentations
SIP(Session Initiation Protocol) - SIP Messages
Advertisements

SIP, Presence and Instant Messaging
An Application Component Architecture for SIP Jonathan Rosenberg Chief Scientist.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
SIP Servlets. SIP Summit SIP Servlets Problem Statement Want to enable construction of a wide variety of IP telephony.
Fall IM 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
CCNA – Network Fundamentals
Introduction to push technology © 2009 Research In Motion Limited.
Session Initiation Protocol Winelfred G. Pasamba.
Java Technology for Internet Communications
Session Initiation Protocol (SIP) By: Zhixin Chen.
Cmpe 491 Special Project In Computer Engineering SIP User Agent In JAVA Alp Eren YILMAZ & Serdar YALÇINKAYA.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
 3G is the third generation of tele standards and technology for mobile networking, superseding 2.5G. It is based on the International Telecommunication.
12/05/2000CS590F, Purdue University1 Sip Implementation Protocol Presented By: Sanjay Agrawal Sambhrama Mundkur.
SIP, Session Initiation Protocol Internet Draft, IETF, RFC 2543.
An Introduction to SIP Moshe Sambol Services Research Lab November 18, 1998.
Internet Telephony Helen J. Wang Network Reading Group, Jan 27, 99 Acknowledgement: Jimmy, Bhaskar.
1 Extending SIP Speaker: Hsuan-Ming Chen Adviser: Ho-Ting Wu Date: 2005/04/26.
A Gateway For SIP Event Interworking - Sasu Tarkoma & Thalainayar Balasubramanian Ramya.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Agenda Introduction to 3GPP Introduction to SIP IP Multimedia Subsystem Service Routing in IMS Implementation Conclusions.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Packetizer ® Copyright © 2009 H.325: An Application Platform A Closer Look at the “Container” Paul E. Jones Rapporteur Q12/16 April 7,
Session Initialization Protocol (SIP)
Session Initiation Protocol Tutorial Ronen Ben-Yossef VP of Products - RADCOM
Developing A Sip User Agent Using The Jain Sip Stack. Robert.V Masango Supervisors: Alfredo Terzoli, Ming Hsieh.
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 8 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 4 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
1 © NOKIA 1999 FILENAMs.PPT/ DATE / NN SIP Service Architecture Markus Isomäki Nokia Research Center.
Call Control with SIP Brian Elliott, Director of Engineering, NMS.
The OSI Model An ISO (International standard Organization) that covers all aspects of network communications is the Open System Interconnection (OSI) model.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
Presented By Team Netgeeks SIP Session Initiation Protocol.
VoN September ‘98 1 9/17/98 VoN Standards Update Jonathan Rosenberg Bell Laboratories September 17, 1998.
Rhodes University 29 October 2002,Robert V MasangoCopyright 2002, Rhodes University, SIP User SIP User Agent The IRT is the oldest of the New York City.
SIP:Session Initiation Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
E Multimedia Communications Anandi Giridharan Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia.
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
SIP working group IETF#70 Essential corrections Keith Drage.
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
Testing SIP Using XML Protocol Templates M. Ranganathan Olivier Deruelle Doug Montgomery Advanced Networking Technologies Division, National Institute.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Interactive Connectivity Establishment : ICE
SIP-H.323 Interworking Group RRR-1 IETF-48 SIP-H.323 Interworking Requirements draft-agrawal-sip-h323-interworking-reqs-00.txt Hemant.
1 Internet Telephony: Architecture and Protocols an IETF Perspective Authors:Henning Schulzrinne, Jonathan Rosenberg. Presenter: Sambhrama Mundkur.
The Session Initiation Protocol - SIP
Richard Rodger1/20 SIP Sanity A rapid-prototyping and validation environment for SIP* applications *Session Initiation Protocol; RFC 3261 Richard Rodger.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
سمینار تخصصی What is PSTN ? (public switched telephone network) تیرماه 1395.
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
IP Telephony (VoIP).
SIP over MANETs Introduction to SIP SIP vs MANETs Open Issues
SIP for Grid networks Franco Callegati, Aldo Campi, Walter Cerroni
Session Initiation Protocol
Session Initiation Protocol
Session Initiation Protocol (SIP)
Net 431: ADVANCED COMPUTER NETWORKS
WEB API.
Simulation of Session Initiation Protocol
SIP Basics Workshop Dennis Baron July 20, 2005.
Presentation transcript:

Phelim O’Doherty Sun Microsystems | JavaOne 2003 | Session # JAIN SIP Tutorial Serving the Developer Community M. Ranganathan (Ranga) NIST Adv. Networking Technologies Div. Email: mranga@nist.gov Phelim O’Doherty Sun Microsystems Portions of this presentation are Copyright Sun Microsystems

Speaker Affiliation Computer Scientist at the Advanced Networking Technologies Division, NIST, Gaithersburg, Maryland. Co-Spec Lead for JAIN-SIP 1.1 Portions of this presentation are Copyright Sun Microsystems.

ANTD Research Areas & Projects | JavaOne 2003 | Session # ANTD Research Areas & Projects Pervasive computing: WPAN, service discovery. Quantum Information Networks UWB, Grid Computing Wired Access Network Wireless Access Network Agile Switching: routing, signaling, restoration. Network Mgmt & Metrology Core Networks Internet Telephony: SIP We envision the structure of future networks to be comprised of: Core Networks that seamlessly integrated all optical and packet switching technologies and that are highly reconfigurable to meet service requirements and adaptively responds to failures. Our Agile Switching project. Pervasive use of wirelessly accessible services and hand held / mobile computing and communication devices at the network edge. Our Pervasive Computing Project. Wireless Ad Hoc Networks that are based solely on self organizing, wireless technologies that do not rely on any fixed infrastructure nor access to other core networks. Our Wireless Ad Hoc Networks. And a need to secure and harden existing and new network services to ensure the reliability and privacy of network based communications: Our Internet Infrastructure Project. Stress the emphasis on techniques for designing a hardened, fault tolerant, adaptive and self-recoverable network. Infrastructure Protection: Securing core services. Wireless Ad Hoc Network Wired Access Network Wireless Ad Hoc Networks: routing, sensor nets, services. First Responder Testbed Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP is the standardized Java interface to the Session Initiation Protocol for desktop and server applications. Portions of this presentation are Copyright Sun Microsystems.

Presentation Outline What is SIP? Why create JAIN SIP? Introduction to JAIN SIP Developer Code Snippets Implementation Used-Cases Portions of this presentation are Copyright Sun Microsystems.

Session Initiation Protocol Session Initiation Protocol (SIP) is a signaling protocol for creating, modifying and destroying dialogs between multiple endpoints: Request/response protocol (like HTTP, but peer-peer) Simple and extensible Designed for mobility (proxy/redirect servers) Bi-directional authentication Capability negotiation SIP is used for controlling the signaling that enables manipulates of sessions such as: Instant Messaging sessions Phone calls over the Internet Gaming servers Resource Location Portions of this presentation are Copyright Sun Microsystems.

SIP Functionality SIP supports five facets of establishing and terminating multimedia communications these include: User location: determination of the end system to be used for communication. User capabilities: determination of the media and media parameters to be used. User availability: determination of the willingness of the called party to engage in communications. Call setup: "ringing", establishment of call parameters at both called and calling party. Call handling: including transfer and termination of calls. Portions of this presentation are Copyright Sun Microsystems.

Presentation Outline What is SIP? Why create JAIN SIP? Introduction to JAIN SIP Developer Code Snippets Implementation Used-Cases Portions of this presentation are Copyright Sun Microsystems.

Why Create JAIN SIP? The IETF specification defines the SIP protocol in text format Interoperability ensure wire compatibility. Protocol can be implemented in any language. Interoperability of applications across stacks not addressed. JAIN SIP satisfies this need in the Java programming language. It ensures true interoperability in that by utilizing the JAIN SIP specification you have interoperability between stacks and the interoperability of applications across stacks, often referred to as application portability. Portions of this presentation are Copyright Sun Microsystems.

Presentation Outline What is SIP? Why create JAIN SIP? Introduction to JAIN SIP Developer Code Snippets Implementation Used-Cases Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP The Java-standard interface to a SIP signaling stack. Standardizes the interface to the stack. Standardizes message interface. Standardizes events and event semantics. Application portability - verified via the TCK. Designed for developers who require powerful access to the SIP protocol. JAIN SIP can be utilized in a user agent, proxy, registrar or imbedded into a service container. Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Functionality JAIN SIP supports the SIP protocol functionality described in RFC 3261. JAIN SIP the following SIP extensions; RFC 2976 allows for the carrying of session related control information that is generated during a session. RFC 3262 provide information on progress of the request processing. RFC 3265 the ability to request asynchronous notification of events. RFC 3311 allows the caller or callee to provide updated session information before a final response. RFC 3326 the ability to know why a SIP request was issued. RFC 3428 allows the transfer of Instant Messages. RFC 3515 requests that the recipient refer to a resource provided in the request. Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Messaging Architecture Application SipListener SipListener SIP Messages SIP Events SIP Messages SIP Events SipProvider SipProvider Listening Point Listening Point Stack Stack Network Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Object Architecture | JavaOne 2003 | Session # JAIN SIP Object Architecture Setup Function createListener() SIP Listener SIP Factory getInstance() Event Registration createStack() SIP Stack createProvider() SIP Provider Proprietary SIP Stack Proprietary SIP Stack Network Portions of this presentation are Copyright Sun Microsystems.

SipStack Interface Manages Listening Points and Providers. SipStack associated with an IP address. Can have multiple Listening points. Application can have multiple SipStacks. Cannot be deleted once created. Instantiated by the SipFactory and initialized with a property set. ‘javax.sip.*’ properties are reserved and names defined for stack configuration properties. Defines retransmission settings. Defines router information. Portions of this presentation are Copyright Sun Microsystems.

Retransmissions JAIN SIP provides a convenience function that ensures all retransmissions are handled by the JAIN SIP implementation. Reduces complexity for applications acting as user agents. Reduces complexity for integrating JAIN SIP as a base implementation for a SIP Servlet container or a JAIN SLEE implementation. Configured via Java properties on the SipStack Interface. Default is off. The default handling of message retransmissions in JAIN SIP is dependent on the application. Stateful proxy applications need not be concerned with retransmissions as these are handled by JAIN SIP. Typically User Agent applications must handle retransmissions of ACK’s and 2xx Responses. Portions of this presentation are Copyright Sun Microsystems.

Stack Properties IP_ADDRESS STACK_NAME OUTBOUND_PROXY ROUTER_PATH Sets the IP Address of the SipStack. This property is mandatory. STACK_NAME Sets a user friendly name to identify the underlying stack implementation. This property is mandatory. OUTBOUND_PROXY Sets the outbound proxy of the SIP Stack. ROUTER_PATH Sets the fully qualified classpath to the application supplied Router object that determines how to route messages before a dialog is established. EXTENSION_METHODS This configuration value informs the underlying implementation of supported extension methods that create new dialog's. RETRANSMISSION_FILTER A helper function for User Agents that enables the stack to handle retransmission of ACK Requests, 1XX and 2XX Responses to INVITE transactions for the application. Portions of this presentation are Copyright Sun Microsystems.

SipProvider Interface Register a SipListener to the SipProvider. Notifies registered Listener of Events De-register a SipListener from the SipProvider. Once de-registered, no longer receive Events from SipProvider. Client and Server Transaction creation methods. For sending Request and Response messages statefully. CallIdHeader creation method. Send Requests and Responses statelessly. Listening Point manipulation methods. Only one provider per listening point. Portions of this presentation are Copyright Sun Microsystems.

Responsibilities of JAIN SIP Provide methods to format SIP messages. The ability for an application to send and receive SIP messages. Parse incoming messages and enable application access to fields via a standardized Java interface. Invoke appropriate application handlers when protocol significant Message arrivals and Transaction time-outs Provide Transaction support and manage Transaction state and lifetime on behalf of a user application. Provide Dialog support and manage Dialog state and lifetime on behalf on a user application. Portions of this presentation are Copyright Sun Microsystems.

SipListener Interface A single SipListener per SipStack which implies a single Listener in the architecture All SipProviders associated to a Sipstack have the same SipListener. Process Request's either statefully or statelessly dependent on application logic. Process Response's to a recently sent Requests statefully. Process Transaction timeouts and retransmits Timer events. Transaction processing notifications Portions of this presentation are Copyright Sun Microsystems.

Responsibilities of the Application Application registers an implementation of the SipListener interface to interact with the SIP Stack. Application must register with the SipProvider for all messaging capabilities with the stack. Application requests transactions for stateful messaging. Application sends stateless messages. Access stack objects. Application receives messages from the stack as Events via the SipListener interface. Portions of this presentation are Copyright Sun Microsystems.

Event Model The architecture is developed for the J2SE environment therefore is event based utilizing the Listener/Provider event model. There is a direct reference between the event provider and event consumer Event consumer must register with the event provider Events encapsulate incoming Requests and Responses. Event Model is one way i.e. Application doesn’t send out events, it sends out messages. The event model is asynchronous in nature using transactional identifiers to correlate messages. The SipListener represents the event consumer and listens for incoming Events that encapsulate messages that may be responses to initiated dialogs or new incoming dialogs. The SipProvider is the event provider who recieves messages from the network and passes them to the application as events. Portions of this presentation are Copyright Sun Microsystems.

Packages General package Address package Message package Defines the architectural interfaces, the transaction and dialog interfaces and the event objects of the specification. Address package Address package contains a generic URI wrapper and defines SIP URI and Tel URIs interfaces. Message package Defines the interfaces necessary for the Request and Response messages. Header packages Header package defines interfaces for all the supported headers and extension headers Portions of this presentation are Copyright Sun Microsystems.

Factories JAIN SIP defines four different factories each with respective responsibilities, namely: SipFactory This interface defines methods to create new Stack objects and other factory objects. AddressFactory This interface defines methods to create SipURI’s and TelURL’s. HeaderFactory This interface defines methods to create new Headers objects. MessageFactory This interface defines methods to create new Request and Response objects. Portions of this presentation are Copyright Sun Microsystems.

Messages and Headers Portions of this presentation are Copyright Sun Microsystems.

Messages There are two type of messages in SIP, which JAIN SIP defines as Interfaces: Request messages are sent from the client to server. They contain a specific method type that identifies the type of Request. A Request-URI which indicates the user or service to which this request is being addressed. Response messages are sent from server to client in response to a Request.  They contain a specific status code that identifies the type of Response. A reason phrase that is intended for the human user. Messages may contain multiple Headers of the same type. The order of Headers of a given type within a message is significant A Message Body may contain a session description. JAIN SIP defines this format an Object which allows the body to be a String or an Object type defined the Session Description Protocol (SDP) JSR specification and also a byte array. Portions of this presentation are Copyright Sun Microsystems.

Request Message Types The following request messages are defined by the core SIP protocol: INVITE Invites a participant to a session BYE Ends a client’s participation in a session CANCEL terminates a transaction OPTIONS Queries a participant about their media capabilities ACK For reliability and call accepta nce (3-way handshake) REGISTER Informs a SIP server about the location of a user Portions of this presentation are Copyright Sun Microsystems.

Request Message Types The following request messages are defined by various SIP extensions: INFO Session related control information generated during a session. PRACK For reliability of provisional responses. UPDATE Update a session without impacting the state of a dialog. SUBSCRIBE Request notification from remote nodes when certain events occur. NOTIFY Notification from remote nodes when certain events occur. MESSAGE For sending instant messages. REFER Refer to a resource provided in the request. Portions of this presentation are Copyright Sun Microsystems.

Headers SIP headers are similar to HTTP headers fields in both syntax and semantics. JAIN SIP models each SIP header as a specific interface as opposed to have a single generic interface to handle all header information. Each interface specifies the Headers acceptable parameters. More explicit protocol support – parsing support for each header. JAIN SIP supports all the headers defined in RFC 3261 and other headers introduced by supporting the following additional RFC's: RFC3262 - RAckHeader and RSeqHeaders for the reliable delivery of provisional responses. RFC3265 - AllowEventsHeader, EventHeader and SubscriptionStateHeader to support the event notification framework. RFC3326 - ReasonHeader to support information on why the request was issued. RFC3515 - ReferToHeader to support recipients to refer requests to another resource Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Extensible by Design SIP Extensions described in internet drafts and RFCs typically define: New SIP Methods New dialog creating methods New SIP Headers. JAIN SIP defines an extensible framework to support new headers standardized for SIP: New SIP methods can be set using the string method field of a request. An application informs the stack of dialog creating methods, by specifying the method name to the EXTENSION_METHOD property of the SipStack configuration. Defines a ExtensionHeader interface that contains the header name and header value attribute pair. Can be created and accessed by name. Portions of this presentation are Copyright Sun Microsystems.

Transactions and Dialogs Portions of this presentation are Copyright Sun Microsystems.

Generic SIP Application Structure SipProvider SipStack Implementation Messages Application (SipListener) Dialog Dialog Events Messages Transaction Transaction Transaction Events Messages Req Res Req Req Res Events Parser Encoder Network (Raw Bytes) Portions of this presentation are Copyright Sun Microsystems.

SIP Transactions UAC Stateful proxy UAS A SIP transaction consists of a single request and any responses to that request. Server transaction Client transaction Server transaction Client transaction UAC Stateful proxy UAS Portions of this presentation are Copyright Sun Microsystems.

Transaction Support JAIN SIP standardizes the interface to the generic transactional model defined by the SIP protocol JAIN SIP models both Client and Server Transactions as Interfaces. Transaction is created on incoming Request or may be created to send outgoing request. When a Request is sent out statefully, application must request a ClientTransaction When a new Request arrives, application determines whether to handle request via a ServerTransaction When a Request in an existing dialog arrives the stack automatically associates it to a ServerTransaction When a response arrives, the Stack possibly associates a previously created ClientTransaction with the response May be stray Messages are passed to the SipProvider in order to generate a new transaction. This transaction can be used to send the message onto the network Implementation manages the association between Transactions and Dialogs. Portions of this presentation are Copyright Sun Microsystems.

Dialog Support A Dialog is a peer to peer association between communicating SIP endpoints. The dialog represents a context in which to interpret SIP messages. Dialogs are never directly created by the Application. Dialogs are established by Dialog creating Transactions (INVITE, SUBSCRIBE…) and are managed by the stack. Dialog deletion may be under application control. Though not generally recommended. Dialogs are used to maintain data needed for further message transmissions within the dialog Route Sets, Sequence Numbers, URI’s of the parties in the dialog. Dialogs have a state machine Early, Confirmed, Completed and Terminated. Transactions may belong to a Dialog Dialog state changes as a result of changes in Transaction State. Access to dialog functionality from the transaction interface. Portions of this presentation are Copyright Sun Microsystems.

3PCC Example Portions of this presentation are Copyright Sun Microsystems.

Third Party Call Control – 3PCC 3PCC refers to the general ability to establish and manipulate calls between other parties. Establishment of these calls is orchestrated by a third party, referred to as the controller: A controller is a SIP User Agent that wishes to create a session between two other user agents. 3PCC is often used for: operator services i.e. the operator creates a call that connects two participants together. conferencing. Portions of this presentation are Copyright Sun Microsystems.

3PCC Example using JAIN SIP 3PCC App SipListener SipFactory SipProvider Client Transaction Dialog A Dialog B SIP Party A SIP Party B createReq(INVITE,-) createClientTransaction(inviteA) new() sendRequest() new() null INVITE(SipListener, A) 200OK(offerA) createReq(INVITE, offerA) confirmed createClientTransaction(inviteB) new() sendRequest() new() null INVITE(SipListener, B) ACK(offerA) 200OK(offerB) confirmed ACK(offerB) createReq(re-INVITE) – setBody(offerB) createClientTransaction(inviteC) sendRequest(clientTransC) Re-INVITE(offerB) 200OK(offerB) ACK(offerB) RTP Portions of this presentation are Copyright Sun Microsystems.

Latest Specification Updates JAIN SIP v1.0 JAIN SIP v1.1 RFC2543 Supported. J2SE 1.3 and above. Transactions referenced by long. Transaction state is not visible to application. No explicit Dialog Support. Stack Configuration not defined. RFC3261 Supported. J2SE 1.4 and above. Transaction interfaces defined. Transaction/Dialog state can be read by application. Dialog interface defined and managed by stack. Stack Configured with defined properties. Portions of this presentation are Copyright Sun Microsystems.

Presentation Outline What is SIP? Why create JAIN SIP? Introduction to JAIN SIP Developer Code Snippets Implementation Used-Cases Portions of this presentation are Copyright Sun Microsystems.

Application - Stack Creation Initialize Stack using SipFactory: try { Properties properties = new Properties(); properties.setProperty("javax.sip.IP_ADDRESS", "129.6.55.181"); properties.setProperty("javax.sip.OUTBOUND_PROXY", "129.6.55.182:5070/UDP"); ……// Other initialization properties. sipStack = sipFactory.createSipStack(properties); } catch(SipException e) { System.exit(-1); } Portions of this presentation are Copyright Sun Microsystems.

Application – Request Creation Initialize Request using Factories: try { SipURI requestURI = addressFactory.createSipURI (toUser, toSipAddress); // … Create other headers Request request = messageFactory.createRequest (requestURI, Request.INVITE, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards); } Portions of this presentation are Copyright Sun Microsystems.

Application - Sending Requests Send outgoing messages: try { // Create the client transaction ClientTransaction inviteTid = sipProvider.getNewClientTransaction(request); // send the request inviteTid.sendRequest(); } Portions of this presentation are Copyright Sun Microsystems.

Application – Processing Requests Handle incoming messages as Events: try { public void processRequest(RequestEvent requestEvent) { Request request = requestEvent.getRequest(); ServerTransaction st = requestEvent.getServerTransaction(); // do request specific processing here } Portions of this presentation are Copyright Sun Microsystems.

Presentation Outline What is SIP? Why create JAIN SIP? Introduction to JAIN SIP Developer Code Snippets Implementation Used-Cases Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP for Instant Messaging Suitable for building IM and Presence Clients and Servers. API supports the required methods and Headers. Creates and manages Dialogs for SUBSCRIBE and MESSAGE methods. NIST-SIP JAIN IM Client SipListener is about 1100 LOC. Interoperates with Microsoft Messenger IM http://jain-sip-presence-proxy.dev.java.net Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP for Proxy Servers Facilities construction of Proxy Servers Stateless, Transaction-stateful, and Dialog-stateful operation. Access to Dialog/Transaction state and route tables. Extensibility and application controlled Routing. Deep copy semantics for cloning. Incorporates IM + Presence Support http://jain-sip-presence-proxy.dev.java.net Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP for Telephony Ideal for building telephony applications. API provides a complete set of functionality for managing calls. Spares the application the burden of managing dialogs and transactions. SIP COMMUNICATOR - a complete example of an audio/video telephony application (uses JAIN SIP RI and JMF) http://sip-communicator.dev.java.net Interoperates with Microsoft Windows Messenger. Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Reference Implementation In the public domain. Includes example IM client and proxy. Includes trace visualization tools. Footprint About 46000 LOC. Jar file about 355 Kb 3Mb of memory after running a few requests. http://www-x.antd.nist.gov/proj/iptel Portions of this presentation are Copyright Sun Microsystems.

JAIN SIP Resources JAIN SIP Specification: http://jcp.org/jsr/detail/032.jsp JAIN SIP Discussion List: http://archives.java.sun.com/jain-sip-interest.html JAIN SIP Collaboration Project: http://jain-sip.dev.java.net SIP-Communicator Collaboration Project: http://sip-communicator.dev.java.net SIP-Presence-Proxy Collaboration Project: http://jain-sip-presence-proxy.dev.java.net Portions of this presentation are Copyright Sun Microsystems.

JSR 32 http://jcp.org/en/jsr/detail?id=32 | JavaOne 2003 | Session # JSR 32 http://jcp.org/en/jsr/detail?id=32 Subscribe to: http://archives.java.sun.com/jain-sip-interest.html Portions of this presentation are Copyright Sun Microsystems