summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am6
-rw-r--r--configure.ac35
-rw-r--r--doc/Makefile.am35
-rw-r--r--doc/README.html.in154
-rw-r--r--doc/style.css32
-rw-r--r--php/Makefile.am19
-rw-r--r--php/pgets-intro.html3
-rw-r--r--php/pgets.php3
-rw-r--r--sql/Makefile.am19
-rw-r--r--sql/pgets-access.sql6
10 files changed, 300 insertions, 12 deletions
diff --git a/Makefile.am b/Makefile.am
index 386d51d..34eb703 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,21 +17,21 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
EXTRA_DIST=bootstrap.sh README LICENSE
-SUBDIRS=src #conf doc man
+SUBDIRS=src doc sql php
MAINTAINERCLEANFILES = README
noinst_DATA = README
README:
rm -f README
-# $(MAKE) -C doc README
+ $(MAKE) -C doc README
cd $(srcdir) && ln -s doc/README README
homepage: all dist
test -d $$HOME/homepage/lennart
mkdir -p $$HOME/homepage/lennart/projects/pgets
cp *.tar.gz $$HOME/homepage/lennart/projects/pgets
-# cp doc/style.css doc/README.html $$HOME/homepage/lennart/projects/pgets/
+ cp doc/style.css doc/README.html $$HOME/homepage/lennart/projects/pgets/
cp $$HOME/homepage/lennart/projects/pgets/README.html $$HOME/homepage/lennart/projects/pgets/index.html
distcleancheck:
diff --git a/configure.ac b/configure.ac
index 8d6e9e3..81725e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,11 +42,36 @@ if test "x$GCC" = "xyes" ; then
CFLAGS="$CFLAGS -pipe -Wall"
fi
-AC_CHECK_LIB([pq], [PQconnectdb])
-AC_CHECK_LIB([sqlite], [sqlite_open])
+# Check for PostgreSQL
+AC_ARG_ENABLE(postgres, AS_HELP_STRING(--disable-postgres,Don't build postgres client),
+[case "${enableval}" in
+ yes) postgres=yes ;;
+ no) postgres=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-postgres) ;;
+esac],[postgres=yes])
+
+if test "x$postgres" = "xyes" ; then
+ AC_CHECK_LIB([pq], [PQconnectdb],,[AC_MSG_ERROR([*** Sorry, you have to install libpq or use --disable-postgres ***])])
+ AC_CHECK_HEADER([postgresql/libpq-fe.h],,[AC_MSG_ERROR([*** Sorry, you have to install postgresql-dev or use --disable-postgres ***])])
+fi
+
+
+AM_CONDITIONAL([POSTGRES], [test "x$postgres" = "xyes"])
+
+# Check for SQLite
+AC_ARG_ENABLE(sqlite, AS_HELP_STRING(--disable-sqlite,Don't build sqlite client),
+[case "${enableval}" in
+ yes) sqlite=yes ;;
+ no) sqlite=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --sqlite-postgres);;
+esac],[sqlite=yes])
+
+if test "x$sqlite" = "xyes" ; then
+ AC_CHECK_LIB([sqlite], [sqlite_open],,[AC_MSG_ERROR([*** Sorry, you have to install libsqlite or use --disable-sqlite ***])])
+ AC_CHECK_HEADER([sqlite.h],,[AC_MSG_ERROR([*** Sorry, you have to install libsqlite-dev or use --disable-sqlite ***])])
+fi
-AM_CONDITIONAL([POSTGRES], [true])
-AM_CONDITIONAL([SQLITE], [true])
+AM_CONDITIONAL([SQLITE], [test "x$sqlite" = "xyes"])
# Checks for header files.
AC_HEADER_STDC
@@ -85,5 +110,5 @@ fi
AM_CONDITIONAL([USE_LYNX], [test "x$lynx" = xyes])
-AC_CONFIG_FILES([src/Makefile Makefile]) # conf/Makefile doc/Makefile doc/README.html])
+AC_CONFIG_FILES([src/Makefile Makefile doc/Makefile doc/README.html php/Makefile sql/Makefile])
AC_OUTPUT
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..a70ee0d
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,35 @@
+# $Id$
+
+# This file is part of pgets.
+#
+# pgets 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.
+#
+# pgets 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 pgets; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+noinst_DATA = README.html README
+EXTRA_DIST = $(noinst_DATA) style.css README.html.in
+
+MAINTAINERCLEANFILES = README README.html
+CLEANFILES =
+
+if USE_LYNX
+README: README.html
+ lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
+
+CLEANFILES += README
+endif
+
+tidy: README.html
+ tidy -e < README.html
+
+.PHONY: tidy
diff --git a/doc/README.html.in b/doc/README.html.in
new file mode 100644
index 0000000..6dab3d0
--- /dev/null
+++ b/doc/README.html.in
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="iso-8895-15"?> <!-- -*-html-helper-*- -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<title>pgets @PACKAGE_VERSION@</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+</head>
+
+<body>
+<h1><a name="top">pgets @PACKAGE_VERSION@</a></h1>
+
+<p><i>Copyright 2004 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i></p>
+
+<ul class="toc">
+ <li><a href="#license">License</a></li>
+ <li><a href="#news">News</a></li>
+ <li><a href="#overview">Overview</a></li>
+ <li><a href="#status">Status</a></li>
+ <li><a href="#documentation">Documentation</a></li>
+ <li><a href="#requirements">Requirements</a></li>
+ <li><a href="#installation">Installation</a></li>
+ <li><a href="#acks">Acknowledgements</a></li>
+ <li><a href="#download">Download</a></li>
+</ul>
+
+<h2><a name="license">License</a></h2>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
+
+<h2><a name="news">News</a></h2>
+
+<div class="news-date">Tue Mar 7 2004: </div> <p class="news-text"><a
+href="@PACKAGE_URL@pgets-0.1.tar.gz">Version 0.1</a> released, initial release</p>
+
+<h2><a name="overview">Overview</a></h2>
+
+<p><tt>pgets</tt> is a simple Linux tool for reading stored call
+accounting data from <a href="http://www.auerswald.de/">Auerswald</a> ETS 4308i PBX over a serial line into
+<a href="http://www.postgresql.org/">PostgreSQL</a> or <a
+href="http://www.sqlite.org/">SQLite</a> databases. <tt>pgets</tt>
+should be called by in regular time intervals (e.g. by <tt>cron</tt>)
+to update the database with all new data from the PBX.</p>
+
+<p><tt>pgets</tt> comes with a simple <a
+href="http://www.php.net/">PHP</a> based web frontend for querying
+the accumulated data.</p>
+
+<h2><a name="status">Status</a></h2>
+
+<p>Version @PACKAGE_VERSION@ works fine. While the C written transfer utility works
+with both SQLite and PostgreSQL databases, the PHP frontend is limited
+to PostgreSQL. This will probably change in future versions.</p>
+
+<h2><a name="documentation">Documentation</a></h2>
+
+<h3>Mode of Operation</h3>
+
+<p>After installation you should create the database for
+<tt>pgets</tt>. For PostgreSQL this involves executing the SQL
+commands contained in the file <tt>sql/pgets-access.sql</tt> by piping
+them to <tt>psql</tt>:</p>
+
+<pre>psql template1 postgres < sql/pgets-access.sql</pre>
+
+<p>You probably want to edit <tt>pgets-access.sql</tt> before piping
+it to <tt>psql</tt> for using different passwords. For SQLite this is
+much simpler as it doesn't involve any access rights:</p>
+
+<pre>sqlite pgets.sqlite < sql/pgets.sql</pre>
+
+<p>After that you should create a cronjob for either <tt>pgets-postgres</tt> or <tt>pgets-sqlite</tt>:</p>
+
+<pre>@daily pgets-postgres -q -b "dbname=pgets user=foo password=bar"</pre>
+
+<p>or:</p>
+
+<pre>@daily pgets-sqlite -q -b foo.sqlite</pre>
+
+<p>This makes sure that the <tt>pgets</tt> database is updated once a
+day with all new call accounting data stored in the PBX. <i>(This
+<tt>cron</tt> syntax is for a user cronjob, not a system wide one)</i>
+The option <tt>-q</tt> disables verbose printing of the current status
+of <tt>pgets</tt>. With <tt>-b</tt> you may pass the database access
+information to <tt>pgets</tt>, this is either a PostgreSQL compatible
+connection string or a SQLite file name. Use <tt>-d</tt> to use a
+different serial port than <tt>/dev/ttyS0</tt>.</p>
+
+<p>To use the PHP frontend copy <tt>php/pgets.php</tt>,
+<tt>php/style.css</tt> and <tt>php/pgets-intro.html</tt> into your web
+tree and activate PHP for it. Don't forget to enable the PostgreSQL
+module in <tt>php.ini</tt>. You may need to edit the top of
+<tt>pgets.php</tt> for the correct database access credentials.</p>
+<h2><a name="requirements">Requirements</a></h2>
+
+<p>A current Linux distribution on a machine with a serial port
+connected to the PBX. The RS2 port of PBX has to be in
+"Gesprächsdatenerfassung" mode. You may enable this mode by calling
+<tt>811118303</tt>.<p>
+
+<p><tt>pgets</tt> was developed and tested on Debian GNU/Linux
+"testing" from March 2004, it should work on most other Linux
+distributions since it uses GNU autoconf for source code
+configuration.</p>
+
+<p><tt>pgets</tt> requires the PostgreSQL and/or SQLite development
+library files for compilation.<p>
+
+<h2><a name="installation">Installation</a></h2>
+
+<p>As this package is made with the GNU autotools you should run
+<tt>./configure</tt> inside the distribution directory for configuring
+the source tree. After that you should run <tt>make</tt> for
+compilation and <tt>make install</tt> (as root) for installation of
+<tt>pgets</tt>.</p>
+
+<p>By default the build system creates two
+executables. <tt>pgets-postgres</tt> with support for PostgreSQL
+databases and <tt>pgets-sqlite</tt> with support for SQLite. You may
+disable building either one by passing <tt>--disable-postgres</tt>
+resp. <tt>--disable-sqlite</tt> to <tt>configure</tt>.</p>
+
+<h2><a name="acks">Acknowledgements</a></h2>
+
+<p>None so far</p>
+
+<h2><a name="download">Download</a></h2>
+
+<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>
+
+<p>The current release is <a href="@PACKAGE_URL@pgets-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p>
+
+<p>Get <tt>pgets</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="https://seth.intheinter.net:8081/svn/pgets/">repository</a>.</p>
+
+<p>If you want to be notified whenever I release a new version of this software use the subscription feature of <a href="http://freshmeat.net/projects/pgets/">Freshmeat</a>.</p>
+
+<hr/>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, March 2004</address>
+<div class="grey"><i>$Id$</i></div>
+
+</body>
+</html>
diff --git a/doc/style.css b/doc/style.css
new file mode 100644
index 0000000..95cbd57
--- /dev/null
+++ b/doc/style.css
@@ -0,0 +1,32 @@
+/* $Id$ */
+
+/***
+ * This file is part of pgets.
+ *
+ * pgets 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.
+ *
+ * pgets 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 pgets; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ ***/
+
+body { color: black; background-color: white; margin: 0.5cm; }
+a:link, a:visited { color: #900000; }
+p { margin-left: 0.5cm; margin-right: 0.5cm; }
+div.news-date { margin-left: 0.5cm; font-size: 80%; color: #4f0000; }
+p.news-text { margin-left: 1cm; }
+h1 { color: #00009F; }
+h2 { color: #00009F; }
+h3 { color: #00004F; margin-left: 0.5cm; }
+ul { margin-left: .5cm; }
+ol { margin-left: .5cm; }
+pre { margin-left: .5cm; background-color: #f0f0f0; padding: 0.4cm;}
+.grey { color: #afafaf; }
diff --git a/php/Makefile.am b/php/Makefile.am
new file mode 100644
index 0000000..5baf83a
--- /dev/null
+++ b/php/Makefile.am
@@ -0,0 +1,19 @@
+# $Id$
+
+# This file is part of pgets.
+#
+# pgets 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.
+#
+# pgets 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 pgets; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+EXTRA_DIST = style.css pgets.php pgets-intro.html
diff --git a/php/pgets-intro.html b/php/pgets-intro.html
index 98a66c2..625cd39 100644
--- a/php/pgets-intro.html
+++ b/php/pgets-intro.html
@@ -38,6 +38,7 @@
</p>
<hr/>
-<div class="grey"><!-- hhmts start -->Last modified: Mon Mar 1 00:03:59 CET 2004 <!-- hhmts end --></div>
+<div class="grey"><i><!-- hhmts start -->Last modified: Sun Mar 7 18:39:35 CET 2004 <!-- hhmts end --></i></div>
+<div class="grey"><i>$Id$</i></div>
</body>
</html>
diff --git a/php/pgets.php b/php/pgets.php
index d1e8036..868192d 100644
--- a/php/pgets.php
+++ b/php/pgets.php
@@ -114,6 +114,7 @@ if ($num == 0) {
?>
<hr/>
-<div class="grey">Generated: <?php echo date("r") ?></div>
+<div class="grey"><i>Generated: <?php echo date("r") ?></i></div>
+<div class="grey"><i>$Id$</i></div>
</body>
</html> \ No newline at end of file
diff --git a/sql/Makefile.am b/sql/Makefile.am
new file mode 100644
index 0000000..acb7ee6
--- /dev/null
+++ b/sql/Makefile.am
@@ -0,0 +1,19 @@
+# $Id$
+
+# This file is part of pgets.
+#
+# pgets 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.
+#
+# pgets 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 pgets; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+EXTRA_DIST = pgets-access.sql pgets.sql
diff --git a/sql/pgets-access.sql b/sql/pgets-access.sql
index e4507f5..3ecfa10 100644
--- a/sql/pgets-access.sql
+++ b/sql/pgets-access.sql
@@ -29,10 +29,12 @@ CREATE DATABASE pgets;
-- Manage access rights
+-- A user for the transfer program with write access to the table
DROP USER pgets_fill;
CREATE USER pgets_fill PASSWORD 'mahatma';
+GRANT INSERT ON pgets_accounting TO pgets_fill;
+
+-- A user for the web frontend with read access to the table
DROP USER pgets_web;
CREATE USER pgets_web PASSWORD 'gandhi';
-
-GRANT INSERT ON pgets_accounting TO pgets_fill;
GRANT SELECT ON pgets_accounting TO pgets_web;