Difference between revisions of "ReSIProcate Current Features"

From reSIProcate
Jump to navigation Jump to search
(Added list of supported RFCs & drafts. Info taken from ReSIProcate-Intro_(TMC_VoIP).ppt)
(→‎Partially Supported RFCs: added more RFCs to the list based on Byron's feedback)
 
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
* Uses the VOCAL license (BSD like)
+
* Uses the [http://opensource.org/licenses/vovidapl.php Vovida Software License v1.0 (Vovida)] (BSD like)
* UDP, TCP, TLS transports
+
* UDP, TCP, TLS transports (DTLS almost complete)
* Easy to plug-in new transport protocols
+
* Easy to plug in new transport protocols
 
* A full implementation of the 3261 transaction state machine
 
* A full implementation of the 3261 transaction state machine
 
* A lazy parser - only parse headers when the application requests them
 
* A lazy parser - only parse headers when the application requests them
Line 14: Line 14:
 
* Full NAPTR and SRV support (support RFCs: 3261, 3263, 2915, 2782)
 
* Full NAPTR and SRV support (support RFCs: 3261, 3263, 2915, 2782)
 
* Fast performance: > ~500 transactions per second on an Intelâ„¢  P4
 
* Fast performance: > ~500 transactions per second on an Intelâ„¢  P4
* Ability to add new headers and parameters without rebuilding the stack
+
* Ability to add new header fields and parameters without rebuilding the stack
 
* MIME and multipart-MIME contents
 
* MIME and multipart-MIME contents
 
* S/MIME
 
* S/MIME
Line 21: Line 21:
 
** ares - DNS Resolver
 
** ares - DNS Resolver
 
** openssl - Security (for TLS)
 
** openssl - Security (for TLS)
 +
* ENUM support
 +
* STUN Server Support
 
* Multiple SIP stacks in the same application
 
* Multiple SIP stacks in the same application
 
* Support for shutting down a SIP stack without exiting the application
 
* Support for shutting down a SIP stack without exiting the application
 
* IPv6 support in the parser and DNS
 
* IPv6 support in the parser and DNS
 
* Support for multi-homed hosts
 
* Support for multi-homed hosts
* Builds and runs on Windows and most Unixes. reSIProcate has been built and tested on:
+
* Builds and runs on Windows and most Unixes. ReSIProcate has been built and tested on:
 
** GNU/Linux 2.4, 2.5  
 
** GNU/Linux 2.4, 2.5  
 
** Mac OS/X 10.2 (Jaguar) and 10.3 (Panther)  
 
** Mac OS/X 10.2 (Jaguar) and 10.3 (Panther)  
Line 31: Line 33:
 
** Windows XP and 2003 Server  
 
** Windows XP and 2003 Server  
 
** (most things with modern C++ compilers)
 
** (most things with modern C++ compilers)
 +
* [[DUM Overview|Dialog Usage Manager (DUM)]] layer for UAs
  
  
 
==Supported IETF RFCs==
 
==Supported IETF RFCs==
  
* 2327: SDP: Session Description Protocol
+
* RFC 1847: Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted
* 2617: HTTP Authentication: Basic and Digest Access Authentication
+
* RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
* 2782: A DNS RR for specifying the location of services (DNS SRV)  
+
* RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
* 2915: The Naming Authority Pointer (NAPTR) DNS Resource Record
+
* RFC 2181: Clarifications to the DNS Specification
* 2976: The SIP INFO Method
+
* RFC 2617: HTTP Authentication: Basic and Digest Access Authentication
* 3261: SIP: Session Initiation Protocol
+
* RFC 2782: A DNS RR for specifying the location of services (DNS SRV)  
* 3263: Session Initiation Protocol (SIP): Locating SIP Servers
+
* RFC 2915: The Naming Authority Pointer (NAPTR) DNS Resource Record
* 3265: Session Initiation Protocol (SIP)-Specific Event Notification
+
* RFC 2976: The SIP INFO Method
* 3325: Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
+
* RFC 3261: SIP: Session Initiation Protocol
* 3326: The Reason Header Field for the Session Initiation Protocol (SIP)
+
* RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers
* 3420: Internet Media Type message/sipfrag
+
* RFC 3265: Session Initiation Protocol (SIP)-Specific Event Notification
* 3428: Session Initiation Protocol (SIP) Extension for Instant Messaging
+
* RFC 3311: The SIP UPDATE Method
* 3515: The Session Initiation Protocol (SIP) Refer Method
+
* RFC 3325: Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
* 3581: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing
+
* RFC 3326: The Reason Header Field for the Session Initiation Protocol (SIP)
 +
* RFC 3420: Internet Media Type message/sipfrag
 +
* RFC 3428: Session Initiation Protocol (SIP) Extension for Instant Messaging
 +
* RFC 3486: Compressing the Session Initiation Protocol (SIP)
 +
* RFC 3515: The Session Initiation Protocol (SIP) Refer Method
 +
* RFC 3581: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing
 +
* RFC 3761: The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)
 +
* RFC 3824: Using E.164 numbers with the Session Initiation Protocol (SIP)
 +
* RFC 3891: The Session Initiation Protocol (SIP) "Replaces" Header
 +
* RFC 3892: The Session Initiation Protocol (SIP) Referred-By Mechanism
 +
* RFC 3903: Session Initiation Protocol (SIP) Extension for Event State Publication
 +
* RFC 4028: Session Timers
 +
* RFC 4320: Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction
 +
* RFC 4474: Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)
 +
