das mit dem sleep bringt nix. es steht immer noch ein R vor dem anrufbeantworter. wie schalte ich das logging ein? kann nix finden
Code:
#!/bin/sh
####################################################################
#
# Server-Variablen ferstlegen
#
####################################################################
#
# URL, von wo die zusätzlichen Daemons heruntergeladen werden
serverurl=
#
# Pfad der die benötigten Dateien enthält (z.B. OpenVPN, SSH, oder FTP)
serverdir=
#
# Lokale IP-Adresse des Syslog-Clients
syslogclient="192.168.69.1, z.B. IP von PC-1"
#
# Internet-URL zur Erkennung, ob Internetverbindung steht
internetpingurl="www.google.de"
#
####################################################################
####################################################################
#
# Telnet-Server starten
#
####################################################################
#
/usr/sbin/telnetd -l /sbin/ar7login
#
####################################################################
sleep 1
####################################################################
#
# Syslog-Daemon starten
#
####################################################################
#
#/sbin/syslogd -R $syslogclient
#
# Telefon-Daemon beenden, da die Einträge nur in STDOUT und nicht
# in den Syslog-Daemon protokolliert werden
#/usr/bin/killall telefon
#/bin/sleep 2
# Und Telefon-Daemon wieder neu starten - allerdings mit ungelenkter
# Ausgabe zum Syslog-Daemon :)
#/usr/bin/telefon 1 a127.0.0.1 | /usr/bin/logger &
####################################################################
####################################################################
#
# Warten bis Internet-Verbindung steht
#
####################################################################
#
#/usr/bin/logger "[DEBUG.CFG] 2. Warte auf Internet-Verbindung..."
while !(ping -c 1 $internetpingurl); do
#/usr/bin/logger "[DEBUG.CFG] 2.1 Prüfe Internet-Verbindung..."
sleep 2
done
#/usr/bin/logger "[DEBUG.CFG] 2. Internet-Verbindung vorhanden."
#
####################################################################
####################################################################
#
# FTP-Server einbinden und starten (hier bftp) wird mit.29 nicht
# mehr gebraucht, nur noch der benutzer muss angelegt werden
####################################################################
#
#/usr/bin/logger "[DEBUG.CFG] 3. Starte FTP-Server..."
#cd /var/tmp
#wget http://$serverurl$serverdir/bftpd.conf
#wget http://$serverurl$serverdir/bftpd
#chmod +x bftpd
#chmod 777 bftpd.conf
echo >> /var/tmp/passwd
#/var/tmp/bftpd -d -c /var/tmp/bftpd.conf | /usr/bin/logger &
#/usr/bin/logger "[DEBUG.CFG] 3. FTP-Server gestartet."
#
####################################################################
####################################################################
#
# OpenVPN starten
#
####################################################################
#
#/usr/bin/logger "[DEBUG.CFG] 4. Starte OpenVPN-Server..."
cd /var/tmp
mkdir vpn
cd vpn
# OpenVPN holen und ausführbar machen
#/usr/bin/logger "[DEBUG.CFG] 4.1 Lade OpenVPN und Zertifikate runter..."
wget http://$serverurl$serverdir/openvpn
#Zertifikate holen
wget http://$serverurl$serverdir/fritzbox.crt
wget http://$serverurl$serverdir/ca.crt
wget http://$serverurl$serverdir/dh1024.pem
/usr/bin/logger "[DEBUG.CFG] 4.1 OpenVPN und Zertifikate heruntergeladen."
#FritzBox Config erzeugen
#/usr/bin/logger "[DEBUG.CFG] 4.2 Erzeuge FritzBox-OpenVPN Konfigurationsdatei..."
cat > "/var/tmp/vpn/fritzbox.conf" << "EOLOOP0"
# Grundsaetzliches
port 1195
proto udp
dev tap0
dev-node /var/tmp/vpn/tun
# Server-Einstellungen
mode server
tls-server
server-bridge 192.168.69.254 255.255.255.0 192.168.69.80 192.168.69.85
#server 10.0.0.0 255.255.255.0
client-to-client
# Dies ist der IP-Bereich von eurem FritzBox-LAN
push "route 192.168.69.0 255.255.255.0"
# Authentifizierung und Verschluesselung
ca /var/tmp/vpn/ca.crt
cert /var/tmp/vpn/fritzbox.crt
key /var/tmp/vpn/fritzbox.key
dh /var/tmp/vpn/dh1024.pem
auth SHA1
cipher AES-256-CBC
# Sonstiges
ping 10
push "ping 10"
ping-restart 60
push "ping-restart 60"
EOLOOP0
#/usr/bin/logger "[DEBUG.CFG] 4.2 FritzBox-OpenVPN Konfigurationsdatei erzeugt."
#FritzBox Key erzeugen
#/usr/bin/logger "[DEBUG.CFG] 4.3 FritzBox-OpenVPN Key erzeugen..."
cat > "/var/tmp/vpn/fritzbox.key" << "EOLOOP1"
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
EOLOOP1
#/usr/bin/logger "[DEBUG.CFG] 4.3 FritzBox-OpenVPN Key erzeugt."
#Dateirechte vergeben
#/usr/bin/logger "[DEBUG.CFG] 4.4 Vergebe Dateirechte für OpenVPN-Dateien..."
chmod 600 /var/tmp/vpn/fritzbox.key
chmod 600 /var/tmp/vpn/fritzbox.conf
chmod +x /var/tmp/vpn/openvpn
mknod /var/tmp/vpn/tun c 10 200
/usr/bin/logger "[DEBUG.CFG] 4.4 Dateirechte für OpenVPN-Dateien vergeben."
#OpenVPN als Daemon starten
#/usr/bin/logger "[DEBUG.CFG] 4.5 Starte OpenVPN als Daemon..."
/var/tmp/vpn/openvpn --cd /var/tmp/vpn --config fritzbox.conf --daemon
#/usr/bin/logger "[DEBUG.CFG] 4.5 OpenVPN als Daemon gestartet."
#
####################################################################
#/usr/bin/logger "[DEBUG.CFG] 4. OpenVPN-Server gestartet."
####################################################################
#
# Prozess-Liste an Syslog-Daemon senden
#
####################################################################
#
sleep 2
#ps
#
#################################################################
# set hostname to fritz.box
hostname fritz.box
major=`grep tffs /proc/devices`
tffs_major=${major%%tffs}
#write calllog
cat > /var/calllog << 'ENDCALLLOG'
#!/bin/sh
CALLER=${1}
LINE=${3}
if [ -z "${LINE}" ]
then
LINE=${2}
fi
if [ "${LINE}" = "ISDN" ]
then
LINE=${2}
fi
if [ -z "${LINE}" ]
then
LINE=${1}
CALLER=""
fi
sh /var/tmp/parse_telefon.sh "${LINE}" "${CALLER}" &
ENDCALLLOG
# save /var/calllog
mknod /var/flash/calllog c $tffs_major $((0x77))
cp /var/calllog /var/flash/calllog
#CONTACTS
#contact=:anonym;
#CONTACTSEND
#LINES
#line=:anonym;
#LINESEND
# write reverse lookup script to file
cat > /var/tmp/invers.sh << 'ENDINVERS'
#!/bin/sh
number=$1
wget -q -O /var/tmp/page "http://www2.dasoertliche.de/?form_name=detail&lastFormName=search_inv&ph=${number}&recFrom=1&hitno=0" 2>/dev/null
while read reverse
do
case ${reverse} in
*detail_top*)
name=${reverse#*\>}
name=${name%%\<*}
break
;;
esac
done < /var/tmp/page
echo "${name}" > /var/tmp/name
# get address
while read reverse
do
if [ -n "${gotaddress}" ]
then
address=${reverse#*\>}
address=${address%\<*}
break
fi
case ${reverse} in
*da_adresse*)
gotaddress=1
;;
esac
done < /var/tmp/page
echo "${address}" | sed -e '{s/ / /g;s/<br \/>/;/g;}' > /var/tmp/address
ENDINVERS
# make it executable
chmod +x /var/tmp/invers.sh
# write send script to file
cat > /var/tmp/callmessage.sh << 'ENDCALLMESSAGE'
#!/bin/sh
caller=${2}
called=${1}
# search name in contact list
entry=`cat /var/flash/debug.cfg 2>/dev/null | fgrep "#contact=${caller}:" | sed "s/#contact=${caller}://"`
name=${entry%%\;*}
address=${entry#*\;}
address=${address%\;*}
street=${address%%\;*}
zip=${address##*\;}
# name not found?
if [ -z "${name}" ]
then
# do reverse lookup at www.dasoertliche.de
/var/tmp/invers.sh ${caller}
name=`cat /var/tmp/name`
# found name?
if [ -n "${name}" ]
then
# add found contact to debug.cfg
address=`cat /var/tmp/address`
street=${address%%\;*}
zip=${address##*\;}
cat /var/flash/debug.cfg | sed -e "s/^#CONTACTSEND$/#contact=${caller}:${name};${address};#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\
#CONTACTSEND/g' > /var/tmp/debug.cfg
else
# add anonymous for contact to debug.cfg
cat /var/flash/debug.cfg | sed -e "s/^#CONTACTSEND$/#contact=${caller}:${caller};#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\
#CONTACTSEND/g' > /var/tmp/debug.cfg
fi
cat /var/tmp/debug.cfg > /var/flash/debug.cfg
rm /var/tmp/debug.cfg
fi
# name not found?
if [ -z "${name}" ]
then
name=${caller}
fi
httpname=`echo "${name}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpstreet=`echo "${street}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpzip=`echo "${zip}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
echo "Name: ${name}"
echo "Strasse: ${street}"
echo "PLZ: ${zip}"
# search line in line list
theline=`cat /var/flash/debug.cfg 2>/dev/null | fgrep "#line=${called}:" | sed "s/#line=${called}://"`
theline=${theline%%\;*}
# line not found?
if [ -z "${theline}" ]
then
theline=${called}
fi
httptheline=`echo "${theline}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
# Send information to all DHCP clients
while read x x IP x
do
wget -O /dev/null "http://${IP}:23232/?caller=${caller}&called=${called}&name=${name}&line=${theline}" >/dev/null 2>&1 &
done < /var/flash/multid.leases
# send information to PCs
#wget -O /dev/null "http://192.168.69.1:23232/?caller=${caller}&called=${called}&name=${name}&line=${theline}" >/dev/null 2>&1 &
# send information to DBoxes -> TV screen
#!/bin/sh
####################################################################
#
# anrufliste auf die dbox
# write log
if [ "${name}" = "${caller}" ]
then
name="unbekannt"
fi
date +"~BZeit:~S %d.%m.%Y, %H:%M:%S Uhr\\n~BAnrufer :~S ${name}\\n~BNummer:~S ${caller}\\n~BLeitung :~S ${theline}" > /var/tmp/anrufliste.tmp
echo "~Y----------------------------------------------------------------------~S" >> /var/tmp/anrufliste.tmp
sed '100,$d' /var/tmp/anrufliste.txt >> /var/tmp/anrufliste.tmp
mv /var/tmp/anrufliste.tmp /var/tmp/anrufliste.txt
sleep 3
killall wget
ENDCALLMESSAGE
# make it executable
chmod +x /var/tmp/callmessage.sh
# write dummy WakeOnCall script
echo "#!/bin/sh" > /var/tmp/woc.sh
make it executable
chmod +x /var/tmp/woc.sh
# write parse_telefon script to file
cat > /var/tmp/parse_telefon.sh << 'ENDPARSETEL'
#!/bin/sh
trap "" SIGCHLD
prefix=
caller="$2"
called="$1"
called=${called%%#*}
# normalize caller
case ${caller} in
0049*)
caller=0${caller#*0049}
;;
49????????*)
caller=0${caller#*49}
;;
[1-9]????????*)
caller=0${caller}
;;
[1-9]*)
caller=${prefix}${caller}
;;
esac
# exec woc.sh
/var/tmp/woc.sh ${called} ${caller} &
# exec callmessage.sh
/var/tmp/callmessage.sh ${called} ${caller} &
ENDPARSETEL
# make it executable
chmod +x /var/tmp/parse_telefon.sh
# make FBF accessable from the internet (192.168.178.253)
sleep 10
ifconfig eth0:1 192.168.178.253 netmask 255.255.255.0 broadcast 192.168.178.255 up
# menue auf der dbox
# write cmd script to file
mkdir /var/tmp/cgi-bin
cp /usr/www/$OEM/cgi-bin/???* /var/tmp/cgi-bin
mount -o bind /var/tmp/cgi-bin /usr/www/$OEM/cgi-bin
cat > /var/tmp/cgi-bin/cmd << 'ENDCMD'
#!/bin/sh
echo -e "Content-type: text/html; charset=iso-8859-1\n\n<html><body>"
case $1
in
uptime)
run_clock;uptime;cat /var/config.def;;
anrufe)
echo -e "`cat /var/tmp/anrufliste.txt`";;
reboot)
echo -e "</body></html>";/sbin/reboot;;
wstart)
/etc/init.d/rc.net wlanstart;;
wstop)
/etc/init.d/rc.net wlanstop;;
wreload)
/etc/init.d/rc.net wlanreload;;
wstatus)
echo "`/sbin/ifconfig|grep wlan`";;
vstart)
/etc/init.d/rc.voip start;;
vstop)
/etc/init.d/rc.voip stop;;
vreload)
/etc/init.d/rc.voip reload;;
vstatus)
echo "`/bin/pidof voipd`";;
dstart)
/sbin/dsld -i -n;;
dstop)
/sbin/dsld -s;;
dreload)
/sbin/init.d/rc.net reload dsld;;
dstatus)
echo "`/bin/pidof dsld`";;
*)
echo "Unbekannter Parameter";;
esac
echo -e "</body></html>"
ENDCMD
# make it executable
chmod 777 /var/tmp/cgi-bin/???*
sleep 60
/var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter/capircvd -b -d /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter/neue_anrufe -c /var/media/ftp/cnmemory-Partition-0-1/anrufbeantworter
Zuletzt bearbeitet: