AM 10/05/2001
parser:
 No memory leak found. (tested for all "conf/torture_file" messages)
 !!!!!Messages with unknown requests lead to segfault....!!!!!

AM 10/05/2001
transaction:
 No memory leaks found for several scenario of a transaction INVITE.

AM 10/05/2001
uac4inv in RIOUTrcverrorfinalresponse: add "=" before "atoi(..."
    if (300<=atoi(sipevent->sip->strtline->statuscode)<399)
      OnEvent_New_Incoming3xxResponse(sipevent,transaction->transactionid);
    else if (400<=atoi(sipevent->sip->strtline->statuscode)<499)
      OnEvent_New_Incoming4xxResponse(sipevent,transaction->transactionid);
    else if (500<=atoi(sipevent->sip->strtline->statuscode)<599)
      OnEvent_New_Incoming5xxResponse(sipevent,transaction->transactionid);
    else if (600<=atoi(sipevent->sip->strtline->statuscode)<699)
      OnEvent_New_Incoming6xxResponse(sipevent,transaction->transactionid);
AM 10/05/2001
uac4inv in RIOUTrcvinforesponse: remove the useless test.
AM 10/05/2001
uac4inv in : remove the useless test.
AM 10/05/2001
udp_sender,uac4inv: adds support for ECONNREFUSED






AM 16/05/2001
	
	new name for methods:

	methods from trn_*.c start with "trn_"
	used to manage transactions

	methods from msg_*.c start with "msg_"

	methods from fsm_*.c start with "fsm_", "ua", "uac" and "uas"

	methods from evt_*.c start with "evt_"

	methods from udp_*.c start with "udp_"


AM 19/05/2001

	oSIP is the official name!!!
	rename dir and clean files...

AM 20/05/2001
	
	add a nicer support for error codes.
	in int/sutil/serror.h:

	/* SIP library error code */
	typedef int err_t;

	/* success */
	#define SIP_OK             ((err_t)0)
	
	#define SIP_SYNTAX_ERROR   ((err_t)-1)
	#define SIP_NETWORK_ERROR  ((err_t)-2)
	#define SIP_GLOBAL_FAILURE ((err_t)-3)
	...

	modify files to support it!

	udp_send.c
	fsm_*
	hdr_*

AM 21/05/2001

	improve configure support.
	BUG???
	Check if it works on solaris!!!

AM 22/05/2001

	Move some headers:
	
	 create port.h from sutil/*.h
	 move some headers (all in sip)
	 header for the example are in the "example" dir.

	Remove all USE_GTK reference.


AM 27/05/2001


	New configure scripts are done. I hope it is a good start
	to support many OS...

	New files: acinclude.m4 (for libtool support)
	corrected files: Makefile.in,      test/Makefile.in
	                 src/Makefile.in   example/Makefile.in

	all configure scripts are updated:
	autoconf 2.5
	automake 1.4
	libtool  1.4

AM 28/05/2001

	Add comments.

	change sipconf_t to osip_t
	rename parser_config() to parser_configure()
	init the parser with parser_configure() in sip_start_design1()
	init the fsm_* with fsm_load* in sip_start_design1()

AM 28/05/2001

	Last modif on autotools
	bug fix in trn_manager.c /* { */

	configure options:
	--enable-debug for "-g -DENABLE_DEBUG"
	--enable-debug --enable-trace for "-g -DENABLE_DEBUG -DENABLE_TRACE"
	--enable-leakdetection for "-DENABLE_MLEAK"

AM 01/06/2001

	New logger facility (thanks to serge l.)
	user can change trace_level at run time
	(if compiled with -DENABLE_TRACE)
  	  /********************/
	  only use MACROS definitions to manipulate logfile.
	  This will allows you to compile your code with
	  either a debug version or a stripped one
	  transparently.

	  log()  is renamed to TRACE() and -DENABLE_DEBUG is
	  not used anymore.

	
	"example" commands are changed to:
	   0,1,2,3,4,5). set trace level at run time
	   d) disable all levels
	   i) start an INVITE transaction.
	   t) start N  INVITEs transactions.
	   r) start a REGISTER transaction.
	   b) start a BYE transaction.


	modif in msg_register.c
	and in example_agentlogic.c in sip_register();

	One memory leak is detected when doing register!...
	change version number
	with: cvs tag rel051