* RFC 4508: Conveying Feature Tags with the Session Initiation Protocol (SIP) REFER Method
 +
* RFC 4566: SDP: Session Description Protocol
  
 +
=== Partially Supported RFCs ===
  
==Supported IETF Drafts (Partial List)==
+
* RFC 3264: An Offer/Answer Model with the Session Description Protocol (SDP) (This is only partially supported, since many of the responsibilities are up to the app)
* draft-impp-srv
+
* RFC 3313: Private Session Initiation Protocol (SIP) Extensions for Media Authorization (Only the P-Media-Authorization header field is supported. No logic is provided.)
* draft-simple-presence
+
* RFC 3323: A Privacy Mechanism for the Session Initiation Protocol (SIP) (The Privacy header field is supported. Server logic is not provided, but endpoint logic is.)
* draft-sip-replaces
+
* RFC 3327: Session Initiation Protocol (SIP) Extension Header Field for Registering Non-Adjacent Contacts (Only the Path header field is supported. No logic is provided. This will change when the outbound implementation is merged in.)
* draft-sip-referredby
+
* RFC 3329: Security Mechanism Agreement for the Session Initiation Protocol (SIP)  (Only the Security-Client, Security-Server, and Security-Verify header fields are supported, the proxy mechanisms are not.)
* draft-sip-connect-reuse
+
* RFC 3388: Grouping of Media Lines in the Session Description Protocol (SDP) (trivial support; apps have access to group attributes, but groups are not handled for the app)
* draft-sip-join
+
* RFC 3605: Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP) (trivial support)
* draft-sip-gruu
+
* RFC 3608: Session Initiation Protocol (SIP) Extension Header Field for Service Route Discovery During Registration (The Service-Route header field is supported, registrar mechanism is not. The endpoint mechanism appears to be supported).
* draft-sip-publish
+
* RFC 3841: Caller Preferences for the Session Initiation Protocol (SIP) (Only Accept-Contact, Reject-Contact, and Request-Disposition header fields are supported. No proxy support.)
* draft-sipping-mwi
+
* RFC 3911: The Session Initiation Protocol (SIP) "Join" Header (Only the Join header field is supported, no other support.)
 +
