Difference between revisions of "ReSIProcate Current Features"

From reSIProcate
Jump to navigation Jump to search
(deleted references to drafts that have become RFCs and have been included in the Support RFC list)
(→‎Partially Supported RFCs: added more RFCs to the list based on Byron's feedback)
 
(3 intermediate revisions by the same user not shown)
Line 38: Line 38:
 
==Supported IETF RFCs==
 
==Supported IETF RFCs==
  
 +
* 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 2617: HTTP Authentication: Basic and Digest Access Authentication
 
* RFC 2782: A DNS RR for specifying the location of services (DNS SRV)  
 
* RFC 2782: A DNS RR for specifying the location of services (DNS SRV)  
Line 44: Line 48:
 
* RFC 3261: SIP: Session Initiation Protocol
 
* RFC 3261: SIP: Session Initiation Protocol
 
* RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers
 
* RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers
* 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 3265: Session Initiation Protocol (SIP)-Specific Event Notification
 
* RFC 3265: Session Initiation Protocol (SIP)-Specific Event Notification
 
* RFC 3311: The SIP UPDATE Method
 
* RFC 3311: The SIP UPDATE Method
 
* RFC 3325: Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
 
* 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 3326: The Reason Header Field for the Session Initiation Protocol (SIP)
* 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 3420: Internet Media Type message/sipfrag
 
* RFC 3420: Internet Media Type message/sipfrag
 
* RFC 3428: Session Initiation Protocol (SIP) Extension for Instant Messaging
 
* RFC 3428: Session Initiation Protocol (SIP) Extension for Instant Messaging
Line 55: Line 57:
 
* RFC 3515: The Session Initiation Protocol (SIP) Refer Method
 
* RFC 3515: The Session Initiation Protocol (SIP) Refer Method
 
* RFC 3581: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing
 
* RFC 3581: An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing
* RFC 3605: Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP) (trivial support)
 
 
* RFC 3761: The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)
 
* 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 3824: Using E.164 numbers with the Session Initiation Protocol (SIP)
Line 64: Line 65:
 
* RFC 4320: Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction
 
* 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 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
 
* RFC 4566: SDP: Session Description Protocol
  
==Supported IETF Drafts (Partial List)==
+
=== Partially Supported RFCs ===
* draft-impp-srv
+
 
* draft-simple-presence
+
* 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-sip-connect-reuse
+
* 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-sip-join
+
* 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-gruu
+
* 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-sipping-mwi
+
* 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.)

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