Svdrp-isdn-from-fli4l

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
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:
  
#!/bin/sh
+
<pre>
+
#!/bin/sh
host=fli4lHost
+
 
port=5000  
+
host=fli4lHost
+
port=5000  
cmd="nc -w 2 $host $port"
+
 
+
cmd="nc -w 2 $host $port"
tmp=/tmp/vdrFli4l
+
 
phone=/etc/vdr/phone.txt
+
tmp=/tmp/vdrFli4l
+
phone=/etc/vdr/phone.txt
export COLUMNS=512
+
 
+
export COLUMNS=512
lines=20
+
 
 +
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
 
   
 
   
rm -f $tmp
+
awk '
 +
BEGIN { FS="="; }
  
##############################################
+
FILENAME ~ /phone/\
# get uptime from router
+
##############################################
+
seconds=`\
+
 
  {
 
  {
echo uptime
+
    phonebook[$1] = $2;
echo quit
+
  }
} | $cmd | awk '{print substr($2,1,length($2)-1);}'`
+
 
   
+
FILENAME ~ /tmp/\
uptime=`/usr/local/bin/tt $seconds`
+
+
##############################################
+
# get status of pppoe device
+
##############################################
+
+
statusDSL=`\
+
 
  {
 
  {
echo status pppoe
+
     number=$4;
echo quit
+
    caller=phonebook[number];
} | $cmd | awk '{print substr($2,1,length($2)-1);}'`
+
    if (caller == "")
+
        caller=number;
##############################################
+
    printf ("%s %s  %s\n", $2, $3, caller);
# get ip of pppoe device
+
}
##############################################
+
' $phone $tmp
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"
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"