summaryrefslogtreecommitdiffstats
path: root/share/examples/isdn/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'share/examples/isdn/contrib')
-rw-r--r--share/examples/isdn/contrib/README42
-rw-r--r--share/examples/isdn/contrib/anleitung.ppp142
-rw-r--r--share/examples/isdn/contrib/answer.c178
-rw-r--r--share/examples/isdn/contrib/answer.sh111
-rw-r--r--share/examples/isdn/contrib/convert.sh86
-rw-r--r--share/examples/isdn/contrib/hplay.c241
-rw-r--r--share/examples/isdn/contrib/i4b-ppp-newbie.txt237
-rw-r--r--share/examples/isdn/contrib/isdnctl111
-rw-r--r--share/examples/isdn/contrib/isdnd_acct137
-rw-r--r--share/examples/isdn/contrib/isdnd_acct.pl258
-rw-r--r--share/examples/isdn/contrib/isdntelmux.c197
-rw-r--r--share/examples/isdn/contrib/mrtg-isp0.sh53
12 files changed, 0 insertions, 1793 deletions
diff --git a/share/examples/isdn/contrib/README b/share/examples/isdn/contrib/README
deleted file mode 100644
index ae5969f..0000000
--- a/share/examples/isdn/contrib/README
+++ /dev/null
@@ -1,42 +0,0 @@
-$FreeBSD$
-
-This directory contains various unsupported contributions to isdn4bsd
----------------------------------------------------------------------
-
-anleitung.ppp Anleitung für syncPPP Internet-Zugang und
- Anrufbeantworter / FreeBSD 2.2.x / Teles.S0/16.3-Karte
- (stefan@asterix.webaffairs.net)
-
-answer.c answering machine in C by David Wetzel
- (dave@turbocat.de)
-
-answer.sh a much better replacement for answer, tell and record
- from Stefan Esser (se@freebsd.org)
-
-convert.sh convert recorded message to WAV format, optionally
- send it via mail. from Stefan Herrmann
- (stefan@asterix.webaffairs.net)
-
-hplay.c isdn4bsd telephony output driver for the "rsynth"
- package to play synthetic speech to a telephone
- connection
-
-i4b-ppp-newbie.txt setup PPP for isdn4bsd for newbies text from
- Dominik Brettnacher <domi@saargate.de> (german)
-
-isdnctl This script can control the state of your ISDN line.
- It counts how many scripts/users currently use the
- ISDN line and uses "ifconfig down" if noone uses it
- any more. Alexander Langer <alex@big.endian.de>
-
-isdnd_acct the barebones isdnd accounting script
-
-isdnd_acct.pl enhanced accounting from Joachim Kuebart
- (joki@kuebart.stuttgart.netsurf.de)
-
-isdntelmux.c a "record while play" program contributed by
- Michael Reifenberger (Michael@Reifenberger.com)
-
-mrtg-isp0.sh shell script and mrtg config entry to display
- callout and callback statistics with mrtg
- (www.mrtg.org) using the budget file statistics
diff --git a/share/examples/isdn/contrib/anleitung.ppp b/share/examples/isdn/contrib/anleitung.ppp
deleted file mode 100644
index 01466e2..0000000
--- a/share/examples/isdn/contrib/anleitung.ppp
+++ /dev/null
@@ -1,142 +0,0 @@
-$FreeBSD$
-
-i4b Anleitung für syncPPP Internet-Zugang und Anrufbeantworter
-unter FreeBSD 2.2.x mit Teles.S0/16.3-Karte
-===============================================================
-
-by Stefan Herrmann <stefan@asterix.webaffairs.net>
-
-
-Installation
-------------
-1) Neues Verzeichnis "/usr/src/i4b" anlegen.
-
-2) Ins Verzeichnis "/usr/src/i4b" wechseln und Sourcen entpacken.
-
-3) Ins Verzeichnis "FreeBSD" wechseln und den Befehl "sh install.sh ausführen:
- z.B. "root@asterix[0]/usr/src/i4b/FreeBSD # sh install.sh"
-
- Wenn auf eine neuere Version von i4b gewechselt wird, zuerst
- "sh uninstall.sh" ausführen, dann erst "sh install.sh"
-
-4) Dann ins Verzeichnis "/usr/src/i4b" (zurück-)wechseln und die Befehle
- "make depend", "make" und "make install" ausführen.
-
-5) Nun muß der kernel mit neuen Optionen versehen werden. Dazu wird an die
- Kernel-Konfigurationsdatei im Verzeichnis "/sys/i386/conf" folgendes ans
- Ende hinzugefügt:
-
-# i4b passive ISDN cards support (isic - I4b Siemens Isdn Chipset driver)
-# note that the ``options'' and ``device'' lines must BOTH be defined !
-
-# Teles S0/16.3
-options "TEL_S0_16_3"
-device isic0 at isa? port 0xd80 net irq 5 flags 0x04 vector isicintr
-
-# i4b passive cards D channel handling
-# Q.921
-pseudo-device "i4bq921"
-# Q.931
-pseudo-device "i4bq931"
-
-# common passive and active layer 4
-# layer 4
-pseudo-device "i4b"
-
-# userland driver to do ISDN tracing (for passive cards oly)
-pseudo-device "i4btrc" 4
-# userland driver to control the whole thing
-pseudo-device "i4bctl"
-# userland driver for access to raw B channel
-pseudo-device "i4brbch" 4
-# userland driver for telephony
-pseudo-device "i4btel" 2
-# network driver for IP over raw HDLC ISDN
-pseudo-device "i4bipr" 4
-# enable VJ header compression detection for ipr i/f
-options IPR_VJ
-# network driver for sync PPP over ISDN
-pseudo-device "i4bisppp" 4
-pseudo-device sppp 4
-
-6) Danach wird der kernel durch Eingabe der Befehle "make depend", "make" und
- "make install" im Verzeichniss "/usr/src/sys/compile/<CONFIG>" neu
- übersetzt und installiert.
-
-7) Nach dem Booten kann man dann mit dem Befehl "dmesg" überprüfen, ob die
- Karte korrekt erkannt wurde und alle erforderlichen Treiber installiert
- sind.
-
-
-Konfiguration
--------------
-8) Die Konfiguration von i4b wird hauptsächlich im Verzeichnis "/etc/isdn"
- druchgeführt, dort sucht der isdnd beim Start auch seine Konfigurations-
- datei "isdnd.rc". Da vorgenanntes Verzeichnis nach der Installation aber
- noch leer ist, kopiert man zuerst die Beispieldateien aus dem Verzeichnis
- "/etc/isdn/samples" nach "/etc/isdn".
-
-9) Die Datei "isdnd.rc" enthält schon recht aussagekräftige Kommentare zu den
- einzelnen Optionen, weitere Informationen erhält man mit "man isdnd.rc" und
- "man isdnd".
-
-10) Für syncPPP und Anrufbeantworter sind nur die Sektionen "SYSTEM",
- "telephone answering" und "example for sPPP" notwendig, die Sektion
- "IP over ISDN example" kann dafür also entfernt werden.
-
-11) Für den automatisierten Start des isp0 Interfaces und des isdnd erstellt
- man nun ein Start-Skript. Dazu kopiert man die Datei
- "/usr/src/i4b/etc/rc.isdn-PPP" nach "/etc/rc.isdn" und paßt sie
- entsprechend an. Man beachte hierbei auch die FAQ "/usr/src/i4b/FAQ", die
- Tips für die richtige Eintragung der IP-Adressen bereithält.
-
-12) Der Anrufbeantworter wird dadurch aktiviert, daß das entsprechende
- Programm, das in "/etc/isdn/isdnd.rc" hinter dem Eintrag "answerprog = "
- steht, aufgerufen wird. Wird dort kein Pfad angegeben, wird das Programm
- im Verzeichniss "/etc/isdn" erwartet. Beispiele solcher Programme findet
- man wiederum im Verzeichnis "/etc/isdn/samples". Sie nennen sich
-
- "answer" Nur Ansagetext abspielen, keine Aufzeichnungsmöglichkeit.
- "record" Ansage wird abgespielt, nach Piep-Ton kann gesprochen
- werden.
- "tell" Als Ansagetext wird die anrufende Nummer gesprochen, keine
- Aufzeichnung.
- "tell-record" Anrufende Nummer als Ansagetext, nach Piep-Ton kann ge-
- sprochen werden.
- "isdntel.sh" Ansagetext und Aufzeichnung; mittels dem Programm "isdntel"
- hat man die Kontrolle übe die Aufzeichnungen im Ver-
- zeichniss "/var/isdn". Siehe auch "man isdntel" und
- "man isdntelctl".
-
- Diese Programme müssen an die eigenen Wünsche angepaßt werden. Leider gibt es
- kein mitgeliefertes Programm, mit dem man so auch den Ansagetext aufsprechen
- kann. Das ist aber nicht allzuschlimm, da man nur das Programm "record" dafür
- etwas anpassen muß (Ansagetexte beep und msg auskommentieren). Damit die Anrufe
- aufgezeichnet werden können, muß zuerst noch das Verzeichnis "/var/isdn"
- angelegt werden. Dort werden dann alle Aufzeichnungen obiger Programme gespeichert.
-
-13) Man sollte sich auch noch die man-Pages der Programme "isdnd", "isdnctl",
- "isdnd_acct", "isdndebug" und "isdntrace" zu Gemüte führen.
-
-
-Betrieb
--------
-14) Der syncPPP Zugang zum Provider wird einfach mit dem Aufruf von
- "/etc/rc.isdn" initialisiert. Jegliche Aktivitäten ins Internet (also z.B.
- ein "ping 141.1.1.1") starten die Verbindung. Wenn in "/etc/isdn/isdnd.rc"
- beim Eintrag "unitlengthsrc = " "rate" angegeben wurde, wird die Verbindung
- kurz bevor die nächste Einheit begonnen wird, beendet. Informationen über
- die Einheiten werden aus der Datei "/etc/isdn/isdnd.rates" ausgelesen
- (Beispiele sind in "/etc/isdn/samples").
-
- Mit "/etc/rc.isdn [restart|stop]" kann i4b entweder neu gestartet (z.B. zum
- Einlesen der geänderten Konfiguration aus "isdnd.rc") oder beendet werden.
-
-15) Für den Anrufbeantworter muß nur der "isdnd" gestartet sein. Ein
- ankommender Anruf wird dann automatisch angenommen (je nach den Einträgen
- in "/etc/isdn/isdnd.rc").
-
-16) Informationen über die Verbindung erhält man sowohl in "/var/log/messages",
- also auch in "/var/log/isdnd.log" (so der isdnd mit der Option "-l"
- gestartet wird) bzw. auf dem aktuellen tty (wenn der isdnd mit der Option
- "-f" gestartet wird).
diff --git a/share/examples/isdn/contrib/answer.c b/share/examples/isdn/contrib/answer.c
deleted file mode 100644
index aac431f..0000000
--- a/share/examples/isdn/contrib/answer.c
+++ /dev/null
@@ -1,178 +0,0 @@
-// $FreeBSD$
-// changed ".g711a" to ".al" (-hm)
-// Tue Mar 3 02:42:14 MET 1998 dave@turbocat.de
-// started
-
-#define BLK_SIZE 2048
-#define SOX "/usr/local/bin/sox"
-#define ALAWULAW "/usr/local/bin/alaw2ulaw"
-
-#include <stdio.h>
-#include <time.h>
-
- FILE *device;
- FILE *logfile;
- char srcNum[30];
- char destNum[30];
- char argbuf[255];
- char tmpBuf[1024] = "";
-
-
-void writeToPhone (char *path)
-{
- char buf[BLK_SIZE];
- FILE *srcfile;
- int i = 0;
- int readcount = 0;
-
- srcfile = fopen(path,"r");
- if (srcfile) {
- for (i=0;i<BLK_SIZE;i++) {
- buf[i] = '\0';
- }
- readcount = BLK_SIZE;
- i = 0;
- do {
- readcount = fread(buf,1, BLK_SIZE, srcfile);
- fwrite(buf, 1, readcount, device);
- i = readcount + i;
-// fprintf(logfile,"%d read (%d)\n",i,readcount);
- } while (readcount == BLK_SIZE);
-
- fclose(srcfile);
- } else {
- fprintf(logfile,"Can't open file '%s'\n",path);
- }
-}
-
-void readFromPhone (char *path)
-{
- char buf[BLK_SIZE];
- FILE *destfile;
- int i = 0;
- int readcount = 0;
-
- destfile = fopen(path,"a");
- if (destfile) {
- for (i=0;i<BLK_SIZE;i++) {
- buf[i] = '\0';
- }
- readcount = BLK_SIZE;
- i = 0;
- do {
- readcount = fread(buf,1, BLK_SIZE, device);
- fwrite(buf, 1, readcount, destfile);
- i = readcount + i;
-// fprintf(logfile,"%d read (%d)\n",i,readcount);
- } while (readcount == BLK_SIZE);
-
- fclose(destfile);
- } else {
- fprintf(logfile,"Can't open file '%s'\n",path);
- }
-}
-
-void usage (void)
-{
- fprintf(stderr,"usage: answer -D device -d destination -s source\n");
- exit(1);
-}
-
-const char * argWithName (const char* aName)
-{
- // '-D /dev/null -d 82834 -s 3305682834'
- int i = 0;
- int optionSeen = 0;
- int startpos = 0;
-
- for (i = 0; i < sizeof(tmpBuf);i++) {
- tmpBuf[i] = '\0';
- }
-
- for (i = 0; i<strlen(argbuf);i++) {
- if (optionSeen) {
- for (;(i<strlen(argbuf) && (argbuf[i] != ' '));i++) {
- }
- i++;
- startpos = i;
-
- for (;(i<strlen(argbuf) && (argbuf[i] != ' '));i++) {
- }
- strncpy(tmpBuf,&argbuf[startpos], i-startpos);
-
- return tmpBuf;
- }
- if (0 == strncmp(aName,&argbuf[i], strlen(aName))) {
- optionSeen = 1;
- }
- }
-
- usage();
- return NULL;
-}
-
-int main (int argc, const char *argv[]) {
-
- int i,pos = 0;
- extern char *optarg;
- extern int optind;
- int bflag, ch;
- char timeStr[50];
- char outfileName[1024] = "";
- char cmdStr[2048] = "";
- time_t now;
-
- now=time(NULL);
-
- strftime(timeStr,40,I4B_TIME_FORMAT,localtime(&now));
-
- logfile = fopen("/var/log/answer.log","a");
-
- fprintf(logfile,"%s Started\n",timeStr);
-
- pos=0;
- for (i=1;i<argc;i++) {
- sprintf(&argbuf[strlen(argbuf)],"%s ",argv[i]);
- }
- if (strlen(argbuf) > 2) {
- argbuf[strlen(argbuf)-1] = '\0';
- }
-
-
- device = fopen(argWithName("-D"),"r+");
- strcpy(destNum, argWithName("-d"));
- strcpy(srcNum, argWithName("-s"));
-
- fprintf(logfile,"device '%s'\n", argWithName("-D"));
- fprintf(logfile,"srcNum '%s'\n", srcNum);
- fprintf(logfile,"destNum '%s'\n", destNum);
-
-
- if (device) {
-
- strftime(timeStr,40,I4B_TIME_FORMAT,localtime(&now));
-
- sprintf(outfileName,"/var/isdn/%s_%s_%s", timeStr, srcNum, destNum);
-
- writeToPhone ("/usr/local/lib/isdn/msg.al");
- readFromPhone (outfileName);
-
- sprintf(cmdStr,"/bin/cat %s | %s | %s -t raw -U -b -r 8000 - -t .au %s.snd", outfileName, ALAWULAW, SOX, outfileName);
- fprintf(logfile,"%s\n",cmdStr);
- system(cmdStr);
- unlink(outfileName);
-
- fclose(device);
- } else {
- fprintf(logfile,"Can't open file '%s'\n",argWithName("-D"));
- }
-
- now=time(NULL);
-
- strftime(timeStr,40,I4B_TIME_FORMAT,localtime(&now));
-
- fprintf(logfile,"%s Done\n",timeStr);
- fclose(logfile);
- exit(0); // insure the process exit status is 0
- return 0; // ...and make main fit the ANSI spec.
-}
diff --git a/share/examples/isdn/contrib/answer.sh b/share/examples/isdn/contrib/answer.sh
deleted file mode 100644
index 34073d3..0000000
--- a/share/examples/isdn/contrib/answer.sh
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-#---------------------------------------------------------------------------
-#
-# answer script for i4b isdnd
-# ---------------------------
-#
-# last edit-date: [Fri May 25 15:21:05 2001]
-#
-# $FreeBSD$
-#
-#---------------------------------------------------------------------------
-VARDIR=/var/isdn
-LIBDIR=/usr/local/lib/isdn
-LOGFILE=/tmp/answer.log
-
-NCALLFILE=$VARDIR/ncall
-DATE=`date +%d%H`
-
-progname=${0##*/}
-set -- $@ # have to split argument string !!!
-
-# ----------------------------------------------------------------------
-
-usage ()
-{
- echo "usage: $progname -D device -d dest -s src"
- exit 1
-}
-
-ncall ()
-{
- nfile=$1
- [ -f $nfile ] && read n < $nfile || n=0
- echo $(($n + 1)) > $nfile
- printf "%.4d" $n
-}
-
-# ----------------------------------------------------------------------
-
-while getopts "D:d:s:" opt
-do
- case $opt
- in
-D) DEVICE=$OPTARG ;;
-d) DEST=$OPTARG ;;
-s) SRC=$OPTARG ;;
- esac
-done
-
-[ -c "$DEVICE" -a -n "$DEST" -a -n "$SRC" ] || usage;
-
-shift $(($OPTIND - 1))
-
-# ----------------------------------------------------------------------
-
-NCALL=`ncall $NCALLFILE`
-
-echo "$progname: device $DEVICE destination $DEST source $SRC " >>$LOGFILE
-
-{
- echo "Date: "`date`
- echo "From: \"$SRC\""
- echo "To: \"$DEST\""
- echo
-} >> $VARDIR/I.$NCALL.$DATE
-
-# ----------------------------------------------------------------------
-
-tellnumber ()
-{
- number=$1
- digits=`echo $number | sed -e 's/\(.\)/\1 /g'`
-
- files=""
- for digit in $digits
- do
- files="$files $LIBDIR/$digit.al"
- done
- cat $files
-}
-
-# ----------------------------------------------------------------------
-
-do_answer ()
-{
- [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
- [ -f $LIBDIR/msg.al ] && cat $LIBDIR/msg.al
- [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
-} > $DEVICE
-
-do_record ()
-{
- cat $DEVICE > $VARDIR/R.$NCALL.$DATE
-}
-
-do_tell ()
-{
- [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
- [ -f $LIBDIR/msg.al ] && cat $LIBDIR/msg.al
- tellnumber $SRC
- [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
-} > $DEVICE
-
-# ----------------------------------------------------------------------
-
-case $progname
-in
-answer) do_answer ;;
-record) do_answer; do_record ;;
-tell) do_tell ;;
-esac
diff --git a/share/examples/isdn/contrib/convert.sh b/share/examples/isdn/contrib/convert.sh
deleted file mode 100644
index b4a6e7d..0000000
--- a/share/examples/isdn/contrib/convert.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-#
-# convert recorded message to WAV format, optionally send it via mail
-#
-# by: Stefan Herrmann <stefan@asterix.webaffairs.net>
-# Date: Fr 22 Mai 1998 14:18:40 CEST
-#
-# $FreeBSD$
-
-CAT=/bin/cat
-RM=/bin/rm
-SOX=/usr/local/bin/sox
-ALAW2ULAW=/usr/local/bin/alaw2ulaw
-MAIL=/usr/bin/mail
-GZIP=/usr/bin/gzip
-ZIP=/usr/local/bin/zip
-UUENCODE=/usr/bin/uuencode
-
-inputfile=""
-outfilename=""
-mailto=""
-iF=0
-oF=0
-mF=0
-
-set -- `getopt i:o:m: $*`
-
-if test $? != 0
-then
- echo 'Usage: r2w -i <input file> -o <outfile name>.wav -m <email address>'
- exit 1
-fi
-
-for i
-do
- case "$i"
- in
- -i)
- inputfile=$2
- iF=1
- shift
- shift
- ;;
- -o)
- outfilename=$2
- oF=1
- shift
- shift
- ;;
- -m)
- mailto=$2
- mF=1
- shift
- shift
- ;;
- --)
- shift
- break
- ;;
- esac
-done
-
-if [ $iF -eq 0 -o $oF -eq 0 ]
-then
- echo 'Usage: r2w -i <input file> -o <outfile name>.wav -m <email address>'
- exit 1
-fi
-
-if [ $iF -eq 1 -a $oF -eq 1 ]
-then
- echo
- echo "converting $inputfile to $outfilename.wav ..."
-
- $CAT $inputfile | $ALAW2ULAW | $SOX -t raw -U -b -r 8000 - -t .wav $outfilename.wav
-fi
-
-if [ $iF -eq 1 -a $oF -eq 1 -a $mF -eq 1 ]
-then
- echo "... and sending it via email to $mailto ..."
- $UUENCODE $outfilename.wav message.wav | $MAIL -s"new message $outfilename" $mailto && $RM $outfilename.wav
- # only usefull when sending over the internet
- #$GZIP -c $outfilename.wav | $UUENCODE message.zip | $MAIL -s"Nachricht vom ISDN Anrufbeantworter" $mailto && $RM $outfilename.wav
-fi
-
-echo "done."
-echo
diff --git a/share/examples/isdn/contrib/hplay.c b/share/examples/isdn/contrib/hplay.c
deleted file mode 100644
index 763e5a8..0000000
--- a/share/examples/isdn/contrib/hplay.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*---------------------------------------------------------------------------*
- *
- * rsynth driver to output to
- * - an open isdn4bsd telephone connection or
- * - an output file or
- * - the /dev/audio device
- * ----------------------------------------------------------------
- *
- * tested with rsynth-2.0
- *
- * written by Hellmuth Michaelis (hm@kts.org)
- *
- * last edit-date: [Fri May 25 15:21:33 2001]
- *
- * $FreeBSD$
- *
- *---------------------------------------------------------------------------*/
-
-#include <config.h>
-#include <useconfig.h>
-#include <stdio.h>
-#include <math.h>
-#include <errno.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <sys/signal.h>
-#include <sys/ioctl.h>
-
-#include <i4b/i4b_tel_ioctl.h>
-
-#include "proto.h"
-#include "getargs.h"
-#include "hplay.h"
-#include "l2u.h"
-
-#define SAMP_RATE 8000
-long samp_rate = SAMP_RATE;
-
-char *prog = "hplay";
-
-static int use_audio = 1;
-static int use_isdn = 0;
-static int unit_no = 0;
-
-static int audio_fd = -1;
-static int isdn_fd = -1;
-static int file_fd = -1;
-
-char *audio_dev = "/dev/dsp";
-char *isdn_dev = "/dev/i4btel";
-static char *ulaw_file = NULL;
-
-int
-audio_init(int argc, char *argv[])
-{
- char dev[64];
- int format = CVT_ALAW2ULAW;
-
- prog = argv[0];
-
- argc = getargs("FreeBSD audio/i4b/file output driver",argc, argv,
- "a", NULL, &use_audio, "use /dev/audio (default)",
- "i", NULL, &use_isdn, "use /dev/i4btel",
- "u", "%d", &unit_no, "/dev/i4btel unit number (def = 0)",
- "f", "", &ulaw_file, "u-law output to file",
- NULL);
-
- if(help_only)
- return argc;
-
- if(ulaw_file)
- {
- if(strcmp(ulaw_file, "-") == 0)
- {
- file_fd = 1; /* stdout */
- }
- else
- {
- file_fd = open(ulaw_file, O_WRONLY | O_CREAT | O_TRUNC, 0666);
- if(file_fd < 0)
- fprintf(stderr, "ERROR: cannot open %s, error = %s\n", ulaw_file, strerror(errno));
- }
- }
-
- if(use_isdn)
- {
- sprintf(dev, "%s%d", isdn_dev, unit_no);
-
- if((isdn_fd = open(dev, O_WRONLY)) < 0)
- {
- fprintf(stderr, "ERROR: cannot open %s, error = %s\n", dev, strerror(errno));
- }
-
- if((ioctl(isdn_fd, I4B_TEL_SETAUDIOFMT, &format)) < 0)
- {
- fprintf(stderr, "ioctl I4B_TEL_SETAUDIOFMT failed: %s", strerror(errno));
- }
- }
-
- if(use_audio)
- {
- audio_fd = open(audio_dev, O_WRONLY | O_NDELAY);
- if(audio_fd < 0)
- {
- fprintf(stderr, "ERROR: cannot open %s, error = %s\n", audio_dev, strerror(errno));
- }
- }
-
- return argc;
-}
-
-void
-audio_term()
-{
- int format = CVT_NONE;
-
- if(isdn_fd >= 0)
- {
- if((ioctl(isdn_fd, I4B_TEL_SETAUDIOFMT, &format)) < 0)
- {
- fprintf(stderr, "ioctl I4B_TEL_SETAUDIOFMT failed: %s", strerror(errno));
- }
- close(isdn_fd);
- isdn_fd = -1;
- }
-
- if(audio_fd >= 0)
- {
-#if 0
- ioctl(audio_fd, SNDCTL_DSP_SYNC, &dummy);
-#endif
- close(audio_fd);
- audio_fd = -1;
- }
-
- if(file_fd >= 0)
- {
- close(file_fd);
- file_fd = -1;
- }
-}
-
-void
-audio_play(int n, short *data)
-{
- int ret;
- unsigned char *p;
-
- if (n > 0)
- {
- unsigned char *converted = (unsigned char *) malloc(n);
- int i;
-
- if(converted == NULL)
- {
- fprintf(stderr, "Could not allocate memory for conversion\n");
- exit(3);
- }
-
- for (i = 0; i < n; i++)
- {
- converted[i] = short2ulaw(data[i]);
- }
-
- if (isdn_fd >= 0)
- {
- p = converted;
- errno = 0;
-
- while((ret = write(isdn_fd, p, n)) != n)
- {
- if(!errno)
- {
- p += ret;
- if(p > (converted + n))
- break;
- }
- else
- {
- fprintf(stderr, "write /dev/i4btel ERROR: ret (%d) != n (%d), error = %s\n", ret, n, strerror(errno));
- break;
- }
- }
- }
-
- for (i = 0; i < n; i++)
- converted[i] = (data[i] - 32768) / 256;
-
- if(audio_fd >= 0)
- {
- p = converted;
-
- errno = 0;
-
- while((ret = write(audio_fd, p, n)) != n)
- {
- if(!errno)
- {
- p += ret;
- if(p > (converted + n))
- break;
- }
- else
- {
- fprintf(stderr, "write /dev/dsp ERROR: ret (%d) != n (%d), error = %s\n", ret, n, strerror(errno));
- break;
- }
- }
- }
-
- if(file_fd >= 0)
- {
- int ret;
- p = converted;
-
- errno = 0;
-
- while((ret = write(file_fd, p, n)) != n)
- {
- if(!errno)
- {
- p += ret;
- if(p > (converted + n))
- break;
- }
- else
- {
- fprintf(stderr, "write file ERROR: ret (%d) != n (%d), error = %s\n", ret, n, strerror(errno));
- break;
- }
- }
- }
-
- free(converted);
- }
-}
-
-/* EOF */
diff --git a/share/examples/isdn/contrib/i4b-ppp-newbie.txt b/share/examples/isdn/contrib/i4b-ppp-newbie.txt
deleted file mode 100644
index 7d6c4b0..0000000
--- a/share/examples/isdn/contrib/i4b-ppp-newbie.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-$FreeBSD$
-
- PPP mit isdn4bsd
- _________________________________________________________________
-
- Version 1.01
- Datum: 22.02.1999
- Autor: [1]Dominik Brettnacher <domi@saargate.de>
-
- - Anmerkungen und Verbesserungsvorschläge sind willkommen -
-
- 1. vorab
- Dieser Text soll Neulingen helfen, sich mittels isdn4bsd und BSD
- per PPP z.B. bei ihrem Provider einwählen zu können.
- isdn4bsd bringt einiges an Dokumentation und
- Konfigurationsbeispielen mit, jedoch ist es nicht immer leicht,
- die entsprechenden Hinweise gut miteinander zu kombinieren, so daß
- am Schluß das dabei herauskommt, was man haben möchte.
- 2. Wo bekomme ich isdn4bsd?
- hier solle es keine allzu großen Probleme geben: isdn4bsd ist auf
- dem FTP-Server [2]ftp.consol.de erhältlich. Man beachte dabei, daß
- man sich nicht, wie üblich, als anonymous, sondern als isdn4bsd
- einloggen muß. Benutzer von Browsern geben als Adresse
- [3]ftp://isdn4bsd@ftp.consol.de und als Passwort ihre
- eMail-Adresse an.
- Wertvolle Informationen findet man in der Datei README.
- 3. Welche ISDN-Karten werden unterstützt?
- Informationen darüber findet man in der README-Datei.
- 4. Ich benutze einen externen ISDN-Adapter - was nun?
- Externe Adapter benötigen keine direkte Unterstützung, weil sie
- über die serielle Schnittstelle angesteuert werden. Man kann also
- das normale PPP benutzen. man ppp hilft hier sicher weiter.
- 5. isdn4bsd installieren
- Wie man isdn4bsd installiert, steht in der Datei
- FreeBSD/INSTALLATION (für NetBSD und OpenBSD analog). Eine
- Beispielkonfiguration des Kernel sieht so aus:
-[...]
-#
-# i4b passive ISDN cards support (isic - I4b Siemens Isdn Chipset driver)
-# note that the ``options'' and ``device'' lines must BOTH be defined !
-#
-# Non-PnP Cards:
-# --------------
-#
-# AVM A1 or AVM Fritz!Card
-options "AVM_A1"
-device isic0 at isa? port 0x300 net irq 15 flags 4 vector isicintr
-#
-# ISDN Protocol Stack
-# -------------------
-#
-# Q.921 / layer 2 - i4b passive cards D channel handling
-pseudo-device "i4bq921"
-#
-# Q.931 / layer 3 - i4b passive cards D channel handling
-pseudo-device "i4bq931"
-#
-# layer 4 - i4b common passive and active card handling
-pseudo-device "i4b"
-#
-# ISDN devices
-# ------------
-#
-# userland driver to do ISDN tracing (for passive cards only)
-pseudo-device "i4btrc" 4
-#
-# userland driver to control the whole thing
-pseudo-device "i4bctl"
-#
-# userland driver for access to raw B channel
-#pseudo-device "i4brbch" 4
-#
-# userland driver for telephony
-#pseudo-device "i4btel" 2
-#
-# network driver for IP over raw HDLC ISDN
-#pseudo-device "i4bipr" 4
-# enable VJ header compression detection for ipr i/f
-#options IPR_VJ
-#
-# network driver for sync PPP over ISDN
-pseudo-device "i4bisppp" 1
-pseudo-device sppp 1
-#
-#---------------------------------------------------------------------------
-[...]
- Nachdem ein neuer Kernel kompiliert und das System neugestartet
- wurde, kann es weiter gehen.
- 6. Konfiguration isdnd.rc
- Die für ISDN wichtigste Konfigurationsdatei ist
- /etc/isdn/isdnd.rc. Mit man isdnd.rc erhält man Informationen über
- die Einstellungen, die man dort vornehmen kann. Im Folgenden ein
- Beispiel:
-
-
-#==============================================================================
-# SYSTEM section: isdnd global configuration parameters
-#==============================================================================
-system
-
-# accounting
-# ----------
-
-acctall = on # generate info for everything
-acctfile = /var/log/isdnd.acct # name & location of accounting file
-useacctfile = yes # generate accouting info to file
-
-# monitor
-# -------
-
-monitor-allowed = no # global switch: monitor on/off
-monitor-port = 451 # default monitor TCP port
-
-# Monitor rights are granted due to the most specific host/net spec, i.e. in
-# the example below host 192.168.1.2 will have the rights specified on that
-# line, even so it belongs to net 192.168.1.0/24 as well.
-#
-# A monitor specification may either be:
-#
-# - the name of a local (UNIX-domain) socket; this MUST start with a "/"
-monitor = "/var/run/isdn-monitor"
-monitor-access = fullcmd
-monitor-access = channelstate, logevents
-monitor-access = callin, callout
-
-# ratesfile
-# ---------
-
-ratesfile = /etc/isdn/isdnd.rates # name & location of rates file
-
-# regular expression pattern matching
-# -----------------------------------
-
-#regexpr = "connected.*KTS" # look for matches in log messages
-#regprog = connectKTS # execute program when match is found
-
-# realtime priority section
-# -------------------------
-
-rtprio = 25 # modify isdnd's process priority
-
-###############################################################################
-entry
-name = lf
-usrdevicename = isp
-usrdeviceunit = 0
-isdncontroller = 0
-isdnchannel = -1
-local-phone-incoming = 012345678
-remote-phone-incoming = 876543210
-local-phone-dialout = 012345678
-remote-phone-dialout = 876543210
-remdial-handling = first
-dialin-reaction = accept
-dialout-type = normal
-b1protocol = hdlc
-idletime-incoming = 240
-idletime-outgoing = 30
-earlyhangup = 5
-ratetype = 0
-unitlength = 90
-unitlengthsrc = rate
-dialretries = 3
-dialrandincr = on
-recoverytime = 25
-
-connectprog = is-up
-disconnectprog = is-down
-
- Wichtig sind hier für den Neuling die vier *-phone-* Einträge, die
- jeweils die lokale Rufnummer und die der Gegenstelle für ein- und
- ausgehende Verbindungen angeben.
-
- 7. ISDN-Verbindungen aufbauen
- um ISDN-Verbindungen aufzubauen, bedarf es einiger Befehle, die
- beim Systemstart aufgerufen werden. Man kann sie zum Beispiel am
- Ende von /etc/rc.local unterbringen. Hier gibt es aber durchaus
- noch andere Lösungen:
- [...]
- # start ISDN
- echo -n 'ppp / ISDN...'
- echo -n 'isdnd...'
- /usr/local/bin/isdnd
- echo -n 'ifconfig...'
- ifconfig isp0 link1 0.0.0.0 1.1.1.1 netmask 0xffffff00
- ifconfig isp0 down
- echo -n 'sppp...'
- spppcontrol isp0 myauthproto=pap myauthname="xxx"
- myauthsecret="xxx" hisauthproto=none
- echo -n 'ifconfig...'
- ifconfig isp0 up
- echo -n 'setting routes...'
- route add default -interface isp0
- echo '.'
- Ändern muß man hier eventuell die Zieladresse des Providers (im
- Beispiel 1.1.1.1). Man bekommt diese entweder vom Provider, oder
- aber man muß einen Versuch daransetzen, sie selbst herauszufinden.
- Wie das funktioniert, steht in der Datei FAQ des isdn4bsd-Paketes.
- Auch am Aufruf von spppcontrol (Vorsicht: spppcontrol bis
- hisauthproto=none ist eine Zeile!) muß noch etwas umgestellt
- werden:
- + myauthproto steht für das Authentifizierungsprotokoll.
- Möglich sind pap oder chap.
- + myauthname ist der PPP-Benutzername.
- + myauthsecret ist das PPP-Kennwort.
- Wenn man nun die Befehle in /etc/rc.local ausführt, kann man mit
- einem ping auf eine beliebige Adresse außerhalb des lokalen Netzes
- eine Verbindung öffnen. Sie wird automatisch nach einiger
- Inaktivität (siehe isdnd.rc) wieder geschlossen.
-
- 8. Es funktioniert nicht - was kann ich tun?
- Es gibt einige Möglichkeiten zur Fehlerdiagnose:
- + dmesg gibt Aufschluß darüber, ob die Karte richtig erkannt
- wurde.
- + ifconfig (siehe rc.local) kann mit dem Parameter debug
- aufgerufen werden und gibt dann einiges an Informationen aus.
- + die Nachrichten in /var/log/messages können außerdem
- hilfreich sein
-
- 9. wer kann mir helfen?
- + die erste Adresse für ISDN-Probleme ist die Mailingliste
- [4]freebsd-isdn@freebsd.org - man bestellt sie, indem man
- eine Mail mit dem Text subscribe freebsd-isdn an
- [5]majordomo@freebsd.org schickt.
- + auch die deutschsprachige Mailingliste kann hilfreich sein.
- Mit einer Mail an [6]majordomo@de.freebsd.org, die im Text
- subscribe de-bsd-questions enthält bestellt man sie.
- _________________________________________________________________
-
-References
-
- 1. mailto:domi@saargate.de
- 2. ftp://isdn4bsd@ftp.consol.de/
- 3. ftp://isdn4bsd@ftp.consol.de/
- 4. mailto:freebsd-isdn@freebsd.org
- 5. mailto:majordomo@freebsd.org
- 6. mailto:majordomo@de.freebsd.org
diff --git a/share/examples/isdn/contrib/isdnctl b/share/examples/isdn/contrib/isdnctl
deleted file mode 100644
index 57fab45..0000000
--- a/share/examples/isdn/contrib/isdnctl
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-
-# isdnctl
-# Control the ISDN line based on usage
-#
-# This script can control the state of your ISDN line. It counts
-# how many scripts/users currently use the ISDN line and uses
-# "ifconfig down" if noone uses it any more.
-# I use this script for cronjobs that fetch mail and news and run cvsup.
-# If I'm still using the line, the script won't close the connection,
-# but if not, it saves a lot of phone costs.
-#
-# ----------------------------------------------------------------------------
-# "THE BEER-WARE LICENSE" (Revision 42, (c) Poul-Henning Kamp):
-# Alexander Langer <alex@big.endian.de> wrote this file. As long as you retain
-# this notice you can do whatever you want with this stuff. If we meet some
-# day, and you think this stuff is worth it, you can buy me a beer in return.
-#
-# Alexander Langer
-# ----------------------------------------------------------------------------
-#
-# $FreeBSD$
-#
-
-
-usage () {
- echo "usage: $0 [-i interface] [-f /path/to/users.file] [up|down|show]"
-}
-
-# Defaults
-INTERFACE=isp0
-USERSFILE=
-
-# Getopt stuff
-args=`getopt i:f: $*`
-if [ $? != 0 ]; then
- usage
- exit 2
- fi
-set -- $args
-for i; do
- case "$i" in
- -i)
- INTERFACE="$2"
- shift; shift
- ;;
- -f)
- USERSFILE="$2"
- shift; shift
- ;;
- --)
- shift
- break
- ;;
- esac
-done
-
-if [ -z $USERSFILE ]; then
- USERSFILE=/var/run/isdn.users.$INTERFACE
-fi
-
-if [ -z $1 ]; then
- usage
- exit 2
-fi
-
-# Does Usersfile exist?
-if [ ! -f $USERSFILE ]; then
- # Try to create it
- if ! /sbin/ifconfig $INTERFACE | grep "^$INTERFACE.*<UP," > /dev/null; then
- echo "0" > $USERSFILE || exit 1
- else
- echo "1" > $USERSFILE || exit 1
- fi
-elif [ ! -w $USERSFILE ]; then
- echo "Error: $USERSFILE not writeable!"
- exit 1
-fi
-
-if ! /sbin/ifconfig $INTERFACE | grep "^$INTERFACE.*<UP," > /dev/null; then
- if ! cat $USERSFILE | grep '^0$' > /dev/null ; then
- echo "Interface down, removing number from file";
- echo "0" > $USERSFILE
- fi;
-fi;
-
-case "$1" in
- show)
- echo "`cat $USERSFILE` users online"
- ;;
- up)
- expr `cat $USERSFILE` + 1 > $USERSFILE
- /sbin/ifconfig $INTERFACE up
- echo "`cat $USERSFILE` users online"
- ;;
- down)
- if cat $USERSFILE | grep '^0$' > /dev/null ; then
- echo "Already down"
- exit 0
- fi
- expr `cat $USERSFILE` - 1 > $USERSFILE
- if cat $USERSFILE | grep '^0$' > /dev/null ; then
- echo "`cat $USERSFILE` users online, interface down"
- /sbin/ifconfig $INTERFACE down
- exit 0
- fi
- echo "`cat $USERSFILE` users online"
- ;;
-esac
-
-exit 0
diff --git a/share/examples/isdn/contrib/isdnd_acct b/share/examples/isdn/contrib/isdnd_acct
deleted file mode 100644
index 21223b7..0000000
--- a/share/examples/isdn/contrib/isdnd_acct
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/usr/bin/perl
-#---------------------------------------------------------------------------
-#
-# Copyright (c) 1996, 1998 Hellmuth Michaelis. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-#---------------------------------------------------------------------------
-#
-# accounting report script for the isdnd daemon accounting info
-# -------------------------------------------------------------
-#
-# last edit-date: [Fri May 25 15:28:20 2001]
-#
-# $FreeBSD$
-#
-#---------------------------------------------------------------------------
-
-# where the isdnd accounting file resides
-$ACCT_FILE = "/var/log/isdnd.acct";
-
-# the charge for a unit, currently 0,12 DM
-$UNIT_PRICE = 0.12;
-
-# open accounting file
-open(IN, $ACCT_FILE) ||
- die "ERROR, cannot open $ACCT_FILE !\n";
-
-# set first thru flag
-$first = 1;
-
-# process file line by line
-while (<IN>)
-{
- # remove ( and ) from length and bytecounts
- tr/()//d;
-
- # split line into pieces
- ($from_d, $from_h, $dash, $to_d, $to_h, $name, $units, $secs, $byte)
- = split(/ /, $_);
-
- # get starting date
- if($first)
- {
- $from = "$from_d $from_h";
- $first = 0;
- }
-
- # split bytecount
- ($inb, $outb) = split(/\//, $byte);
-
- # process fields
- $a_secs{$name} += $secs;
- $a_calls{$name}++;
- $a_units{$name} += $units;
- $a_charge{$name} += $units * $UNIT_PRICE;
- $a_inbytes{$name} += $inb;
- $a_outbytes{$name} += $outb;
- $a_bytes{$name} = $a_bytes{$name} + $inb + $outb;
-}
-
-# close accouting file
-close(IN);
-
-# write header
-print "\n";
-print " ISDN Accounting Report ($from -> $to_d $to_h)\n";
-print " =====================================================================\n";
-
-#write the sum for each interface/name
-foreach $name (sort(keys %a_secs))
-{
- $o_secs = $a_secs{$name};
- $gt_secs += $o_secs;
- $o_calls = $a_calls{$name};
- $gt_calls += $o_calls;
- $o_units = $a_units{$name};
- $gt_units += $o_units;
- $o_charge = $a_charge{$name};
- $gt_charge += $o_charge;
- $o_inbytes = $a_inbytes{$name};
- $gt_inbytes += $o_inbytes;
- $o_outbytes = $a_outbytes{$name};
- $gt_outbytes += $o_outbytes;
- $o_bytes = $a_bytes{$name};
- $gt_bytes += $o_bytes;
- write;
-}
-
-$o_secs = $gt_secs;
-$o_calls = $gt_calls;
-$o_units = $gt_units;
-$o_charge = $gt_charge;
-$o_inbytes = $gt_inbytes;
-$o_outbytes = $gt_outbytes;
-$o_bytes = $gt_bytes;
-$name = "Total";
-
-print "======= ====== ===== ===== ======== ============ ============ ============\n";
-write;
-
-print "\n\n";
-exit;
-
-# top of page header
-format top =
-
-Name charge units calls secs inbytes outbytes bytes
-------- ------ ----- ----- -------- ------------ ------------ ------------
-.
-
-# record template
-format STDOUT =
-@<<<<<< @##.## @#### @#### @####### @########### @########### @###########
-$name, $o_charge, $o_units, $o_calls, $o_secs, $o_inbytes, $o_outbytes, $o_bytes
-.
-
-# EOF
diff --git a/share/examples/isdn/contrib/isdnd_acct.pl b/share/examples/isdn/contrib/isdnd_acct.pl
deleted file mode 100644
index 0306216..0000000
--- a/share/examples/isdn/contrib/isdnd_acct.pl
+++ /dev/null
@@ -1,258 +0,0 @@
-#!/usr/bin/perl
-#
-#ich habe zwei vielleicht n?tzliche Erweiterungen an isdn_pacct
-#gemacht:
-#
-# 1) Man kann den Namen der Accounting-Datei angeben. Ich
-# habe Accounting-Files nach Telekom-Rechnung aufgeteilt
-# und kann diese so sehr sch?n nachvollziehen.
-#
-# 2) Die Abrechnung wird nach Einheitenl?ngen aufgelistet.
-# Leider wird zur Zeit immer Nahzone verwendet (isdnd.rates
-# wird ausgelesen), und Feiertage stehen als erstes auf
-# der TODO-Liste. Wenn man dieses Feature durch einen
-# Switch anschaltet, kann man es sogar unauff?llig in die
-# Distribution aufnehmen.
-#
-# Mir hilft diese Abrechnung, an mir zu arbeite und mehr
-# Tests und Zug?nge nachts durchzuf?hren... Aber die meisten
-# Einheiten werden immer noch im 90s-Takt verbraucht :-(
-#
-# $FreeBSD$
-#
-#---------------------------------------------------------------------------
-#
-# Copyright (c) 1994, 1996 Hellmuth Michaelis. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-# must display the following acknowledgement:
-# This product includes software developed by Hellmuth Michaelis
-# 4. Neither the name of the author nor the names of any co-contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-#---------------------------------------------------------------------------
-#
-# accounting script for the isdn daemon accounting info
-# -----------------------------------------------------
-#
-# last edit-date: [Fri May 25 15:22:26 2001]
-#
-# -hm my first perl program :-)
-# -hm sorting the output
-# -hm adding grand total
-#
-#---------------------------------------------------------------------------
-
-sub wday {
- local ($y, $m, $d) = @_;
- local ($nday, @mon);
-
- @mon = (0, 31, 61, 92, 122, 153, 184, 214, 245, 275, 306, 337);
-# M A M J J A S O N D J F
-
- if ($m > 2) {
- $m -= 3;
- } else {
- $m += 9;
- $y--;
- }
- if ($y < 1600) {
- return -1;
- }
- $y -= 1600;
- $nday = $y * 365 + $mon[$m] + $d +
- int($y / 4) - int($y / 100) + int($y / 400);
- ($nday + 2) % 7;
-}
-
-# where the isdnd accounting file resides
-if ($#ARGV == 0) {
- $ACCT_FILE = $ARGV[0];
-} else {
- $ACCT_FILE = "/var/log/isdnd.acct";
-}
-
-# $PERIOD_FILE = "/usr/local/etc/isdnd.periods";
-# # read periods that need to be separately listed
-# if (open(IN, $PERIOD_FILE)) {
-# while (<IN>) {
-# chop;
-# ($start, $end) = split(/ /);
-# push(@p_start, $start);
-# push(@p_end, $end);
-# }
-# close(IN);
-# }
-
-$RATES_FILE = "/etc/isdn/isdnd.rates";
-if (open(IN, $RATES_FILE)) {
- while(<IN>) {
- chop;
- if (! /^ra0/) {
- next;
- }
- ($ra0, $day, $rest) = split(/[ \t]+/, $_, 3);
- @periods = split(/[ \t]+/, $rest);
- foreach $period (@periods) {
- ($h_start, $m_start, $h_end, $m_end, $secs) =
- $period =~ /(.+)\.(.+)-(.+)\.(.+):(.+)/;
- for ($h = int($h_start); $h < $h_end; $h++) {
- $secs{$day, $h} = $secs;
- }
- }
- }
- close(IN);
-}
-
-# the charge for a unit, currently 0,12 DM
-$UNIT_PRICE = 0.12;
-
-# open accounting file
-open(IN, $ACCT_FILE) ||
- die "ERROR, cannot open $ACCT_FILE !\n";
-
-# set first thru flag
-$first = 1;
-
-# process file line by line
-while (<IN>)
-{
- # remove ( and ) from length and bytecounts
- tr/()//d;
-
- # split line into pieces
- ($from_d, $from_h, $dash, $to_d, $to_h, $name, $units, $secs, $byte)
- = split(/ /, $_);
-
- # get starting date
- if($first)
- {
- $from = "$from_d $from_h";
- $first = 0;
- }
-
- # split bytecount
- ($inb, $outb) = split(/\//, $byte);
-
- # if user wants to account time periods, put this to the right
- # slot(s)
- ($hour, $minute, $second) = split(/:/, $from_h);
- ($day, $mon, $year) = split(/\./, $from_d);
- $day = &wday('19' . $year, $mon, $day);
- if ($secs{$day, int($hour)}) {
- $secs = $secs{$day, int($hour)};
- # process fields
- $p_secs{$name, $secs} += $secs;
- $p_calls{$name, $secs}++;
- $p_units{$name, $secs} += $units;
- $p_charge{$name, $secs} += $units * $UNIT_PRICE;
- $p_inbytes{$name, $secs} += $inb;
- $p_outbytes{$name, $secs} += $outb;
- $p_bytes{$name, $secs} = $p_bytes{$name, $secs} + $inb + $outb;
- }
-
- # process fields
- $a_secs{$name} += $secs;
- $a_calls{$name}++;
- $a_units{$name} += $units;
- $a_charge{$name} += $units * $UNIT_PRICE;
- $a_inbytes{$name} += $inb;
- $a_outbytes{$name} += $outb;
- $a_bytes{$name} = $a_bytes{$name} + $inb + $outb;
-}
-
-# close accouting file
-close(IN);
-
-# write header
-print "\n";
-print " ISDN Accounting Report ($from -> $to_d $to_h)\n";
-print " =================================================================\n";
-
-#write the sum for each interface/name
-foreach $n (sort(keys %a_secs))
-{
- $o_secs = $a_secs{$n};
- $gt_secs += $o_secs;
- $o_calls = $a_calls{$n};
- $gt_calls += $o_calls;
- $o_units = $a_units{$n};
- $gt_units += $o_units;
- $o_charge = $a_charge{$n};
- $gt_charge += $o_charge;
- $o_inbytes = $a_inbytes{$n};
- $gt_inbytes += $o_inbytes;
- $o_outbytes = $a_outbytes{$n};
- $gt_outbytes += $o_outbytes;
- $o_bytes = $a_bytes{$n};
- $gt_bytes = $o_bytes;
- $name = $n;
- write;
-
- foreach $i (keys %p_secs) {
- ($nam, $secs) = split(/$;/, $i);
- if ($nam ne $n) {
- next;
- }
- $o_secs = $p_secs{$i};
- $o_calls = $p_calls{$i};
- $o_units = $p_units{$i};
- $o_charge = $p_charge{$i};
- $o_inbytes = $p_inbytes{$i};
- $o_outbytes = $p_outbytes{$i};
- $o_bytes = $p_bytes{$i};
- $name = sprintf(' %5.1fs', $secs / 10);
- write;
- }
-}
-
-$o_secs = $gt_secs;
-$o_calls = $gt_calls;
-$o_units = $gt_units;
-$o_charge = $gt_charge;
-$o_inbytes = $gt_inbytes;
-$o_outbytes = $gt_outbytes;
-$o_bytes = $gt_bytes;
-$name = "Total";
-
-print "======= ====== ===== ===== ======== ============ ============ ============\n";
-write;
-
-print "\n\n";
-exit;
-
-# top of page header
-format top =
-
-Name charge units calls secs inbytes outbytes bytes
-------- ------ ----- ----- -------- ------------ ------------ ------------
-.
-
-# record template
-format STDOUT =
-@<<<<<< @##.## @#### @#### @####### @########### @########### @###########
-$name, $o_charge, $o_units, $o_calls, $o_secs, $o_inbytes, $o_outbytes, $o_bytes
-.
-
-# EOF
diff --git a/share/examples/isdn/contrib/isdntelmux.c b/share/examples/isdn/contrib/isdntelmux.c
deleted file mode 100644
index 1d517a7..0000000
--- a/share/examples/isdn/contrib/isdntelmux.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (c) 1999 Michael Reifenberger (Michael@Reifenberger.com).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *---------------------------------------------------------------------------
- *
- * i4btemux - record while playing
- * ===============================
- *
- * $FreeBSD$
- *
- *----------------------------------------------------------------------------*/
-
-#include<stdio.h>
-#include<stdarg.h>
-#include<signal.h>
-#include<errno.h>
-#include<string.h>
-#include<stdlib.h>
-#include<unistd.h>
-#include<fcntl.h>
-#include<ctype.h>
-#include<sys/stat.h>
-#include<sys/wait.h>
-#include<sys/ioctl.h>
-#include<sys/types.h>
-#include<sys/time.h>
-#include<sys/param.h>
-#include<i4b/i4b_tel_ioctl.h>
-
-// DECL DEFS
-#define BUFLEN 2048
-#define MAXBLOCKS_DEFAULT 23
-
-// DECL VARS
-int ibytes = 0;
-int obytes = 0;
-int maxbytes = (BUFLEN * MAXBLOCKS_DEFAULT);
-
-int xfd = -1, xact = 0;
-int ifd = -1, iact = 0;
-int ofd = -1;
-FILE *dfp = NULL;
-int opt_dbg = 0;
-int maxfd = 0;
-fd_set set;
-struct timeval timeout;
-char nambuf[PATH_MAX];
-int ch;
-
-// DECL FUNC
-void ifd_hdlr( void);
-void xfd_hdlr( void);
-void usage( void);
-void dbg( char *fmt, ... );
-
-// DEF FUNC
-int main (int argc, char **argv) {
- int dummy;
- int x = -1;
-
- dfp = stderr;
- while( ( ch = getopt( argc, argv, "x:i:o:b:D:")) != -1 ){
- switch(ch){
- case 'b':
- x = atoi(optarg);
- maxbytes = x * BUFLEN;
- break;
- case 'i':
- ifd = open( optarg, O_RDONLY );
- iact = 1;
- break;
- case 'o':
- ofd = open( optarg, O_WRONLY|O_TRUNC|O_CREAT );
- break;
- case 'x':
- xfd = open( optarg, O_RDWR );
- xact = 1;
- break;
- case 'D':
- opt_dbg = 1;
- if( (dfp = fopen( optarg, "w" )) < 0) {
- dfp = stderr;
- dbg("Err for opening %s\n", optarg);
- exit(1);
- }
- break;
- case '?':
- default:
- usage();
- break;
- }
- }
- if( ( xfd < 0 ) || ( ifd < 0 ) || ( ofd < 0 ) ) {
- dbg("Err opening one ore more Files.\n");
- dbg("xfd: %d, ifd: %d, ofd: %d\n", xfd, ifd, ofd );
- usage();
- }
-
- if((x = ioctl(xfd, I4B_TEL_EMPTYINPUTQUEUE, &dummy)) < 0){
- dbg("Err I4B_TEL_EMPTYINPUTQUEUE\n");
- }
-
- while( (iact == 1) || ( (obytes < maxbytes) && (xact == 1) ) ){
- FD_ZERO( &set);
- if( iact == 1){
- FD_SET( ifd, &set);
- if( ifd > maxfd)
- maxfd = ifd;
- dbg("FSET ifd\n");
- }
- if( xact == 1){
- FD_SET( xfd, &set);
- if( xfd > maxfd)
- maxfd = xfd;
- dbg("FSET xfd\n");
- }
- x=select( maxfd+1, &set, NULL, NULL, NULL);
- if( x > 0){
- if( (iact == 1) && FD_ISSET( ifd, &set) ){
- ifd_hdlr();
- }
- if( (xact == 1) && FD_ISSET( xfd, &set) ){
- xfd_hdlr();
- }
- }
- }
- dbg("exit0\n");
- return(0);
-}
-
-void ifd_hdlr( void) {
- int x;
- unsigned char buf[BUFLEN];
-
- x = read( ifd, buf, BUFLEN);
- dbg("ifd read %d bytes\n", x);
- if( x > 0 ){
- write( xfd, buf, x);
- ibytes += x;
- dbg("xfd %d bytes written to %d\n", x, ibytes);
- } else {
- iact = 0;
- }
-}
-
-void xfd_hdlr( void) {
- int x;
- unsigned char buf[BUFLEN];
-
- x = read( xfd, buf, BUFLEN);
- dbg("xfd read %d bytes\n", x);
- if( x > 0){
- write( ofd, buf, x);
- obytes += x;
- dbg("ofd %d bytes written to %d\n", x, obytes);
- } else {
- xact = 0;
- }
-}
-
-void usage( void) {
- fprintf(dfp, "isdntelmux V.1\n");
- fprintf(dfp, "usage: isdntelmux -x device -i ifile -o ofile [-b blocks]\n");
- exit(1);
-}
-
-void dbg( char *fmt, ... ) {
- va_list ap;
-
- if( opt_dbg == 0 )
- return;
- va_start( ap, fmt );
- vfprintf( dfp, fmt, ap);
- va_end(ap);
-}
diff --git a/share/examples/isdn/contrib/mrtg-isp0.sh b/share/examples/isdn/contrib/mrtg-isp0.sh
deleted file mode 100644
index bdc9671..0000000
--- a/share/examples/isdn/contrib/mrtg-isp0.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-#---------------------------------------------------------------------------
-#
-# collect callout and callback statistics for the isp0 i/f
-#
-# enable budget callout and callback restrictions and file
-# rotation in the isdnd.rc file.
-#
-# last edit-date: [Fri May 25 15:22:45 2001]
-#
-# $FreeBSD$
-#
-#---------------------------------------------------------------------------
-#
-#---------------------------------------------------------------------------
-# this is the entry for mrtg in mrtg.cfg
-#---------------------------------------------------------------------------
-# Target[ernie.cstat.isp0]: `/usr/local/etc/mrtg/util/mrtg-isp0.sh`
-# MaxBytes[ernie.cstat.isp0]: 10
-# AbsMax[ernie.cstat.isp0]: 200
-# Title[ernie.cstat.isp0]: isp0: callouts / callbacks
-# PageTop[ernie.cstat.isp0]: <H1> isp0: callouts /callbacks </H1>
-# Options[ernie.cstat.isp0]: gauge, nopercent, integer
-# YLegend[ernie.cstat.isp0]: co / cb
-# ShortLegend[ernie.cstat.isp0]: n
-# Legend1[ernie.cstat.isp0]: callouts
-# Legend2[ernie.cstat.isp0]: callbacks
-# LegendI[ernie.cstat.isp0]: callouts:
-# LegendO[ernie.cstat.isp0]: callbacks:
-# WithPeak[ernie.cstat.isp0]: ymwd
-#
-#---------------------------------------------------------------------------
-# this is the shell script run by mrtg
-#---------------------------------------------------------------------------
-if [ -r /var/log/isdn/callouts.isp0 ]
-then
- cat /var/log/isdn/callouts.isp0 | awk '{print $3}'
-else
- echo 0
-fi
-
-if [ -r /var/log/isdn/callbacks.isp0 ]
-then
- cat /var/log/isdn/callbacks.isp0 | awk '{print $3}'
-else
- echo 0
-fi
-
-uptime | cut -c 12-18
-uname -nsr
-
-exit 0
-
OpenPOWER on IntegriCloud