SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
JAIN SIP Tutorial
Serving the Developer Community
Phelim O’Doherty
Sun Microsystems

Mudumbai Ranganathan
NIST
JAIN SIP is the standardized Java
    interface to the Session Initiation Protocol
    for desktop and server applications.
    JAIN SIP enables transaction stateless,
    transaction stateful and dialog stateful
    control over the protocol.




2   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Presentation Outline

    • What is SIP?
    • Why create JAIN SIP?
    • Introduction to JAIN SIP
    • Developer Code Snippets
    • Implementation Used-Cases



3   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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


 4   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




5   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Presentation Outline

    • What is SIP?
    • Why create JAIN SIP?
    • Introduction to JAIN SIP
    • Developer Code Snippets
    • Implementation Used-Cases



6   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Why Create JAIN SIP?
•       SIP is an IETF specification that has been adopted by the communications
        industry in the form of 3GPP, 3GPP2, OMA and ITU.
•       The IETF specification defines the SIP protocol in text format
•       The SIP Community holds various interoperability events to ensure the
        credibility of the protocol.
•       As a developer you are free to implement the protocol in any language,
        hence define your own interface for accessing the defined behavior of the
        protocol as outlined by the IETF standard.
•       While IETF specification ensures interoperability between stacks, it doesn’t
        address interoperability of applications across stacks.
•       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.
         – Both stack interoperability and application portability are required in this new age of
           communication standards.



    7    © 2003 Sun Microsystems, Inc. All Rights Reserved.
Presentation Outline

    • What is SIP?
    • Why create JAIN SIP?
    • Introduction to JAIN SIP
    • Developer Code Snippets
    • Implementation Used-Cases



8   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




9   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.



10   © 2003 Sun Microsystems, Inc. All Rights Reserved.
JAIN SIP Object Architecture

                                            createListener()                       getInstance()
                        Setup                                          SIP                               SIP
                       Function                                      Listener                          Factory


                                                                                                          createStack()
                                                           Event
                                                           Registration             createProvider()
                                                                       SIP        SIP Stack
                                                                     Provider
     Proprietary                                                          Proprietary
      SIP Stack                                                            SIP Stack
                                          Network



11    © 2003 Sun Microsystems, Inc. All Rights Reserved.
SIP Implementation Structure
                                   SipProvider
                                                           SipStack Implementation
                                       Messages
                                                                              Dialog                 Dialog
                                           Events




                                                                                       Transaction
                                                                Transaction




                                                                                                       Transaction
                                        Messages

          Application                      Events
         (SipListener)

                                       Messages
                                           Events         Req                 Res Req                Req Res


                                                             Parser                                  Encoder


                                                                Network (Raw Bytes)
12   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.


13   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




14   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Stack Properties
•        IP_ADDRESS
         – 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.

    15    © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.



 16    © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.

 17    © 2003 Sun Microsystems, Inc. All Rights Reserved.
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




 18    © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




  19    © 2003 Sun Microsystems, Inc. All Rights Reserved.
JAIN SIP Messaging Architecture

       Application


                    SipListener                                          SipListener

SIP Messages                               SIP Events          SIP Messages           SIP Events
                    SipProvider                                           SipProvider
                 Listening Point                                        Listening Point
                           Stack                                              Stack
                                                             Network


  20    © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




    21     © 2003 Sun Microsystems, Inc. All Rights Reserved.
Packages
• General 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



22   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




23   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Messages and Headers




24   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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 Request-URI which indicates the user or service to which this request is
              being addressed.
            • A reason phrase that is intended for the human user.
• Messages may contain multiple Headers and Headers of the same
  type.
      – The order of all Headers within a message is significant, i.e. Headers which
        are hop-by-hop must appear before any Headers which are end-to-end.
• A Message Body contains 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.
 25     © 2003 Sun Microsystems, Inc. All Rights Reserved.
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 search
 •   OPTIONS
       – Queries a participant about their media capabilities
 •   ACK
       – For reliability and call acceptance
 •   REGISTER
       – Informs a SIP server about the location of a user




26   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.
27   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Headers
• SIP header fields are similar to HTTP header 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.
       – It is deemed more explicit for protocol support to define protocol
         characteristics as opposed to generic interfaces.
• This specification 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
  28     © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.
• JAIN SIP defines an extensible framework to support new headers
  standardized for SIP:
     – Defines a ExtensionHeader interface that contains the header
       name and header value attribute pair.
     – Can be created and accessed by name.

29   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Transactions and Dialogs




30   © 2003 Sun Microsystems, Inc. All Rights Reserved.
SIP Transactions
 A SIP transaction consists of a single request
 and any responses to that request.




                                                                                                    Server transaction
                                                          Server transaction
                                                                               Client transaction
                     Client transaction




               UAC                        Stateful proxy                                            UAS
