diff --git a/INSTALL b/INSTALL index 02da4e6..46e6bd4 100644 --- a/INSTALL +++ b/INSTALL @@ -211,10 +211,10 @@ If you do not want to use the rpath linking option, or you OS or compiler do not allows that, then after the installation, you may have to adjust the system-wide shared library search path by using "ldconfig -n " (Linux), "ldconfig -m " (BSD) or "crle -u -l " -(Solaris). Your system must be able to find the sqlite, libevent2, openssl and -(optionally) PostgreSQL and/or MySQL (MariaDB) and/or MongoDB and/or Redis -shared libraries, either with the help of the system-wide library search -configuration or by using LD_LIBRARY_PATH. "make install" will make a +(Solaris). Your system must be able to find the libevent2, openssl and +(optionally) SQLite and/or PostgreSQL and/or MySQL (MariaDB) and/or MongoDB +and/or Redis shared libraries, either with the help of the system-wide library +search configuration or by using LD_LIBRARY_PATH. "make install" will make a non-garantied effort to add automatically PREFIX/lib and /usr/local/lib to the libraries search path, but if you have some libraries in different non-default directories you will have to add them manually to the search @@ -268,21 +268,21 @@ The code is compatible with C++ compiler, and a C++ compiler VII. WHICH EXTRA LIBRARIES AND UTILITIES YOU NEED In addition to common *NIX OS services and libraries, to compile this code, -OpenSSL (version 1.0.0a or better recommended), sqlite C development library, -and libevent2 (version 2.0.5 or better) are required, -the PostgreSQL C client development setup is -optional, the MySQL (MariaDB) C client development setup is optional, the MongoDB -C Driver and the Hiredis development files for Redis database access are optional. -For fully functional build, the extra set of libraries must be installed -in full version (the development headers and the libraries to link with). -For runtime, only runtime setup is required. If the build is modified for +OpenSSL (version 1.0.0a or better recommended) and libevent2 (version 2.0.5 +or better) are required, SQLite C development library and header is optional, +the PostgreSQL C client development setup is optional, +the MySQL (MariaDB) C client development setup is optional, +the MongoDB C Driver and the Hiredis development files for Redis database +access are all optional. For development build, the development headers and +the libraries to link with, are to be installed. For the runtime, only the +runtime setup is required. If the build is modified for static linking, then even runtime installation is not needed. OpenSSL, SQLite, libevent2, PostgreSQL, MySQL (or MariaDB) and Hiredis libraries can be downloaded from their web sites: - http://www.openssl.org (required); - - http://www.sqlite.org (optional); - http://www.libevent.org (required); + - http://www.sqlite.org (optional); - http://www.postgresql.org (optional); - http://www.mysql.org (or http://mariadb.org) (optional); - https://github.com/mongodb/mongo-c-driver (optional); @@ -387,9 +387,8 @@ like this: Dynamic library paths: -You may also have to adjust the turn server start script, add PostgreSQL -and/or MySQL and/or MongoDB and/or Redis runtime library path to LD_LIBRARY_PATH. -Or you may find that it would be more convenient to adjust the +You may also have to adjust the turn server start script, add all the dynamic runtime +library paths to LD_LIBRARY_PATH. Or you may find that it would be more convenient to adjust the system-wide shared library search path by using commands: on Linux: @@ -410,22 +409,23 @@ On Mac OS X, you have three different choices for dynamic libraries handling: 2) Before the compilation, check the dynamic libraries and adjust their identification names, if necessary, to the absolute library path or to @rpath/. -For exmple, the MySQL dynamic library may need that adjustment. You will have to use +For example, the MySQL dynamic library may need that adjustment. You will have to use "adjust_name_tool" with -id option for that; OR -3) After the compilation, you can use the same tool, "adjust_name_tool", with option -change, -to adjust the library paths values in the binary, where necessary. All library paths must be -absolute paths or @rpath/... . +3) After the compilation, you can use the same tool, "adjust_name_tool", +with option -change, to adjust the library paths values in the binary, +where necessary. All library paths must be absolute paths or @rpath/... . See also the next section. -NOTE: See "PostgreSQL setup" and "MySQL setup" and "MongoDB setup" and -"Redis setup" sections below for more database setup information. +NOTE: See "SQLite setup" and "PostgreSQL setup" and "MySQL setup" and +"MongoDB setup" and "Redis setup" sections below for more database setup +information. -NOTE: If you do not install PostgreSQL or MySQL or MongoDB or Redis then you will -be limited to flat files for user database. It will work great for -smaller user databases (like 100 users) but for larger systems you -will need PostgreSQL or MySQL or MongoDB or Redis. +NOTE: If you do not install SQLite or PostgreSQL or MySQL or MongoDB or Redis, +then you will be limited to the command-line options for user database. +It will work great for development setup, but for real runtime systems you +will need SQLite or PostgreSQL or MySQL or MongoDB or Redis. NOTE: To run PostgreSQL or MySQL or MongoDB or Redis server on the same system, you will also have to install a corresponding PostgreSQL or MySQL or @@ -1026,11 +1026,11 @@ Redis can be also used for the TURN allocation status check and for status and traffic notifications. See the explanation in the turndb/schema.stats.redis file, and an example in -turndb/testredisdbsetup.sh file. One special thing about TURN Redis security setup -is that you can store open passwords for long-term credentials in Redis. -You cannot set open passwords for long-term credentials in MySQL and PostgreSQL - -with those DBs, you have to use the keys only. With Redis, you have a choice - -keys or open passwords. +turndb/testredisdbsetup.sh file. One special thing about TURN Redis security +setup is that you can store open passwords for long-term credentials in Redis. +You cannot set open passwords for long-term credentials in SQLite or MySQL or +PostgreSQL - with those DBs, you have to use the keys only. With Redis, you +have a choice - keys or open passwords. You also have to take care about Redis connection parameters, the timeout and the keepalive. The following settings must be in your Redis config file diff --git a/README.turnadmin b/README.turnadmin index 9701234..7113cf4 100644 --- a/README.turnadmin +++ b/README.turnadmin @@ -80,7 +80,7 @@ Commands: Options with required values: --b, --db, --userdb SQLite user database file name (default - /var/db/turndb or +-b, --db, --userdb SQLite user database file name (default - /var/db/turndb or /usr/local/var/db/turndb). See the same option in the turnserver section. -e, --psql-userdb PostgreSQL user database connection string. @@ -172,6 +172,7 @@ to see the man page. /etc/turnserver.conf /var/db/turndb + /usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnserver b/README.turnserver index fc38c04..4d56429 100644 --- a/README.turnserver +++ b/README.turnserver @@ -486,15 +486,15 @@ Options with required values: --tls-alternate-server Option to set alternative server for TLS & DTLS services in form of :. If the port number is omitted, then the default port - number 5349 for the TLS/DTLS protocols will be used. See the previous option for the - functionality description. + number 5349 for the TLS/DTLS protocols will be used. See the + previous option for the functionality description. -O, --redis-statsdb Redis status and statistics database connection string, if used (default - empty, no Redis stats DB used). This database keeps allocations status information, and it can be also used for publishing and delivering traffic and allocation event notifications. This database option can be used independently of --redis-userdb option, - and actually Redis can be used for status/statistics and MySQL or MongoDB or PostgreSQL can - be used for the user database. + and actually Redis can be used for status/statistics and SQLite or MySQL or MongoDB or + PostgreSQL can be used for the user database. The connection string has the same parameters as redis-userdb connection string. --max-allocate-timeout Max time, in seconds, allowed for full allocation establishment. @@ -770,7 +770,10 @@ choose any for your convenience. You do not have to handle the database information "manually" - the turnadmin program can handle everything for you. For PostgreSQL and MySQL you will just have to create an empty database with schema.sql SQL script. With Redis, you do not have to do even that - just run turnadmin and -it will set the users for you (see the turnadmin manuals). +it will set the users for you (see the turnadmin manuals). If you are using SQLite, then the +turnserver or turnadmin will initialize the empty database, for you, when started. The +TURN server installation process creates an empty initialized SQLite database in the default +location (/var/db/turndb or /usr/local/var/db/turndb, depending on the system). ================================= @@ -844,6 +847,7 @@ FILES /etc/turnserver.conf /var/db/turndb + /usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/README.turnutils b/README.turnutils index 7b93fe8..865d8f9 100644 --- a/README.turnutils +++ b/README.turnutils @@ -252,6 +252,7 @@ FILES /etc/turnserver.conf /var/db/turndb + /usr/local/var/db/turndb /usr/local/etc/turnserver.conf diff --git a/examples/etc/turnserver.conf b/examples/etc/turnserver.conf index 9067758..559f931 100644 --- a/examples/etc/turnserver.conf +++ b/examples/etc/turnserver.conf @@ -160,15 +160,11 @@ # Uncomment to use long-term credential mechanism. # By default no credentials mechanism is used (any user allowed). -# This option can be used with either flat file user database or -# PostgreSQL DB or MySQL DB or MongoDB or Redis DB for user keys storage. # #lt-cred-mech # Uncomment to use short-term credential mechanism. # By default no credentials mechanism is used (any user allowed). -# For short-term credential mechanism you have to use PostgreSQL or -# MySQL or MongoDB or Redis database for user password storage. # #st-cred-mech diff --git a/examples/scripts/readme.txt b/examples/scripts/readme.txt index 4514771..f97308e 100644 --- a/examples/scripts/readme.txt +++ b/examples/scripts/readme.txt @@ -11,8 +11,8 @@ mechanism (peer.sh to be used, too). 4) "longtermsecuredb" shows how to start TURN server with database. The clients from the directory "longtermsecure" can be used with the relay scripts in the "longtermsecuredb" -directory. Of course, the database (PostgreSQL or MySQL) must be set for these scripts -to work correctly. +directory. Of course, the database (SQLite, PostgreSQL, MySQL, Redis or MongoDB) must +be set for these scripts to work correctly. 5) "restapi" shows how to use TURN REST API. diff --git a/man/man1/turnadmin.1 b/man/man1/turnadmin.1 index 589a90d..964c84d 100644 --- a/man/man1/turnadmin.1 +++ b/man/man1/turnadmin.1 @@ -1,5 +1,5 @@ .\" Text automatically generated by txt2man -.TH TURN 1 "19 November 2014" "" "" +.TH TURN 1 "21 November 2014" "" "" .SH GENERAL INFORMATION \fIturnadmin\fP is a TURN administration tool. This tool can be used to manage @@ -263,6 +263,7 @@ to see the man page. /etc/turnserver.conf .PP /var/db/turndb +.PP /usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf diff --git a/man/man1/turnserver.1 b/man/man1/turnserver.1 index 8095505..6239143 100644 --- a/man/man1/turnserver.1 +++ b/man/man1/turnserver.1 @@ -1,5 +1,5 @@ .\" Text automatically generated by txt2man -.TH TURN 1 "19 November 2014" "" "" +.TH TURN 1 "21 November 2014" "" "" .SH GENERAL INFORMATION The \fBTURN Server\fP project contains the source code of a TURN server and TURN client @@ -699,8 +699,8 @@ can emulate "weighting" of the servers. \fB\-\-tls\-alternate\-server\fP Option to set alternative server for TLS & DTLS services in form of :. If the port number is omitted, then the default port -number 5349 for the TLS/DTLS protocols will be used. See the previous option for the -functionality description. +number 5349 for the TLS/DTLS protocols will be used. See the +previous option for the functionality description. .TP .B \fB\-O\fP, \fB\-\-redis\-statsdb\fP @@ -708,8 +708,8 @@ Redis status and statistics database connection string, if used (default \- empt no Redis stats DB used). This database keeps allocations status information, and it can be also used for publishing and delivering traffic and allocation event notifications. This database option can be used independently of \fB\-\-redis\-userdb\fP option, -and actually Redis can be used for status/statistics and MySQL or MongoDB or PostgreSQL can -be used for the user database. +and actually Redis can be used for status/statistics and SQLite or MySQL or MongoDB or +PostgreSQL can be used for the user database. The connection string has the same parameters as redis\-userdb connection string. .TP .B @@ -1025,7 +1025,10 @@ choose any for your convenience. You do not have to handle the database information "manually" \- the \fIturnadmin\fP program can handle everything for you. For PostgreSQL and MySQL you will just have to create an empty database with schema.sql SQL script. With Redis, you do not have to do even that \- just run \fIturnadmin\fP and -it will set the users for you (see the \fIturnadmin\fP manuals). +it will set the users for you (see the \fIturnadmin\fP manuals). If you are using SQLite, then the +\fIturnserver\fP or \fIturnadmin\fP will initialize the empty database, for you, when started. The +TURN server installation process creates an empty initialized SQLite database in the default +location (/var/db/turndb or /usr/local/var/db/turndb, depending on the system). .PP ================================= .SH LIBRARIES @@ -1099,6 +1102,7 @@ it would affect the performance. /etc/turnserver.conf .PP /var/db/turndb +.PP /usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf diff --git a/man/man1/turnutils.1 b/man/man1/turnutils.1 index 1007c87..57d5b1a 100644 --- a/man/man1/turnutils.1 +++ b/man/man1/turnutils.1 @@ -1,5 +1,5 @@ .\" Text automatically generated by txt2man -.TH TURN 1 "19 November 2014" "" "" +.TH TURN 1 "21 November 2014" "" "" .SH GENERAL INFORMATION A set of turnutils_* programs provides some utility functionality to be used @@ -375,6 +375,7 @@ to see the man page. /etc/turnserver.conf .PP /var/db/turndb +.PP /usr/local/var/db/turndb .PP /usr/local/etc/turnserver.conf