Permalink
Cannot retrieve contributors at this time
<h2> Key contributors </h2> | |
Substantial contributions made by the following people: | |
<ul> | |
<li> Jeroen Van Bemmel (Lucent) contributed key ideas for JSIP 1.2 | |
and helped fix several bugs in the RI and answered questions on the | |
mailing list. | |
<li> Sarit Galanos (Radvision) contributed key design ideas for JSIP 1.2. | |
<li> Olivier Deruelle wrote a lot of the code for V 1.1 when he | |
was a guest researcher at NIST </li> | |
<li> Emil Ivov contributed the TCK for the Transaction and Dialog layer for | |
version 1.1 that served as the basis for the v 1.2 TCK. Emil presented | |
a convincing use case for JSIP 1.2 to support multiple stacks in a | |
JVM. </li> | |
<li>Jeroen van Bemmel contributed significant effort to bring the TCK up to | |
version 1.2. Jeroen validated the TCK against another implementation. </li> | |
<li> Ben Evans (Open Cloud) contributed several ideas to the design | |
of JAIN-SIP 1.2 and participated enthusiastically in mailing list | |
discussions. </li> | |
<li> Jeff Keyser Contributed the initial version of the Transaction layer | |
to NIST-SIP 1.1 that served as the basis for NIST-SIP 1.2. | |
Jeff also suggested the architecture for MessageProcessors and | |
extensiblity that is a part of the implementation architecture. | |
</li> | |
</ul> | |
<hline/> | |
<h2> Acknowledgements </h2> | |
<ul> | |
<li> | |
Marc Bednarek and Christophe Chazeau were guest researchers at NIST when | |
NIST-SIP 1.0 and NIST-SIP 1.1 were in development. Their contributions | |
are acknowledged. | |
<li> | |
The JAIN-SIP 1.1 API design is largely based on the NIST implementation | |
experiences of JAIN-SIP 1.0. The help of Chris Harris from DynamicSoft | |
(Spec Lead for JAIN-SIP 1.0) in understanding JAIN-SIP 1.0 is hereby | |
acknowledged. Implementing JAIN-SIP-1.0 was a great learning experience. | |
Hopefully our hindsight is good. | |
</ul> | |
<p> Design contributions to JAIN SIP 1.1 API were made by: | |
<ul> | |
<li> Jeroen van Bemmel (Lucent) suggested several key ideas. | |
<li> | |
Ben Evans from Open Cloud contributed several ideas to the design | |
of JAIN-SIP 1.2 and participated enthusiastically in mailing list | |
discussions. </li> | |
<li> Brian O'Neill and Josh Burger (currently at BaseVoice). | |
<li> Dave Ferry and Ben Evans from Open Cloud inc. | |
<li> Brad Templeton suggested that Dialog.sendBye be changed to the more | |
generally useful Dialog.sendRequest. | |
<li> | |
Emil Ivov, Brad Templeton and others requested a method to create a cancel | |
and Ack request for a client transaction and consequently | |
ClientTransaction.createCancel was added to the API. | |
</ul> | |
<hline/> | |
<p> | |
Bug Reports and enhancements for NIST-SIP were contributed | |
by the following people: | |
<ul> | |
<li> Brad Templeton noticed bugs in the Transaction/Dialog layer | |
Brad suggested that Dialog.sendBye be changed to a more general | |
Dialog.sendRequest Brad templeton noticed that the stack was | |
sending out a Trying immediately and thereby not giving the application | |
a chance to do so. | |
<li> Emil Ivov Contributed IPV6 Support. Emil Cotributed the Video Softphone | |
under GPL Licensing. (See acknowledgement above) later moved to | |
its own java.net project (see sip-communicator.dev.java.net). | |
Emil noticed spec documentation bugs. | |
Emil uncovered bugs in the transaction layer | |
implementation for several corner cases. Emil and Iain Macdonnell from | |
Sun reported a problem with SDP parsing. Emil discovered a bug in the | |
Server transaction implementation. Emil contributed comprehensive | |
state machine unit tests of the Transaction layer to the TCK. Emil | |
set up the build automation cruise control scripts. | |
<li> Andreas Bystr�m reported bugs in set/get methods for Authentication | |
headers (quotes were missing). Andreas reported bugs in the | |
SDP implementation. Andreas helped to unit test call flows. Andreas | |
found documentation bugs and reported problems and incompleteness with | |
the TCK. Andreas noticed problems with Acking 487. Ack should be sent | |
before the TU gets called. Andreas noted that CANCEL should not | |
contain content. Andreas noted that a dialog can change from client to | |
server in the middle of the dialog (for example client sends a re-invite | |
and puts caller on hold -- see sipping service examples draft). The | |
RI was not allowing this. This was fixed and tested by Andreas. | |
<li> Antonis Karydas reported bugs in the implementation of the JAIN transaction | |
model. Server transactions were being created with non-null TID | |
on reciept of invites. Antonis reported that To/From headers should | |
not be restricted only to use SIP urls. Antonis reported that | |
route sets were not properly maintained in the DialogImpl. Antonis | |
reported that the DefaultRouterImplementation should be able to handle | |
NON-SIP URLs. Antonis fixed a bug in Dialog.sendRequest() and | |
Dialog.createRequest(). Antonis reported several bugs in the strategy | |
being used for dealing with ACKs for 4xx responses. Antonis reported | |
a problem in handling Server transaction timeouts and posted a fix | |
for this problem. Antonis reported a problem in content length for | |
generation of responses. Antonis reported a problem with closely | |
spaced ACKs for CANCELed Server Transactions. Antonis reported that | |
CANCEL after OK was not properly handled (stack should respond OK | |
to cancel and not bother application. | |
<li> Beichuang reported bugs in the IM Client and presence server. BC also | |
noted that extension methods were not working (Dialogs were not being | |
created). | |
<li> Steve Crossley reported bugs in the parser and setting local/remote party | |
of dialog layer. Steve contributed a fix to the next hop determination | |
in the Dialog code that could allow it to deal with legacy systems. | |
Steve noticed that the short form of Refer-To was not supported in | |
the parser. Steve noticed that null pointers were being generated | |
when SessionDescriptionImpl was being cloned with null fields. | |
Steve reported that content length was being set to 0 when the | |
content of the SIP message is specified as an Object. | |
<li> Viswashanti Raj Kadiyala reported a bug and contributed a bug fix | |
in the initialization of the tcp message channel. Shanti also | |
reported a bug and contributed a bug fix for reciever tagging for | |
Via headers. | |
<li> Andrew Prokop reported a bug in cloning of Authentication headers. | |
<li> Bob Johnson noticed documentation bugs. | |
<li> Mark Smith noticed that there were bugs in the handling of lr in the proxy. | |
<li> Tiago Dias (Altitude software) noticed that there was a bug with | |
subscribe/notify processing in the proxy. Tiago noticed that | |
Notify processing in the proxy (presence extension) | |
was not returning final response immediately and contributed | |
a bug fix for the proxy that rectified the problem. | |
<li> Roberto Tealdi reported a problem in instantiating multiple | |
stacks in multi-homed hosts. | |
<li> Laurent Schwitzer noticed that events were being dropped (not delivered | |
to application) when request and response were closely spaced | |
in time. Laurent noticed that the recieved parameter was not | |
handling ipv6 address types. | |
<li> Stuart Woodsford (British Telecom) noticed a bug in the parsing of host | |
names when there are more than 3 components in the host name. | |
<li> Brian J. Collins discovered bugs in the implementation of SdpFactory. | |
<li> Dekeyzer Dmitri noted that PRACK was not updating the Dialog | |
state and therefore route sets were not being applied appropriately. | |
<li> Willem Romijn AT&T corrected the payload type constant for H.263 codecs | |
in SdpConstants.java | |
<li> Peter Parnes noted a bug in handling null messages. Null messages | |
could be sent to keep alive firewall NAT mappings. Peter tested | |
the stack on a dual multiprocessor hyperthreaded machine and | |
uncovered some race conditions in the transaction state machine | |
implementation that were later fixed. | |
<li> Christophe at yahoo.fr noticed a bug in the transaction state | |
machine when the retransmission filter is enabled. Christophe noted a | |
bug in IOHandler when an IO Exception occurs while transmitting via TCP. | |
Christophe noted a stack bug when IOException occurs (timer tick needs | |
to be updated). Christophe tested the stack for Exception conditions | |
under TCP Transport and uncovered some bugs in retransmission filter | |
implementation under these conditions. Christophe noted that the stack | |
was trying to retry connections for sending responses. This is against | |
the SIP RFC (request/response should use the same connection) and it | |
was fixed. | |
<li> Gareth Deli noticed a bug in TCP transport. | |
<li> Ben Evans (Open Cloud) | |
noticed a transaction state machine implementation error | |
in SIPServerTransaction. | |
Ben Evans reported numerous TCK related problems. | |
<li> Zvalli at dev.java.net reported bugs in the parsing of warning headers and | |
found a bug when there was a whitespace separating the header name | |
and the : following it. | |
<li> Sverker Abrahamsson reformatted everything to conform to the java | |
style guide and eliminated many annoying javadoc problems. | |
<li> Bruno Konik torture tested the parser and unearthed some | |
problems with the parsing of SIP urls and methods. | |
These problems were fixed. Bruno contributed the torture test | |
cases from the IETF torture test case draft-ietf-sipping-torture-tests.txt | |
that are included in the torture test (tests/torture) directory. | |
Bruno noted that the Rack header was encoded in the wrong way. | |
Bruno noted that SIPDate header was encoded in the wrong way (should | |
use 24 hour date format). | |
<li> Wanrong Lin noted that the spec called for a dummy dialog to be created | |
even if there is no possibility of a transaction being assigned to | |
a dialog. This was fixed - now a static dummy dialog is assigned to a | |
transaction that has no possibility of being assigned to any dialog. | |
<li> Mafasumi Watanabe noted that setting message content as a string should | |
compute content length after converting to byte rather than directly | |
take length() to allow for double byte character set. | |
<li> Emmanuel Proulx noticed a bug when trying to send large amounts of | |
data via TCP transport that was caused by a race condition in | |
the coded that caches threads and connections. | |
A new configuration parameter gov.nist.javax.sip.MAX_MESSAGE_SIZE | |
was added to limit the max size of messages. | |
<li>Venkatesh from CMU noticed that there were threads hanging around | |
even after all stack resources had been released. This was corrected | |
by adding a stack finalization method that exits all threads. The stack | |
now runs happily as an applet. | |
<li> Dave Stuart (SIPQuest Communications) discovered a deadlock with | |
the stack and submitted a bug fix for this. Dave also discovered an | |
error with ParametersHeader in converting String to boolean. | |
<li> Thomas Froment submitted a bug fix for parsing of | |
host:port as discovered in the CERT tests (there could be one or more | |
spaces between host and port). Thomas suggested that the main scanner | |
thread be eliminated from the SIPTransaction Stack and Timers be used | |
Thomas Fromet and Pierre De Rop suggested a fast lookup path be | |
added for looking up Transactions. An auxilliary hash table for quick | |
lookup was added based on their suggestions. Thomas contributed | |
a bug fix for sending responses in server transactions. The maddr | |
parameter was being ignored. | |
<li>Alex Rootham from Blue Slice noticed that out of sequence messages | |
directed to a Dialog should be responded to with a 500 (Internal Server | |
Error) by a UAS. This is decidedly strange but the spec does say so. This | |
support was added to the dialog layer of the stack. | |
<li>Bruce Evangelder from Soleo communications found a race condition | |
with the UDP message processor. | |
<li>Mike Andrews contributed the idea of a configurable network layer. This | |
can be used to better integrate with a container and provide management | |
and other functionality. | |
<li> Matt Keller noticed a bug where the ACK for 300-699 responses was being | |
sent to the wrong destination because the contact header in the last response | |
was being ignored. Mat sent in a bug fix for this problem. </li> | |
<li> Bill Roome (AT&T research) noted that Applications may want to see | |
the route header. The stack was previously stripping it. | |
A configuration parameter was added to pass the route header up to | |
the application. Bill reported a null pointer exception bug and fixed | |
some make file bugs. This design flaw has been rationalized in version | |
1.2 of the JSIP API. </li> | |
<li> Stefan Marx found a bug in the SipUriImpl.getHeaderNames function. </li> | |
<li> John Martin from RockSteady noticed some uncessary synchronization | |
in the MessageHandler that was removed. </li> | |
<li> Xavi Ferro from Vida Software helped debug a memory leak when 4xx | |
responses are sent in response to dialog creating requests. | |
<li> Daniel Martinez contributed TLS support. </li> | |
<li> Hagai Sela added support for symmetric NAT (rport parameter handling | |
in via header). Hagai Reported a bug where ACK was not seen by application | |
on re-invite. Hagai noticed a bug in computation of next hop | |
for strict routers when the request is sent through | |
Dialog.sendRequest(transaction). This resulted | |
in the route being stripped twice. Hagai contributed a bug fix in the | |
Dialog implementation for route management for strict routers. | |
Hagai contributed a bug fix for the Default router (for the case | |
of handling strict routing ). Hagai reported a bug in the updating of | |
route set for established dialogs. (Only Remote target should be updated | |
and not route set). | |
</li> | |
<li> Rob Daugherty (Lucent) detected a bug in handling of TCP messages | |
and contributed a fix for this. </li> | |
<li>Jeff Adams ( Polycomm.com ) submitted a patch for the sniffer tool. | |
Jeff submitted a patch for setting the timer on the Transaction Timer. </li> | |
<li> Pierre Sandstrom submitted a bug fix for the Trace Viewer to fix a | |
problem where some messages were not showing up in the viewer. </li> | |
<li> S. R. Jeyashankher from Lucent Submitted a bug fix | |
for error conditions where one cannot bind to local port </li> | |
<li>Greg DuPertuis found a bug in the generation of unique branch IDs and | |
submitted a fix for it </li> | |
<li>Shu-Lin Chen from the Communications Research Institute (Canada) submitted | |
a bug fix for timeout post processing. </li> | |
<li> Banibrata Dutta submitted suggestions for code cleanup </li> | |
<li> Robert Rosen submitted a fix for a race condition in generating new | |
CallIDs and with switching lexers. | |
<li>Daniel Machin Vazquez-Illa submitted a bug fix for the Dialog State | |
Machine on processing 3XX-6XX class responses in Server Transactions. | |
Daniel noticed that the remote sequence number for server dialog needed | |
to be updated even on unsuccessful server transaction processing. | |
</li> | |
<li>Mario Mantak posted a bug fix for a missing short form header name | |
for the Event header </li> | |
<li> Jordan Schidlowski of MDCI fixed a bug that pegs the CPU when | |
pending requests are directed towards a transaction under some heavy | |
load conditions. </li> | |
<li> Dan Muresan submitted changes that speed up cloning of requests | |
that did not need to use reflection for cloning. </li> | |
<li> Jeff Heynie submitted a bug fix for the URL parser </li> | |
<li> Attila submitted a fix for a race condition in ACK processing </li> | |
<li> Frank Reif submitted a bug fix for a race condition in | |
SIPServerTransaction </li> | |
<li> Ivelin Ivanov <ivelin.ivanov@mobicents.org> ported | |
some examples to tck test cases </li> | |
<li>Yanick Belanger noticed a memory leak in NOTIFY client transaction | |
which was fixed. Yankick also made some performance enhancements to the | |
parser. Yanick noted a bug in random generation of call IDs and branch IDs. | |
Yakick contributed code to support offloading of TLS requests. | |
Yanick contributed performance enhancements and cleanup to StringMsgParser. | |
Yanick contributed performance ehnancements to the Message and header | |
factories. | |
Yanick measured the performance on contemporary high speed processors | |
and reported these results. | |
</li> | |
<li> Kathleen McCallum contributed the Third Party Call Control (tpcc) example | |
and the authentication example. </li> | |
<li> Jose Miguel Frietas, Nuno Silva ( PT INOVAO - EST DEPARTMENT ) and | |
Alexandre Miguel Silva Santos ( Aveiro University - Portugal) contributed | |
parsers and headers for IMS. These are included in the Implementation | |
of the Factory interfaces but are not yet part of the JSIP standard. </li> | |
<li>Lebing Xie fixed bugs in the contributed IMS headers. </li> | |
<li>Ricardo Borba (Natural Convergence) reported bugs in the Dialog | |
implementation and also in the UDP Message processor. Ricardo contributed | |
a patch for UDPMessageProcessor.java. Ricardo made several contibutions | |
related to hardening the stack and guarding it against application | |
programming errors: | |
<ul> | |
<li> Fixed Session Description to allow it to take a null session name. | |
<li> Fixed Sdp parser to handle mixed \r , \n and \r\n | |
<li> Fixed case sensitivity issue with content type and content subtype. | |
<li> Added a Safe timer task. If an exception occurs in the timer the stack does not exit. | |
<li> EventScanner.java : Fixed exception handling so that exceptions in the listener dont exit the stack. | |
<li> SessionDescriptorImpl is now a deep copy | |
<li> Added listener thread (liveness) auditing facitlity | |
<li> Added Transaction table (leak) auditng facility. | |
</ul> | |
These will be of particular importance to you if you are building robust server applications. Examples have been provided for these new facilities. | |
</li> | |
<li>Brett Buckingham (Natural Convergence) submitted a patch for a | |
reliable timer that does not cause the stack to die when a cancelled | |
timer is cancelled during stack stop and restart. Brett contributed | |
a fix for RFC2543 CANCEL handling.</li> | |
<li>Peter Musgrave (Newheights Networks) contributed code for | |
RFC 3892 (Refer method ) and Session Timer (RFC 4028) headers | |
and parsers for the same. </li> | |
<li>Hai Phan noticed that responding with a From tag different from the | |
original request From tag with automatic dialog support enabled, resulted | |
in memory leak due to Dialogs getting allocated despite invalid | |
Responses. | |
</li> | |
<li> John Barton noticed an | |
issue with PRACK being dropped under heavy load. This issue has been fixed. | |
</li> | |
<li> Peter Li <lishihwei@gmail.com> sent in a bug fix for parsing of IPV6 | |
addresses. | |
</li> | |
<li>Ryan Mitchell Noticed that the ACK for 3xx responses should not use | |
the contact header for constructing the Request URI. Using the contact header | |
will direct the ACK to thw new location. This was fixed in the RI. | |
</li> | |
<li>Anil H noticed a problem with retransmission of ACK in the case of | |
RE-INVITE processing. He contributed a bug fix which was applied to the RI. | |
</li> | |
<li>Nabeel Mohammed submitted a patch for dealing with RFC 2543 backwards | |
compatibility in CANCEL requests. This was applied to the RI. </li> | |
<li> Jens Tinfors submitted patches for SIPDialog.equals and SIPDialog.createFromNOTIFY. </li> | |
<li> Raghav Ramesh (BT) noticed an issue with CANCELing INVITES for a load balanced appliction </li> | |
<li> Roger M. Persson submitted a bug fix for closing message channels on stop. </li> | |
<li> Sebastien Mazy contributed a patch that allows storing application data in SIPMessage-s. </li> | |
<li> Aayush Bhatnagar (Rancore Technologies) | |
contributed a patch for header definitions and parsers | |
for several IMS Headers. These headers complete the IMS Package </li> | |
<li>Hauke D<haukex@zero-g.net> Noticed a bug having to do with premature Dialog deletion </li> | |
<li>Simon Shieh ( Nortel Networks ) noticed a bug in the caching of TCP connections. </li> | |
<li>Subramanian Thamaraisamy (Cisco} reported and contributed <a href="http://java.net/jira/browse/JSIP-387">DoS attacks against JAIN SIP</a> . </li> | |
</ul> | |
<hline/> | |
<p> Following is a list of people who contributed bugs reports and fixes to | |
NIST-SIP 1.1 (which implemented the JAIN SIP 1.0 interefaces). Many of | |
these fixes carry over to NIST-SIP 1.2 and hence their contributions | |
are acknowledged in rough chronological order of first contribution. | |
Acknowledgements for contributions are listed below and in the code | |
where their contributions appear: | |
<ul> | |
<li> Chris Mills | |
<li> Maria Yndefors | |
<li> Stefan Foekel | |
<li> Jakob Schlyter | |
<li> Ganesh Jayadevan | |
<li> Steven Lass | |
<li> Kim Kirby | |
<li> Andre Pharand | |
<li> Christophe Lafaille | |
<li> Gordon Ledgard | |
<li> Robert Billingslea | |
<li> Juan Fco. Martin | |
<li> Ahmet Uyar | |
<li> Prasanna Kumar | |
<li> Lamine Brahimi | |
<li> Nadeem Anwar | |
<li> Andreas Bystr�m | |
<li> Yann Duponchel | |
<li> Thai Dang Vu | |
<li> Will Scullin | |
<li> Jeff Keyser | |
<li> Robert M. Smith | |
<li> S. Nageswara Rao | |
<li> Niklas Uhrberg | |
<li> Eero Vaarnas | |
<li> Laurent Schweizer | |
<li> M.P. Ardhanareeswaran | |
<li> Stephen Jones | |
<li> Espen Skjaeran | |
<li> Scott Holben | |
<li> Salva Rey Calatayd | |
<li> Tsun-Chieh Chiang | |
<li> Dan Timoney | |
<li> Majdi Abuelbassal | |
<li> Srinivas Maganti | |
<li> R.W. Johnson | |
<li> Emil Ivov | |
</ul> | |
<hline/> | |
<p> This code was developed in the Internetworking Technogies Group (ITG), | |
Advanced Networking Technogies Division (ANTD), the National Institute of | |
Standards and Technology (NIST). | |
<ul> | |
<li> | |
Group Manager: Doug Montgomery <dougm@antd.nist.gov> | |
<li> | |
Division Chief: David Su <david.su@nist.gov> | |
<a> <a href="http://w3.antd.nist.gov/"> http://w3.antd.nist.gov </a> | |
</ul> | |