31   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.

    32      © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.


    33     © 2003 Sun Microsystems, Inc. All Rights Reserved.
3PCC Example




34   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.




 35   © 2003 Sun Microsystems, Inc. All Rights Reserved.
3PCC Example using JAIN SIP
3PCC App

                        SipFactory
                                                                   Client                                 SIP              SIP
SipListener                                    SipProvider       Transaction   Dialog A    Dialog B
                                                                                                         Party A          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

   36     © 2003 Sun Microsystems, Inc. All Rights Reserved.
Latest Specification Updates
         JAIN SIP v1.0                                       JAIN SIP v1.1
 • RFC2543 Supported.                                     • RFC3261 Supported.
 • J2SE 1.3 and above.                                    • J2SE 1.4 and above.
 • Transactions referenced by                             • Transaction interfaces
   long.                                                    defined.
 • Transaction state is not                               • Transaction/Dialog state can
   visible to application.                                  be read by application.
 • No explicit Dialog Support.                            • Dialog interface defined and
                                                            managed by stack.
 • Stack Configuration not
   defined.                                               • Stack Configured with
                                                            defined properties.




37   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Presentation Outline

     • What is SIP?
     • Why create JAIN SIP?
     • Introduction to JAIN SIP
     • Developer Code Snippets
     • Implementation Used-Cases



38   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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.
   try {
              sipStack = sipFactory.createSipStack(properties);
     } catch(SipException e) {
               System.exit(-1);
     }
}


39   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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);
}




40   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Application - Sending Requests
Send outgoing messages:
try {
  // Create the client transaction
  ClientTransaction inviteTid =
      sipProvider.getNewClientTransaction(request);
  // send the request
  inviteTid.sendRequest();
}




41   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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
   }
}




42   © 2003 Sun Microsystems, Inc. All Rights Reserved.
Presentation Outline

     • What is SIP?
     • Why create JAIN SIP?
     • Introduction to JAIN SIP
     • Developer Code Snippets
     • Implementation Used-Cases



43   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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

44   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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
 45   © 2003 Sun Microsystems, Inc. All Rights Reserved.
JAIN SIP for Telephony
     - SIP COMMUNICATOR

• 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.
• A complete example of an audio/video telephony application
   – Uses JAIN SIP RI and JMF
• Interoperates with Microsoft Windows Messenger.


                      http://sip-communicator.dev.java.net
46    © 2003 Sun Microsystems, Inc. All Rights Reserved.
JAIN SIP Reference Implementation
• In the public domain.
   – Includes trace
      visualization tools.
• Footprint
   – About 46000 LOC.
   – Jar file about 355 Kb
   – 3Mb of memory after
     running a few requests.



                                http://jain-sip.dev.java.net

 47   © 2003 Sun Microsystems, Inc. All Rights Reserved.
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




48   © 2003 Sun Microsystems, Inc. All Rights Reserved.
JSR 32
http://jcp.org/en/jsr/detail?id=32

Subscribe to:
http://archives.java.sun.com/jain-sip-interest.html

Más contenido relacionado

La actualidad más candente

FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
SIP - Introduction to SIP Protocol
SIP - Introduction to SIP ProtocolSIP - Introduction to SIP Protocol
SIP - Introduction to SIP ProtocolLivePerson
 
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까NAVER D2
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIPMahmoud Abudaqa
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...ALTANAI BISHT
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway
 
Aspect Unified IP Overview and Physical Architecture
Aspect Unified IP Overview and Physical ArchitectureAspect Unified IP Overview and Physical Architecture
Aspect Unified IP Overview and Physical ArchitectureVishad Garg
 
IMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationIMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationWaldir R. Pires Jr
 
VLANs_Module_3.pptx
VLANs_Module_3.pptxVLANs_Module_3.pptx
VLANs_Module_3.pptxBOURY1
 
AudioCodes Session Border Controller Update
AudioCodes Session Border Controller UpdateAudioCodes Session Border Controller Update
AudioCodes Session Border Controller UpdateJohn D'Annunzio
 
PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android ApplicationsAshish Agarwal
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and BeyondAndreas Granig
 
ESB Presentation
ESB PresentationESB Presentation
ESB PresentationF K
 

La actualidad más candente (20)

FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
SIP - Introduction to SIP Protocol
SIP - Introduction to SIP ProtocolSIP - Introduction to SIP Protocol
SIP - Introduction to SIP Protocol
 
Symbian OS
Symbian OSSymbian OS
Symbian OS
 
