port revisions 351-357 from branch_0_4 (re-enable PDF generation, fix

man-page build and distribute issues, add auto-generated files from make
environment) 


git-svn-id: https://svn.ibp.de/svn/capisuite/trunk/capisuite@361 4ebea2bb-67d4-0310-8558-a5799e421b66
This commit is contained in:
gernot 2004-11-27 13:03:41 +00:00
parent ef81da1f56
commit e6afc83e07
13 changed files with 1801 additions and 19 deletions

View File

@ -1,3 +1,8 @@
2004-11-26 Gernot Hillier <gernot@hillier.de>
* docs/Makefile.am: add man-pages to distribution, hopefully finally
avoid to have them created during normal build
* docs/manual.docbook.in: renamed to manual.docbook again
2004-11-07 Gernot Hillier <gernot@hillier.de> 2004-11-07 Gernot Hillier <gernot@hillier.de>
* configure.in: test for the sfftobmp version installed * configure.in: test for the sfftobmp version installed
* acinclude.m4 (CS_TEST_SFFTOBMP): Likewise. * acinclude.m4 (CS_TEST_SFFTOBMP): Likewise.
@ -17,7 +22,7 @@
* src/capisuite-py/__init__.py: Likewise. * src/capisuite-py/__init__.py: Likewise.
* src/capisuite-py/config.py.in (class NoGlobalSectionError): moved * src/capisuite-py/config.py.in (class NoGlobalSectionError): moved
to exceptions.py to exceptions.py
* src/capisuite-py/exceptions.py: Likewise. * src/capisuite-py/exceptions.py: Likewise.
2004-09-04 Gernot Hillier <gernot@hillier.de> 2004-09-04 Gernot Hillier <gernot@hillier.de>
* scripts/cs_helpers.pyin (__sendmail, __call, sff2tif, cff2ps, * scripts/cs_helpers.pyin (__sendmail, __call, sff2tif, cff2ps,

76
config.h.in Normal file
View File

@ -0,0 +1,76 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `capi20' library (-lcapi20). */
#undef HAVE_LIBCAPI20
/* Define to 1 if you have the `pthread' library (-lpthread). */
#undef HAVE_LIBPTHREAD
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* we have new ALERT_REQ implementation */
#undef HAVE_NEW_CAPI4LINUX
/* we can #include<ostream> instead of ostream.h - new gcc3 feature */
#undef HAVE_OSTREAM
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* we have string::clear */
#undef HAVE_STRING_CLEAR
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Version number of package */
#undef VERSION

472
depcomp Executable file
View File

@ -0,0 +1,472 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 1999, 2000 Free Software Foundation, Inc.
# 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, 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
if test -z "$depfile"; then
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
dir=`echo "$object" | sed 's,/.*$,/,'`
if test "$dir" = "$object"; then
dir=
fi
# FIXME: should be _deps on DOS.
depfile="$dir.deps/$base"
fi
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1="$dir.libs/$base.lo.d"
tmpdepfile2="$dir.libs/$base.d"
"$@" -Wc,-MD
else
tmpdepfile1="$dir$base.o.d"
tmpdepfile2="$dir$base.d"
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0

View File

@ -1,13 +1,12 @@
docdir = @docdir@ docdir = @docdir@
EXTRA_DIST = Doxyfile.in mainpage.doxy manual.docbook manual.README $(man_MANS) EXTRA_DIST = Doxyfile.in mainpage.doxy manual.docbook manual.README
man_MANS = capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1 dist_man_MANS = capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1
# dist-hook may be not portable partly, so non-SuSE-users please # dist-hook may be not portable partly, so non-SuSE-users please
# forgive me and don't call "make dist" or send me a patch ;-) # forgive me and don't call "make dist" or send me a patch ;-)
# removed manual-pdf as it currently doesn't work, will be reactivated soon dist-hook: manual-prepare manual-html reference-html capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1 manual-pdf
dist-hook: cleandoc manual-html reference-html capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1
mkdir $(distdir)/manual mkdir $(distdir)/manual
cp -r $(srcdir)/manual/* $(distdir)/manual/ cp -r $(srcdir)/manual/* $(distdir)/manual/
mkdir $(distdir)/reference mkdir $(distdir)/reference
@ -15,12 +14,13 @@ dist-hook: cleandoc manual-html reference-html capisuite.8 capisuite.conf.5 fax.
cp manual.pdf $(distdir)/ cp manual.pdf $(distdir)/
# force recreation of complete manual for dist # force recreation of complete manual for dist
cleandoc: recreatedoc:
-rm manual.docbook touch manual.docbook
manual.docbook: manual.docbook.in manual-prepare: recreatedoc
sed -e 's,<title>CapiSuite [0-9a-z\.]*</title>,<title>CapiSuite $(VERSION)</title>,g' \ sed -e 's,<title>CapiSuite [0-9a-z\.]*</title>,<title>CapiSuite $(VERSION)</title>,g' \
manual.docbook.in > manual.docbook manual.docbook > manual.docbook.new
mv manual.docbook.new manual.docbook
xmllint --noout --valid manual.docbook xmllint --noout --valid manual.docbook
manual-html: manual.docbook manual-html: manual.docbook

View File

@ -34,7 +34,8 @@ NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
subdir = docs subdir = docs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in $(top_srcdir)/configure.in
@ -51,7 +52,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
man5dir = $(mandir)/man5 man5dir = $(mandir)/man5
man8dir = $(mandir)/man8 man8dir = $(mandir)/man8
NROFF = nroff NROFF = nroff
MANS = $(man_MANS) MANS = $(dist_man_MANS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_FALSE = @AMDEP_FALSE@
@ -151,8 +152,8 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@ sysconfdir = @sysconfdir@
target_alias = @target_alias@ target_alias = @target_alias@
EXTRA_DIST = Doxyfile.in mainpage.doxy manual.docbook manual.README $(man_MANS) EXTRA_DIST = Doxyfile.in mainpage.doxy manual.docbook manual.README
man_MANS = capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1 dist_man_MANS = capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1
all: all-am all: all-am
.SUFFIXES: .SUFFIXES:
@ -454,8 +455,7 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
# dist-hook may be not portable partly, so non-SuSE-users please # dist-hook may be not portable partly, so non-SuSE-users please
# forgive me and don't call "make dist" or send me a patch ;-) # forgive me and don't call "make dist" or send me a patch ;-)
# removed manual-pdf as it currently doesn't work, will be reactivated soon dist-hook: manual-prepare manual-html reference-html capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1 manual-pdf
dist-hook: cleandoc manual-html reference-html capisuite.8 capisuite.conf.5 fax.conf.5 answering_machine.conf.5 capisuitefax.1
mkdir $(distdir)/manual mkdir $(distdir)/manual
cp -r $(srcdir)/manual/* $(distdir)/manual/ cp -r $(srcdir)/manual/* $(distdir)/manual/
mkdir $(distdir)/reference mkdir $(distdir)/reference
@ -463,12 +463,13 @@ dist-hook: cleandoc manual-html reference-html capisuite.8 capisuite.conf.5 fax.
cp manual.pdf $(distdir)/ cp manual.pdf $(distdir)/
# force recreation of complete manual for dist # force recreation of complete manual for dist
cleandoc: recreatedoc:
-rm manual.docbook touch manual.docbook
manual.docbook: manual.docbook.in manual-prepare: recreatedoc
sed -e 's,<title>CapiSuite [0-9a-z\.]*</title>,<title>CapiSuite $(VERSION)</title>,g' \ sed -e 's,<title>CapiSuite [0-9a-z\.]*</title>,<title>CapiSuite $(VERSION)</title>,g' \
manual.docbook.in > manual.docbook manual.docbook > manual.docbook.new
mv manual.docbook.new manual.docbook
xmllint --noout --valid manual.docbook xmllint --noout --valid manual.docbook
manual-html: manual.docbook manual-html: manual.docbook

View File

@ -0,0 +1,170 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "ANSWERING_MACHINE" 5 "" "" ""
.SH NAME
answering_machine.conf \- configuration of CapiSuite answering machine
.SH "DESCRIPTION"
.PP
This file holds all available config options for the answering machine provided by the default scripts distributed with CapiSuite\&. It is read from \fI/etc/capisuite/answering_machine\&.conf\fR or \fI/usr/local/etc/capisuite/answering_machine\&.conf\fR (depending on the installation)\&.
.PP
It is divided into one or more sections\&. A section begins with the section name in square brackets like [section] while the options are key="value" lines\&.
.PP
A special section called [GLOBAL] and one section for each user called [<username>] are required\&.The <username> must be a valid system user\&.
.PP
The [GLOBAL]\-section defines some global options like pathnames and default settings for options that can be overridden in the user\-sections\&. The user\-sections hold all the options which belong to a particular user\&.
.SH "THE [GLOBAL] SECTION"
.TP
\fBaudio_dir="/path/to/audiodir/"\fR
The answering machine script uses several wave files, for example a global announcement if the user hasn't set his own and some spoken word fragments for the remote inquiry and the menu presented there\&. These audio files are searched in this directory\&. If user_audio_files is enabled (see \fBuser_audio_files\fR), each user can also provide his own audio snippets in his user_dir (see \fBvoice_user_dir\fR)\&.
This option is mandatory\&.
.TP
\fBvoice_user_dir="/path/to/userdir/"\fR
This directory is used to save user specific data to\&. It must exist and the user CapiSuite runs as must have write permission to it\&. It will contain one subdirectory for each configured user (named like his userid)\&. The following subdirectories are used below the user\-specific dir:
.RS
.TP
\fIuser_dir/username/\fR
Here the user may provide his own audio_files (see also option \fBuser_audio_files\fR below)\&. The user defined announcement is also saved here\&.
.TP
\fIuser_dir/username/received/\fR
Received voice calls are saved here\&.
.RE
This option is mandatory\&.
.TP
\fBuser_audio_files="0"\fR
If set to 1, each user may provide his own audio files in his user directory (see \fBvoice_user_dir\fR)\&. If set to 0, only the audio_dir (see \fBvoice_audio_dir\fR) will be searched\&.
This option is optional\&. If not set, it defaults to not reading own user audio files (0)\&.
.TP
\fBvoice_delay="15"\fR
Sets the default value for the delay for accepting an incoming call in (in seconds)\&. A value of 10 means that the answering machine accepts incoming calls 10 seconds after the incoming connection request\&. This value can be overwritten in the user sections individually\&.
This option is mandatory\&.
.TP
\fBannouncement="announcement\&.la"\fR
Sets the default name to use for user announcements\&. The announcements are searched in \fIuser_dir/username/announcement\fR then\&. If not found, a global announcement containing the called MSN will be played\&. This value can be overwritten in the user sections individually\&.
This option is optional\&. If not set, it defaults to "announcement\&.la"\&.
.TP
\fBrecord_length="60"\fR
Default setting for the maximum record length in seconds\&. This value can be overwritten in the user sections individually\&.
This option is optional\&. If not set, it defaults to 60 seconds\&.
.TP
\fBrecord_silence_timeout="5"\fR
Default setting for the record silence timeout in seconds\&. When set to a value greater than 0, the recording will be aborted if silence is detected for the given amount of seconds\&. Set this to 0 to disable it\&. This value can be overwritten in the user sections individually\&.
This option is optional\&. If not set, it defaults to 5 seconds\&.
.TP
\fBvoice_email_from="<mailaddress>"\fR
You can set a default originator ("From"\-address) for the e\-mails CapiSuite sends here\&.
This option is optional\&. If you set this to an empty string, the destinator is used as originator (i\&.e\&. if "gernot" receives a voice call, the mail comes from "gernot" to "gernot")\&.
.SH "THE USER SECTIONS"
.TP
\fBvoice_delay\fR
User specific value for the corresponding global option
.TP
\fBannouncement\fR
User specific value for the corresponding global option
.TP
\fBrecord_length\fR
User specific value for the corresponding global option
.TP
\fBrecord_silence_timeout\fR
User specific value for the corresponding global option
.TP
\fBvoice_email_from\fR
User specific value for the corresponding global option
.TP
\fBvoice_numbers="<number1>,<number2>,\&.\&.\&."\fR
A list containing the numbers on which this user wants to receive incoming voice calls\&. These numbers are used to differ between users \- so the same number must not appear in more than one user section! The numbers are separated with commas and no blanks are allowed\&. The answering machine script does also automatic fax detection, so a fax can be sent to this number\&. When this list is set to *,all incoming calls will be accepted for this user (use with care!)\&. This is only useful for a setup with only one user which wants to receive any call\&.
If for any reason no destination number is signalled for special MSNs (austrian telecom seems to do this for the main MSN, where it is called "Global Call"), you can use the special sign \- which means "no destination number available"\&.
This option is optional\&. If not set, the user won't receive voice calls\&.
.TP
\fBvoice_email=""\fR
If given, this string indicates email\-addresses where the received faxes and voice calls will be sent to\&. If it is empty, they will be sent to the user account on the system CapiSuite is running on\&. More addresses are separated by commas\&. If you don't want emails to be sent at all, use the action option (see \fBvoice_action\fR)\&.
This option is optional\&. If not set, the calls are mailed to the system account\&.
.TP
\fBpin="<your PIN>"\fR
The answering machine also supports a remote inquiry function\&. This function is used by entering a PIN (Personal Identification Number) while the announcement is played\&. This PIN can be setup here\&. If you don't want to use the remote inquiry function, just use an empty PIN setting\&. The PIN doesn't have a maximal length \- but perhaps you should not use 200 digits or you perhaps won't be able to remember them (I won't at least)\&. ;\-)
This option is optional\&. If not set, remote inquiry is disabled\&.
.TP
\fBvoice_action="MailAndSave"\fR
Here you can define what action will be taken when a call is received\&. Currently, three possible actions are supported:
.RS
.TP
\fBMailAndSave\fR
The received call will be mailed to the given address (see\fBvoice_email\fR above) and saved to the \fIvoice_user_dir\fR (see global options)
.TP
\fBSaveOnly\fR
The call will be only saved to the \fIvoice_user_dir\fR (see global options)
.TP
\fBNone\fR
Only the announcement will be played \- no recording is done\&.
.RE
This option is mandatory\&.
.SH "SEE ALSO"
.PP
\fBcapisuite\fR(8), \fBcapisuite\&.conf\fR(5), \fBfax\&.conf\fR(5), \fBcapisuitefax\fR(1)
.SH AUTHOR
Gernot Hillier <gernot@hillier\&.de>.

55
docs/capisuite.8 Normal file
View File

@ -0,0 +1,55 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "CAPISUITE" 8 "" "" ""
.SH NAME
capisuite \- Python-scriptable ISDN telecommunication suite
.SH "DESCRIPTION"
.PP
CapiSuite is a Python\-scriptable ISDN telecommunication suite\&. It uses the new CAPI interface for accessing your ISDN\-hardware \- so you'll need a card for which a CAPI compatible driver is available\&. Currently these are all cards manufactured by AVM and some Eicon cards\&.
.PP
This man page only gives a short introduction, for the real documentation please see the HTML or PDF manual distributed with CapiSuite\&.
.PP
CapiSuite tries to give the user the ability to code his own ISDN applications without having to fiddle around with all the dirty programming details like callback functions, data buffers, protocol settings and so on\&.
.PP
I took a scripting language which is (in my opinion) very easy to understand, to use and to learn \- especially for beginners: Python\&. I extended it with some functions providing the basic ISDN "building blocks" for the users application\&. Behind these functions the heart of CapiSuite implements all the dirty details a user isn't interested in\&. My goal was to make script\-coding as simple as possible but to also give you the flexibility to realize what you want\&.
.PP
To give you an impression, coding a simple answering machine is as easy as:.IP .nf def callIncoming (call, service, call_from, call_to): connect_voice (call, 10) # answer call after 10 secs audio_send (call, "announcemnt\&.la") # play announcement audio_send (call, "beep\&.la") # play beep audio_receive (call, "call\&.la", 10) # record call .fi
.PP
Of course some details are missing like creating a unique filename or storing the additional information (called and calling party numbers, time, \&.\&.\&.) \- but I assume you got my idea\&.
.PP
And \- don't be afraid \- if you just want to have a normal answering machine or send and receive some fax documents, you can use the default scripts distributed with CapiSuite\&. They give you already some nice features \- e\&.g\&. the answering machine is multi\-user ready, supports automatic fax detection and remote inquiry functions\&. You'll only need to tell CapiSuite some details like your own number, record an own announcement and that's it\&.
.PP
So CapiSuite is already equipped for your daily telecommunication needs \- but if you don't like to do the things the way I do \- just change it or completely do it on your own\&. And if you write nice scripts or have changes to my default scripts, I would love to get and perhaps make them available for all users if you don't mind\&.
.SH "SEE ALSO"
.PP
\fBcapisuite\&.conf\fR(5), \fBfax\&.conf\fR(5), \fBanswering_machine\&.conf\fR(5), \fBcapisuitefax\fR(1)
.SH AUTHOR
Gernot Hillier <gernot@hillier\&.de>.

74
docs/capisuite.conf.5 Normal file
View File

@ -0,0 +1,74 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "CAPISUITE.CONF" 5 "" "" ""
.SH NAME
capisuite.conf \- configuration of the CapiSuite daemon
.SH "DESCRIPTION"
.PP
The options for the CapiSuite daemon are configured here\&. They will be presented in brief here \- for further details please refer to the comments in the configuration file itself\&.
.SH "OPTIONS"
.TP
\fBincoming_script="/path/to/incoming\&.py"\fR
This option tells CapiSuite which script should be executed at incoming calls\&. Only change this if you want to use your own script\&.
.TP
\fBidle_script="/path/to/idle\&.py"\fR
This option reflects the path and name of the idle script\&. This script is called in regular intervalls to check if any outgoing call should be done\&. As above, the default should be ok if you don't use your own script\&.
.TP
\fBidle_script_interval="30"\fR
Here you can define how often the idle script should be executed\&. The number given is the interval between subsequent invocations in seconds\&. Lesser numbers give you quicker response to queued jobs but also a higher system load\&. The default should be ok in most cases\&.
.TP
\fBlog_file="/path/to/capisuite\&.log"\fR
This file will be used for all "normal" messages printed byCapiSuite telling you what it does\&. Error messages are written to a special log (see below)\&.
.TP
\fBlog_level="1"\fR
You can define how detailled the log output of CapiSuite will be\&. The default will give you some informational messages for each incoming and outgoing call and should be enough for normal use\&. I would recommend to only increase it if you encounter some problems\&. Logs of higher level are mainly intended for developers, so just use them if you want to report a problem or have some know\-how of the CAPI interface and the internals of CapiSuite\&.
.TP
\fBlog_error="/path/to/capisuite\&.error"\fR
All errors which CapiSuite detects internally and in your scripts will end up here\&. They are written to an extra file so that they don't get lost in the normal log\&. Please check this log regularly for any messages \- especially when you encounter problems\&. Please report all messages you don't understand and which aren't caused by your own script\-modifications to the CapiSuite team\&.
.TP
\fBDDI_length="0"\fR
When your ISDN card is connected to an ISDN interface in PtP mode, i\&.e\&. if you use DDI which, in understandable words mean you have only one ISDN phone number and can define your own extensions as you like, you have to set the length of your extension numbers here\&. In Germany, PtP mode is called "Anlagenanschluss"\&. Let's say you use 1234\-000 till 1234\-999, then your DDI_length would be 3\&. If you set this to 0, DDI/PtP is disabled\&.
If you're not sure what all this should mean, then chances are high you don't use DDI and can leave this option as it is\&.
.TP
\fBDDI_base_length="0"\fR
This option is only used when DDI_length is not 0\&. This is the length of your base number \- in the example above it would be 4\&.
.TP
\fBDDI_stop_numbers=""\fR
If you usually use extension numbers of a specified length, but also want to use some shorter ones (e\&.g\&. the "\-0" extension for you switchboard), then you can list these shorter extensions here, separated by commas\&.
.SH "SEE ALSO"
.PP
\fBcapisuite\fR(8), \fBfax\&.conf\fR(5), \fBanswering_machine\&.conf\fR(5), \fBcapisuitefax\fR(1)
.SH AUTHOR
Gernot Hillier <gernot@hillier\&.de>.

105
docs/capisuitefax.1 Normal file
View File

@ -0,0 +1,105 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "CAPISUITEFAX" 1 "" "" ""
.SH NAME
capisuitefax \- sending faxes with the CapiSuite default scripts
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 13
\fBcapisuitefax\fR [\-q] [\-n] [\-u\ \fIuser\fR] [\-A\ \fIadr\fR] [\-S\ \fIsubj\fR] \-d\ \fInumber\fR file...
.ad
.hy
.ad l
.hy 0
.HP 13
\fBcapisuitefax\fR [\-q] \-a\ \fIid\fR
.ad
.hy
.ad l
.hy 0
.HP 13
\fBcapisuitefax\fR \-h
.ad
.hy
.ad l
.hy 0
.HP 13
\fBcapisuitefax\fR \-l
.ad
.hy
.SH "DESCRIPTION"
.PP
The default scripts for CapiSuite come with the tool \fBcapisuitefax\fR for sending faxes\&.
.PP
It will be called with some parameters telling it which file to send (it currently only supports PostScript files) and to which number\&. It will then enqueue the job converted to the right format into the send queue from which it's collected by another CapiSuite script and sent to the destination\&. If the sending was completed successfully or failed finally after trying for some time, the according user will get an email telling him/her what has happened\&.
.SH "OPTIONS"
.TP
\fB\-a id\fR
Abort the job with the given id\&. To get a job id, use the \fB\-l\fR option\&.
.TP
\fB\-A adr\fR
The addressee of the fax\&. This option is (currently) only for informational purposes and will be quoted in the sent status mail\&.
.TP
\fB\-d number\fR
The number which should be called (destination of the fax)
.TP
\fB\-h\fR
Show a short commandline help
.TP
\fB\-l\fR
Shows the jobs which are currently in the send queue\&.
.TP
\fB\-n\fR
Don't use the configured dial prefix for this job\&. Useful for internal jobs\&.
.TP
\fB\-q\fR
Be quiet, don't output informational messages
.TP
\fB\-S subj\fR
A subject for the fax\&. This option is (currently) only for informational purposes and will be quoted in the sent status mail\&.
.TP
\fB\-u user\fR
Send fax as another user\&. Only allowed if \fBcapisuitefax\fR is called as user root\&. This is mainly helpful for realizing extensions to e\&.g\&. do network faxing\&.
.TP
\fBfile\&.\&.\&.\fR
One or more PostScript files to send to this destination\&. More than one PostScript file will produce several separate fax jobs\&.
.SH "SEE ALSO"
.PP
\fBcapisuite\fR(8), \fBcapisuite\&.conf\fR(5), \fBfax\&.conf\fR(5), \fBanswering_machine\&.conf\fR(5)
.SH AUTHOR
Gernot Hillier <gernot@hillier\&.de>.

194
docs/fax.conf.5 Normal file
View File

@ -0,0 +1,194 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "FAX.CONF" 5 "" "" ""
.SH NAME
fax.conf \- configuration of the CapiSuite fax services
.SH "DESCRIPTION"
.PP
This file holds all available config options for the fax services provided by the default scripts distributed with CapiSuite\&. It is read from \fI/etc/capisuite/fax\&.conf\fR or\fI/usr/local/etc/capisuite/fax\&.conf\fR (depending on the installation)\&.
.PP
It is divided into one or more sections\&. A section begins with the section name in square brackets like [section] while the options are key="value" lines\&.
.PP
A special section called [GLOBAL] and one section for each user called [<username>] are required\&.The <username> must be a valid system user\&.
.PP
The [GLOBAL]\-section defines some global options like pathnames and default settings for options that can be overridden in the user\-sections\&. The user\-sections hold all the options which belong to a particular user\&.
.SH "THE [GLOBAL] SECTION"
.TP
\fBspool_dir="/path/to/spooldir/"\fR
This directory is used to archive sent (or failed) jobs\&. It must exist and the user CapiSuite runs as must have write permission to its subdirectories\&. Two subdirectories are used:
.RS
.TP
\fIspooldir/done/\fR
Jobs finished successfully are moved to this directory\&.
.TP
\fIspooldir/failed/\fR
Job which have failed finally end up here\&.
.RE
This option is mandatory\&.
.TP
\fBfax_user_dir="/path/to/userdir/"\fR
This directory is used to store fax jobs and received documents to\&. It must exist and the user CapiSuite runs as must have write permission to it\&. It will contain one subdirectory for each configured user (named like his userid)\&. The following subdirectories are used below the user\-specific dir:
.RS
.TP
\fIuser_dir/username/received/\fR
Received faxes are saved here\&.
.TP
\fIuser_dir/username/sendq/\fR
Fax files to be sent are queued here by \fBcapisuitefax\fR\&.
.RE
This option is mandatory\&.
.TP
\fBsend_tries="10"\fR
When a fax can't be sent to the destination for any reason, it's tried for several times\&. This setting limits the number of tries\&. If all tries failed, the job will be moved to the failed dir (see \fBfax_spool_dir\fR) and the user will get a mail\&.
This option is optional\&. If not given, it defaults to 10 tries\&.
.TP
\fBsend_delays="60,60,60,300,300,3600,3600,18000,36000"\fR
When a fax can't be sent to the destination for any reason, it's tried again\&. This setting specifies the delays in seconds between subsequent tries\&. The different values are separated with commas and no blanks\&. The list should have send_tries\-1 (see \fBfax_send_tries\fR) values \- if not, surplus entries are ignored and missing entries are filled up with the last value\&. The default should just be ok giving you increasing delays for up to 10 tries\&.
This option is optional\&. If not given, it defaults to the list shown above\&.
.TP
\fBsend_controller="1"\fR
If you have more than one ISDN controller installed (some active cards for more than one basic rate interface like the AVM C2 or C4 are also represented as multiple controllers for CAPI applications like CapiSuite), you can decide which controller (and therefore which basic rate interface) should be used for sending your faxes\&. All controllers are numbered starting with 1\&. If you're not sure which controller has which number, increase the log level to at least 2 in CapiSuite (see [xref to sect2]), restart it and have a look in the log file where all controllers will be listed then\&. Unfortunately, CapiSuite isn't able to use more than one controller for sending faxes at the moment, so no list is allowed here\&. If you have only one controller, just leave it at 1
This option is optional\&. If not given, it defaults controller 1\&.
.TP
\fBoutgoing_MSN="<your MSN>"\fR
This number is used as our own number for outgoing calls\&. If it's not given, the first number of fax_numbers is used (see user sections)\&. If this one is also empty, the user can't send faxes\&. Please replace with one valid MSN of your ISDN interface or leave empty\&. This value can be overwritten in the user sections individually\&.
This option is optional\&. If not given, it defaults to empty\&.
.TP
\fBoutgoing_timeout="60"\fR
Default setting which defines how many seconds we will wait for a successful connection after dialing the number\&. This value can be overwritten in the user sections individually\&.
This option is optional\&. If not given, it defaults to 60 seconds\&.
.TP
\fBdial_prefix=""\fR
If anything is entered here, it will be used as a prefix which is added to any number given to \fBcapisuitefax\fR as prefix\&. This is e\&.g\&. very helpful if your ISDN adapter is connected to a PBX which needs "0" for external calls\&. It's also possible to disable its usage later for a certain fax document, so setting this will certainly not prevent you from placing internal calls without prefix\&.
This option is optional\&. If not given, it defaults to an empty prefix\&.
.TP
\fBfax_stationID="<your faxID>"\fR
Default fax station ID to use when sending a fax document\&. The station ID is usually the number of your fax station in international format, so an example would be "+49 89 123456" for a number in Munich, Germany\&. Station IDs may only consist of the "+"\-sign, spaces and the digits 0\-9\&. The maximal length is 20\&. This value can be overwritten in the user sections individually\&.
This option is mandatory\&.
.TP
\fBfax_headline="<your faxheadline>"\fR
Default fax headline to use when sending a fax document\&. Where and if this headline will be presented depends on the implementation of your CAPI driver\&. The headline should have a reasonable length to fit on the top of a page, but there's no definite limit given\&.
This option is optional\&. If not given, it defaults to an empty headline\&.
.TP
\fBfax_email_from="<mailaddress>"\fR
You can set a default originator ("From"\-address) for the e\-mails CapiSuite sends here\&.
This option is optional\&. If you set this to an empty string, the destinator is used as originator (i\&.e\&. if "gernot" receives a fax, the mail comes from "gernot" to "gernot")\&.
.SH "THE USER SECTIONS"
.TP
\fBoutgoing_MSN\fR
User specific value for the corresponding global option
.TP
\fBoutgoing_timeout\fR
User specific value for the corresponding global option
.TP
\fBfax_stationID\fR
User specific value for the corresponding global option
.TP
\fBfax_headline\fR
User specific value for the corresponding global option
.TP
\fBfax_email_from\fR
User specific value for the corresponding global option
.TP
\fBfax_numbers="<number1>,<number2>,\&.\&.\&."\fR
A list containing the numbers on which this user wants to receive incoming fax calls\&. These numbers are used to differ between users \- so the same number must not appear in more than one user section! The numbers are separated with commas and no blanks are allowed\&. The first number of the list also serves as our own number for sending a fax if outgoing_MSN is not set (see \fBoutgoing_MSN\fR)\&.
If you want to use the same number for receiving fax and voice calls, pleasedo not enter it here\&. Use the voice_numbers option instead (see \fBanswering_machine\&.conf\fR(5)) \- the answering machine has a built in fax detection and can also receive faxes\&.
When this list is set to *,all incoming calls will be accepted for this user (use with care!)\&. This is only useful for a setup with only one user which wants to receive any call as fax\&.
If for any reason no destination number is signalled for special MSNs (austrian telecom seems to do this for the main MSN, where it is called "Global Call"), you can use the special sign \- which means "no destination number available"\&.
This option is optional\&. If not given, the user can't receive fax documents\&.
.TP
\fBfax_email=""\fR
If given, this string indicates email\-addresses where the received faxes will be sent to\&. More addresses are separated by commas\&. If it is empty, they will be sent to the user account on the system CapiSuite is running on\&. The address is also used to send status reports for sent fax jobs to\&. If you don't want emails to be sent at all, use the action option (see option \fBfax_action\fR) below\&.
This option is optional\&. If not given, the mail is sent to the system account\&.
.TP
\fBfax_action="MailAndSave"\fR
Here you can define what action will be taken when a call is received\&. Currently, two possible actions are supported:
.RS
.TP
\fBMailAndSave\fR
The received call will be mailed to the given address (see\fBfax_email\fR above) and saved to the \fBfax_user_dir\fR (see global options)
.TP
\fBSaveOnly\fR
The call will be only saved to the fax_user_dir (see global options)
.RE
This option is mandatory\&.
.SH "SEE ALSO"
.PP
\fBcapisuite\fR(8), \fBcapisuite\&.conf\fR(5), \fBanswering_machine\&.conf\fR(5), \fBcapisuitefax\fR(1)
.SH AUTHOR
Gernot Hillier <gernot@hillier\&.de>.

294
install-sh Executable file
View File

@ -0,0 +1,294 @@
#!/bin/sh
#
# install - install a program, script, or datafile
#
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "$0: no input file specified" >&2
exit 1
else
:
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "$0: no destination specified" >&2
exit 1
else
:
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d "$dst" ]
then
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
:
fi
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
:
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}

336
missing Executable file
View File

@ -0,0 +1,336 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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, 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing 0.4 - GNU automake"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them.
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0