***************************
** SIP/SDP TTCN-3 codecs **
***************************


This directory contains the sources of the codec and the validation test
suites.


CoDec
-----

The CoDec itself is located in the c++ directory. The following files are
required to build it:
	c++/codec.h
	c++/init.cpp
	c++/Regex.h
	c++/sdp_codets.cpp
	c++/sdp_codets.h
	c++/sip_codets.cpp
	c++/sip_codets.h
	c++/libcommon_codets.h
	c++/isup_codets.cpp
	c++/isup_codets.h

c++/EchoPort.cpp and c++/EchoPort.h contain an implementation of the EchoPort
(System Adapter) which is needed only to execute the loopback tests in the
validation test suite.


This CoDec is based on the T3DevKit toolkit. It can be build in two ways as it
is documented in the user manual (Sections "Usage" & "Low level usage")
	http://t3devkit.gforge.inria.fr/doc/userref/userrefch2.html#x3-220002.3
	http://t3devkit.gforge.inria.fr/doc/userref/userrefch2.html#x3-230002.4
	http://t3devkit.gforge.inria.fr/doc/userref/userrefap1.html#x9-75000A

The easiest way is to use the generic makefile from T3DevKit and configure the
T3DK_XXXXXX variables accordingly. This is the method used in the tests
containing in this directory (simple tests, torture tests & loopback tests).
	c++/Makefile
	validation/TortureTests/Makefile
	validation/LoopbackTests/Makefile

In order to build another test suite, it is possible to copy one of these
makefiles and modify the variables T3DK_TTCN_SOURCES, T3DK_CXX_SOURCES and
T3DK_C_SOURCES to include the wanted files (TTCN-3 source files and/or
additional C/C++ to implement the adapters for example).

If the implementation of a runtime module (for example the System Adapter) is
not based on the base implementation provided by T3DevKit, then it will be
necessary to disable it in the makefile so that the TRI-SA functions are not
defined twice. This can be done by assigning the value none to the T3DK_SA
variable:
	T3DK_SA = none


In the case the generic makefile is not suitable to build the executable test
suite. It is still possible to do the work manually or with an other build
system. The complete procedure to run the codec generator, compile the test
suite and link the right modules accordingly is described in the user manual
from T3DevKit (Section "Low level usage").
	http://t3devkit.gforge.inria.fr/doc/userref/userrefch2.html#x3-230002.4



Validation
----------

This directory contains three validation suites. To build and launch them, it
is necessary to use the following makefiles:

	c++/Makefile		-> simple tests located in validation/
	validation/TortureTests/Makefile
				-> torture test suite for validating the
				decoder (RFC 5118)
	validation/LoopbackTests/Makefile
				-> loopback test suite for validating the
				encoder and the decoder

The procedure to run the tests is the following:
1. chdir to the directory containing the makefile
	cd validation/TortureTests
2. build the test suite
	make
3. execute the test suite
	make exec

It is possible to increase the verbosity of the codec by setting some
environment variables. This may be useful for debugging the test suite.

eg:	make exec DEBUG_CODEC=1

The full list of debugging switches is given in T3DevKit's user manual:
	http://t3devkit.gforge.inria.fr/doc/userref/userrefch5.html#x7-680005.2