camunda for developer-friendly BPM
camunda for developer-friendly BPMcamunda for developer-friendly BPM
camunda for developer-friendly BPM
 
IMS presentation
IMS presentationIMS presentation
IMS presentation
 
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
IMS ENUM & DNS Mechanism
IMS ENUM & DNS MechanismIMS ENUM & DNS Mechanism
IMS ENUM & DNS Mechanism
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use Cases
 
Aspect Unified IP Overview and Physical Architecture
Aspect Unified IP Overview and Physical ArchitectureAspect Unified IP Overview and Physical Architecture
Aspect Unified IP Overview and Physical Architecture
 
IMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationIMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentation
 
VLANs_Module_3.pptx
VLANs_Module_3.pptxVLANs_Module_3.pptx
VLANs_Module_3.pptx
 
AudioCodes Session Border Controller Update
AudioCodes Session Border Controller UpdateAudioCodes Session Border Controller Update
AudioCodes Session Border Controller Update
 
PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android Applications
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
 
ESB Presentation
ESB PresentationESB Presentation
ESB Presentation
 
The Mobile Ecosystem
The Mobile EcosystemThe Mobile Ecosystem
The Mobile Ecosystem
 

Similar a Jain Sip Tutorial

Java Sip Specifications
Java Sip SpecificationsJava Sip Specifications
Java Sip Specificationswyc17385
 
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...Jean Deruelle
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateOlle E Johansson
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSICT PRISTINE
 
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPROIDEA
 
Review of SIP based DoS attacks
Review of SIP based DoS attacksReview of SIP based DoS attacks
Review of SIP based DoS attacksEditor IJCATR
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Puppet
 
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPAN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPSean Flores
 
VoIP Monitoring and Troubleshooting
VoIP Monitoring and TroubleshootingVoIP Monitoring and Troubleshooting
VoIP Monitoring and TroubleshootingThousandEyes
 
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JSMobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JStelestax
 
Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Abdel-Fattah M. Hmoud
 
Tuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsTuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsJean Deruelle
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 

Similar a Jain Sip Tutorial (20)

Java Sip Specifications
Java Sip SpecificationsJava Sip Specifications
Java Sip Specifications
 
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...
Mobicents 2.0, The Java Open Source Communications Platform-FOSDEM 2011 Jean ...
 
Sip and the java platforms
Sip and the java platformsSip and the java platforms
Sip and the java platforms
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication Update
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OS
 
SIP Tutorial/Workshop 1
SIP Tutorial/Workshop 1SIP Tutorial/Workshop 1
SIP Tutorial/Workshop 1
 
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
 
Review of SIP based DoS attacks
Review of SIP based DoS attacksReview of SIP based DoS attacks
Review of SIP based DoS attacks
 
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast DeploymentAdvanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
 
SiPCPE-108-1
SiPCPE-108-1SiPCPE-108-1
SiPCPE-108-1
 
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPAN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
 
Ivr worx
Ivr worxIvr worx
Ivr worx
 
VoIP Monitoring and Troubleshooting
VoIP Monitoring and TroubleshootingVoIP Monitoring and Troubleshooting
VoIP Monitoring and Troubleshooting
 
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JSMobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
 
Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409
 
Vo ip sip
Vo ip sipVo ip sip
Vo ip sip
 
Tuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsTuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on Mobicents
 
Ruby voip
Ruby voipRuby voip
Ruby voip
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 

Último

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 

Último (20)

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 

