Difference between revisions of "ReSIProcate Current Features"
Jump to navigation
Jump to search
(→Partially Supported RFCs: added more RFCs to the list based on Byron's feedback) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | * Uses the | + | * Uses the [http://opensource.org/licenses/vovidapl.php Vovida Software License v1.0 (Vovida)] (BSD like) |
* UDP, TCP, TLS transports (DTLS almost complete) | * UDP, TCP, TLS transports (DTLS almost complete) | ||
− | * Easy to plug | + | * 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 | + | * 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 | + | * ENUM support |
* STUN Server Support | * STUN Server Support | ||
* Multiple SIP stacks in the same application | * Multiple SIP stacks in the same application | ||
Line 27: | Line 27: | ||
* 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. | + | * 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 33: | Line 33: | ||
** Windows XP and 2003 Server | ** Windows XP and 2003 Server | ||
** (most things with modern C++ compilers) | ** (most things with modern C++ compilers) | ||
− | * Dialog Usage Manager (DUM) | + | * [[DUM Overview|Dialog Usage Manager (DUM)]] layer for UAs |
==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 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 | ||
Line 62: | 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 | + | === Partially Supported RFCs === |
− | * | + | |
− | * | + | * 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.) |
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.)