AM 04/06/2001

	"ua" has now the ability to change trace levels at run-time.
	(This is possible in all modes)
	you must use following keystrokes: 
	0 1 2 3 4 5: enable debugging levels   d: disable trace
	You will see results in log file (named lt-ua_*PID*)
	
	removed memory leak in register (in app.c: "expires")

	fix app.c: MSG_IS_ACK is replaced by !MSG_IS_ACK
	
	last modif: NEW OPTIONS
	User can now set a static SIP code for default answer to
	any incoming request. 
	c: new static return code wanted

	fix a bug found and corrected by Pascal David (pdavid@ocare.com)
	   the form (i<=atoi(string_number)) does not work!
	   Change MACRO definitions.


	NEW SERIES OF TEST on memory-leak: (compile with --enable-mleak)
	 for various return code values.
	 for INVITE, BYE, and REGISTER
	 On stress test for INVITE
	 for various situation (on process is killed or not launched!)
	 for various messages (see ./test/torture_test)

	No memory leak detected...    :-))

AM 08/06/2001

	patches from Steven donegan have been included.
	It includes stolowercase advise.... :-(
	And so many spelling errors...
	Add if (ptr!=NULL) in malloc, to make the code more readable.

	new tag for 0.5.3 added. 

AM 08/07/2001

	some BUG fixes.
	correction of the random method for reliable generation
	                                   of call-id number.
	correction in fsm_uac4inv. (retransmission of ACK)
	update of the README file.
	add first draft of documentation (not really up2date)

AM 25/07/2001

	This is the release 0.6.0
	
	it includes:
	  *  new URL parser
	  *  new SIP parser
	  *  new to, from, contact, call-id, content-type,
	  content-length, cseq, via
	  *  new MIME support

	The API for the parser is completely new. Each method
	has an err_t parameter which will be used later to
	improve error managements. (Actually, you are just
	aware that an error occurred, you don't know what is
	the type of error.)

	API for parser and sip_t:
	msg_init(sip_t **sip);
	msg_setto(to_t *to, char *string, err_t *err);
	msg_setfrom(from_t *from, char *string, err_t *err);
	msg_setcall_id(call_id_t *ci, char *string, err_t *err);
	...

	API for headers:
	 * example for to_t:
	 int          to_init(to_t **to, err_t *err);
	 void         to_free(to_t *to);
	 int          to_parse(to_t *to, char *hvalue, err_t *err);
	 int          to_2char(to_t *to, char **dest, err_t *err);
	
	The PARSER is now fully compliant and understand
	many features of SIP messages such as escaped characters,
	comments in Via, lws characters (for headers on multiple
	lines)....

	What's missing:
	  *  better granularity in error management tasks.
	  *  simple accessor API on messages and its headers.
	  *  Multiple fields on the same line separated by a
	  comma are not supported.

	The library had been adapted to the new parser and
	tested for memory leaks. The ./example/ua application
	seems to be stable. Also, some new tests for headers
	are provided.

	The example application has also been modified to reflect
	changes and I also correct the command line for application.

AM 25/07/2001

	Update of the documentation
	  *  API for the parser is updated
	  *  Some <CAUTION> where the doc is not UP 2 DATE!

	Fixes some missing features of the new parser:
	  * in msg_body_parse: use sep_boundary instead of "--++".
	  * support for empty value in generic-parameter
	
	Add a sclrspace() in url_param_set for generic-parameter.
	(this is not needed for URL but for other headers)

AM 27/07/2001

	some modification for VxWorks, (more to come...)

AM 01/08/2001

	copy of makefile.mai
	copy of makedef.vxw
	copy of all makefile.mai

	fsm_uas4req.c: BUG FIXES 
	   last state (for retransmission)
	   changed to COMPLETED and COMPLETED

	trn_manager.c: improvement
	   do not delete event when the first action of
	   a transaction is not finished. (This is mainly to
	   correct a behaviour that will occur on local tests)
	   if (transaction->lastrequest!=NULL)
	      {
     	CHANGED TO:
	   /* if (transaction->lastrequest!=NULL)
	      { */

	app.c, example_rcfile.c:
	  changes for VxWorks and command line arguments
	
	
	port_sema.c, port_thread.c, port_misc.c, port.h:
	  changes for VxWorks

	evt_server.c:
	  you can now test the parser speed:
	#define TEST_PARSER_SPEED or compile with -DTEST_PARSER_SPEED
	
	app.c and hdr_to.c:
	  update use of from_t/to_t and to_parse/from_parse

AM 03/08/2001

	Makefile.am:
	  add makedefs.vxw and makefile.mai in EXTRA_DIST
	src/Makefile.am, example/Makefile.am, test/Makefile.am:
	  add makefile.vxw in EXTRA_DIST

	evt_server.c: in the TEST_PARSER_SPEED case.
	  correct "i = msg_setcontent_length(sip, tmp, err);"
	  add "sfree(se);" 

	msg_body.c: memory leak!
	  add some sfree(sep_boundary);

AM 13/08/2001

	message body does not end with an additional CRLF
	change the parser so that it is able to calculate
	automaticly the content-length and so that it does
	not rely on the final CRLFCRLF sequence to find the
	end of the body. (see rfc2543 section 8)

	TODO: verify all situations
	  no content-length
	  content-length indicate more bytes than we have
	  is MIME still working?
	  ....

	changes in example/
	  msg_bye.c -> set cseq to cseq+1

	  example_agentlogic.c -> add a contact header in 200
	                          response for INVITE.

AM 14/08/2001
	
	changes in hdr_from: in from_parse(...)
	  if (displayname>url)
	      displayname = NULL;
	to support those kinds of url where
	the first '"' is after the first '<'

	changes in trn_manager.c: in callid_match()
	 add support for callid without @ (with
	 callid->host==NULL)


	Many improvements for the test application:
	 * optional use of a proxy for all request
	 * use the "localip" value (from the config file)
	   which is added in the via header of request.
	 * the from value in the config file must include
	   a tag. (this is mandatory in the RFC)


AM 17/08/2001
	
	* add support for the "record-route" header.
	  * modif of sip_t structure, smsg.h, smsgtype.h, msg_cparser.c,
	    msg_read.c, msg_write.c.
	  * new hdr_recordroute.c file.

	* add support for the "route" header.
	  * same as for "record-route"....
	  * new hdr_route.c file.


AM 18/08/2001

	* add optionnal code for LINPHONE from Simon Morlat for linphone0.4.0
	  (UA available at linphone.free.fr)
	  This transport part is likely to be modified a lot. 
	  This is the reason why I did not made it available 
	  in the standard distribution.
	  To use it: compile with -enable-linphone

	* Debug and Trace is now set as default option.
	  use --disable-trace --disable-debug to turn options off

	cvs tag rel060

AM 21/08/2001

	* in example_logic.c: sip_invite(): remove unused
	    test/initialisation of from and contact.

	* new file: osip/fsm.h for all fsm related declarations.
	    move method declarations from fsm_*.c/sip.h towards this file.
	* new file: osip/timers.h for all timers related declarations.
	    move method declarations from transactionnal_design*.c
	    towards this file.
	* osip/Makefile.am: add timers.h and fsm.h
	
	* trn_manager.c: call_id_match(), callleg_match(), cseq_match()
	   * return code of from_compare is 0 on success.
	   * basic tests for bad arguments (avoid crashes when called
	       with NULL args).
	
	* trn_manager.c: in trn_init()
	     * BUG: if trn_init fails, mutex is not unlocked!!!
	
	* trn_manager.c:
	     * the global mutex is now initiated by a call to 
	       trn_global_init() called from sip_start_design()

	* port.h/port_thread.c/trn_manager.c:
	     * add sthread_join()
	     * add sthread_setpriority() (for VxWorks only)
	     * add sthread_exit()
	
	* hdr_from.c: in from_compare()
	     * return code is 0 on success.
	     * basic tests for bad arguments (avoid crashes when called
	       with NULL args).

	* udp_send.c:
	    add a connect() before the sendto so the second call to sendto
	    will failed with errno setted to ECONNREFUSED.

	* fsm_uas4req.c: in fsm_load_uas4req()
	    the last transition appears twice...

	* fsm_ua*4*.c: in uac_r_rcv2XX(), uac_r_rcv3456XX(),
	               in uac_i_rcv2XX(), uac_i_rcv3456XX,
	    remove useless test (the fisrt test is always true)
	    and remove the extra code that is never executed.

AM 22/08/2001

	* udp_send.c: udp_send() is moved at the beginning
	    of the file and its declaration is removed from
	    trlayer.h (it is not a global method....)
	    getsock() is also moved at the beginning of the file.

	* fsm_uac4inv.c: in uac_i_retransmitack()
	    add a missing call to OnEvent_rcvresp_retransmission()
	    to announce reception of many 200 response.

	* trn_timers.c and timers.h:
	    remove duplicate code between uas/uac timers.
	    Now, only one thread deals with uas/uac transactions
	    new trn_execute(): This new method allow applications
	    to start the timers when they need it without using the
	    provided design.
	    Note that this module can be completely replaced by
	    applications that want to control retransmission on their
	    own.

	* url.c: BUG in next_separator()
	    tmp MAY not be assigned if before_separator==0
	    FIXED

	* smsg.h: remove msg_body_parse(). This is a private
	    method. Also, the file msg_body.c is useless and removed.
	    the method is moved in the msg_parser.c file.

	* msg_write.c remove msg_makereply() from the src/ directory
	    to the example/example_agentlogic.c file. It's more
	    appropriate.

	* hdr_body.c/smsg.h: add msg_getbody()

	* smsg.h: rename all set/get MACRO definitions to
	    msg_set*/msg_get*.
	            remove extra MACRO set/getcontenttype()

	* trn_manager.c: in trn_thread()
	    remove unused variable "i"
  
AM 23/08/2001

	* hdr_via.c/udp_send.c: modify msg_getvia(..., viat_t **dest)
	  prototype.

	* hdr_*.c/url.c:
	  * new access methods on url_param_t.
	  * new generic_param_t structure wich replace via_param_t,
	    from_param_t, to_param, content_type_param....
	  * new access methods on generic_param_t

	* hdr_*.c/smsg.h:
	  extend the accessor API (method and MACRO) of the SIP headers.

	configure.in: move to 0.6.1 release
	cvs tag rel061

AM 24/08/2001

	* hdr_header.c:
	  new prototype and new name for msg_getnheader(..., header_t **dest);
	     msg_getfindheader
	  new prototype for msg_getheader(..., header_t **dest)
	  new header_get/set method for name and value

	* msg_read.c: !MEMORY LEAK at the end of msg_2char()!
	  tmp was allocated with malloc()... instead of smalloc()
	  without any  sfree(tmp)...
	  
	* url.c/url.h: extend the accessor API to build and read url.

	* url.c: 2 bugs in url_parse():   :-(
	   ->>> password = next_separator(username+1,':','@');
	   ->>> if (port>headers) port = NULL; /* Bug fixed: 24/08/2001 */
	  
AM 26/08/2001

	* hdr_from.c: from_char(), from_parse()
	   1. when quotes are used for the displayname,
	   the parser now include them in the displayname.
	   This is for interoperability issue with other
	   limited stack.
	   2.  
	        from_params = strchr(url,';');
	    changed to:
	        char *host = strchr(url,'@');
		if (host!=NULL)
	      	  from_params = strchr(host,';');
		else
		  from_params = strchr(url,';');


	* msg_parser.c:
	  Add support for multiple header on the same line.
	   a nasty behavior is that we can't print the message
	   as it was received! This stack only output
	   a message by using multiple lines for multiple fields.

	* msg_parser.c:
	  When LWS are found, \n and \t are replaced by SPACE.
	   Same remark as above...

	* url.c: in url_parse()
	  be sure the host and port part of the url
	  has no SPACEs around.

AM 27/08/2001

	* route.c/record_route.c:
	  new method record_route_2char() wich ALWAYS
	  use brackets which are mandatory for route
	  and record_route headers.

	* test/Makefile.am:
	* example/Makefile.am:
	  add the following line to enable building the package
	  in a saparate directory.
	     INCLUDES = -I$(top_srcdir)

	cvs tag rel062



	