* RFC 3966: The tel URI for Telephone Numbers (Partial support. The isub and phone-context parameters are not supported. The comparator isn't implemented.)
 +
* RFC 4483: A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages (Trivially supported, the application layer must do most of the work.)
 +
* RFC 4488: Suppression of Session Initiation Protocol (SIP) REFER Method Implicit  Subscription (The Refer-Sub header field is supported, and there is some endpoint support.)

Latest revision as of 17:40, 16 April 2007

  • Uses the Vovida Software License v1.0 (Vovida) (BSD like)
  • UDP, TCP, TLS transports (DTLS almost complete)
  • Easy to plug in new transport protocols
  • A full implementation of the 3261 transaction state machine
  • A lazy parser - only parse headers when the application requests them
  • The parser is compliant with the current RFCs
  • A strongly typed interface
  • An Object-Oriented SDP parser and encoder
  • Support for SipFrag
  • Support for 'rport'
  • Object Oriented C++ interface to the messages
  • Asynchronous DNS library (ares from MIT)
  • Full asynchronous DNS support in Windows
  • Full NAPTR and SRV support (support RFCs: 3261, 3263, 2915, 2782)
  • Fast performance: > ~500 transactions per second on an Intelâ„¢ P4
  • Ability to add new header fields and parameters without rebuilding the stack
  • MIME and multipart-MIME contents
  • S/MIME
  • Single-threaded or multi-threaded (thread-safe stack)
  • One library with only two external dependencies
    • ares - DNS Resolver
    • openssl - Security (for TLS)
  • ENUM support
  • STUN Server Support
  • Multiple SIP stacks in the same application
  • Support for shutting down a SIP stack without exiting the application
  • IPv6 support in the parser and DNS
  • Support for multi-homed hosts
  • Builds and runs on Windows and most Unixes. ReSIProcate has been built and tested on:
    • GNU/Linux 2.4, 2.5
    • Mac OS/X 10.2 (Jaguar) and 10.3 (Panther)
    • Solaris 8 and 9
    • Windows XP and 2003 Server
    • (most things with modern C++ compilers)
  • Dialog Usage Manager (DUM) layer for UAs


Supported IETF RFCs[edit]

  • RFC 1847: Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted
  • RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
  • RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
  • RFC 2181: Clarifications to the DNS Specification
  • RFC 2617: HTTP Authentication: Basic and Digest Access Authentication
  • RFC 2782: A DNS RR for specifying the location of services (DNS SRV)
  • RFC 2915: The Naming Authority Pointer (NAPTR) DNS Resource Record
  • RFC 2976: The SIP INFO Method
  • RFC 3261: SIP: Session Initiation Protocol
  • RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers
  • RFC 3265: Session Initiation Protocol (SIP)-Specific Event Notification
  • RFC 3311: The SIP UPDATE Method
  • RFC 3325: Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
  • RFC 3326: The Reason Header Field for the Session Initiation Protocol (SIP)
  • RFC 3420: Internet Media Type message/sipfrag
  • RFC 3428: Session Initiation Protocol (SIP) Extension for Instant Messaging
  • RFC 3486: Compressing the Session Initiation Protocol (SIP)
  • RFC 3515: The Session Initiation Protocol (SIP) Refer Method
  • RFC 3581: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing
  • RFC 3761: The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)
  • RFC 3824: Using E.164 numbers with the Session Initiation Protocol (SIP)
  • RFC 3891: The Session Initiation Protocol (SIP) "Replaces" Header
  • RFC 3892: The Session Initiation Protocol (SIP) Referred-By Mechanism
  • RFC 3903: Session Initiation Protocol (SIP) Extension for Event State Publication
  • RFC 4028: Session Timers
  • RFC 4320: Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction
  • RFC 4474: Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)
  • RFC 4508: Conveying Feature Tags with the Session Initiation Protocol (SIP) REFER Method
  • RFC 4566: SDP: Session Description Protocol

Partially Supported RFCs[edit]

  • RFC 3264: An Offer/Answer Model with the Session Description Protocol (SDP) (This is only partially supported, since many of the responsibilities are up to the app)
  • RFC 3313: Private Session Initiation Protocol (SIP) Extensions for Media Authorization (Only the P-Media-Authorization header field is supported. No logic is provided.)
  • RFC 3323: A Privacy Mechanism for the Session Initiation Protocol (SIP) (The Privacy header field is supported. Server logic is not provided, but endpoint logic is.)
  • RFC 3327: Session Initiation Protocol (SIP) Extension Header Field for Registering Non-Adjacent Contacts (Only the Path header field is supported. No logic is provided. This will change when the outbound implementation is merged in.)
  • RFC 3329: Security Mechanism Agreement for the Session Initiation Protocol (SIP) (Only the Security-Client, Security-Server, and Security-Verify header fields are supported, the proxy mechanisms are not.)
  • RFC 3388: Grouping of Media Lines in the Session Description Protocol (SDP) (trivial support; apps have access to group attributes, but groups are not handled for the app)
  • RFC 3605: Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP) (trivial support)
  • RFC 3608: Session Initiation Protocol (SIP) Extension Header Field for Service Route Discovery During Registration (The Service-Route header field is supported, registrar mechanism is not. The endpoint mechanism appears to be supported).
  • RFC 3841: Caller Preferences for the Session Initiation Protocol (SIP) (Only Accept-Contact, Reject-Contact, and Request-Disposition header fields are supported. No proxy support.)
  • RFC 3911: The Session Initiation Protocol (SIP) "Join" Header (Only the Join header field is supported, no other support.)
  • RFC 3966: The tel URI for Telephone Numbers (Partial support. The isub and phone-context parameters are not supported. The comparator isn't implemented.)
  • RFC 4483: A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages (Trivially supported, the application layer must do most of the work.)
  • RFC 4488: Suppression of Session Initiation Protocol (SIP) REFER Method Implicit Subscription (The Refer-Sub header field is supported, and there is some endpoint support.)