#13795: Initial commit for sflphone-android

includes: libexpat libyaml libdbus-c++ commoncpp ccrtp
          libdbus (from android-4.0.4 sources)

TODO:
- git ignores "/jni/sflphone", sflphone repo should be cloned.
- sflphone-android only needs daemon directory. Ideally it should be possible
to clone it without cloning the whole sflphone project.
into sfl-android (commit 6a0fa7a "#13961: Fix cipher handling" has been used here)
- add pjsip-android project as a git submodule
- sflphone-android needs pjsip android project. Ideally daemon git repository
should not embed pjsip. Instead pjsip should be clone from official repositories.

Considering this, structure should have three distincts git repos:

sflphone-android/.git
sflphone-android/jni/ccrtp-1.8.0-android
sflphone-android/jni/commoncpp2-1.8.1-android
sflphone-android/jni/dbus
sflphone-android/jni/libdbus-c++-0.9.0-android
sflphone-android/jni/libexpat
sflphone-android/jni/libyaml

sflphone-android/jni/sflphone-daemon/.git
sflphone-android/jni/sflphone-daemon/src/audio
sflphone-android/jni/sflphone-daemon/src/config
sflphone-android/jni/sflphone-daemon/src/dbus
sflphone-android/jni/sflphone-daemon/src/history
sflphone-android/jni/sflphone-daemon/src/hooks
sflphone-android/jni/sflphone-daemon/src/iax
sflphone-android/jni/sflphone-daemon/src/sip
sflphone-android/jni/sflphone-daemon/src/video

sflphone-android/jni/pjsip-android/.git

