diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-01-19 13:26:55 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-01-19 13:26:55 +0000 |
commit | e4c3dc5c0d1dc9cdd47fdb4ffb1ac49b9b768e5b (patch) | |
tree | 1517947448ad0dc962770f5636efb1a520ded994 | |
parent | 2db4e16e39a91180dae55014176b20efa0b0c686 (diff) |
prelimernary documentation
git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@42 dbf6933d-3bce-0310-9bcc-ed052ba35b35
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | conf/msntab | 10 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/Makefile.am | 21 | ||||
-rw-r--r-- | doc/README | 13 | ||||
-rw-r--r-- | doc/README.html.in | 212 | ||||
-rw-r--r-- | doc/style.css | 32 | ||||
-rw-r--r-- | man/Makefile.am | 48 | ||||
-rw-r--r-- | man/ivamd.8.xml.in | 184 | ||||
-rw-r--r-- | man/msntab.5.xml.in | 199 | ||||
-rw-r--r-- | man/xmltoman.css | 30 | ||||
-rw-r--r-- | man/xmltoman.dtd | 39 | ||||
-rw-r--r-- | man/xmltoman.xsl | 120 |
13 files changed, 892 insertions, 22 deletions
diff --git a/Makefile.am b/Makefile.am index 1990d86..5022d99 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,14 +17,14 @@ # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. EXTRA_DIST = bootstrap.sh README LICENSE -SUBDIRS=src clients ulaw conf doc +SUBDIRS=src clients ulaw conf doc man 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: dist diff --git a/conf/msntab b/conf/msntab index 4b063d3..0cfda89 100644 --- a/conf/msntab +++ b/conf/msntab @@ -17,7 +17,11 @@ # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -# The MSNs are matched with standard POSIX shell globbing. +# The MSNs are matched with an extended POSIX shell glob matcher based +# on fnmatch(3). The extension is: you may specifiy more than one glob +# expression separated by commas ore semicolons. If you specify a +# tilde as first character regular expression matching (see regexec(3) +# for more information) is used instead. # The options defined are: # rings=n -> specify after how many rings a call should be accepted @@ -33,8 +37,8 @@ # If no line matches, the call is ignored. -# local MSN remote MSN options action -* * rings=8,pipehack ivam-autobox +# local MSN remote MSN options action +* * rings=8,pipehack ivam-autobox # Some more examples diff --git a/configure.ac b/configure.ac index 382db92..a310c3c 100644 --- a/configure.ac +++ b/configure.ac @@ -178,5 +178,5 @@ fi AM_CONDITIONAL([USE_GENGETOPT], [test "x$gengetopt" = xyes]) -AC_CONFIG_FILES([Makefile src/Makefile clients/Makefile ulaw/Makefile doc/Makefile conf/Makefile]) +AC_CONFIG_FILES([Makefile src/Makefile clients/Makefile ulaw/Makefile doc/Makefile conf/Makefile doc/README.html man/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index 34fa300..8a8f63f 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,5 +1,5 @@ # $Id$ -# + # This file is part of ivam2. # # ivam2 is free software; you can redistribute it and/or modify it @@ -16,6 +16,21 @@ # along with ivam2; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -pkgdata_DATA = README.VoiceBox +noinst_DATA = README.html README +EXTRA_DIST = $(noinst_DATA) style.css README.html.in README.VoiceBox REQUIREMENTS TODO + +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 -EXTRA_DIST = README README.VoiceBox TODO REQUIREMENTS diff --git a/doc/README b/doc/README deleted file mode 100644 index 65f09a2..0000000 --- a/doc/README +++ /dev/null @@ -1,13 +0,0 @@ -Not much yet - -Quick installation HOWTO: - - - Install the requirements - - ./configure && make && make install in the ivam directory - - create a user and a group "ivam" - - create a directory /var/spool/ivam2 and make "ivam:ivam" the owner of that directory - - edit /etc/ivam2/msntab - - create some links in /etc/rc?.d for the ivam2 init script - - reboot or run "/etc/init.d/ivam2 start" - -$Id$ diff --git a/doc/README.html.in b/doc/README.html.in new file mode 100644 index 0000000..1128784 --- /dev/null +++ b/doc/README.html.in @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-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>ivam2 @PACKAGE_VERSION@</title> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> + +<body> +<h1><a name="top">ivam2 @PACKAGE_VERSION@</a></h1> + +<p><i>Copyright 2003,2004 Lennart Poettering <@PACKAGE_BUGREPORT@></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">Sun Jan 11 2004: </div> + +<p class="news-text"><a href="@PACKAGE_URL@ivam2-0.1.tar.gz">Version 0.1</a> released, the initial release</p> + +<h2><a name="overview">Overview</a></h2> + +<p><tt>ivam2</tt> is an automatic phone answering machine software for ISDN +and Linux. It is the completely rewritten successor of <a +href="http://ivam.sf.net/">ivam</a> featuring many additions.</p> + +<p><tt>ivam2</tt> is seperated in two parts: the core daemon written +in C and the automate logic coded in <a +href="http://www.python.org/">Python</a>. The latter is pluggable and +may be replaced by different implementations on a per phone number +basis (both caller and callee). This makes <tt>ivam2</tt> a very +powerful application server for telephony services. The software is +very scalable, multiple ISDN channels may be controlled from a single +daemon. To write telephony applications for <tt>ivam2</tt> is not +complicated. In fact, they are simple executables which read audio +data of the caller from STDIN and write audio data for the caller to +STDOUT. DTMF sequences may be read from a FIFO special file. A +framework for writing telephony applications in Python is provided, a +simple answering machine script based on this framework as well. You +are free to write applications in other languages such as Perl or +C.</p> + +<h2><a name="status">Status</a></h2> + +<p>Version @PACKAGE_VERSION@ is more or less stable and feature complete.</p> + +<h2><a name="documentation">Documentation</a></h2> + +<p>Have a look on the man pages <a href="@PACKAGE_URL@ivamd.8.xml"><tt>ivamd(8)</tt></a>, <a href="@PACKAGE_URL@ivam2.conf.xml"><tt>ivam2.conf(5)</tt></a>, <a href="@PACKAGE_URL@msntab"><tt>msntab(5)</tt></a>, <a href="@PACKAGE_URL@ivam-autobox.1.xml"><tt>ivam-autobox(1)</tt></a>, <a href="@PACKAGE_URL@ivam-voicebox.1.xml"><tt>ivam-voicebox(1)</tt></a>, <a href="@PACKAGE_URL@ivam-echo.1.xml"><tt>ivam-echo(1)</tt></a>, <a href="@PACKAGE_URL@ivam-play.1.xml"><tt>ivam-play(1)</tt></a>, <a href="@PACKAGE_URL@ivam-createvb.1.xml"><tt>ivam-createvb(1)</tt></a>, <a href="@PACKAGE_URL@ivam-spool.1.xml"><tt>ivam-spool(5)</tt></a>. (An XSLT capable browser is required)</p> + +<p>The core daemon <tt>ivamd</tt> is configured through both the +command line arguments and the file <tt>msntab</tt>. The latter +specifies which telephony application to start for which caller/callee +pairs. An example:</p> + +<pre>47110816 * defaults @ignore +47110815 12345678 defaults @hangup +47110815 87654321 rings=2 ivam-play /path/to/an/ulaw/file.ulaw.gz +47110815 47110815 rings=0,pipehack ivam-autobox +47110815 * rings=8,pipehack ivam-autobox +</pre> + +<p>This configuration can be explained as follows: all calls to the +local phone number 47110816 are ignored. Calls to the local phone +number 47110815 are dispatched as follows: if the caller is 87654321, +he will listen to a static message after two rings. If someone is +calling the local number from the same number he enters the voice box +system immediately. All other callers will be dispatched to the voice +box system after eight rings.</p> + +<p>For more information on this configuration file see the manual page <a href="@PACKAGE_URL@msntab.5.xml"><tt>msntab(5)</tt></a>.</p> + +<p>The one and only audio format <tt>ivam2</tt> uses is 8 bit uLaw at +8000Hz. Audio files stored on harddisk are raw sample data without any +header information. You are free to compress the audio files with +<tt>gzip</tt> to save some bytes. You can create these files by +recording them with a telephone and <a +href="http://0pointer.de/lennart/projects/ivcall/"><tt>ivcall</tt></a>.</p> + +<p>Another way to create these files is by using <tt>sox</tt> to convert standard <tt>.wav</tt> files:</p> + +<pre>sox foo.wav -t raw -U -b -r 8000 welcome.ulaw</pre> + +<p>The distribution of <tt>ivam2</tt> comes with four telephony applications:</p> + +<ul> + <li><tt>ivam-echo</tt> is a simple (shell) script which writes all incoming + audio data back to the caller. This may be used for testing or latency + measuring purposes. Internally this is not much more than a simple + call to <tt>/bin/cat</tt>.</li> + + <li><tt>ivam-play</tt> is a simple (shell) script which plays the + contents of a <tt>.ulaw(.gz)</tt> file to the caller.</li> + + <li><tt>ivam-voicebox</tt> is a voice box application based on the + Python framework described above. Audio files are saved in a special + spool directory, by default + <tt>/var/spool/ivam2/[VOICEBOXNAME]</tt>. Many voice boxes may + coexist on the same system and configured individually. The voice + box supports recording of messages for unauthenticated users and + playback and deletion of messages for authenticates + users. Authentication is based on an arbitrary length PIN. When a + new voice message arrives a mail (including an Ogg Vorbis encoded version + of the voice messages) is sent to the owner of the voice + box.</li> + + <li><tt>ivam-autobox</tt> is a more capable version of + <tt>ivam-voicebox</tt>. Internally both applications use the same + logic. <tt>ivam-autobox</tt> is able to create spool directories + <i>on-the-fly</i>. If a phone call to a local phone number has no + existent voice box assigned one is automatically created and the + administrator is notified.</li> + +</ul> + +<p>Have a look on the respective manual pages for more information on +these applications.</p> + +<p>The default audio samples for <tt>ivam-voicebox</tt> and +<tt>ivam-autobox</tt> are in german language as this is my native +tongue. You probably want to replace them with messages in your own +language. (<i>I am interested in adding high quality english language +samples to the distribution. If you are a native speaker and think +that you are capable of creating them, feel free to contact me.</i>) +Have a look on the manual page <a +href="@PACKAGE_URL@ivam-spool.5.xml"><tt>ivam-spool(5)</tt></a> for +more information how to change the audio samples.</p> + +<h2><a name="requirements">Requirements</a></h2> + +<p>A current Linux kernel with <a +href="http://www.isdn4linux.de/">isdn4linux</a> and a compatible and +configured (active or passive) ISDN card is required.</p> + +<p><tt>ivam2</tt> relies on a current version of <a +href="http://www.python.org/">Python</a>. It was developed on Python +2.3, but there are user reports that it works on Python 2.2 without +changes.</p> + +<p><tt>ivam2</tt> needs <a +href="http://0pointer.de/lennart/projects/libdaemon/"><tt>libdaemon</tt></a> (>= 0.4) +and <a href="http://www.liboop.org/"><tt>liboop</tt></a> (>= 1.0).</p> + +<p>If you plan to use the message notification feature of +<tt>ivam2</tt> you need <tt>metamail</tt>, <tt>sox</tt> and <tt>oggenc</tt> +installed on the local system.</p> + +<h2><a name="installation">Installation</a></h2> + +<p>As this package is made with the GNU <tt>autotools</tt> 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>ivam2</tt>. A SysV compatible init script is installed to your +init directory.</p> + +<p>After installation of the executables you need to create an user +<tt>ivam</tt> and a matching group <tt>ivam</tt>. The spool directory +(by default <tt>/var/spool/ivam2</tt>) has to be created and must be +owned by <tt>ivam:ivam</tt>.</p> + +<p>You should edit the configuration file <tt>msntab</tt> to enable +the telephony services you want to use.</p> + + +<h2><a name="acks">Acknowledgements</a></h2> + +<p>Wolfram Schlich for many suggestions and beta testing.</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@ivam2-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p> + +<p>Get <tt>ivam2</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="https://seth.intheinter.net:8081/svn/ivam2/">repository</a>.</p> + +<hr/> +<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, January 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..59f2ec6 --- /dev/null +++ b/doc/style.css @@ -0,0 +1,32 @@ +/* $Id$ */ + +/*** + * This file is part of ivam2. + * + * ivam2 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. + * + * ivam2 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 ivam2; 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/man/Makefile.am b/man/Makefile.am new file mode 100644 index 0000000..3e30491 --- /dev/null +++ b/man/Makefile.am @@ -0,0 +1,48 @@ +# $Id$ + +# This file is part of ivam2. +# +# ivam2 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. +# +# ivam2 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 ivam2; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +SUFFIXES=.xml .xml.in .8 .5 .8.xml .5.xml + +pkgsysconfdir=$(sysconfdir)/@PACKAGE@ + +man_MANS = ivamd.8 msntab.5 + +noinst_DATA = ivamd.8.xml msntab.5.xml + +EXTRA_DIST = $(man_MANS) ivamd.8.xml.in msntab.5.xml.in xmltoman.css xmltoman.xsl xmltoman.dtd + +CLEANFILES = ivamd.8.xml msntab.5.xml + +.xml.in.xml: Makefile + sed -e 's,@sysconfdir\@,$(sysconfdir),g' \ + -e 's,@pkgsysconfdir\@,$(pkgsysconfdir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \ + -e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@ + +if USE_XMLTOMAN + +CLEANFILES += $(man_MANS) + +.8.xml.8: Makefile + xmltoman $< > $@ + +.5.xml.5: Makefile + xmltoman $< > $@ + +endif diff --git a/man/ivamd.8.xml.in b/man/ivamd.8.xml.in new file mode 100644 index 0000000..0b753c5 --- /dev/null +++ b/man/ivamd.8.xml.in @@ -0,0 +1,184 @@ +<?xml version="1.0" standalone='no'?> +<!DOCTYPE manpage SYSTEM "xmltoman.dtd"> +<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?> + +<!-- $Id$ --> + +<!-- + This file is part of ivam2. + + ivam2 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. + + ivam2 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 ivam2; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +--> + + <manpage name="ivamd" section="8" desc="ISDN Voice Box Answering Machine Daemon"> + + <synopsis> + <cmd>ivamd [<arg>options</arg>]</cmd> + </synopsis> + + <description> + <p>ivamd is an application server daemon for telephony + applications. It dispatches voice calls to subprocesses + according to a routing table msntab.</p> + </description> + + <options> + + <option> + <p><opt>-n | --no-daemon</opt></p> + <optdesc><p> + Do not daemonize (for debugging) (default: off) + </p></optdesc> + </option> + + <option> + <p><opt>-s | --no-syslog</opt></p> + <optdesc><p> + Do not use syslog, use STDOUT instead (for debugging) (default: off). + </p></optdesc> + </option> + + <option> + <p><opt>-h | --help</opt></p> + <optdesc><p> + Show help. + </p></optdesc> + </option> + + <option> + <p><opt>-k | --kill</opt></p> + <optdesc><p> + Kill a running daemon. + </p></optdesc> + </option> + + <option> + <p><opt>-c | --check-running</opt></p> + <optdesc><p> + Check if a daemon is running. Sets the return value to 0 if a daemon is already running or to 255 if not. + </p></optdesc> + </option> + + <option> + <p><opt>-v | --version</opt></p> + <optdesc><p> + Show version + </p></optdesc> + </option> + + <option> + <p><opt>-C | --channels=</opt><arg>CHANNELS</arg></p> + <optdesc><p> Specifies how many ISDN channels to allocate. It + should be greater or equal to one. Keep in mind that a + standard ISDN card provides access to two distinct b channels + only. Unless you have special hardware or more than one ISDN + card in a single machine it makes no sense to set this + paramater to any value greater than 2. This value specifies + how many concurrent connections may be handled. (default: + 2)</p></optdesc> + </option> + + <option> + <p><opt>--msntab=</opt><arg>MSNTABFILE</arg></p> + <optdesc><p>Specify another msntab file than the default. (default: @pkgsysconfdir@/msntab)</p></optdesc> + </option> + + <option> + <p><opt>-L | --listen=</opt><arg>LISTENMSN</arg></p> + <optdesc><p> Specifies which local phone numbers ivamd shall + listen on. The incoming phone number is matched with shell + globbing as described in <manref name="fnmatch" + section="3"/> with the extension that you may + list more than one phone number seperated by commas or + semicolons. (This is described in <manref name="ttyI" + section="4"/> for the command AT&L. Before + passing the MSNs to the ISDN modem emulation ivamd replaces + all occurences of "," to ";". This has certain advantages when + passing the options from the bourne shell.) In addition to + that you may specify more than one globbing string seperated + by colons for different ISDN channels. If you specify fewer + globbing strings than allocated channels the last globbing + string will be reused for all excessive channels. It is safe + to set this option to "*" as you may limit access to your + telephony applications with the msntab file in a more powerful + way. This option is only useful as "second line of defense" or + to assign specific phone numbers to specific + channels. (default: *)</p></optdesc> + </option> + + <option> + <p><opt>-d | --device=</opt><arg>DEVICES</arg></p> + <optdesc><p>Specifies the TTY devices to use. You may specify + more than one device separated by colons. All devices + specified in this option will be opened, regardless of the + argument of the -C option. If you specify fewer devices than + the requested number of channels, all missing channels will be + allocated automatically from the /dev/ttyI pool. The devices + specified with this option are opened prior to the automatic + usage of the ttyI devices. (default: empty, thus all devices + will be allocated from the /dev/ttyI pool.)</p></optdesc> + </option> + + <option> + <p><opt>--no-drop-root</opt></p> + <optdesc><p>If this option is given ivamd will not drop root + priviliges and change to ivam:ivam. To stay root is always + a bad idea, so don't use this for anything but + debugging. (default: off)</p></optdesc> + </option> + + <option> + <p><opt>--reload</opt></p> + <optdesc><p>Send a running daemon a HUP signal, thus causing a msntab reload.</p></optdesc> + </option> + + <option> + <p><opt>--info</opt></p> + <optdesc><p>Send a running daemon an USR1 signal, thus causing it to dump its msntab file to syslog.</p></optdesc> + </option> + + </options> + + <section name="Files"> + <p><file>/var/run/ivamd.pid</file>: the pid file + for ivamd.</p> + </section> + + <section name="Signals"> + <p><arg>SIGINT, SIGTERM, SIGQUIT</arg> ivamd will quit. This is issued by passing -k to ivamd.</p> + <p><arg>SIGHUP</arg> ivamd will reload the msntab file immediately. Running connection are not interrupted.</p> + <p><arg>SIGUSR1</arg> ivamd will print the current contents of the msntab to syslog.</p> + </section> + + <section name="Author"> + <p>ivamd was written by Lennart Poettering + <@PACKAGE_BUGREPORT@>. ivamd is available + at <url + href="@PACKAGE_URL@"/> + </p> + </section> + + <section name="See also"> + <p> + <manref name="msntab" section="5"/>, <manref name="ivam-voicebox" section="8"/> + </p> + </section> + + <section name="Comments"> + <p>This man page was written using <manref name="xmltoman" section="1" + href="http://masqmail.cx/xml2man/"/> by Oliver Kurth.</p> + </section> + + </manpage> diff --git a/man/msntab.5.xml.in b/man/msntab.5.xml.in new file mode 100644 index 0000000..c108a68 --- /dev/null +++ b/man/msntab.5.xml.in @@ -0,0 +1,199 @@ +<?xml version="1.0" standalone='no'?> <!--*-nxml-*--> +<!DOCTYPE manpage SYSTEM "xmltoman.dtd"> +<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?> + +<!-- $Id$ --> + +<!-- + This file is part of ivam2. + + ivam2 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. + + ivam2 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 ivam2; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +--> + + <manpage name="msntab" section="5" desc="ivam2 MSN Routing Table"> + + <synopsis> + <cmd>@pkgsysconfdir@/msntab</cmd> + </synopsis> + + <description> + + <p>msntab is the phone call routing table for ivam2. For each incoming + call the first matching line in the file is used, all others are + ignored. Each line consists of four fields: an expression for + matching the local phone number, an expression for matching the + remote phone number, an option list and an executable file with + its arguments which is run for a matching call.</p> + + <p>The phone numbers are matched by the following way: if the + first character of the matching expression is not a tilde, the + whole expression is matched using an extended version of POSIX + shell globbing based on <manref name="fnmatch" section="4"/>: + you may specify more than one glob expression seperated by + commas or semicolons. If the first character of the matching + expression is a tilde the expression from its second character + to the end is taken es regular expression and matched with + <manref name="regexec" section="4"/>.</p> + + </description> + + <options> + + <option> + <p><opt>-n | --no-daemon</opt></p> + <optdesc><p> + Do not daemonize (for debugging) (default: off) + </p></optdesc> + </option> + + <option> + <p><opt>-s | --no-syslog</opt></p> + <optdesc><p> + Do not use syslog, use STDOUT instead (for debugging) (default: off). + </p></optdesc> + </option> + + <option> + <p><opt>-h | --help</opt></p> + <optdesc><p> + Show help. + </p></optdesc> + </option> + + <option> + <p><opt>-k | --kill</opt></p> + <optdesc><p> + Kill a running daemon. + </p></optdesc> + </option> + + <option> + <p><opt>-c | --check-running</opt></p> + <optdesc><p> + Check if a daemon is running. Sets the return value to 0 if a daemon is already running or to 255 if not. + </p></optdesc> + </option> + + <option> + <p><opt>-v | --version</opt></p> + <optdesc><p> + Show version + </p></optdesc> + </option> + + <option> + <p><opt>-C | --channels=</opt><arg>CHANNELS</arg></p> + <optdesc><p> Specifies how many ISDN channels to allocate. It + should be greater or equal to one. Keep in mind that a + standard ISDN card provides access to two distinct b channels + only. Unless you have special hardware or more than one ISDN + card in a single machine it makes no sense to set this + paramater to any value greater than 2. This value specifies + how many concurrent connections may be handled. (default: + 2)</p></optdesc> + </option> + + <option> + <p><opt>--msntab=</opt><arg>MSNTABFILE</arg></p> + <optdesc><p>Specify another msntab file than the default. (default: @pkgsysconfdir@/msntab)</p></optdesc> + </option> + + <option> + <p><opt>-L | --listen=</opt><arg>LISTENMSN</arg></p> + <optdesc><p> Specifies which local phone numbers ivamd shall + listen on. The incoming phone number is matched with shell + globbing as described in <manref name="fnmatch" + section="3">fnmatch</manref> with the extension that you may + list more than one phone number seperated by commas or + semicolons. (This is described in <manref name="ttyI" + section="4">ttyI</manref> for the command AT&L. Before + passing the MSNs to the ISDN modem emulation ivamd replaces + all occurences of "," to ";". This has certain advantages when + passing the options from the bourne shell.) In addition to + that you may specify more than one globbing string seperated + by colons for different ISDN channels. If you specify fewer + globbing strings than allocated channels the last globbing + string will be reused for all excessive channels. It is safe + to set this option to "*" as you may limit access to your + telephony applications with the msntab file in a more powerful + way. This option is only useful as "second line of defense" or + to assign specific phone numbers to specific + channels. (default: *)</p></optdesc> + </option> + + <option> + <p><opt>-d | --device=</opt><arg>DEVICES</arg></p> + <optdesc><p>Specifies the TTY devices to use. You may specify + more than one device separated by colons. All devices + specified in this option will be opened, regardless of the + argument of the -C option. If you specify fewer devices than + the requested number of channels, all missing channels will be + allocated automatically from the /dev/ttyI pool. The devices + specified with this option are opened prior to the automatic + usage of the ttyI devices. (default: empty, thus all devices + will be allocated from the /dev/ttyI pool.)</p></optdesc> + </option> + + <option> + <p><opt>--no-drop-root</opt></p> + <optdesc><p>If this option is given ivamd will not drop root + priviliges and change to ivam:ivam. To stay root is always + a bad idea, so don't use this for anything but + debugging. (default: off)</p></optdesc> + </option> + + <option> + <p><opt>--reload</opt></p> + <optdesc><p>Send a running daemon a HUP signal, thus causing a msntab reload.</p></optdesc> + </option> + + <option> + <p><opt>--info</opt></p> + <optdesc><p>Send a running daemon an USR1 signal, thus causing it to dump its msntab file to syslog.</p></optdesc> + </option> + + </options> + + <section name="Files"> + <p><file>/var/run/ivamd.pid</file>: the pid file + for ivamd.</p> + </section> + + <section name="Signals"> + <p><arg>SIGINT, SIGTERM, SIGQUIT</arg> ivamd will quit. This is issued by passing -k to ivamd.</p> + <p><arg>SIGHUP</arg> ivamd will reload the msntab file immediately. Running connection are not interrupted.</p> + <p><arg>SIGUSR1</arg> ivamd will print the current contents of the msntab to syslog.</p> + </section> + + <section name="Author"> + <p>ivamd was written by Lennart Poettering + <@PACKAGE_BUGREPORT@>. ivamd is available + at <url + href="@PACKAGE_URL@"/> + </p> + </section> + + <section name="See also"> + <p> + <manref name="msntab" section="5"/>, <manref name="ivam-voicebox" section="8"/> + </p> + </section> + + <section name="Comments"> + <p>This man page was written using <manref name="xmltoman" section="1" + href="http://masqmail.cx/xml2man/"/> by Oliver Kurth.</p> + </section> + + </manpage> diff --git a/man/xmltoman.css b/man/xmltoman.css new file mode 100644 index 0000000..0811e82 --- /dev/null +++ b/man/xmltoman.css @@ -0,0 +1,30 @@ +/* $Id$ */ + +/*** + This file is part of ivam2. + + ivam2 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. + + ivam2 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 ivam2; 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; } +h1 { text-transform:uppercase; font-size: 18pt; color: #00009F; } +p { margin-left:1cm; margin-right:1cm; } +.cmd { font-family:monospace; } +.file { font-family:monospace; } +.arg { text-transform:uppercase; font-family:monospace; font-style: italic; } +.opt { font-family:monospace; font-weight: bold; } +.manref { font-family:monospace; } +.option .optdesc { margin-left:2cm; } diff --git a/man/xmltoman.dtd b/man/xmltoman.dtd new file mode 100644 index 0000000..c6031fb --- /dev/null +++ b/man/xmltoman.dtd @@ -0,0 +1,39 @@ +<!-- $Id$ --> + +<!-- + This file is part of ivam2. + + ivam2 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. + + ivam2 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 ivam2; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +--> + +<!ELEMENT manpage (synopsis | description | section | options | seealso)*> +<!ATTLIST manpage name CDATA #REQUIRED section CDATA #REQUIRED desc CDATA #IMPLIED> +<!ELEMENT arg (#PCDATA)> +<!ELEMENT p (#PCDATA | arg | url | manref | opt | file )*> +<!ELEMENT synopsis (cmd | p)+> +<!ELEMENT description (p)+> +<!ELEMENT section (p | option)*> +<!ATTLIST section name CDATA #REQUIRED> +<!ELEMENT option (#PCDATA | p | optdesc)*> +<!ELEMENT optdesc (#PCDATA | p )*> +<!ELEMENT cmd (#PCDATA | arg)*> +<!ELEMENT options (p | option)*> +<!ELEMENT seealso (p)*> +<!ELEMENT opt (#PCDATA)> +<!ELEMENT file (#PCDATA)> +<!ELEMENT manref EMPTY> +<!ATTLIST manref name CDATA #REQUIRED section CDATA #REQUIRED href CDATA #IMPLIED> +<!ELEMENT url EMPTY> +<!ATTLIST url href CDATA #REQUIRED> diff --git a/man/xmltoman.xsl b/man/xmltoman.xsl new file mode 100644 index 0000000..2da97be --- /dev/null +++ b/man/xmltoman.xsl @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> + +<!-- + This file is part of ivam2. + + ivam2 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. + + ivam2 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 ivam2; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +--> + +<xsl:template match="/manpage"> + <xsl:text disable-output-escaping="yes"> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + </xsl:text> + <html> + + <head> + <title> + <xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>) + </title> + <link rel="stylesheet" type="text/css" href="xmltoman.css"/> + </head> + <body> + <h1>Name</h1> + <p><xsl:value-of select="@name"/> + <xsl:if test="string-length(@desc) > 0"> + - <xsl:value-of select="@desc"/> + </xsl:if> + </p> + <xsl:apply-templates /> + </body> + </html> +</xsl:template> + +<xsl:template match="p"> + <p> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="cmd"> + <p class="cmd"> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="arg"> + <span class="arg"><xsl:apply-templates/></span> +</xsl:template> + +<xsl:template match="opt"> + <span class="opt"><xsl:apply-templates/></span> +</xsl:template> + +<xsl:template match="file"> + <span class="file"><xsl:apply-templates/></span> +</xsl:template> + +<xsl:template match="optdesc"> + <div class="optdesc"> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="synopsis"> + <h1>Synopsis</h1> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="seealso"> + <h1>Synopsis</h1> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="description"> + <h1>Description</h1> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="options"> + <h1>Options</h1> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="section"> + <h1><xsl:value-of select="@name"/></h1> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="option"> + <div class="option"><xsl:apply-templates/></div> +</xsl:template> + +<xsl:template match="manref"> + <xsl:choose> + <xsl:when test="string-length(@href) > 0"> + <a class="manref"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</a> + </xsl:when> + <xsl:otherwise> + <span class="manref"><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</span> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="url"> + <a class="url"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@href"/></a> +</xsl:template> + +</xsl:stylesheet> |