[p2p-sip] Evaluating SIP implementations
henry at pulver.com (Henry Sinnreich) Tue, 10 January 2006 14:34 UTC
From: "henry at pulver.com"
Date: Tue, 10 Jan 2006 08:34:33 -0600
Subject: [p2p-sip] Evaluating SIP implementations
In-Reply-To: <719D5CCC2F6E3644B0A9F5C9B1D0008801567D4F@esebe104.NOE.Nokia.com>
Message-ID: <200601101434.k0AEYjGt022854@cs.columbia.edu>
Thanks for all the good information about available SIP implementations! It is hard to judge how much compliant SIP implementations are unless we go by some objective and agreed criteria. http://www.huisetalage.nl/sip/stacks.pdf is a good start but some more is required. Here is a proposed list of RFCs that a mixed P2P and CS SIP solution has to support. A matrix with check boxes would be the next step. Maybe Robert Sparks can also advise us how the SIPit does it now. I would be interested: 1. Is this list reasonable? 2. How does one check actual compliance with such a list? 3. How would a _reasonable_ compliance matrix look like? Here is what I mean (some links may be stale already). What do you think? Sinnreich, H., Lass S., Stredicke C: " IP Telephony Device Requirements and Configuration" http://www.ietf.rg/internet-drafts/draft-sinnreich-sipdev-req-08.txt Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. Sparks, R., "The Session Initiation Protocol (SIP) Refer Method", RFC 3515, April 2003. Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. Sparks, R., "Internet Media Type message/sipfrag", RFC 3420, November 2002. Johnston, A., Donovan, S., Sparks, R., Cunningham, C. and K. Summers, "Session Initiation Protocol (SIP) Basic Call Flow Examples", BCP 75, RFC 3665, December 2003. Johnston, A., Donovan, S., Sparks, R., Cunningham, C. and K. Summers, "Session Initiation Protocol (SIP) Public Switched Telephone Network (PSTN) Call Flows", BCP 76, RFC 3666, December 2003. Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional Responses in Session Initiation Protocol (SIP)", RFC 3262, June 2002. Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIP Servers", RFC 3263, June 2002. Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. Niemi, A., "Session Initiation Protocol (SIP) Extension for Event State Publication", RFC 3903, October 2004. Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C. and D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging", RFC 3428, December 2002. Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE Method", RFC 3311, October 2002. Faltstrom, P., "E.164 number and DNS", RFC 2916, September 2000. Peterson, J., "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323, November 2002. Jennings, C., Peterson, J. and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325, November 2002. Mahy, R., Biggs, B. and R. Dean, "The Session Initiation Protocol (SIP) "Replaces" Header", RFC 3891, September 2004. Arkko, J., Torvinen, V., Camarillo, G., Niemi, A. and T. Haukka, "Security Mechanism Agreement for the Session Initiation Protocol (SIP)", RFC 3329, January 2003. Rosenberg, J. and H. Schulzrinne, "An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing", RFC 3581, August 2003. Rosenberg, J., Schulzrinne, H. and P. Kyzivat, "Caller Preferences for the Session Initiation Protocol (SIP)", RFC 3841, August 2004. Sparks, R., "The Session Initiation Protocol (SIP) Referred-By Mechanism", RFC 3892, September 2004. Peterson, J., Liu, H., Yu, J. and B. Campbell, "Using E.164 numbers with the Session Initiation Protocol (SIP)", RFC 3824, June 2004. Mahy, R., "A Message Summary and Message Waiting Indication Event Package for the Session Initiation Protocol (SIP)", RFC 3842, August 2004. Mahy, R., "A Call Control and Multi-party usage framework for the Session Initiation Protocol (SIP)", draft-ietf-sipping-cc-framework-03 (work in progress), October 2003. Rosenberg, J., "A Session Initiation Protocol (SIP) Event Package for Conference State", draft-ietf-sipping-conference-package-08 (work in progress), December 2004. Rosenberg, J., "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)", draft-ietf-sip-callee-caps-03 (work in progress), January 2004. Peterson, J., "Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)", draft-ietf-sip-identity-05 (work in progress), September 2004. Mahy, R., "Connection Reuse in the Session Initiation Protocol (SIP)", draft-ietf-sip-connect-reuse-03 (work in progress), October 2004. Rosenberg, J., "Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)", draft-ietf-sip-gruu-02 (work in progress), July 2004. Levin, O., "Suppression of REFER Implicit Subscription", draft-ietf-sip-refer-with-norefersub-00 (work in progress), January 2005. Johnston, A. and R. Sparks, "Session Initiation Protocol Service Examples", draft-ietf-sipping-service-examples-07 (work in progress), July 2004. Rosenberg, J., "An INVITE Inititiated Dialog Event Package for the Session Initiation Protocol (SIP)", draft-ietf-sipping-dialog-package-05 (work in progress), November 2004. Sparks, R., "Session Initiation Protocol Torture Test Messages", draft-ietf-sipping-torture-tests-04 (work in progress), July 2004. Sparks, R. and A. Johnston, "Session Initiation Protocol Call Control - Transfer", draft-ietf-sipping-cc-transfer-03 (work in progress), October 2004. Petrie, D., "A Framework for Session Initiation Protocol User Agent Profile Delivery", draft-ietf-sipping-config-framework-05 (work in progress), November 2004.. Camarillo, G. and A. Roach, "Subscriptions to Request-Contained Resource Lists in the Session Initiation Protocol (SIP)", draft-ietf-sipping-uri-list-subscribe-02 (work in progress), January 2005. Jennings, C. and J. Peterson, "Certificate Management Service for SIP", draft-ietf-sipping-certs-01 (work in progress), October 2004. Wijk, A., "Framework of requirements for real-time text conversation using SIP.", draft-ietf-sipping-toip-00 (work in progress), October 2004. RFC 2327: "SDP: Session Description Protocol" by M. Handley, V. Jacobson, IETF, April 1998 RFC 3999: "The TEL URI for Telephone Numbers" by H. Schulzrinne, IETF, June 2004. Johnston, H. Sinnreich, A. Clark, and A. Pendleton, " SIP Service Quality Reporting Event" IETF Internet-Draft, October 2004, Work in progress. RFC 3550: "RTP: A Transport Protocol for Real-Time Applications" by H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, IETF, July 2003. RFC 3551: "RTP Profile for Audio and Video Conferences with Minimal Control " by H. Schulzrinne and S. Casner, IETF, July 2003. RFC 3761: "The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)" by P. Falstrom and M. Mealing, IETF, April 2004. RFC 3952: "Real-time Transport Protocol (RTP) Payload Format for internet Low Bit Rate Codec (iLBC) Speech" by A. Duric, S. Andersen, IETF, December 2004. RFC 3611: "RTP Control Protocol Extended Reports (RTCP XR)" by T. Friedman, Ed., R. Caceres, Ed., A. Clark, November 2003. RFC 3711: " The Secure Real-time Transport Protocol (SRTP)," by M. Baugher et al, March 2004 RFC 3830: "MIKEY: Multimedia Internet KEYing" by J. Arkko et al, August 2004 "Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)" by J. Arkko et al, draft-ietf-mmusic-kmgmt-ext-12.txt, November 2004. RFC 2246: "The TLS Protocol Version 1.0" by T. Dierks and C. Allen, IETF, January 1999 RFC 3489: "STUN-Simple Traversal of UDP Through NAT" by J. Rosenberg et al. IETF, March 2003. "Traversal Using Relay NAT" by J. Rosenberg, R. Mahy, and C. Huitema, IETF Internet-Draft, October 2004. "Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Multimedia Session Establishment Protocols" by J. Rosenberg, IETF Internet Draft, October 2004. "Symmetric RTP and RTCP Considered Helpful" by D. Wing, IETF Internet Draft, October 2004. RFC 2833: "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals" by H. Schuzrinne and S. Petrack, IETF, May 2000. Thanks, Henry -----Original Message----- From: Kai.Vehmanen at nokia.com [mailto:Kai.Vehmanen at nokia.com] Sent: Tuesday, January 10, 2006 4:10 AM To: p2p-sip at cs.columbia.edu Subject: Re: [p2p-sip] OpenWengo Hi, On 10 Jan 2006, Enrico Marocco wrote: > Aymeric Moizard wrote: >> I maintain the eXosip stack. (http://www.antisip.com/download/) >> It's wriiten in C, portable, simple to use, simple to extend and it's >> GPL code. >> >> I would (and will anyway) personally help much for adding p2p support >> in it. > >Obviously the willingness of the maintainer to cooperate is a >big bonus for the stack ;-) well, some of us in the Sofia-SIP project would be also interested in this work. It seems we are all here. :) Anyways, not to turn this into full marketing thread, eXosip/osip is a good combo as well, and there are also couple of other very good alternatives available now such as the new pjsip stack (plus of course vovida and resip): http://www.bulukucing.org/pjsip.html A comparison of basic features is available at: http://www.huisetalage.nl/sip/stacks.pdf A more complete feature set SIP/SDP wise for Sofia-SIP can be found at: http://sofia-sip.sourceforge.net/refdocs/sofia_sip_conformance.html As for our win32/pocketpc support, we basicly have the code working under both cygwin/mingw and natively compiled with visualc, but no pocketpc-support yet. Some people have been testing the code on OSX. >I think a good starting point should be the implementation on >the existing api of a simple application acting as a p2p node; >if your stack is well suited for such task, it could be a >valid choice IMHO. With Sofia-SIP, an easy start could be for instance to add p2p-node functionality to the the gaim+sofia-sip combo: http://sofia-sip.sourceforge.net/ssip-gst.html Especially without audio support (no gstreamer needed => turn gaim into a p2p SIP-IM app), this is very easy combo for developers, as both Gaim and Sofia-SIP are well documented and have lots of example code available. Similar thing can be of course done with other stacks as well. -- http://research.nokia.com/people/kai_vehmanen/ Networking Technologies Laboratory, Nokia Research Center
- [p2p-sip] OpenWengo Henning Schulzrinne
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Henry Sinnreich
- [p2p-sip] OpenWengo Kasthuri Ram V.
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Kai.Vehmanen@nokia.com
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Aymeric Moizard
- [p2p-sip] OpenWengo Kasthuri Ram V.
- [p2p-sip] OpenWengo Benny Prijono
- [p2p-sip] OpenWengo Eunsoo Shim
- [p2p-sip] Evaluating SIP implementations Henry Sinnreich
- [p2p-sip] OpenWengo Benny Prijono
- [p2p-sip] OpenWengo Sotiris Salloum
- [p2p-sip] OpenWengo Eunsoo Shim
- [p2p-sip] OpenWengo Aymeric Moizard
- [p2p-sip] Evaluating SIP implementations Benny Prijono
- [p2p-sip] Evaluating SIP implementations Henry Sinnreich
- [p2p-sip] Evaluating SIP implementations Eunsoo Shim
- [p2p-sip] Evaluating SIP implementations Marshall Eubanks
- [p2p-sip] Requirements Explosion (was: Evaluating… David Barrett
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Matthews, Philip Philip
- [p2p-sip] OpenWengo Enrico Marocco
- [p2p-sip] OpenWengo Aymeric Moizard