Signed-off-by: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
diff --git a/jni/ccrtp-1.8.0-android/doc/Doxyfile b/jni/ccrtp-1.8.0-android/doc/Doxyfile
new file mode 100644
index 0000000..9c93ea8
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/Doxyfile
@@ -0,0 +1,479 @@
+# Doxyfile 0.0.1
+# Generate doxy documentation in html and latex format.
+
+# This file describes the settings to be used by doxygen for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of word surrounded
+# by quotes) that should identify the project. 
+
+PROJECT_NAME         =ccRTP
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER       =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY     =.
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are: 
+# Dutch, French, Italian, Czech, Swedish, German and Japanese
+
+OUTPUT_LANGUAGE      = English
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS             = YES
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX        = NO
+
+# If the EXTRACT_ALL tag is set to YES all classes and functions will be
+# included in the documentation, even if no documentation was available.
+
+EXTRACT_ALL          = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE      = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members inside documented classes or files.
+
+HIDE_UNDOC_MEMBERS   = NO
+
+# If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all
+# undocumented classes.
+
+HIDE_UNDOC_CLASSES   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC    = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF         = YES
+
+# If the ALWAYS_DETAILS_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES      = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path.
+
+STRIP_FROM_PATH      =
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS        = NO
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a class diagram (in Html and LaTeX) for classes with base or
+# super classes. Setting the tag to NO turns the diagrams off.
+
+CLASS_DIAGRAMS       = YES
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER       = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES       = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen
+# will only generate file names in lower case letters. If set to
+# YES upper case letters are also allowed. This is useful if you have
+# classes or files whose names only differ in case and if your file system
+# supports case sensitive file names.
+
+CASE_SENSE_NAMES     = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the Javadoc-style will
+# behave just like the Qt-style comments.
+
+JAVADOC_AUTOBRIEF    = YES
+
+# if the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# reimplements.
+
+INHERIT_DOCS         = NO
+
+# if the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO          = YES
+
+# the TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE             = 8
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = NO
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory
+# hierarchy in the documentation.
+
+SHOW_DIRECTORIES 	= NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                = ../w32/include/cc++ ../src ../src/ccrtp
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+FILE_PATTERNS        = *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE            = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE              =
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS     = config.h macros.h namespace.h
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH         = ../demo
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS     =
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH           =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+
+INPUT_FILTER         =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output
+
+GENERATE_HTML        = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT          =
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER          =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER          =
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet
+
+HTML_STYLESHEET      =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS   = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP    = YES
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX   = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX  = 5
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX       = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT         =
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX        = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE           = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES       =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER         =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN         = YES
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT           =
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION        = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor 
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed.
+
+MACRO_EXPANSION      = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES      = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH         = .
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED           =
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED tag.
+
+EXPAND_ONLY_PREDEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references 
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles. 
+
+TAGFILES             =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE     =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS         = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH            = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the search engine 
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE         = NO
+
+# The CGI_NAME tag should be the name of the CGI script that
+# starts the search engine (doxysearch) with the correct parameters.
+# A script with this name will be generated by doxygen.
+
+CGI_NAME             = search.cgi
+
+# The CGI_URL tag should be the absolute URL to the directory where the
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL              =
+
+# The DOC_URL tag should be the absolute URL to the directory where the
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL              =
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the
+# documentation is located. If left blank the directory on the local machine
+# will be used.
+
+DOC_ABSPATH          =
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
+# is installed.
+
+BIN_ABSPATH          = /usr/local/bin/
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS        =
diff --git a/jni/ccrtp-1.8.0-android/doc/Doxymini b/jni/ccrtp-1.8.0-android/doc/Doxymini
new file mode 100644
index 0000000..f9337f4
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/Doxymini
@@ -0,0 +1,479 @@
+# Doxyfile 0.0.1
+# Generate doxy documentation in html and latex format.
+
+# This file describes the settings to be used by doxygen for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of word surrounded
+# by quotes) that should identify the project. 
+
+PROJECT_NAME         =ccRTP
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER       =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY     =.
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are: 
+# Dutch, French, Italian, Czech, Swedish, German and Japanese
+
+OUTPUT_LANGUAGE      = English
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS             = YES
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX        = NO
+
+# If the EXTRACT_ALL tag is set to YES all classes and functions will be
+# included in the documentation, even if no documentation was available.
+
+EXTRACT_ALL          = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE      = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members inside documented classes or files.
+
+HIDE_UNDOC_MEMBERS   = NO
+
+# If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all
+# undocumented classes.
+
+HIDE_UNDOC_CLASSES   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC    = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF         = YES
+
+# If the ALWAYS_DETAILS_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES      = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path.
+
+STRIP_FROM_PATH      =
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS        = NO
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a class diagram (in Html and LaTeX) for classes with base or
+# super classes. Setting the tag to NO turns the diagrams off.
+
+CLASS_DIAGRAMS       = YES
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER       = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES       = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen
+# will only generate file names in lower case letters. If set to
+# YES upper case letters are also allowed. This is useful if you have
+# classes or files whose names only differ in case and if your file system
+# supports case sensitive file names.
+
+CASE_SENSE_NAMES     = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the Javadoc-style will
+# behave just like the Qt-style comments.
+
+JAVADOC_AUTOBRIEF    = YES
+
+# if the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# reimplements.
+
+INHERIT_DOCS         = NO
+
+# if the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO          = YES
+
+# the TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE             = 8
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = NO
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory
+# hierarchy in the documentation.
+
+SHOW_DIRECTORIES 	= NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                = ../src ../src/ccrtp
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+FILE_PATTERNS        = *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE            = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE              =
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS     = config.h macros.h namespace.h
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH         = ../demo
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS     =
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH           =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+
+INPUT_FILTER         =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output
+
+GENERATE_HTML        = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT          =
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER          =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER          =
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet
+
+HTML_STYLESHEET      =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS   = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP    = YES
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX   = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX  = 5
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX       = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT         =
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX        = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE           = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES       =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER         =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN         = YES
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT           =
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION        = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor 
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed.
+
+MACRO_EXPANSION      = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES      = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH         = .
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED           =
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED tag.
+
+EXPAND_ONLY_PREDEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references 
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles. 
+
+TAGFILES             =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE     =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS         = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH            = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the search engine 
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE         = NO
+
+# The CGI_NAME tag should be the name of the CGI script that
+# starts the search engine (doxysearch) with the correct parameters.
+# A script with this name will be generated by doxygen.
+
+CGI_NAME             = search.cgi
+
+# The CGI_URL tag should be the absolute URL to the directory where the
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL              =
+
+# The DOC_URL tag should be the absolute URL to the directory where the
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL              =
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the
+# documentation is located. If left blank the directory on the local machine
+# will be used.
+
+DOC_ABSPATH          =
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
+# is installed.
+
+BIN_ABSPATH          = /usr/local/bin/
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS        =
diff --git a/jni/ccrtp-1.8.0-android/doc/Makefile b/jni/ccrtp-1.8.0-android/doc/Makefile
new file mode 100644
index 0000000..a12896f
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/Makefile
@@ -0,0 +1,680 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# doc/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Copyright (C) 2000-2002 Open Source Telecom Corporation.
+#  
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without 
+# modifications, as long as this notice is preserved.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+pkgdatadir = $(datadir)/ccrtp
+pkgincludedir = $(includedir)/ccrtp
+pkglibdir = $(libdir)/ccrtp
+pkglibexecdir = $(libexecdir)/ccrtp
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = arm-unknown-linux-androideabi
+target_triplet = arm-unknown-linux-androideabi
+subdir = doc
+DIST_COMMON = $(ccrtp_TEXINFOS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libgcrypt_local.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/ost_debug.m4 \
+	$(top_srcdir)/m4/ost_maint.m4 $(top_srcdir)/m4/ost_prog.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+depcomp =
+am__depfiles_maybe =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/ccrtp.info
+TEXINFO_TEX = $(top_srcdir)/autoconf/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/autoconf
+DVIS = ccrtp.dvi
+PDFS = ccrtp.pdf
+PSS = ccrtp.ps
+HTMLS = ccrtp.html
+TEXINFOS = ccrtp.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+DATA = $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run tar
+AR = arm-linux-androideabi-ar
+AUTOCONF = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run automake-1.11
+AWK = gawk
+CC = arm-linux-androideabi-gcc
+CCDEPMODE = depmode=none
+CFLAGS = -g -O2
+COMMON_CFLAGS = -D_GNU_SOURCE  
+COMMON_LIBS = -pthread -lccgnu2 -ldl -lrt  
+CPP = arm-linux-androideabi-gcc -E
+CPPFLAGS = 
+CXX = arm-linux-androideabi-g++
+CXXCPP = arm-linux-androideabi-g++ -E
+CXXDEPMODE = depmode=none
+CXXFLAGS = -g -O2 -D_GNU_SOURCE  
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = false
+DOXYGEN = no
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FTPDIR = 
+GNULIBS = -L/usr/lib -pthread -lccgnu2 -ldl -lrt   
+GREP = /bin/grep
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KDOC_DIR = $(top_srcdir)/doc
+LD = /home/evigier/android-14b-toolchain/arm-linux-androideabi/bin/ld
+LDFLAGS = 
+LIBGCRYPT_CFLAGS = 
+LIBGCRYPT_CONFIG = 
+LIBGCRYPT_LIBS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIB_MAJOR = 0
+LIB_VERSION = 1_8
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+LT_CCXX_VERSION = -version-info 0:0
+LT_MAJOR = 0
+LT_MINOR = 0
+LT_RELEASE = 1.8
+LT_SUBVER = 0.0
+MAINT = #
+MAKEINFO = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/missing --run makeinfo
+MANIFEST_TOOL = :
+MKDIR_P = /bin/mkdir -p
+NM = /home/evigier/android-14b-toolchain/bin/arm-linux-androideabi-nm -B
+NMEDIT = 
+OBJDUMP = arm-linux-androideabi-objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = ccrtp
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = 
+PACKAGE_STRING = 
+PACKAGE_TARNAME = 
+PACKAGE_URL = 
+PACKAGE_VERSION = 
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_LIBDIR = 
+PKG_CONFIG_PATH = /home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
+RANLIB = arm-linux-androideabi-ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = arm-linux-androideabi-strip
+VERSION = 1.8.0
+WARN_FLAGS = -fno-strict-aliasing -Wall -ansi -pedantic
+abs_builddir = /home/evigier/git/ccrtp-1.8.0-android/doc
+abs_srcdir = /home/evigier/git/ccrtp-1.8.0-android/doc
+abs_top_builddir = /home/evigier/git/ccrtp-1.8.0-android
+abs_top_srcdir = /home/evigier/git/ccrtp-1.8.0-android
+ac_ct_AR = 
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = arm-unknown-linux-androideabi
+host_alias = arm-linux-androideabi
+host_cpu = arm
+host_os = linux-androideabi
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/evigier/git/ccrtp-1.8.0-android/autoconf/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = arm-unknown-linux-androideabi
+target_alias = 
+target_cpu = arm
+target_os = linux-androideabi
+target_vendor = unknown
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+AUTOMAKE_OPTIONS = no-dependencies
+EXTRA_DIST = srcmodel.txt srcmodel.dia Doxyfile Doxymini
+info_TEXINFOS = ccrtp.texi
+ccrtp_TEXINFOS = gpl.texi fdl.texi fdlnotice.texi
+#noinst_DATA = doxy
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: # $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+.texi.info:
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	am__cwd=`pwd` && $(am__cd) $(srcdir) && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	cd "$$am__cwd"; \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ $<; \
+	then \
+	  rc=0; \
+	  $(am__cd) $(srcdir); \
+	else \
+	  rc=$$?; \
+	  $(am__cd) $(srcdir) && \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) $<
+
+.texi.pdf:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) $<
+
+.texi.html:
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) $<; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+$(srcdir)/ccrtp.info: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.dvi: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.pdf: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.html: ccrtp.texi $(ccrtp_TEXINFOS)
+.dvi.ps:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+
+uninstall-html-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+	done
+
+uninstall-info-am:
+	@$(PRE_UNINSTALL)
+	@if test -d '$(DESTDIR)$(infodir)' && \
+	    (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
+	  done; \
+	else :; fi
+	@$(NORMAL_UNINSTALL)
+	@list='$(INFO_DEPS)'; \
+	for file in $$list; do \
+	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+	   else :; fi); \
+	done
+
+uninstall-pdf-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+	done
+
+uninstall-ps-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
+	done
+
+dist-info: $(INFO_DEPS)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; \
+	for base in $$list; do \
+	  case $$base in \
+	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
+	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+	    if test -f $$file; then \
+	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+	      test -f "$(distdir)/$$relfile" || \
+		cp -p $$file "$(distdir)/$$relfile"; \
+	    else :; fi; \
+	  done; \
+	done
+
+mostlyclean-aminfo:
+	-rm -rf ccrtp.aux ccrtp.cp ccrtp.cps ccrtp.fn ccrtp.fns ccrtp.ky ccrtp.kys \
+	  ccrtp.log ccrtp.pg ccrtp.pgs ccrtp.tmp ccrtp.toc ccrtp.tp \
+	  ccrtp.tps ccrtp.vr ccrtp.vrs
+
+clean-aminfo:
+	-test -z "ccrtp.dvi ccrtp.pdf ccrtp.ps ccrtp.html" \
+	|| rm -rf ccrtp.dvi ccrtp.pdf ccrtp.ps ccrtp.html
+
+maintainer-clean-aminfo:
+	@list='$(INFO_DEPS)'; for i in $$list; do \
+	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-info
+check-am: all-am
+check: check-am
+all-am: Makefile $(INFO_DEPS) $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(infodir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am: $(DVIS)
+
+html: html-am
+
+html-am: $(HTMLS)
+
+info: info-am
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-dvi: install-dvi-am
+
+install-dvi-am: $(DVIS)
+	@$(NORMAL_INSTALL)
+	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
+	done
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am: $(HTMLS)
+	@$(NORMAL_INSTALL)
+	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  $(am__strip_dir) \
+	  if test -d "$$d$$p"; then \
+	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+	  else \
+	    list2="$$list2 $$d$$p"; \
+	  fi; \
+	done; \
+	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+	done; }
+install-info: install-info-am
+
+install-info-am: $(INFO_DEPS)
+	@$(NORMAL_INSTALL)
+	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+	    if test -f $$ifile; then \
+	      echo "$$ifile"; \
+	    else : ; fi; \
+	  done; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
+	@$(POST_INSTALL)
+	@if (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+	  done; \
+	else : ; fi
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am: $(PDFS)
+	@$(NORMAL_INSTALL)
+	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
+install-ps: install-ps-am
+
+install-ps-am: $(PSS)
+	@$(NORMAL_INSTALL)
+	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+	maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am: $(PDFS)
+
+ps: ps-am
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-pdf-am uninstall-ps-am
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-aminfo clean-generic \
+	clean-libtool dist-info distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-aminfo \
+	maintainer-clean-generic mostlyclean mostlyclean-aminfo \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
+	uninstall-info-am uninstall-pdf-am uninstall-ps-am
+
+
+#doxy:   Doxyfile
+#	(cd . ; $(DOXYGEN) Doxymini)
+#	touch doxy
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/jni/ccrtp-1.8.0-android/doc/Makefile.am b/jni/ccrtp-1.8.0-android/doc/Makefile.am
new file mode 100644
index 0000000..aa9d618
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/Makefile.am
@@ -0,0 +1,26 @@
+# Copyright (C) 2000-2002 Open Source Telecom Corporation.
+#  
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without 
+# modifications, as long as this notice is preserved.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+AUTOMAKE_OPTIONS = no-dependencies
+EXTRA_DIST = srcmodel.txt srcmodel.dia Doxyfile Doxymini
+
+info_TEXINFOS = ccrtp.texi
+ccrtp_TEXINFOS = gpl.texi fdl.texi fdlnotice.texi
+
+if DOXY
+noinst_DATA = doxy
+
+doxy:   Doxyfile
+	(cd @srcdir@ ; $(DOXYGEN) Doxymini)
+	touch doxy
+
+endif
+
+
diff --git a/jni/ccrtp-1.8.0-android/doc/Makefile.in b/jni/ccrtp-1.8.0-android/doc/Makefile.in
new file mode 100644
index 0000000..6841f08
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/Makefile.in
@@ -0,0 +1,680 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2000-2002 Open Source Telecom Corporation.
+#  
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without 
+# modifications, as long as this notice is preserved.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = doc
+DIST_COMMON = $(ccrtp_TEXINFOS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libgcrypt_local.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/ost_debug.m4 \
+	$(top_srcdir)/m4/ost_maint.m4 $(top_srcdir)/m4/ost_prog.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+depcomp =
+am__depfiles_maybe =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/ccrtp.info
+TEXINFO_TEX = $(top_srcdir)/autoconf/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/autoconf
+DVIS = ccrtp.dvi
+PDFS = ccrtp.pdf
+PSS = ccrtp.ps
+HTMLS = ccrtp.html
+TEXINFOS = ccrtp.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+DATA = $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMMON_CFLAGS = @COMMON_CFLAGS@
+COMMON_LIBS = @COMMON_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FTPDIR = @FTPDIR@
+GNULIBS = @GNULIBS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KDOC_DIR = @KDOC_DIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_MAJOR = @LIB_MAJOR@
+LIB_VERSION = @LIB_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CCXX_VERSION = @LT_CCXX_VERSION@
+LT_MAJOR = @LT_MAJOR@
+LT_MINOR = @LT_MINOR@
+LT_RELEASE = @LT_RELEASE@
+LT_SUBVER = @LT_SUBVER@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARN_FLAGS = @WARN_FLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = no-dependencies
+EXTRA_DIST = srcmodel.txt srcmodel.dia Doxyfile Doxymini
+info_TEXINFOS = ccrtp.texi
+ccrtp_TEXINFOS = gpl.texi fdl.texi fdlnotice.texi
+@DOXY_TRUE@noinst_DATA = doxy
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+.texi.info:
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	am__cwd=`pwd` && $(am__cd) $(srcdir) && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	cd "$$am__cwd"; \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ $<; \
+	then \
+	  rc=0; \
+	  $(am__cd) $(srcdir); \
+	else \
+	  rc=$$?; \
+	  $(am__cd) $(srcdir) && \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) $<
+
+.texi.pdf:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) $<
+
+.texi.html:
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) $<; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+$(srcdir)/ccrtp.info: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.dvi: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.pdf: ccrtp.texi $(ccrtp_TEXINFOS)
+ccrtp.html: ccrtp.texi $(ccrtp_TEXINFOS)
+.dvi.ps:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+
+uninstall-html-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+	done
+
+uninstall-info-am:
+	@$(PRE_UNINSTALL)
+	@if test -d '$(DESTDIR)$(infodir)' && \
+	    (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
+	  done; \
+	else :; fi
+	@$(NORMAL_UNINSTALL)
+	@list='$(INFO_DEPS)'; \
+	for file in $$list; do \
+	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+	   else :; fi); \
+	done
+
+uninstall-pdf-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+	done
+
+uninstall-ps-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
+	done
+
+dist-info: $(INFO_DEPS)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; \
+	for base in $$list; do \
+	  case $$base in \
+	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
+	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+	    if test -f $$file; then \
+	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+	      test -f "$(distdir)/$$relfile" || \
+		cp -p $$file "$(distdir)/$$relfile"; \
+	    else :; fi; \
+	  done; \
+	done
+
+mostlyclean-aminfo:
+	-rm -rf ccrtp.aux ccrtp.cp ccrtp.cps ccrtp.fn ccrtp.fns ccrtp.ky ccrtp.kys \
+	  ccrtp.log ccrtp.pg ccrtp.pgs ccrtp.tmp ccrtp.toc ccrtp.tp \
+	  ccrtp.tps ccrtp.vr ccrtp.vrs
+
+clean-aminfo:
+	-test -z "ccrtp.dvi ccrtp.pdf ccrtp.ps ccrtp.html" \
+	|| rm -rf ccrtp.dvi ccrtp.pdf ccrtp.ps ccrtp.html
+
+maintainer-clean-aminfo:
+	@list='$(INFO_DEPS)'; for i in $$list; do \
+	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-info
+check-am: all-am
+check: check-am
+all-am: Makefile $(INFO_DEPS) $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(infodir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am: $(DVIS)
+
+html: html-am
+
+html-am: $(HTMLS)
+
+info: info-am
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-dvi: install-dvi-am
+
+install-dvi-am: $(DVIS)
+	@$(NORMAL_INSTALL)
+	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
+	done
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am: $(HTMLS)
+	@$(NORMAL_INSTALL)
+	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  $(am__strip_dir) \
+	  if test -d "$$d$$p"; then \
+	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+	  else \
+	    list2="$$list2 $$d$$p"; \
+	  fi; \
+	done; \
+	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+	done; }
+install-info: install-info-am
+
+install-info-am: $(INFO_DEPS)
+	@$(NORMAL_INSTALL)
+	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+	    if test -f $$ifile; then \
+	      echo "$$ifile"; \
+	    else : ; fi; \
+	  done; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
+	@$(POST_INSTALL)
+	@if (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+	  done; \
+	else : ; fi
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am: $(PDFS)
+	@$(NORMAL_INSTALL)
+	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
+install-ps: install-ps-am
+
+install-ps-am: $(PSS)
+	@$(NORMAL_INSTALL)
+	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+	maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am: $(PDFS)
+
+ps: ps-am
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-pdf-am uninstall-ps-am
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-aminfo clean-generic \
+	clean-libtool dist-info distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-aminfo \
+	maintainer-clean-generic mostlyclean mostlyclean-aminfo \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
+	uninstall-info-am uninstall-pdf-am uninstall-ps-am
+
+
+@DOXY_TRUE@doxy:   Doxyfile
+@DOXY_TRUE@	(cd @srcdir@ ; $(DOXYGEN) Doxymini)
+@DOXY_TRUE@	touch doxy
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/jni/ccrtp-1.8.0-android/doc/ccrtp.info b/jni/ccrtp-1.8.0-android/doc/ccrtp.info
new file mode 100644
index 0000000..59d9fa9
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/ccrtp.info
Binary files differ
diff --git a/jni/ccrtp-1.8.0-android/doc/ccrtp.texi b/jni/ccrtp-1.8.0-android/doc/ccrtp.texi
new file mode 100644
index 0000000..b6f5099
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/ccrtp.texi
@@ -0,0 +1,1507 @@
+\input texinfo    @c -*-texinfo-*-
+@c %** start of header
+@setfilename ccrtp.info
+@settitle GNU ccRTP Manual
+@afourpaper
+@setchapternewpage odd
+@documentlanguage en
+@documentencoding ISO-8859-1
+@c %** end of header
+
+@set EDITION 1.3
+@set VERSION 1.3
+@set UPDATED Jan 2006
+
+@dircategory Development
+@direntry
+* GNU ccRTP: (ccrtp).        GNU ccRTP Real-Time Transport Protocol Framework.
+@end direntry
+
+
+@c -----------------------------------------------------------------------
+
+@c %** start of summary description and copyright
+@ifnottex
+GNU ccRTP is a C++ class framework for the development of Real Time
+Transport Protocol (@acronym{RTP}) based applications. It is based on
+GNU Common C++.
+
+Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006 Federico Montesino Pouzols
+@email{fedemp@@altern.org}.
+@include fdlnotice.texi
+@end ifnottex
+@c %** end of summary description and copyright
+
+@c -----------------------------------------------------------------------
+
+@c %** start of title and copyright page
+@shorttitlepage @titlefont{GNU ccRTP}
+@titlepage
+@sp 10
+@title GNU ccRTP Manual
+@subtitle A Real-Time Transport Protocol Framework based on GNU Common C++
+@subtitle @value{EDITION}th Edition, covering ccRTP version @value{VERSION}
+@subtitle @value{UPDATED}
+@author Federico Montesino Pouzols
+
+@page
+@vskip 0pt plus 1filll
+@center{Copyright @copyright{} 2001, 2002, 2003, 2004, 2005 Federico Montesino Pouzols}
+@include fdlnotice.texi
+@page
+@end titlepage
+@c %** end of title and copyright page
+
+
+@c -----------------------------------------------------------------------
+
+@c %** start of top node and master menu
+@ifnottex
+@node Top
+@top
+This manual describes GNU ccRTP, a C++ class framework for the
+development of Real Time Transport Protocol (@acronym{RTP}) based
+applications.
+
+This is the edition @value{EDITION} of this manual and documents
+GNU ccRTP version @value{VERSION}.
+@end ifnottex
+
+
+@contents
+
+
+@menu
+* Introduction::                What @acronym{RTP} and ccRTP are.
+* Distribution::                How to get @acronym{GNU} ccRTP.
+* ccRTP Overview::              The library at a glance.
+* Using ccRTP::                 Programming with GNU ccRTP overview.
+* Specialized Payload Formats:: Supported payload specific extensions.
+* Standards Tracking::          @acronym{IETF} Standards conformance.
+* Upgrading::                   Upgrading applications based on old releases.
+* ccRTP Internals::             How @acronym{GNU} ccRTP is done. 
+* Related Work::                Other @acronym{RTP} related libraries and tools.
+* Future Work::                 Future of @acronym{RTP} and ccRTP.
+* Licenses::                    Library and documentation licenses.
+* Class and Data Type Index::   Index of classes and data types in ccRTP.
+* Method and Function Index::   Index of methods and functions in ccRTP.
+* Concept Index::               Index of concepts.
+@end menu
+@c %** end of top node and master menu
+
+@c %** start of body
+
+@c -----------------------------------------------------------------------
+@node Introduction
+@chapter Introduction
+@cindex Introduction
+
+@cindex Common C++
+@cindex C++
+@cindex IETF
+@cindex Internet Ingeneering Task Force
+@cindex Audio/Video Working Group
+@cindex class framework
+ccRTP is a C++ framework for developing applications based on the Real
+Time Transport Protocol (@acronym{RTP} henceforth). @acronym{RTP}
+provides end-to-end delivery services for data with real-time
+characteristics and is being developed by the Audio/Video Working
+Group of the Internet Engineering Task Force (@acronym{IETF}).
+
+ccRTP aims to be an efficient and flexible framework valid for almost
+any kind of application that uses @acronym{RTP}, ranging from high
+loaded servers and gateways to personal phone applications. Default
+constructs and values are provided however for the most common choices
+in the use of @acronym{RTP}. ccRTP conforms to the latest
+@acronym{RTP} specifications (@pxref{Standards Tracking}).
+
+@cindex MD5
+@cindex Common C++
+@cindex system services
+@cindex threading
+@cindex synchronization
+@cindex sockets
+ccRTP is based on the @acronym{GNU} Common C++ framework, though most
+of the library does not require it. Common C++ provides basic system
+services such as threading, synchronization and sockets@footnote{As
+well as other more specialized services, such as MD5 computation.},
+which makes it possible to provide a complete solution for the use of
+@acronym{RTP}. However, although ccRTP provides facilities and
+abstractions useful for the @acronym{RTP} specific components of
+applications that use @acronym{RTP}, such applications generally
+require similar system services for other tasks. Besides supporting
+ccRTP, Common C++ provides a portable and efficient framework for
+these kind of services.
+
+@acronym{RTP} has been defined as an application level protocol
+framework rather than a typical Internet transport protocol such as
+TCP and UDP. Thus, @acronym{RTP} is hardly ever implemented as a layer
+separated from the application. Consequently, @acronym{RTP}
+applications often must customize the adaptable @acronym{RTP} packet
+layout and processing rules, timing constraints, session membership
+rules as well as other @acronym{RTP} and @acronym{RTCP}
+mechanisms. ccRTP aims to provide a framework for the @acronym{RTP}
+framework, rather than being just an @acronym{RTP} packet manipulation
+library.
+
+@cindex signalization
+@cindex RTSP
+@cindex SIP
+@cindex H.323
+As a clarification of the scope of the ccRTP library and the
+@acronym{RTP} protocol, we note that ccRTP exclusively deals with the
+transport of data over the @acronym{RTP} protocol. Once parameters such
+as destination IP address and transport port, payload type identifier
+and timestamp frequency are known, ccRTP can be used to open an
+@acronym{RTP} session and send and receive RTP and RTCP packets. A
+multimedia application will have those parameters previously set or,
+more usually, they can be fetched for example from SDP multimedia
+session descriptions, which can be interchanged (and negotiated) between
+servers and clients by means of some signaling protocol: @acronym{SIP},
+@acronym{RTSP}, or even H.323. Signaling functions are not handled by
+ccRTP.
+
+This document is an introductory programmer's manual, for a more
+exhaustive reference see the reference manual distributed with GNU
+ccRTP. In @ref{ccRTP Overview}, the most important concepts and some
+basic examples are introduced. A deeper and step by step description
+as well as short examples are provided in @ref{Using ccRTP}.
+
+Finally, if after reading this document and/or using ccRTP you think
+it fails to provide some functionality that seems to be needed for
+some application, we encourage you to contact the developers of ccRTP
+and ask or propose them improvements and/or additions. You are also
+encouraged to provide these improvements and to join the development
+team. Bug reports, suggestions and criticisms are gladly accepted.
+
+
+@c -----------------------------------------------------------------------
+@node Distribution
+@chapter Distribution
+@cindex distribution
+
+@cindex free software
+@cindex GNU GPL
+@cindex linking exception
+@cindex GNU FDL
+@cindex philosophy
+@acronym{GNU} ccRTP is free software (see
+@url{http://www.gnu.org/philosophy/philosophy.html}. It is licensed
+under the terms of the @acronym{GNU} General Public License, @xref{GNU
+General Public License}, plus a linking exception, @xref{GNU ccRTP
+Linking Exception}. 
+
+The linking exception is the same that is used for gcc libstdc++.  This
+was done in the case of libstdc++ because the language of the LGPL is
+neither clear nor correct if one uses C++ features such as templates and
+method implimentation directly in headers, as the division between the
+C++ library and another's application is no longer purely a linking one.
+From the practical standpoint, the exact effect is the same as the LGPL,
+but with language that matches these C++ features.  This is all
+explained at
+@url{http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/license.html}.
+
+This manual is licensed under the terms of the @acronym{GNU} Free
+Documentation License, @xref{GNU Free Documentation License}.
+
+There are several ways to get @acronym{GNU} ccRTP, refer to
+@url{http://www.gnu.org} and
+@url{http://www.gnu.org/software/ccrtp/}. The development of ccRTP is
+hosted at Savannah @url{http://sv.gnu.org/projects/ccrtp/}.
+
+
+@c -----------------------------------------------------------------------
+@node ccRTP Overview
+@chapter ccRTP Overview
+@cindex ccRTP Overview
+
+At its highest level, ccRTP provides classes for the real-time
+transport of data through @acronym{RTP} sessions, as well as the
+control functions of @acronym{RTCP}.
+
+@cindex packet queue
+The main concept in the ccRTP implementation of @acronym{RTP} sessions
+is the use of packet queues to handle transmission and reception of
+@acronym{RTP} data packets/application data units. In ccRTP, a data
+block is transmitted by putting it into the transmission (outgoing
+packets) queue, and received by getting it from the reception
+(incoming packets) queue.
+
+Starting with 1.0 releases, ccRTP fully supports @acronym{RTP} and
+@acronym{RTCP}. Here is a brief list of some features of ccRTP:
+
+@itemize
+
+@item Highly extensible to specialized stacks.
+
+@item Supports unicast, multi-unicast and multicast. Handles multiple sources (including synchronization sources and contributing sources) and destinations. Also supports symmetric RTP.
+
+@item Automatic RTCP functions handling, such as association of synchronization sources from the same participant or NTP-RTP timestamp mapping.
+
+@item Genericity as for underlying network and transport protocols through templates.
+
+@item It is threadsafe and supports almost any threading model.
+
+@cindex header check
+@cindex header validity
+@item Generic and extensible @acronym{RTP} and @acronym{RTCP} header validity checks.
+
+@item Handles source states and information as well as statistics recording.
+
+@cindex SSRC collision
+@cindex loop detection
+@item Automatically handles SSRC collisions and performs loop detection.
+
+@cindex reconsideration
+@cindex timer reconsideration
+@cindex reverse reconsideration
+@item Implements timer reconsideration and reverse reconsideration.
+
+@cindex Random numbers
+@cindex /dev/urandom
+@cindex MD5
+@item Provides good random numbers, based on @file{/dev/urandom} or, alternatively, on MD5.
+
+@end itemize
+
+@cindex demo program
+@cindex rtphello
+@cindex rtplisten
+@tindex RTPSession
+@findex onGotSR
+@findex getMRSenderInfo
+@cindex SR
+@cindex RTCP SR
+There are several levels of interface (public interface, public or
+protected inheritance, etc) in ccRTP. For instance, the
+@code{rtphello} demo program distributed with ccRTP just uses the
+public interface of the @code{RTPSession} class and does not redefine
+the virtual method @code{onGotSR}, thus what this program knows about
+SR reports is the information conveyed in the last sender report from
+any source, which can be retrieved via the @code{getMRSenderInfo}
+method of the @code{SyncSource} class. On the contrary, the
+@code{rtplisten} demo program redefines @code{onGotSR} by means of
+inheritance and could do specialized processing of these RTCP
+packets. Generally, both data and control packets are not directly
+accessible through the most external interface.
+
+@tindex StaticPayloadType
+@tindex StaticPayloadFormat
+@tindex DynamicPayloadFormat
+@tindex RTPSession
+@tindex AppDataUnit
+@tindex SyncSource
+@tindex Participant
+@tindex AppDataUnit
+All these functions are performed through a few essential classes and
+types. The most basic ones are the enumerated type
+@code{StaticPayloadType}, and the classes @code{StaticPayloadFormat} and
+@code{DynamicPayloadFormat}. The most important ones are the classes
+@code{RTPSession}, @code{SyncSource}, @code{Participant} and
+@code{AppDataUnit}, that represent @acronym{RTP} sessions,
+synchronization sources, participants in an @acronym{RTP} application,
+and application data units conveyed in @acronym{RTP} data packets,
+respectively.
+
+@cindex demo program
+In the next sections, two basic examples are presented. These examples
+are intended to provide a concrete idea of what the code of a ccRTP
+based application looks like, they are not complete or compilable
+programs. You can find some real examples under the demo directory in
+the source distribution of ccRTP.
+
+@menu
+* Simple Transmitter::           Skeleton of a simple transmitter.
+* Simple Receiver::              Skeleton of a simple receiver.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node Simple Transmitter
+@section Simple Transmitter
+@cindex Simple Transmitter
+
+The following snippet illustrates the required steps to send an
+application data unit over @acronym{RTP}.
+
+@cartouche
+@example
+RTPSession s(InetHostAddress("127.0.0.1"),8000);  // @r{bind reception socket}
+
+// @r{Initialization}
+cout << "Local SSRC identifier: " << s.getLocalSSRC() << endl;
+s.addDestination("www.example.com",9000); // @r{set one destination for packets}
+s.setPayloadFormat(staticPayloadFormat(sptPCMU));
+s.startRunning(); // @r{start running the packet queue scheduler}
+
+// @r{Send data}
+s.putData(0,buffer,bufferLen); // @r{buffer holds bufferLen payload octets}
+@end example
+@end cartouche
+
+
+@c -----------------------------------------------------------------------
+@node Simple Receiver
+@section Simple Receiver
+@cindex Simple Receiver
+
+The required actions to receive an application data unit over RTP are
+listed in the following code snippet.
+
+@cartouche
+@example
+RTPSession s(InetHostAddress("127.0.0.1"),9000);  // @r{bind reception socket.}
+
+// @r{Initialization.}
+cout << "Local SSRC identifier: " << s.getLocalSSRC() << endl;
+s.setPayloadFormat(staticPayloadFormat(sptPCMU));
+s.startRunning(); // @r{start running the packet queue scheduler.}
+
+// @r{Receive data.}
+const AppDataUnit* adu;
+adu = s.getData(0); // @r{get data with initial -0- timestamp.}
+if ( adu != NULL )
+   // @r{do something with adu.}
+   // adu->getType() @r{provides the payload type.}
+   // adu->getData() @r{provides a const uint8 pointer to a data buffer.}
+   // adu->getSize() @r{provides the number of octets in the buffer.}
+   // @r{see other methods in the class AppDataUnit, such as} getSource().
+@end example
+@end cartouche
+
+
+@c -----------------------------------------------------------------------
+@node Using ccRTP
+@chapter Using ccRTP
+@cindex Using ccRTP
+
+@cindex packet queue
+@cindex thread
+When using ccRTP, both sending and receiving of data transported over
+@acronym{RTP} sessions is done through reception and transmission
+queues handled by the @acronym{RTP} stack. In the most common case, a
+separate execution thread for each @acronym{RTP} session handles the
+queues. This case is the threading model that we will generally assume
+throughout this document. Note however that ccRTP supports other
+threading models, particularly ccRTP supports the use of a single
+execution thread to serve a set of @acronym{RTP} sessions. It is also
+possible to not associate any separate thread with any @acronym{RTP}
+session, manually calling the main data and control service methods
+from whatever other thread.
+
+@cindex reception queue
+@cindex incoming queue
+The basic idea for packet reception with ccRTP is that the application
+does not directly read packets from sockets but gets them from a
+reception queue. The stack is responsible for inserting received
+packets in the reception queue and handling this queue. In general, a
+packet reception and insertion in the reception queue does not occur
+at the same time the application gets it from the queue.
+
+@cindex transmission queue
+@cindex outgoing queue
+Conversely, the basic idea for packet transmission with ccRTP is that
+packets are not directly written to sockets but inserted in a
+transmission queue handled by the stack. In general, packet insertion
+and transmission occur at different times, though it is not necessary.
+
+In order to use ccRTP, you must include the main header
+(@file{#include <ccrtp/rtp.h>}. Two additional headers are provided by
+ccRTP:
+
+@table @code
+
+@item @file{#include <ccrtp/rtppool.h}
+Classes for pools of RTP service threads.
+
+@item @file{#include <ccrtp/rtpext.h>}
+Classes for RTP extensions which are not mature yet.
+
+@end table
+
+You must also link in the library, currently @file{ccrtp1}.
+
+As presented in the last examples, before starting to send or receive
+data, RTP sessions must be created, the payload format to use must be
+set and the stack must be signaled to start running. The following
+sections describe the use of ccRTP during the different phases of RTP
+sessions and RTP applications in general.
+
+@menu
+* RTP Sessions::                 Using ccRTP to establish @acronym{RTP} sessions.
+* Payload Types and Formats::    Payload types and formats.
+* Participants::                 Participants and sources of synchronization.
+* RTP Packets Extensions::       Extensions to @acronym{RTP} data packets handling.
+* RTCP Packets Extensions::      Extensions to @acronym{RTCP} packets handling.
+* Handling Events::              Table of ccRTP plug-ins to react to events.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node RTP Sessions
+@section RTP Sessions
+@cindex RTP Sessions
+
+This section discusses the use of @code{RTPSession} objects. Some
+other classes and concepts are also used, these are just briefly
+presented here; deeper explanations are provided in next sections.
+
+@menu
+* Initiating Sessions::          @acronym{RTP} sessions initialization with ccRTP.
+* Sending Data::                 Sending @acronym{RTP} data packets.
+* Receiving Data::               Receiving @acronym{RTP} data packets.
+* Closing Sessions::             Extensions to @acronym{RTP} data packets handling.
+* Types of Sessions::            Choosing a threading and socket model.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node Initiating Sessions
+@subsection Initiating Sessions
+@cindex Initiating Sessions
+
+@tindex RTPSession
+@cindex multicast
+@cindex join
+Initiating @acronym{RTP} sessions with ccRTP involves the construction
+of an object of the class @code{RTPSession} and calling some optional
+initialization methods. @code{RTPSession} constructors take two
+mandatory arguments: local network address and local transport port
+(where incoming packets are expected). There are two constructors, one
+of them takes a host address as first parameter, while the other takes
+a multicast address. In the latter case, the application will join to
+a multicast group.
+
+@findex RTPSession::startRunning
+@findex RTPSession::enableStack
+General purpose @acronym{RTP} stacks of ccRTP, such as
+@code{RTPSession} objects, must be signaled to start execution. This
+is done calling the @code{startRunning()} method. Note there is also a
+@code{enableStack()} method, this only activates the stack but does not
+start the execution of the stack thread.
+
+After the steps above, the application can receive data, but will not
+transmit to any destination. This and other session parameters can be
+set as follows:
+
+@itemize
+
+@findex OutgoingDataQueue::addDestination
+@item Add destinations: calling the method @code{addDestination}.
+
+@findex RTPQueueBase::setPayloadFormat
+@cindex static payload type
+@cindex PCMU
+@cindex default value
+@item Set payload format. Method @code{setPayloadFormat}. By default, the static payload type 0 is assumed (PCMU format at 8Khz).
+
+@cindex RTCP packets
+@cindex RTCP compound packets
+@cindex SDES item
+@cindex CNAME
+@cindex default value
+@cindex PRIV
+@findex RTPPApplication::setSDESItem
+@findex RTPApplication::setPRIVPrefix
+@findex defaultApplication
+@item Set local SDES Items. For common applications, the CNAME item value is automatically guessed as user@@host. Other items have no default value and are not sent in RTCP packets unless a value is specified by the application. For those items that should be sent in @acronym{RTCP} packets along with the mandatory CNAME, its values can be set calling the @code{setSDESItem}  and @code{setPRIVPrefix} methods over the object returned by the @code{defaultApplication} global function.
+
+@findex OutgoingDataQueue::setPadding
+@cindex padding
+@item Enable padding of data packets. Calling setPadding(uint8) on outgoing data queues enables transparent padding of data packets to a multiple of the padding maximum length specified. By default, padding is off (maximum length of padding is 0).
+
+@item setting addresses: 
+
+
+@findex QueueRTCPMaanger::setControlBandwidth
+@cindex default value
+@cindex default bandwidth
+@cindex RTCP bandwidth
+@item Set session bandwidth calling the @code{setSessionBandwidth} method of the session object. If not called, a default bandwidth of 64Kbps is assumed, and 5% of this bandwidth is used for RTCP. This percentage can be changed through the setControlBandwidth method.
+
+@end itemize
+
+
+@c -----------------------------------------------------------------------
+@node Sending Data
+@subsection Sending Data
+@cindex Sending Data
+
+@findex OutgoingDataQueue::putData
+@cindex RTP timestamp offset
+@cindex timestamp offset
+Data packets are sent through the method @code{putData}, that takes as
+first parameter the RTP timestamp for the data specified as second
+parameter. ccRTP handles the random offset for the RTP timestamp
+internally, so the timestamp value that corresponds to the session
+creation time is 0.
+
+@findex OutgoingDataQueue::setMark
+@cindex default value
+@cindex marker bit
+By default, the marker bit of the sent packets is not set. Its value
+for the next packet (the one that will convey the data provided in the
+next call to @code{putData}) can be set through the @code{setMark}
+method, which takes a boolean as argument.
+
+@findex OutgoingDataQueueBase::setMaxSendSegmentSize
+@findex OutgoingDataQueueBase::getDefaultMaxSendSegmentSize
+@cindex default value
+@cindex segment size
+ccRTP also supports fragmenting data blocks into several RTP
+packets. The @code{setMaxSendSegmentSize} method can be used to
+request that no @acronym{RTP} packet be transmitted with a payload
+length greater than the value specified through
+@code{setMaxSendSegmentSize}. The default value of this parameter can
+be retrieved via @code{getDefaultMaxSendSegmentSize}, which currently
+should return 65536. When data blocks greater than the maximum segment
+size are provided through @code{putData}, two or more packet will be
+inserted in the outgoing packet queue. All these packets but the last
+one will have length equal to the maximum segment size, whereas the
+last one's size will be lower or equal to the maximum segment size.
+
+
+@c -----------------------------------------------------------------------
+@node Receiving Data
+@subsection Receiving Data
+@cindex Receiving Data
+
+@findex IncomingDataQueue::getData
+Received data is retrieved from the incoming packet queue through the
+@code{getData} method, which, given a timestamp and an optional source
+of synchronization. This method returns a pointer to an
+@code{AppDataUnit} object as opposed to a pointer to a memory
+block. In ccRTP application data units are represented through objects
+of the @code{AppDataUnit} class, that provides access to the
+synchronization source of the data and other related properties.
+
+@cindex duplicate packets
+@cindex reordering
+The incoming packet queue takes care of functions such as packet
+reordering or filtering out duplicate packets.
+
+@findex IncomingDataQueue::isWaiting
+You can guess if there are packets in the reception queue calling
+@code{isWaiting}. Both @code{getData} and @code{isWaiting} take an
+optional parameter which selects a particular synchronization source
+of data units. If not specified, data units are returned regardless of
+its source.
+
+
+@c -----------------------------------------------------------------------
+@node Closing Sessions
+@subsection Closing Sessions
+@cindex Closing Sessions
+
+RTP sessions can be closed deleting or destroying @code{RTPSession}
+objects. The stack sends a BYE packet to every destination when the
+destructor of sessions is called. It is also possible to explicitly send
+a BYE packet through the dispatchBYE method, which takes the leaving
+reason string as argument. Note that dispatchBYE will honor a number of
+rules for sending BYE packets specified in the RTP standard: a BYE
+packet is not sent if no RTP/RTCP packet was sent, and BYE floods
+avoiding mechanisms are employed.
+
+Note that when a BYE RTCP packet is received from a remote
+participant, the virtual @code{onGotGoodbye} will be called.
+
+@c -----------------------------------------------------------------------
+@node Types of Sessions
+@subsection Types of Sessions
+@cindex Types of Sessions
+
+@emph{TODO:} explain how to instantiate templates depending on the
+threading model and the number of sockets to use. Also symmetric
+channels/sessions. Describe what's a channel and a session.
+
+
+@c -----------------------------------------------------------------------
+@node Payload Types and Formats
+@section Payload Types and Formats
+@cindex Payload Types
+@cindex Payload Formats
+
+@tindex PayloadType
+@tindex StaticPayloadType
+In the context of @acronym{RTP}, an @acronym{RTP} payload type is a
+7-bit numeric identifier that identifies a payload format.  For
+payload types, GNU ccRTP defines the integer type
+@code{PayloadType}. ccRTP also defines The enumerated type
+@code{StaticPayloadType}, as the enumeration of the @acronym{RTP}
+Payload Types statically assigned for standard audio and video
+formats.
+
+These codes were initially specified in @cite{RFC 1890, ``RTP Profile
+for Audio and Video Conferences with Minimal Control'' (AVP profile)},
+superseded by @cite{RFC 3550}, and are registered as MIME types in
+@cite{RFC 3555}. Codes below 96 may be assigned statically, although
+the default bindings for many of them are already reserverd. Codes in
+the range 96-127 are assigned dinamically by means outside of the
+@acronym{RTP} profile or protocol specification.
+
+@cindex IANA
+@cindex RTP parameters
+See the ``RTP Parameters'' list at @acronym{IANA}
+@url{http://www.iana.org/assignments/rtp-parameters}. Note however
+that registering static payload types is now considered a deprecated
+practice in favor of dynamic payload type negotiation.
+
+@tindex PayloadFormat
+
+@cindex MIME
+@cindex SDP
+@cindex Session Description Protocol
+@cindex H.245
+@cindex clock rate
+@cindex timestamp clock rate
+@cindex RTP clock rate
+The properties of a payload format that, as an @acronym{RTP} stack,
+ccRTP takes into account are the payload type (numeric identifier) and
+the @acronym{RTP} clock rate. Other properties, such as @acronym{MIME}
+type, number of audio channels, ``ptime'' and ``maxptime'' are not
+considered. These are only of interest for higher level protocols,
+such as @acronym{SDP} and H.245.
+
+GNU ccRTP defines a hierarchy of payload format classes. Its root is
+@code{PayloadFormat}, which is a base class for
+@code{StaticPayloadFormat} and @code{DynamicPayloadFormat}.
+
+@tindex StaticPayloadFormat
+@tindex StaticPayloadType
+Static payload format objects are built from a static payload
+code. These are defined in the enumerated type
+@code{StaticPayloadType}. The following example constructs a
+@code{StaticPayloadFormat} object corresponding to the payload type 0
+(statically bounded to PCMA in @cite{RFC 3551}):
+
+@findex StaticPayloadFormat::StaticPayloadFormat
+@example
+StaticPayloadType pt = sptPCMU;
+StaticPayloadFormat* spf = new StaticPayloadFormat(pt);
+@end example
+
+Of course, we could have said:
+
+@example
+StaticPayloadFormat* spf = new StaticPayloadFormat(sptPCMA);
+@end example
+
+StaticPayloadFormat objects build like the ones above hold the
+necessary parameters so that the @acronym{RTP} stack can handle
+incoming and outgoing packets.
+
+@tindex DynamicPayloadFormat
+@findex DynamicPayloadFormat::DynamicPayloadFormat
+Regarding dynamic payload formats, a call to
+@code{DynamicPayloadFormat::DynamicPayloadFormat(100,90000)} like the
+following:
+
+@example
+DynamicPayloadFormat* dpf = new DynamicPayloadFormat(100,90000);
+@end example
+
+Will construct a dynamic payload format object that ties together the
+'100' payload type numeric identifier and an @acronym{RTP} clock rate
+of 90 Khz. Note that the numeric identifier does not have to be in the
+dynamic range. The static payload types are default bindings and MAY
+be overriden, thus, DynamicPayloadFormat(0,90000) is a valid construct
+provided 0 has been established as the payload type through a previous
+negotiation process@footnote{Despite the fact that RFC 3551 defines a
+static binding of the 0 code to mu-law PCM at 8Khz.}.
+
+@cindex Session control
+Whether and how the payload has been negotiated is outside of the
+scope of @acronym{RTP} and ccRTP, so applications must choose between
+@code{StaticPayloadFormat} and @code{DynamicPayloadFormat} accordingly
+to their multimedia session control mechanisms.
+
+
+@c -----------------------------------------------------------------------
+@node Participants
+@section Participants And Sources of Synchronization
+@cindex Source of Synchronization
+@cindex Participant
+
+@tindex RTPApplication
+@tindex Participant
+@tindex SyncSource
+@tindex RTPSession
+In GNU ccRTP, there are classes that represent @acronym{RTP}
+applications (@code{RTPApplication}), participants
+(@code{Participant}), synchronizacion sources (@code{SyncSource}) and
+RTP sessions (@code{RTPSession}). The relations among these entities
+are shown in the following diagram:
+
+@image{srcmodel,8cm,,{Relations between applications, participants,
+sources and sessions}}
+
+@cindex CNAME
+An @acronym{RTP} application establishes a space of CNAME identifiers,
+whereas an @acronym{RTP} session establishes a space of SSRC
+identifiers.
+
+For each source of synchronization seen in an @acronym{RTP} session, a
+@code{SyncSource} object identified by a SSRC numeric identifier is
+created. Thus, at the beginning of an @acronym{RTP} session there are
+no @code{SyncSource} objects related. Note that, if the local source
+sends packets to itself during an @acronym{RTP} session, a
+@code{SyncSource} object will be created for it.
+
+The list of sources of synchronization identified in an RTP session
+can be retrived through STL-like iterators of type
+@code{RTPSession::SyncSourcesIterator}, as shown in the following
+example.
+
+@cartouche
+@example
+// rx is an RTPSession object
+RTPSession::SyncSourcesIterator it;
+for (it = rx.begin() ; it != rx.end(); it++) @{
+   const SyncSource &s = *it;
+   cout << s.getID();
+   if ( s.isSender() )
+      cout << "is an active sender";
+   cout << endl;
+@}
+@end example
+@end cartouche
+
+@findex RTPSession::SyncSourcesIterator
+@cindex const iterator
+@cindex iterator
+Note @code{RTPSession::SyncSourcesIterator} is a const iterator.
+
+@findex SyncSource::getParticipant()
+@cindex participant
+When using RTCP, it is possible to associate several synchronization
+source objects to a participant in the multimedia session, which is
+represented through the association between @code{Participant} and
+@code{SyncSource} objects. The participant object linked to a source
+of synchronization can be retrieved through the
+@code{SyncSource::getParticipant()} method, as the following examples
+shows:
+
+@cartouche
+@example
+   // s is a source of synchronization object (SyncSource)
+   Participant *p = s.getParticipant();
+   cerr << p->getSDESItem(SDESItemTypeCNAME) << endl;
+@end example
+@end cartouche
+
+When RTCP is not being used or the CNAME identifier corresponding to a
+synchronization source has not been received yet, the participant
+associated with a synchronization source is not known. In these cases,
+the method @code{SyncSource::getParticipant()} will return a NULL
+pointer. On the contrary, a participant is always related to a
+synchronization source at least. It can also be related to more than
+one synchronization source (for instance, when a participant in a
+videoconference sends two video streams from two different
+chameras). Note that, if the local source sends data and control
+packets to itself, a @code{Participant} object will be created for it.
+
+Thus, the @code{SyncSource::getParticipant} provides a facility for
+inter-media synchronization.
+
+@findex defaultApplication
+@findex RTPApplication
+@cindex default value
+@cindex CNAME
+The association of @acronym{RTP} sessions and participants with
+@code{RTPApplication} objects makes it possible to implement several
+``RTP applications'' in the same application or process, each one
+having a separate CNAME space. By default, all @acronym{RTP} sessions
+are associated to an @acronym{RTP} application provided by the global
+method @code{defaultApplication()}. The local CNAME for the default
+application is guessed from the user and machine name, as specified in
+@cite{RFC 3550}. 
+
+However, other applications may be created through the constructor
+@code{RTPApplication::RTPApplication(const std::string& cname)}. @acronym{RTP} sessions are associated with applications other
+than the default via an optional constructor parameter.
+
+@findex RTPApplication::ParticipantsIterator
+@cindex const iterator
+@cindex iterator
+Similarly to the list of synchronization sources, the list of
+participants in a session can be retrieved using iterators of type
+@code{RTPApplication::ParticipantsIterator}, see the following
+example, which shows the list of CNAMEs of the participants in the
+default application:
+
+@cartouche
+@example
+   RTPApplication &app = defaultApplication();
+   RTPApplication::ParticipantsIterator ai;
+   for ( ai = app.begin(); ai != app.end(); ai++ ) @{
+      const Participant &p = *ai;
+      cerr << p.getSDESItem(SDESItemTypeCNAME) << endl;
+   @}
+@end example
+@end cartouche
+
+@findex RTPApplication::ParticipantsIterator
+@cindex const iterator
+@cindex iterator
+Note @code{RTPApplication::ParticipantsIterator} is a const iterator.
+
+@emph{TODO: SyncSource states}.
+
+
+@c -----------------------------------------------------------------------
+@node RTP Packets Extensions
+@section RTP Packets Extensions
+@cindex RTP Packets Extensions
+
+@tindex RTPPacket
+@tindex IncomingRTPPkt
+@tindex OutgoingRTPPkt
+@emph{TODO.} Describe @code{RTPPacket}, @code{IncomingRTPPkt} and
+@code{OutgoingRTPPkt} classes. @xref{RTP Packets Arrival}, for a
+discussion of event handling virtuals that allow for specialized
+processing of data packets.
+
+
+@c -----------------------------------------------------------------------
+@node RTCP Packets Extensions
+@section RTCP Packets Extensions
+@cindex RTCP Packets Extensions
+
+@xref{RTCP Packets Arrival}, for a discussion of event handling
+virtuals that allow for specialized processing of control packets.
+
+
+@c -----------------------------------------------------------------------
+@node Handling Events
+@comment  node-name,  next,  previous,  up
+@section Handling Events
+@cindex Handling Events
+
+There are a number of events that may require special response from
+the application. ccRTP defines plug-ins to handle these events.
+
+@menu
+* RTP Packets Arrival::           Filtering and extending @acronym{RTP} packets parsing.
+* RTCP Packets Arrival::          Filtering and extending @acronym{RTCP} packets parsing.
+* Synchronization Source States:: Handling state transitions.
+* SSRC Collisions::               Handling SSRC identifier collisions.
+* RTP Packets Expiration::        Outgoing and incoming @acronym{RTP} packets expiration.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node RTP Packets Arrival
+@comment  node-name,  next,  previous,  up
+@subsection RTP Packets Arrival 
+@cindex RTP Packet Arrival
+
+@findex IncomingDataQueue::onRTPPacketRecv
+@code{onRTPPacketRecv} is the virtual method that may be redefined in
+any subclass of @code{IncomingDataQueue}, particularly in subclasses
+of @code{RTPSession}. It takes an @code{IncomingRTPPkt} object as
+argument and returns a boolean indicating whether the packet should be
+inserted in the reception queue.
+
+
+@c -----------------------------------------------------------------------
+@node RTP Packets Expiration
+@comment  node-name,  next,  previous,  up
+@subsection RTP Packets Expiration
+@cindex RTP Packets Expiration
+
+@findex OutgoingDataQueue::onExpireSend
+@findex IncomingDataQueue::onExpireRecv
+@code{onExpireSend} and @code{onExpireRecv}
+
+@findex QueueRTCPManager::end2EndDelayed
+@code{end2EndDelayed}
+
+
+@c -----------------------------------------------------------------------
+@node RTCP Packets Arrival
+@comment  node-name,  next,  previous,  up
+@subsection RTCP Packets Arrival 
+@cindex RTCP Packet Arrival
+Incoming RTCP packets are automatically handled by ccRTP. However,
+this does not mean you can't track the reception of RTCP packets.
+
+@itemize
+
+@cindex SR
+@cindex RTCP SR
+@findex QueueRTCPManager::onGotSR
+@item @code{onGotSR}
+
+@cindex RR
+@cindex RTCP RR
+@findex QueueRTCPManager::onGotRR
+@item @code{onGotRR}
+
+@cindex SDES
+@cindex RTCP SDES
+@findex QueueRTCPManager::onGotSDESChunk
+@item @code{onGotSDESChunk}
+
+@cindex APP
+@cindex RTCP APP
+@findex QueueRTCPManager::onGotAPP
+@item @code{onGotAPP}
+
+@cindex SRE Extension
+@findex QueueRTCPManager::onGotRRSRExtension
+@item @code{onGotRRSRExtension}
+
+@end itemize
+
+Note that this events correspond to RTCP packets, not RTCP compound
+packets, and probably the reception of a compound packet will trigger
+more than one of these events.
+
+
+@c -----------------------------------------------------------------------
+@node Synchronization Source States
+@comment  node-name,  next,  previous,  up
+@subsection Synchronization Source States
+@cindex Synchronization Source States
+
+@findex IncomingDataQueue::onNewSyncSource
+@code{onNewSyncSource}.
+
+
+@c -----------------------------------------------------------------------
+@node SSRC Collisions
+@comment  node-name,  next,  previous,  up
+@subsection SSRC Collisions 
+@cindex SSRC Collision
+
+@cindex collision
+@cindex SSRC collision
+@findex QueueRTCPManager::onSSRCCollision
+@code{onSSRCCollision}.
+
+@c -----------------------------------------------------------------------
+@node Specialized Payload Formats
+@chapter Specialized Payload Formats
+@cindex Specialized Payload Formats
+
+@emph{TODO:} finish 2833bis and CN.
+
+@emph{TODO:} comment H.261 specific RTCP packets: FIR and NACK.
+
+
+@c -----------------------------------------------------------------------
+@node Standards Tracking
+@chapter Standards Tracking
+@cindex Standards tracking
+
+@cindex IETF
+@cindex IETF standards
+
+@emph{TODO: explain what is done/being done/planned}.
+
+@itemize
+
+@item @cite{RTP: A Transport Protocol for Real-Time Applications (RFC 3550, which supersedes RFC 1889)}.
+
+@item @cite{RTP Profile for Audio and Video Conferences with Minimal Control (RFC 3551, which supersedes RFC 1890)}.
+
+@item @cite{MIME Type Registration of RTP Payload Formats (RFC 3555)}.
+
+@item @cite{IANA RTP Parameters}.
+
+@item @cite{RTP Payload Format for H.261 Video Streams (RFC 2032)}. Defines H.261 specific FIR and NACK RTCP packets.
+
+
+@end itemize
+
+@itemize
+
+Not yet implemented:
+
+@cindex profile
+@cindex SRTP
+@cindex Secure RTP
+@item @cite{The Secure Real-time Transport Protocol}. SRTP provile.
+
+@cindex AVPF
+@cindex RTCP-based feedback
+@item @cite{Extended RTP Profile for RTCP-based Feedback (RTP/AVPF)}.
+
+@cindex AVPF
+@cindex RTCP-based feedback
+@item @cite{Extended RTP Profile for RTCP-based Feedback (RTP/AVPF)}.
+
+@cindex SAVPF
+@item @cite{Extended Secure RTP Profile for RTCP-based Feedback (RTP/SAVPF)}.
+
+@end itemize
+
+
+@c -----------------------------------------------------------------------
+@node Upgrading
+@chapter Upgrading
+@cindex Upgrading
+
+This chapter outlines the main steps required to upgrade applications
+written for old releases of ccRTP (0.6.x, 0.7.x and 0.9.x series) to
+the 1.0 series. It is written mostly as a recipe of replacements for
+old constructs.
+
+Replace @code{#include <cc++/rtp.h>} with @code{#include
+<ccrtp/rtp.h>}@footnote{Note that unfortunately ccRTP 1.0pre0 used
+@code{#include <cc++/rtp/rtp.h}, which is now deprecated.}.
+
+Changes that have to do more with Common C++ 2 than with ccRTP:
+
+@table @code
+
+@item exit(int)
+@findex exit
+Replace with exit()
+
+@item Thread::Terminate()
+@findex Thread::terminate
+Replace with Thread::terminate()
+
+@item ccxx_sleep(timeout_t)
+@findex ccxx_sleep
+@findex Thread::sleep
+Replace with sleep(timeout_t).
+
+@item Thread::Run()
+Replace with Thread::run()
+
+@end table
+
+Changes required by ccRTP itself:
+
+@table @code
+@item RTPSource
+@tindex RTPSource
+@tindex SyncSource
+Now @code{SyncSource}, and is a somewhat different concept. For
+instance, calls to RTPSource::getID() must be replaced with calls to
+SyncSource::getID(), which in most cases will not imply any change to
+this part of the code.
+
+@item RTPQueue::getLocalInfo()->getID()
+@findex RTPQueue::getLocalInfo
+@findex RTPQueue::getLocalSSRC
+Replace with @code{RTPQueueBase::getLocalSSRC()}
+
+@item RTPQueue::getCNAME()
+@findex RTPQueue::getCNAME
+@findex defaultApplication
+@findex RTPApplication::getSDESItem
+Replace with @code{defaultApplication().getSDESItem(SDESItemTypeSDES)}.
+
+@item RTPQueue::getPacket()
+@findex RTPQueue::getPacket
+@findex IncomingDataQueue::getData
+@code{getPacket()} has been removed and now there is only a
+@code{getData()} method in the @acronym{RTP} queues.
+
+@item RTPQueue::setTimeout()
+@findex RTPQueue::setTimeout
+@findex OutgoingDataQueue::setSchedulingTimeout
+Replace calls to RTPQueue::setTimeout(microtimeout_t) with calls to
+OutgoingDataQueue(microtimeout_t), whose purpose and working is
+exactly the same.
+
+@item RTPQueue::putPacket()
+@findex RTPQueue::putPacket
+@findex OutgoingDataQueue::putData
+@cindex payload type
+@findex RTPQueueBase::setPayloadFormat
+@code{putPacket()} has been removed and now there is only a
+@code{putData()} method in the @acronym{RTP} queues. Note also that now the
+payload type is not specified for each outgoing @acronym{RTP} data block,
+instead use RTPQueueBase::setPayloadFormat each time the payload type
+changes.
+
+@item PayloadType
+@tindex DynamicPayloadType
+@tindex StaticPayloadType
+The definition of payload types has deeply changed in order to allow
+all standard uses of dynamic payload negotiation. Refer to
+@ref{Payload Types and Formats}, for an explanation of the new payload
+types and formats related classes.
+
+For example, @code{RTP_PAYLOAD_PCMU} must be replaced with something
+like @code{StaticPayloadFormat pcmu(sptPCMU)}, where @code{pcmu} is
+the name of a static payload object that binds an statically assigned
+@code{PayloadType} @footnote{The static payload type 0 corresponds to
+the audio format PCMU, see @cite{RFC 3550}.}. to its corresponding
+@acronym{RTP} clock rate@footnote{8 khz.}.
+
+@cindex destination
+@cindex redundancy
+@item RTPSocket::Connect
+The call connect has been removed. Now, in order to send packets to a
+destination @code{OutgoingDataQueue::addDestination} must be used. It
+allows for setting more than one destination. Any destination can
+actually be added more than one time with addDestination, which can be
+used a simple trick to perform redundant transmission: each packet -both
+RTP and RTCP- will be transmitted to the destination as many times as it
+has been added to the list of destinations through calling
+addDestination.
+
+@item RTPQueue::getCurrentRate
+@findex RTPQueue::getCurrentRate
+@findex RTPQueueBase::getCurrentRTPClockRate
+Replace with @code{RTPQueueBase::getCurrentRTPClockRate()}.
+
+@item RTPSocket::Start
+@findex RTPSocket::Start
+@findex RTPSession::startRunning
+Replace with @code{RTPSession::startRunning}.
+
+@item RTPQueue::gotHello
+@findex RTPQueue::gotHello
+@findex QueueRTCPManager::onNewSyncSource
+Replace with @code{QueueRTCPManager::onNewSyncSource}.
+
+@item RTPQueue::gotGoodbye
+@findex RTPQueue::gotGoodbye
+@findex QueueRTCPManager::onGotGoodbye
+Replace with @code{QueueRTCPManager::onGotGoodbye}.
+
+@end table
+
+
+@c -----------------------------------------------------------------------
+@node ccRTP Internals
+@comment  node-name,  next,  previous,  up
+@chapter ccRTP Internals
+@cindex @acronym{ccRTP} Internals
+
+
+@menu
+* Internals Overview::          ccRTP internals overview.
+* Collisions and Loops::        Collision Resolution and Loop Detection.
+* Algorithms in the Standard::  Implementation of algorithms in the standard.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node Internals Overview
+@section Internals Overview
+@cindex Internals Overview
+
+@emph{TODO: Explain where on how timer reconsideration/reverse recons. is
+performed}.
+
+Performance:
+
+@itemize 
+@item Zero copy stack.
+@item RW/R multithreading.
+@item Fast specialized linked list and hash mechanisms.
+@end itemize
+
+@c -----------------------------------------------------------------------
+@node Collisions and Loops
+@section Collisions and Loops
+@cindex Collisions and Loops
+
+ccRTP performs loop detection (following 8.2 in @cite{RFC 3550},
+though the algorithm in ccRTP differs is structure because of two
+reasons:
+
+@itemize
+
+@item ccRTP holds a table of source for which some packet has been received, instead of a table with all the sources in the session (i.e. the local source is not included in the table unless it sends packets to itself).
+
+@item RTP and RTCP packets are handled separately whereas the algorithm in 8.2 treats both.
+
+Note that the first two conditions in 8.2 (creating new source entries
+and setting source transport address) are handled in the SSRC
+bookkeeping methods rather than mixing them with the real collisions
+and loop handling.
+
+Unlike the algorithm given in 8.2, the ccRTP algorithm detects the
+very rare case when two sources on the same host use the same SSRC
+identifier and the first @acronym{RTP} packet for that identifier is
+received from one source and the first RTCP is received from the
+other.
+
+@end itemize
+
+@c -----------------------------------------------------------------------
+@node Algorithms in the Standard
+@section Algorithms in the Standard
+@cindex Algoritms in the Standard
+
+The following sections summarizes how the algorithms specified in
+appendixes from @cite{RFC 3550} are implemented in ccRTP. A
+``mapping'' between routines in the RFC and methods/routines in ccRTP
+is provided.
+
+@menu
+* A.1::                @acronym{RTP} Data Header Validity Checks.
+* A.2::                RTCP Header Validity Checks.
+* A.3::                Determining the Number of @acronym{RTP} Packets Expected and Lost.
+* A.4::                Generating SDES RTCP Packets.
+* A.5::                Parsing RTCP SDES Packets.
+* A.6::                Generating a Random 32-bit Identifier.
+* A.7::                Computing the RTCP Transmission Interval.
+* A.8::                Estimating the Interarrival Jitter.
+@end menu
+
+
+@c -----------------------------------------------------------------------
+@node A.1
+@subsection A.1
+@cindex A.1
+
+@findex IncomingDataQueue::checkSSRCInIncomingRTPPkt
+@findex QueueRTCPManager::checkSSRCInRTCPPkt
+ccRTP performs @acronym{RTP} data header validity check in two stages:
+the first stage, performed at the constructor of @code{IncomingRTPPkt}
+(which is extensible with virtual methods) validates the header fields
+independent of the source. The second stage, performed at
+@code{IncomingDataQueue::checkSSRCInIncomingRTPPkt} and
+@code{QueueRTCPManager::checkSSRCInRTCPPkt}, validates those fields
+specific to the source of the packet (number sequence, etc).
+
+Additionally, the following table specifies which methods of ccRTP
+implement the functions init_seq and update_seq from A.1.
+
+@table @code
+
+@item void init_seq(source*, u_int16) 
+void MembershipBookkeeping::SyncSourceLink::initSequence(uint16)
+
+@item int update_seq(source*, u_int16)
+bool RTPQueue::recordReception(SyncSourceLink&, const IncomingRTPPkt&)
+
+@end table
+
+@c -----------------------------------------------------------------------
+@node A.2
+@subsection A.2
+@cindex A.2
+
+@cindex header check
+@cindex header validity
+@cindex RTCP header
+@findex RTCPCompoundHandler::checkCompountRTCPHeader
+The code in A.2 corresponds to
+@code{RTCPCompoundHandler::checkCompountRTCPHeader}.
+
+
+@c -----------------------------------------------------------------------
+@node A.3
+@subsection A.3
+@cindex A.3
+
+@findex MembershipBookkeeping::SyncSourceLink::computeStats
+Code in A.3 corresponds to @code{MembershipBookeeping::computeStats}.
+
+
+@c -----------------------------------------------------------------------
+@node A.4
+@subsection A.4
+@cindex A.4
+
+@findex QueueRTCPManager::packSDES
+Code in A.4 is implemented as part of the method
+@code{QueueRTCPManager::packSDES}.
+
+
+@c -----------------------------------------------------------------------
+@node A.5
+@subsection A.5
+@cindex A.5
+
+@findex QueueRTCPManager::onGotSDES
+Code in A.5 is implemented in the method
+@code{QueueRTCPManager::onGotSDES}, which calls the virtual method
+@code{QueueRTCPManager::onGotSDESChunk} to process each SDES chunk.
+
+
+@c -----------------------------------------------------------------------
+@node A.6
+@subsection A.6
+@cindex A.6
+
+@cindex Random numbers
+@cindex /dev/urandom
+@cindex MD5
+On POSIX systems, ccRTP uses @file{/dev/urandom} when available. If
+there is no such device, it defaults to the MD5 based algorithm given
+in appendix A.6.
+
+Code in A.6 corresponds to @code{uint32 MD5BasedRandom32()}, which is
+called by @code{uint32 random32()} when no random device is available.
+
+
+@c -----------------------------------------------------------------------
+@node A.7
+@subsection A.7
+@cindex A.7
+
+Mapping:
+
+@table @code
+
+@item double rtcp_interval(int, int, double, int, double, int) 
+virtual timeval QueueRTCPManager::computeRTCPInterval(), and in timeval
+(seconds + microseconds) units, instead of seconds.
+
+@item OnExpire(event, int, int, double, int, double, int time_tp, time_tp, int)
+QueueRTCPManager::runControlService(microtimeout_t) (this method also
+implements part of SendRTCPReport(e))
+
+@item OnReceive(packet, event, int, int, int, double, double, double, double)
+void QueueRTCPManager::takeInControlPacket() and
+QueueRTCPManager::runControlService(microtimeout_t)
+
+@item Schedule(time, event) and Reschedule(time, event) 
+No equivalent.
+
+@findex QueueRTCPManager::dispatchControlPacket
+@item SendRTCPReport(event) 
+@code{dispatchControlPacket}.
+
+@findex QueueRTCPManager::dispatchBYE
+@item SendBYEPacket(event)
+@code{QueueRTCPManager::dispatchBYE(const std::string& reason)}.
+
+@item TypeOfEvent(event)
+No equivalent.
+
+@item PacketType(p) 
+No equivalent.
+
+@findex IncomingDataQueue::takeInDataPacket
+@item ReceivedPacketSize() 
+@code{size_t IncomingDataQueue::takeInDataPacket()}.
+
+@findex OutgoingDataQueue::dispatchDataPacket
+@findex QueueRTCPManager::dispatchControlPacket
+@item SentPacketSize() 
+@code{size_t OutgoingDataQueue::dispatchDataPacket()} -data, and
+@code{size_t QueueRTCPManager::dispatchControlPacket()} -control.
+
+@item NewMember(p)
+
+@item NewSender(p)
+
+@item AddMember() and RemoveMember()
+
+@item AddSender() and RemoveSender()
+
+@end table
+
+
+@c -----------------------------------------------------------------------
+@node A.8
+@subsection A.8
+@cindex A.8
+
+@cindex jitter
+@cindex interarrival jitter
+@findex IncomingDataQueue::recordReception
+Interarrival jitter is estimated as specified in A.8, in
+@code{recordReception}. Jitter is kept as a float.
+
+
+@c -----------------------------------------------------------------------
+@node Related Work
+@comment  node-name,  next,  previous,  up
+@chapter Related Work
+@cindex Related work
+
+@emph{TODO}.  Other free @acronym{RTP} stacks and tools:
+
+@itemize
+
+@item jrtplib
+
+@item oRTP
+
+@item LIVE.COM Streaming Media
+
+@item UCL Common Code Library. Note this library is distributed under a BSD license @emph{with} the obnoxious clausule.
+@end itemize
+
+
+@c -----------------------------------------------------------------------
+@node Future Work
+@comment  node-name,  next,  previous,  up
+@chapter Future Work
+@cindex Future, Future Work
+
+@emph{TODO}.
+
+
+@c %** end of body
+
+@c -----------------------------------------------------------------------
+@node Licenses
+@appendix Licenses
+
+@menu
+* GNU Free Documentation License::              License for this document.
+* GNU General Public License::                  ccRTP Base License.
+* GNU ccRTP Linking Exception::                 ccRTP linking exception.
+@end menu
+
+@include gpl.texi
+
+@include fdl.texi
+
+
+@c -----------------------------------------------------------------------
+@node GNU ccRTP Linking Exception
+@appendixsec GNU ccRTP Linking Exception
+@cindex GNU ccRTP Linking Exception
+
+As a special exception to the GNU General Public License, permission
+is granted for additional uses of the text contained in its release of
+ccRTP.
+
+The exception is that, if you link the ccRTP library with other files
+to produce an executable, this does not by itself cause the resulting
+executable to be covered by the GNU General Public License.  Your use
+of that executable is in no way restricted on account of linking the
+ccRTP library code into it.
+
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License.
+
+This exception applies only to the code released under the name ccRTP.
+If you copy code from other releases into a copy of ccRTP, as the
+General Public License permits, the exception does not apply to the
+code that you add in this way.  To avoid misleading anyone as to the
+status of such modified files, you must delete this exception notice
+from them.
+
+If you write modifications of your own for ccRTP, it is your choice
+whether to permit this exception to apply to your modifications.  If
+you do not wish that, delete this exception notice.
+
+
+ 
+
+@c -----------------------------------------------------------------------
+
+@c %** start of end
+@node Class and Data Type Index
+@unnumbered Class and Data Type Index
+
+@printindex tp
+
+@node Method and Function Index
+@unnumbered Method and Function Index
+
+@printindex fn
+
+@node Concept Index
+@unnumbered Concept Index
+
+@printindex cp
+
+@bye
+@c %** end of end
diff --git a/jni/ccrtp-1.8.0-android/doc/fdl.texi b/jni/ccrtp-1.8.0-android/doc/fdl.texi
new file mode 100644
index 0000000..5385f32
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/fdl.texi
@@ -0,0 +1,452 @@
+
+@node GNU Free Documentation License
+@appendixsec GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.2, November 2002
+
+@display
+Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document @dfn{free} in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+@item
+APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The ``Document'', below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as ``you''.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input
+format, @acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML},
+PostScript or @acronym{PDF} designed for human modification.  Examples
+of transparent image formats include @acronym{PNG}, @acronym{XCF} and
+@acronym{JPG}.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, @acronym{SGML} or
+@acronym{XML} for which the @acronym{DTD} and/or processing tools are
+not generally available, and the machine-generated @acronym{HTML},
+PostScript or @acronym{PDF} produced by some word processors for
+output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.)  To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+@item
+VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+@item
+COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+@item
+MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+@enumerate A
+@item
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+@item
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+@item
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+@item
+Preserve all the copyright notices of the Document.
+
+@item
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+@item
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+@item
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+@item
+Include an unaltered copy of this License.
+
+@item
+Preserve the section Entitled ``History'', Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled ``History'' in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+@item
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the ``History'' section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+@item
+For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+@item
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+@item
+Delete any section Entitled ``Endorsements''.  Such a section
+may not be included in the Modified Version.
+
+@item
+Do not retitle any existing section to be Entitled ``Endorsements'' or
+to conflict in title with any Invariant Section.
+
+@item
+Preserve any Warranty Disclaimers.
+@end enumerate
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties---for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+@item
+COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''.  You must delete all
+sections Entitled ``Endorsements.''
+
+@item
+COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+@item
+AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an ``aggregate'' if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+@item
+TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warrany Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+@item
+TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+@uref{http://www.gnu.org/copyleft/}.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+@end enumerate
+
+@page
+@appendixsubsec ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+@smallexample
+@group
+  Copyright (C)  @var{year}  @var{your name}.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+@end group
+@end smallexample
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+@smallexample
+@group
+    with the Invariant Sections being @var{list their titles}, with
+    the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
+    being @var{list}.
+@end group
+@end smallexample
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+@c Local Variables:
+@c ispell-local-pdict: "ispell-dict"
+@c End:
+
diff --git a/jni/ccrtp-1.8.0-android/doc/fdlnotice.texi b/jni/ccrtp-1.8.0-android/doc/fdlnotice.texi
new file mode 100644
index 0000000..d667a36
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/fdlnotice.texi
@@ -0,0 +1,6 @@
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 
+or any later version published by the Free Software Foundation; 
+with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+A copy of the license is included in the section entitled "GNU
+Free Documentation License".
diff --git a/jni/ccrtp-1.8.0-android/doc/gpl.texi b/jni/ccrtp-1.8.0-android/doc/gpl.texi
new file mode 100644
index 0000000..d26233c
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/gpl.texi
@@ -0,0 +1,392 @@
+@node GNU General Public License
+@appendixsec GNU GENERAL PUBLIC LICENSE
+@center Version 2, June 1991
+
+@c This file is intended to be included in another file.
+
+@display
+Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@appendixsubsec Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software---to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+@iftex
+@appendixsubsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end iftex
+@ifinfo
+@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end ifinfo
+
+@enumerate 0
+@item
+This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The ``Program'', below,
+refers to any such program or work, and a ``work based on the Program''
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term ``modification''.)  Each licensee is addressed as ``you''.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+@item
+You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+@item
+You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+@enumerate a
+@item
+You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+@item
+You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+@item
+If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License.  (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+@end enumerate
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+@item
+You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+@enumerate a
+@item
+Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+@item
+Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+@item
+Accompany it with the information you received as to the offer
+to distribute corresponding source code.  (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+@end enumerate
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+@item
+You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+@item
+Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+@item
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+@item
+If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+@item
+The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and ``any
+later version'', you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+@item
+If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+@iftex
+@heading NO WARRANTY
+@end iftex
+@ifinfo
+@center NO WARRANTY
+@end ifinfo
+
+@item
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+@item
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+@end enumerate
+
+@iftex
+@heading END OF TERMS AND CONDITIONS
+@end iftex
+@ifinfo
+@center END OF TERMS AND CONDITIONS
+@end ifinfo
+
+@page
+@appendixsubsec Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the ``copyright'' line and a pointer to where the full notice is found.
+
+@smallexample
+@var{one line to give the program's name and a brief idea of what it does.}
+Copyright (C) @var{yyyy}  @var{name of author}
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+@end smallexample
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+@smallexample
+Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+@end smallexample
+
+The hypothetical commands @samp{show w} and @samp{show c} should show
+the appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than @samp{show w} and
+@samp{show c}; they could even be mouse-clicks or menu items---whatever
+suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a ``copyright disclaimer'' for the program, if
+necessary.  Here is a sample; alter the names:
+
+@example
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+@var{signature of Ty Coon}, 1 April 1989
+Ty Coon, President of Vice
+@end example
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/jni/ccrtp-1.8.0-android/doc/srcmodel.dia b/jni/ccrtp-1.8.0-android/doc/srcmodel.dia
new file mode 100644
index 0000000..7fa2210
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/srcmodel.dia
Binary files differ
diff --git a/jni/ccrtp-1.8.0-android/doc/srcmodel.txt b/jni/ccrtp-1.8.0-android/doc/srcmodel.txt
new file mode 100644
index 0000000..a3344d8
--- /dev/null
+++ b/jni/ccrtp-1.8.0-android/doc/srcmodel.txt
@@ -0,0 +1,11 @@
+                          ---------------
+      --------------------| Participant |--------------------
+      |              0:n  ---------------  0:1              |
+      | 1                                              1:n  |
+ ------------------                                  ----------------
+ | RTPApplication |                                  |  SyncSource  |
+ ------------------                                  ----------------
+      | 1                                              0:n  |
+      |                   ---------------                   |
+      --------------------|  RTPSession |--------------------
+                     0:n  ---------------  1