Svdrp-isdn-from-fli4l
Aus VDR Wiki
(Unterschied zwischen Versionen)
| Zeile 3: | Zeile 3: | ||
Format der Telefonnummerdatei /etc/vdr/phone.txt: | Format der Telefonnummerdatei /etc/vdr/phone.txt: | ||
| + | <pre> | ||
nummer=name | nummer=name | ||
| + | </pre> | ||
Hier das Script: | Hier das Script: | ||
| − | + | <pre> | |
| − | + | #!/bin/sh | |
| − | + | ||
| − | + | host=fli4lHost | |
| − | + | port=5000 | |
| − | + | ||
| − | + | cmd="nc -w 2 $host $port" | |
| − | + | ||
| − | + | tmp=/tmp/vdrFli4l | |
| − | + | phone=/etc/vdr/phone.txt | |
| − | + | ||
| − | + | export COLUMNS=512 | |
| − | + | ||
| + | lines=20 | ||
| + | |||
| + | rm -f $tmp | ||
| + | ############################################## | ||
| + | # get uptime from router | ||
| + | ############################################## | ||
| + | seconds=`\ | ||
| + | { | ||
| + | echo uptime | ||
| + | echo quit | ||
| + | } | $cmd | awk '{print substr($2,1,length($2)-1);}'` | ||
| + | |||
| + | uptime=`/usr/local/bin/tt $seconds` | ||
| + | |||
| + | ############################################## | ||
| + | # get status of pppoe device | ||
| + | ############################################## | ||
| + | |||
| + | statusDSL=`\ | ||
| + | { | ||
| + | echo status pppoe | ||
| + | echo quit | ||
| + | } | $cmd | awk '{print substr($2,1,length($2)-1);}'` | ||
| + | |||
| + | ############################################## | ||
| + | # get ip of pppoe device | ||
| + | ############################################## | ||
| + | ipDSL=`\ | ||
| + | { | ||
| + | echo ip pppoe | ||
| + | echo quit | ||
| + | } | $cmd | awk '{print substr($2,1,length($2)-1);}'` | ||
| + | |||
| + | ############################################## | ||
| + | printf "************************************* | ||
| + | Router | ||
| + | ************************************* | ||
| + | Up since $uptime | ||
| + | DSL: ${statusDSL}" | ||
| + | |||
| + | if [ "$statusDSL" = "Online" ] | ||
| + | then | ||
| + | printf " (IP: $ipDSL)" | ||
| + | fi | ||
| + | |||
| + | printf " | ||
| + | ************************************* | ||
| + | Calls | ||
| + | *************************************\n" | ||
| + | { | ||
| + | echo telmond-log-file | ||
| + | echo quit | ||
| + | } | $cmd | grep -v OK | sort -r | sed -e 's/ /=/g' > $tmp | ||
| − | + | awk ' | |
| + | BEGIN { FS="="; } | ||
| − | + | FILENAME ~ /phone/\ | |
| − | + | ||
| − | + | ||
| − | + | ||
{ | { | ||
| − | + | phonebook[$1] = $2; | |
| − | + | } | |
| − | + | ||
| − | + | FILENAME ~ /tmp/\ | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
{ | { | ||
| − | + | number=$4; | |
| − | + | caller=phonebook[number]; | |
| − | + | if (caller == "") | |
| − | + | caller=number; | |
| − | + | printf ("%s %s %s\n", $2, $3, caller); | |
| − | + | } | |
| − | + | ' $phone $tmp | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | printf "*************************************\n" | |
| − | + | </pre> | |
Version vom 6. September 2004, 18:08 Uhr
Dieses Script kann über die commands.conf auf dem VDR aufgerufen werden. Es holt vom fli4l-Router Statusinformationen (z.B. uptime, DSL-Status incl. IP-Adresse) sowie die gespeicherten ISDN-Anrufe, ergänzt diese bei Bedarf um die Namen (Zuordnung in Datei /etc/vdr/phone.txt) und zeigt alle Informationen an.
Format der Telefonnummerdatei /etc/vdr/phone.txt:
nummer=name
Hier das Script:
#!/bin/sh
host=fli4lHost
port=5000
cmd="nc -w 2 $host $port"
tmp=/tmp/vdrFli4l
phone=/etc/vdr/phone.txt
export COLUMNS=512
lines=20
rm -f $tmp
##############################################
# get uptime from router
##############################################
seconds=`\
{
echo uptime
echo quit
} | $cmd | awk '{print substr($2,1,length($2)-1);}'`
uptime=`/usr/local/bin/tt $seconds`
##############################################
# get status of pppoe device
##############################################
statusDSL=`\
{
echo status pppoe
echo quit
} | $cmd | awk '{print substr($2,1,length($2)-1);}'`
##############################################
# get ip of pppoe device
##############################################
ipDSL=`\
{
echo ip pppoe
echo quit
} | $cmd | awk '{print substr($2,1,length($2)-1);}'`
##############################################
printf "*************************************
Router
*************************************
Up since $uptime
DSL: ${statusDSL}"
if [ "$statusDSL" = "Online" ]
then
printf " (IP: $ipDSL)"
fi
printf "
*************************************
Calls
*************************************\n"
{
echo telmond-log-file
echo quit
} | $cmd | grep -v OK | sort -r | sed -e 's/ /=/g' > $tmp
awk '
BEGIN { FS="="; }
FILENAME ~ /phone/\
{
phonebook[$1] = $2;
}
FILENAME ~ /tmp/\
{
number=$4;
caller=phonebook[number];
if (caller == "")
caller=number;
printf ("%s %s %s\n", $2, $3, caller);
}
' $phone $tmp
printf "*************************************\n"