Jain Sip Tutorial

  • 1. JAIN SIP Tutorial Serving the Developer Community Phelim O’Doherty Sun Microsystems Mudumbai Ranganathan NIST
  • 2. JAIN SIP is the standardized Java interface to the Session Initiation Protocol for desktop and server applications. JAIN SIP enables transaction stateless, transaction stateful and dialog stateful control over the protocol. 2 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 3. Presentation Outline • What is SIP? • Why create JAIN SIP? • Introduction to JAIN SIP • Developer Code Snippets • Implementation Used-Cases 3 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 4. 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 4 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 5. 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. 5 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 6. Presentation Outline • What is SIP? • Why create JAIN SIP? • Introduction to JAIN SIP • Developer Code Snippets • Implementation Used-Cases 6 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 7. Why Create JAIN SIP? • SIP is an IETF specification that has been adopted by the communications industry in the form of 3GPP, 3GPP2, OMA and ITU. • The IETF specification defines the SIP protocol in text format • The SIP Community holds various interoperability events to ensure the credibility of the protocol. • As a developer you are free to implement the protocol in any language, hence define your own interface for accessing the defined behavior of the protocol as outlined by the IETF standard. • While IETF specification ensures interoperability between stacks, it doesn’t address interoperability of applications across stacks. • 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. – Both stack interoperability and application portability are required in this new age of communication standards. 7 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 8. Presentation Outline • What is SIP? • Why create JAIN SIP? • Introduction to JAIN SIP • Developer Code Snippets • Implementation Used-Cases 8 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 9. 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. 9 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 10. 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. 10 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 11. JAIN SIP Object Architecture createListener() getInstance() Setup SIP SIP Function Listener Factory createStack() Event Registration createProvider() SIP SIP Stack Provider Proprietary Proprietary SIP Stack SIP Stack Network 11 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 12. SIP Implementation Structure SipProvider SipStack Implementation Messages Dialog Dialog Events Transaction Transaction Transaction Messages Application Events (SipListener) Messages Events Req Res Req Req Res Parser Encoder Network (Raw Bytes) 12 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 13. 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. 13 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 14. 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. 14 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 15. Stack Properties • IP_ADDRESS – 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. 15 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 16. 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. 16 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 17. 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. 17 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 18. 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 18 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 19. 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. 19 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 20. JAIN SIP Messaging Architecture Application SipListener SipListener SIP Messages SIP Events SIP Messages SIP Events SipProvider SipProvider Listening Point Listening Point Stack Stack Network 20 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 21. 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. 21 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 22. Packages • General 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 22 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 23. 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. 23 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 24. Messages and Headers 24 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 25. 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 Request-URI which indicates the user or service to which this request is being addressed. • A reason phrase that is intended for the human user. • Messages may contain multiple Headers and Headers of the same type. – The order of all Headers within a message is significant, i.e. Headers which are hop-by-hop must appear before any Headers which are end-to-end. • A Message Body contains 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. 25 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 26. 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 search • OPTIONS – Queries a participant about their media capabilities • ACK – For reliability and call acceptance • REGISTER – Informs a SIP server about the location of a user 26 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 27. 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. 27 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 28. Headers • SIP header fields are similar to HTTP header 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. – It is deemed more explicit for protocol support to define protocol characteristics as opposed to generic interfaces. • This specification 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 28 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 29. 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. • JAIN SIP defines an extensible framework to support new headers standardized for SIP: – Defines a ExtensionHeader interface that contains the header name and header value attribute pair. – Can be created and accessed by name. 29 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 30. Transactions and Dialogs 30 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 31. SIP Transactions A SIP transaction consists of a single request and any responses to that request. Server transaction Server transaction Client transaction Client transaction UAC Stateful proxy UAS 31 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 32. 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. 32 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 33. 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. 33 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 34. 3PCC Example 34 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 35. 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. 35 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 36. 3PCC Example using JAIN SIP 3PCC App SipFactory Client SIP SIP SipListener SipProvider Transaction Dialog A Dialog B Party A 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 36 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 37. Latest Specification Updates JAIN SIP v1.0 JAIN SIP v1.1 • RFC2543 Supported. • RFC3261 Supported. • J2SE 1.3 and above. • J2SE 1.4 and above. • Transactions referenced by • Transaction interfaces long. defined. • Transaction state is not • Transaction/Dialog state can visible to application. be read by application. • No explicit Dialog Support. • Dialog interface defined and managed by stack. • Stack Configuration not defined. • Stack Configured with defined properties. 37 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 38. Presentation Outline • What is SIP? • Why create JAIN SIP? • Introduction to JAIN SIP • Developer Code Snippets • Implementation Used-Cases 38 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 39. 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. try { sipStack = sipFactory.createSipStack(properties); } catch(SipException e) { System.exit(-1); } } 39 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 40. 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); } 40 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 41. Application - Sending Requests Send outgoing messages: try { // Create the client transaction ClientTransaction inviteTid = sipProvider.getNewClientTransaction(request); // send the request inviteTid.sendRequest(); } 41 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 42. 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 } } 42 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 43. Presentation Outline • What is SIP? • Why create JAIN SIP? • Introduction to JAIN SIP • Developer Code Snippets • Implementation Used-Cases 43 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 44. 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 44 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 45. 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 45 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 46. JAIN SIP for Telephony - SIP COMMUNICATOR • 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. • A complete example of an audio/video telephony application – Uses JAIN SIP RI and JMF • Interoperates with Microsoft Windows Messenger. http://sip-communicator.dev.java.net 46 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 47. JAIN SIP Reference Implementation • In the public domain. – Includes trace visualization tools. • Footprint – About 46000 LOC. – Jar file about 355 Kb – 3Mb of memory after running a few requests. http://jain-sip.dev.java.net 47 © 2003 Sun Microsystems, Inc. All Rights Reserved.
  • 48. 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 48 © 2003 Sun Microsystems, Inc. All Rights Reserved.