source: ipk/source.mipsel/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh @ 37181

Last change on this file since 37181 was 37181, checked in by karlo, 8 years ago

fix callmon (50)

  • Property svn:executable set to *
File size: 37.6 KB
RevLine 
[28064]1#!/bin/sh
2
3CONFIG=`echo "$0callmon.conf" | sed s/fritzbox_msg_new.sh//`
4#NC=`echo "$0nc" | sed s/fritzbox_msg_new.sh//`
5NC="nc"
6ICONV=`echo "$0iconv" | sed s/fritzbox_msg_new.sh//`
7CURL=`echo "$0curl" | sed s/fritzbox_msg_new.sh//`
8LPATH=`echo "$0" | sed s/'\/fritzbox_msg_new.sh'//`
9LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LPATH
10export LD_LIBRARY_PATH
11
12. $CONFIG
13#. ./callmon.conf
14 
15#
16#-------------------------------------------------------------------------------
17#
18# To enable the callmonitor on your fritzbox use your telephone and call
19#    #96*5*         to enable
20#    #96*4*         to disable
21#
22#
23#SETUP---start------------------------------------------------------------------
24#
25##FRITZBOXIP=10.0.0.99   #IP of your fritzbox
26TELDPORT=1012            #callmonitor port (default 1012)
27#
28#SETUP---end--------------------------------------------------------------------
29#
30#
31#Options---start----------------------------------------------------------------
32#
[37173]33Version=v2.60                                   #Zur Versionsanzeige im telnet
[28064]34debug=0                                                         #wenn debug auf 1 steht wird am TV nichts angezeigt
35##Ziel=4711                                                     #bitte Rufnummer eintragen die Überwacht werden soll
36if [ ! $Ziel ]; then
37        Ziel=4711
38fi
39##Ziel_2=4711                                   #2te Rufnummer die Überwacht werden soll
40if [ ! $Ziel_2 ]; then
41        Ziel_2=4711
42fi
43                                                                                        #wenn keine zweite dann gleiche nochmal eintragen!
44##Alle=1                  #wenn hier eine 1 steht werden alle Rufnummern überwacht
45                          #unabhängig von Ziel und Ziel_2
46##monRing=1               #eingehende Anrufe anzeigen
47##muteRing=0              #Ton aus bei Anruf
48##monCall=0               #ausgehende Anrufe anzeigen
49monDisconnect=0           #Beenden eines Anrufes anzeigen. Hier ist noch ein Bug drin!
50                          #Es werden immer alle Gespräche überwacht (alle Rufnummern
51                          #werden überwacht- Ziel und Ziel_2 funktionieren hier nicht
52                          #). Ich habe das deshalb immer auf 0.
53ip=127.0.0.1                    #ip Adresse der Dreambox
54##anzeigetimeout=10       #Wie lange soll die Meldung angezeigt werden?
55##anzeigewennaus=0        #Wenn 1 dann werden alle Meldungen gespeichert und angezeigt
56                          #wenn die Dreambox eingeschaltet wird (kann ganz schön viel
57                          #werden!). Wenn 0 werden die Meldungen nicht angezeigt wenn
58                          #die Box aus war als z.B. ein Anruf eingegangen ist.
59                          #Empfehlen tue ich eine 0. Wer weis was passiert wenn man im
60                          #Urlaub ist und etliche Meldungen gespeichert werden.
61uebersichtsseite=0        #Wenn anzeige wenn aus und uebersichtsseite 1 ist, dann werden
62                          #nach dem einschalten der Dream aus dem Standy alle verpassten
63                          #Anrufe in einer Übersichtseite angezeigt mit Datum und Uhrzeit
64                          #Hierzu muss OpenPanel installiert sein.
65                          #Hier muss aber noch ein Start Script erstellt werden!                 
66loginname=root            #Loginname für Dreambox (Beispiel:root)
67passwort=kathrein       #passwort für Dreambox (Beispiel:dreambox)
68vorwahl=030                                             #Eigene Vorwahl eintragen
69#
70#Options---end------------------------------------------------------------------
71#
72#
73#---- do not change anything below here ----
74#
75#additional paths to files we use (will be created automatically if not present)
76#detecting Dreambox-Type (DM7020 or DM7000 or DM500 or DM600PVR)
77 FRITZCACHE=/tmp/fritzbox.cache                  #stores successfull reverse searches
78 FRITZBUCH=/var/fritzbuch.tele
79 TMPFILE=/tmp/fritzbox.tmp                       #stores page from wget command
80 TMPSTATUS=/tmp/fritzdream.status                #status der Dreambox (standby usw)
81 TMPRING=/tmp/tmpring.xml                        #stores missed calls
82 TMPINCOMING=/tmp/ringin.tmp                             #for checking ring overview
83
84NULL=/dev/null                              #'NULL'
85SCRIPT=$0                                   #full path to this script
86export SCRIPT
87
88#-------------------------------------------------------------------------------
89#definition of the reverse search online (GOYELLOW.DE)
90#-------------------------------------------------------------------------------
91SEARCHPRV="GoYellow"
92SEARCHURL="http://www.goyellow.de/schnellsuche/?LIP=simpleSearch&MDN="
93SEARCHURL="http://www.goyellow.de/inverssuche/?TEL="
94SEARCHPDETAIL="Detailinformationen"
95SEARCHERR="Keine.Einträge.gefunden"        #replace spaces with dots (regex)
96#-------------------------------------------------------------------------------
97#check if FritzBox! is up and callmonitor port is reachable. if not exit.
98#-------------------------------------------------------------------------------
99#cat /dev/null | ./nc $FRITZBOXIP $TELDPORT
100cat /dev/null | $NC $FRITZBOXIP $TELDPORT
101if [ $? != 0 ]; then
102 echo "Fritzbox (" $FRITZBOXIP ") ist nicht auf Port" $TELDPORT "erreichbar!"
103 echo "Skript wird beendet!"
104 FRITZUP=down
105 exit 1
106else
107 FRITZUP=up
108fi
109#-------------------------------------------------------------------------------
110#if script is called without any parameters show help text
111#-------------------------------------------------------------------------------
112if [ "$1" = "" ]; then
113 echo
114 echo "Usage: $SCRIPT START STOP CLEANUP SORTNAME SORTNUMBER TEST [phonenumber]"
115 echo
116 echo "START               Start Script and deamonize"
117 echo "STOP                kill all processes we created"
118 echo "CLEANUP             delete all temporary files incl. cache"
119 echo "SORTNAME            sort cache file by name"
120 echo "SORTNAME -r         sort cache file by name (reverse)"
121 echo "SORTNUMBER          sort cache file by number"
122 echo "SORTNUMBER -r       sort cache file by number (reverse)"
123 echo "TEST [phonenumber]  For testing connectivity and trying the search"
124 echo
125fi
126#-------------------------------------------------------------------------------
127#reading function to interpret the data read from FritzBox! callmonitor port
128#-------------------------------------------------------------------------------
129mysearch () {
130
131if [ "$1" = "Unbekannt" ]; then
132   NAME="ohne Rufnummer"
133   ADDRESSE=""
134else
135   #remove spaces from $1 and replace '+49' with ''0'
136   NUMMER=`echo $1 | sed -e "s@\ @@g" -e "s@+49@0@"`
137   #UH
138   NUMMER=`echo $NUMMER | sed -e "s/^1/${vorwahl}1/g"`
139   NUMMER=`echo $NUMMER | sed -e "s/^2/${vorwahl}2/g"`
140   NUMMER=`echo $NUMMER | sed -e "s/^3/${vorwahl}3/g"`
141   NUMMER=`echo $NUMMER | sed -e "s/^4/${vorwahl}4/g"`
142   NUMMER=`echo $NUMMER | sed -e "s/^5/${vorwahl}5/g"`
143   NUMMER=`echo $NUMMER | sed -e "s/^6/${vorwahl}6/g"`
144   NUMMER=`echo $NUMMER | sed -e "s/^7/${vorwahl}7/g"`
145   NUMMER=`echo $NUMMER | sed -e "s/^8/${vorwahl}8/g"`
146   NUMMER=`echo $NUMMER | sed -e "s/^9/${vorwahl}9/g"`
147   echo "$NUMMER"
148   echo "Searching for $NUMMER in cache file..."
[37181]149   if [ ! -f $FRITZBUCH ]; then  touch $FRITZBUCH; fi
150    #try to get caller-id via $NUMBER from $FRITZBUCH
151    NAME=`grep $NUMMER $FRITZBUCH | sed -e "s@$NUMMER\#@@" -e "s@;@\n@g"`
[28064]152    ADDRESSE=`echo $NAME | sed -e 's/.*->//g'`
153    NAME=`echo $NAME | sed -e 's/->.*//g'`
154    echo -e
155    echo -e "NAME nach Cache Suche: $NAME"
156    echo -e "ADRESSE nach Cache Suche: $ADDRESSE"
157   
158   if [ "$NAME" = "" ]; then
159    #try to get caller-id of $NUMMER via internet
160    echo "Searching for $NUMMER via $SEARCHPRV"
161    wget "$SEARCHURL$NUMMER"  -O $TMPFILE
162    #extract caller-id from online result
163    #UH20100112
[37173]164#    NAME=`grep $SEARCHPDETAIL $TMPFILE | head -n 1 | sed -e "/</{; :loop; s/<[^<]*>//g; /</{; N; b loop; }; };"`
165#    ADDRESSE=`grep "address" $TMPFILE| head -n 1`
[28064]166#    ADDRESSE=`echo $ADDRESSE | sed 's/<[^>]*>/ /g'`
167
[37173]168    NAME=`grep $SEARCHPDETAIL $TMPFILE | head -n 1 | sed -e 's/.*Detailinformationen zu //g' | sed -e 's/ in .*//g'`
169    STRASSE=`grep '<span class="street street-address">' $TMPFILE | head -n 1 | sed -e 's/<span class="street street-address">//g' | sed -e 's/<\/span>.*//g'`
170    POSTCODE=`grep '<span class="postcode postal-code">' $TMPFILE | head -n 1 | sed -e 's/.*<span class="postcode postal-code">//g' | sed -e 's/<\/span>.*//g'`
171    ORT=`grep '<span class="city locality">' $TMPFILE | head -n 1 | sed -e 's/.*<span class="city locality">//g' | sed -e 's/<\/span>.*//g'`
[28064]172    ADDRESSE="$STRASSE~n$POSTCODE $ORT"
173
174    if [ "$NAME" = "" ]; then
175     if grep $SEARCHERR $TMPFILE > $NULL; then
176      NAME="Unbekannt"
177      ADDRESSE=""
178     fi;
179    fi;
180    if [ "$NAME" = "" ]; then
181     NAME="Unbekannt"
182     ADDRESSE=""
183    else
184     #dirty workarround to fix 'new-lines' when multiple caller-ids exist
185     #to make sure only 1 line will be written to cache file
186     #NAME=`printf %s***** $NAME | sed -e "s@\*\*\*\*\*@ @g;"
187     #echo "Name gefunden in Goyellow: " $NAME
188     echo -e
189     echo -e "$NUMMER#$NAME->$ADDRESSE" >> $FRITZCACHE
190     export NAME
191     export ADDRESSE
192    fi;
193   fi;
194fi;
195};
196
197loadFritzBook () {
198 if [ $usePhoneBook = "1" ]; then
199                #rm $FRITZBUCH
200                if [ ! -f $FRITZBUCH ]; then
[37173]201                        echo "FritzBook new"
[28064]202                       
[37173]203                        if [ -z $FritzVersion ] || [ $FritzVersion -lt 50 ]; then
204                                # Challenge abholen
205                                echo "Challenge abholen start"
206                                ChallengeXML=`wget -O - "http://$FRITZBOXIP/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
207                                Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
208                                echo "Challenge abholen ende"
209                               
210                                Passwd="$FritzPass"
[28064]211
[37173]212                                # login aufbauen und hashen
213                                echo "login aufbauen und hashen start"
214                                CPSTR="$Challenge-$Passwd"
215                                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/help; md5sum /tmp/help | awk '{print substr($0,1,32)}'`
216                                RESPONSE="$Challenge-$MD5"
217                                POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
218                                # login senden und SID herausfischen
219                                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -n 1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`
220                                echo "login aufbauen und hashen ende"
[28064]221
[37173]222                                $CURL --data "telcfg:settings/Phonebook/Books/Select=0&getpage=../html/de/menus/menu2.html&var:pagename=fonbuch&sid=$SID&var:menu=fon&var:lang=de" http://$FRITZBOXIP/cgi-bin/webcm  | grep ">TrFon" | sed s/'<script type="text\/javascript">'// | sed s/';<\/script>'// | sed s/'('/'"'/ | sed s/')'/'"'/ > /tmp/curlhelp.tmp
223                                while read line
224                                        do
225                                        art=`echo $line | cut -d'"' -f1`
226                                        if [ $art = "TrFonName" ]; then
227                                                name=`echo $line | cut -d'"' -f5`
228                                        elif [ $art = "TrFonNr" ]; then
229                                                nummer=`echo $line | cut -d'"' -f5`
230                                                echo "$nummer#$name->" >> $FRITZBUCH
231                                        fi
232                                done < /tmp/curlhelp.tmp
233                                rm /tmp/curlhelp.tmp
[28064]234
[37173]235                                if [ ! -f $FRITZBUCH ]; then
236                                        #testen ob neues Telefonbuch
237                                        #$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua > /tmp/test.curl
238                                        $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua | grep "<td class=\"tname\">" | sed s/"<td class=\"tname\">"/"\nfritztele<"/ | sed s/">"/"<"/g | sed s/"'"//g | sed s/'"'//g | sed s/"&amp;"/"+"/g > /tmp/curlhelp.tmp
239                                        while read line
240                                        do
241                                                nummer1="0"
242                                                nummer2="0"
243                                                nummer3="0"
244                                                pos1=14
245                                                pos2=0
246                                                pos3=0
247                                                art=`echo $line | cut -d'<' -f1`
248                                                if [ $art = "fritztele" ]; then
249                                                        name=`echo $line | cut -d'<' -f2`
250                                                        nummer1=`echo $line | cut -d'<' -f8`
251                                                        help=`echo $line | cut -d'<' -f11`
[28064]252                                                        if [ $help == "br" ]; then
[37173]253                                                                nummer2=`echo $line | cut -d'<' -f14`
254                                                                pos1=20
255                                                                pos2=22
256                                                                help=`echo $line | cut -d'<' -f17`
257                                                                if [ $help == "br" ]; then
258                                                                        nummer3=`echo $line | cut -d'<' -f20`
259                                                                        pos1=26
260                                                                        pos2=28
261                                                                        pos3=30
262                                                                fi
[28064]263                                                        fi
[37173]264                                                        if [ $nummer1 != "0" ]; then
265                                                                typ=`echo $line | cut -d'<' -f$pos1`
266                                                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
267                                                        fi
268                                                        if [ $nummer2 != "0" ]; then
269                                                                typ=`echo $line | cut -d'<' -f$pos2`
270                                                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
271                                                        fi
272                                                        if [ $nummer3 != "0" ]; then
273                                                                typ=`echo $line | cut -d'<' -f$pos3`
274                                                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
275                                                        fi
[28064]276                                                fi
[37173]277                                        done < /tmp/curlhelp.tmp
278                                        rm /tmp/curlhelp.tmp
279                                fi
[28064]280                 
[37173]281                        elif [ -z $FritzVersion ] || [ $FritzVersion -lt 60 ]; then
282                                echo "Version 50"
283                                #Fritzbox Version > 50 und < 60
284                               
285                                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
286                                Passwd="$FritzPass"
287                                # login aufbauen und hashen
288                                echo "login aufbauen und hashen start"
289                                CPSTR="$Challenge-$Passwd"
290                                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
291                                RESPONSE="$Challenge-$MD5"
[28064]292
[37173]293                                POSTDATA="username=$FritzUser&response=$RESPONSE"
[28064]294
[37173]295                                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
[28064]296
[37173]297                                echo "login aufbauen und hashen ende"
[28064]298
[37173]299                                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp.tmp
[28064]300
[37173]301                                BOOKID=`cat /tmp/curlhelp.tmp | grep '<label for="uiBookid' | grep ritzcall | cut -d: -f2 | cut -d'"' -f1`
302                                if [ -z "$BOOKID" ]; then
303                                        BOOKID=0
304                                fi
[28064]305
[37173]306                                $CURL --data "bookid=$BOOKID&sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua  | grep "<td class=\"tname\" title=" | sed s/'class="tname" '/"\nfritztele<"/g  | sed s/">"/"<"/g | sed s/"'"//g | sed s/'"'//g | sed s/"&amp;"/"+"/g  | sed s/"<<a href="//g | sed s/"<\/a<"//g | sed s/"+49"/"0"/g > /tmp/curlhelp3.tmp
[28064]307
[37173]308                                while read line
309                                        do
310                                                nummer1="0"
311                                                nummer2="0"
312                                                nummer3="0"
313                                                nummer4="0"
314                                                pos1=11
315                                                pos2=0
316                                                pos3=0
317                                                art=`echo $line | cut -d'<' -f1`
318                                                if [ ! -z $art ] && [ $art = "fritztele" ]; then
319                                                        name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
320                                                        nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
[37181]321                                                        help=`echo $line | cut -d'<' -f8 | cut -c 1-2`
[28064]322                                                        if [ $help = "br" ]; then
[37173]323                                                                nummer2=`echo $line | cut -d'<' -f9 | sed s/" "//g`
324                                                                pos1=13
325                                                                pos2=15
[37181]326                                                                help=`echo $line | cut -d'<' -f10 | cut -c 1-2`
[28064]327                                                                if [ $help = "br" ]; then
[37173]328                                                                        nummer3=`echo $line | cut -d'<' -f11 | sed s/" "//g`
329                                                                        pos1=15
330                                                                        pos2=17
331                                                                        pos3=19
[37181]332                                                                        help=`echo $line | cut -d'<' -f12 | cut -c 1-2`
[37173]333                                                                        if [ $help = "br" ]; then
334                                                                                nummer4=`echo $line | cut -d'<' -f13 | sed s/" "//g`
335                                                                                pos1=17
336                                                                                pos2=19
337                                                                                pos3=21
338                                                                                pos4=23
339                                                                        fi
[28064]340                                                                fi
341                                                        fi
[37173]342                                                        if [ $nummer1 != "0" ]; then
343                                                                typ=`echo $line | cut -d'<' -f$pos1`
344                                                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
345                                                        fi
346                                                        if [ $nummer2 != "0" ]; then
347                                                                typ=`echo $line | cut -d'<' -f$pos2`
348                                                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
349                                                        fi
350                                                        if [ $nummer3 != "0" ]; then
351                                                                typ=`echo $line | cut -d'<' -f$pos3`
352                                                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
353                                                        fi
354                                                        if [ $nummer4 != "0" ]; then
355                                                                typ=`echo $line | cut -d'<' -f$pos4`
356                                                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
357                                                        fi
[28064]358                                                fi
[37173]359                                        done < /tmp/curlhelp3.tmp
[37181]360                                        rm /tmp/curlhelp3.tmp
[37173]361                               
362                        else
363                                #Fritzbox Version > 60
364                                echo "Version 60"
365                               
366                                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
367                                Passwd="$FritzPass"
368                                # login aufbauen und hashen
369                                echo "login aufbauen und hashen start"
370                                CPSTR="$Challenge-$Passwd"
371                                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
372                                RESPONSE="$Challenge-$MD5"
373
374                                POSTDATA="username=$FritzUser&response=$RESPONSE"
375
376                                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
377
378                                echo "login aufbauen und hashen ende"
379
380                                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp.tmp
381
382                                BOOKID=`cat /tmp/curlhelp.tmp | grep ' checked id="uiBookid' | cut -d: -f2 | cut -d'"' -f1`
383                                if [ -z "$BOOKID" ]; then
384                                        BOOKID=0
385                                else
386                                        echo "BookID: $BOOKID"
387                                fi
388               
389                                #$CURL --data "bookid=$BOOKID&sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua | grep "<td class=\"tname\" title=" | sed s/'class="tname" '/"\nfritztele<"/g  | sed s/">"/"<"/g | sed s/"'"//g | sed s/'"'//g | sed s/"&amp;"/"+"/g  | sed s/"<<a href="//g | sed s/"<\/a<"//g > /tmp/curlhelp3.tmp
390                                $CURL --data "bookid=$BOOKID&sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua | grep "<td class=\"tname\" title=" | sed s/'class="tname" '/"\nfritztele<"/g | sed s/">"/"<"/g | sed s/"<<"/"<"/g | sed s/"'"//g | sed s/'"'//g | sed s/"&amp;"/"+"/g | sed s/"<a href="//g | sed s/"<\/a"//g | sed s/"+49"/"0"/g > /tmp/curlhelp6.tmp
391                       
392                                while read line
393                                        do
394                                                nummer1="0"
395                                                nummer2="0"
396                                                nummer3="0"
397                                                nummer4="0"
398                                                nummer5="0"
399                                                nummer6="0"
400                                                pos1=10
401                                                pos2=0
402                                                pos3=0
403                                                art=`echo $line | cut -d'<' -f1`
404                                                if [ ! -z $art ] && [ $art = "fritztele" ]; then
405                                                        name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
406                                                        nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
407                                                        help=`echo $line | cut -d'<' -f8`
408                                                        if [ $help = "br" ]; then
409                                                                nummer2=`echo $line | cut -d'<' -f10 | sed s/" "//g`
410                                                                pos1=13
411                                                                pos2=15
412                                                                help=`echo $line | cut -d'<' -f11`
413                                                                if [ $help = "br" ]; then
414                                                                        nummer3=`echo $line | cut -d'<' -f13 | sed s/" "//g`
415                                                                        pos1=16
416                                                                        pos2=18
417                                                                        pos3=20
418                                                                        help=`echo $line | cut -d'<' -f14`
419                                                                        if [ $help = "br" ]; then
420                                                                                nummer4=`echo $line | cut -d'<' -f16 | sed s/" "//g`
421                                                                                pos1=19
422                                                                                pos2=21
423                                                                                pos3=23
424                                                                                pos4=25
425                                                                                help=`echo $line | cut -d'<' -f17`
426                                                                                if [ $help = "br" ]; then
427                                                                                        nummer5=`echo $line | cut -d'<' -f19 | sed s/" "//g`
428                                                                                        pos1=22
429                                                                                        pos2=24
430                                                                                        pos3=26
431                                                                                        pos4=28
432                                                                                        pos5=30
433                                                                                        help=`echo $line | cut -d'<' -f20`
434                                                                                        if [ $help = "br" ]; then
435                                                                                                nummer6=`echo $line | cut -d'<' -f22 | sed s/" "//g`
436                                                                                                pos1=25
437                                                                                                pos2=27
438                                                                                                pos3=29
439                                                                                                pos4=31
440                                                                                                pos5=33
441                                                                                                pos6=35
442                                                                                        fi
443                                                                                fi
444                                                                        fi
445                                                                fi
446                                                        fi
447                                                        if [ $nummer1 != "0" ]; then
448                                                                typ=`echo $line | cut -d'<' -f$pos1`
449                                                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
450                                                        fi
451                                                        if [ $nummer2 != "0" ]; then
452                                                                typ=`echo $line | cut -d'<' -f$pos2`
453                                                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
454                                                        fi
455                                                        if [ $nummer3 != "0" ]; then
456                                                                typ=`echo $line | cut -d'<' -f$pos3`
457                                                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
458                                                        fi
459                                                        if [ $nummer4 != "0" ]; then
460                                                                typ=`echo $line | cut -d'<' -f$pos4`
461                                                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
462                                                        fi
463                                                        if [ $nummer5 != "0" ]; then
464                                                                typ=`echo $line | cut -d'<' -f$pos3`
465                                                                echo "$nummer5#$name->$typ" >> $FRITZBUCH
466                                                        fi
467                                                        if [ $nummer6 != "0" ]; then
468                                                                typ=`echo $line | cut -d'<' -f$pos4`
469                                                                echo "$nummer6#$name->$typ" >> $FRITZBUCH
470                                                        fi
[28064]471                                                fi
[37173]472                                        done < /tmp/curlhelp6.tmp
[37181]473                                        rm /tmp/curlhelp6.tmp                                   
474                        fi
475                        #cp $FRITZBUCH $FRITZCACHE
[28064]476                fi
477        fi     
[37173]478
[28064]479};
480#-------------------------------------------------------------------------------
481#Script has been initiated with parameters
482#(START,RING,CALL,DISCONNECT,CONNECT,STOP,SORTNAME,SORTNUMBER,TEST,CLEANUP)
483
484timeout=14
485while [ -e /tmp/callrun ]; do
486        if [ $timeout != "0" ]; then
487                timeout=$(($timeout-1))
488                sleep 1
489        else
490                break
491        fi
492done
493
494touch /tmp/callrun
495
496timeout=14
497while [ -e /tmp/xmessage ]; do
498        if [ $timeout != "0" ]; then
499                timeout=$(($timeout-1))
500                sleep 1
501        else
502                break
503        fi
504done
505
506case $1 in
507  START|start)
508  echo
509  echo "------------------------------------"
510  echo "Fritzbox Callmonitor" $Version "gestartet"
511  echo "---Folgende Optionen sind gesetzt---"
512  echo "Debugmodus: " $debug
513  echo "Ueberwachte Rufnummern: " $Ziel " und " $Ziel_2
514  echo "Alle Rufnummern ueberwachen: " $Alle
515  echo "Eingehende Anrufe ueberwachen: " $monRing
516  echo "Ausgehende Anrufe ueberwachen: " $monCall
517  echo "Verbindungsende ueberwachen: " $monDisconnect
518  echo "IP Adresse der TV-Box: " $ip
519  echo "Anzeigetimeout: " $anzeigetimeout
520  echo "Anzeigewennaus: " $anzeigewennaus
521  #echo "Übersichtsseite: " $uebersichtsseite
522  echo "Fritzbox Telefonbuch: " $usePhoneBook
523  echo "------------------------------------"
524  echo "**************************************"
525  echo "loadFritzBook start"
526  loadFritzBook
527  echo "loadFritzBook ende"
528  if [ $debug = 0 ]; then
529     #wget -T 1 -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=Skript%20gestartet&body=FritzBox!%20Callmonitor%20gestartet&timeout=3"
530     $CURL "http://$ip/cgi-bin/xmessage?caption=Skript%20gestartet&body=FritzBox!%20Callmonitor%20gestartet&timeout=3" -o /dev/null
531     (touch /tmp/xmessage; sleep 4; rm  /tmp/xmessage) &
532  fi
533  #very tricky line to get data from FritzBox! using netcat and divide it using
534  #awk. Only make changes to this line if you completely understand it!
535  #Make sure the next line end with a trailing '&' or your dreambox will hang!
536    #tail -f < /dev/null|./nc $FRITZBOXIP $TELDPORT|awk -F";" '{if ($4==""){$4="Unbekannt"} system (ENVIRON ["SCRIPT"] " "$2" "$1" "$3" "$4" "$5" "$6" "$7 )}' &
537    echo "tail start"
538    tail -f < /dev/null|$NC $FRITZBOXIP $TELDPORT|awk -F";" '{if ($4==""){$4="Unbekannt"} system (ENVIRON ["SCRIPT"] " "$2" "$1" "$3" "$4" "$5" "$6" "$7 )}' &
539    echo "Ende"
540     ;;
541  RING)
542    mysearch $5
543    echo $2" "$3" Ankommend: von "$5" auf "$6"und hier noch wert 7 "$7
544    #title of messagebox
545    c=">>>> Anruf ankommend <<<<"
546    #prepare text
547    #UH20100110
548                fuer=$6
549    if [ "$6" = "4711" ]
550       then fuer="Name1"
551#       elif [ "$6" = "MSN2" ]
552#          then fuer="Name2"
553    fi
554
555#    b=" Anruf von "$5"~n~n "$NAME"~n "$ADDRESSE"~n für "$6
556    b=" Anruf von "$5"~n~n "$NAME"~n "$ADDRESSE"~n~n~n für "$fuer
557
558    b1=`echo $b               | sed -e '{s/4711/Name1/g;s/MSN2/Name2/g;s/MSN3/Name3/g;s/SIP0/VOIP0/g;s/SIP1/VOIP1/g;s/SIP2/VOIP2/g;}'`
559#    b1=`echo $b               | sed -e '{s/4711/Name1/g;s/MSN2/Name2/g;s/MSN3/Name3/g;s/SIP0/VOIP0/g;s/SIP1/VOIP1/g;s/SIP2/VOIP2/g;}'`
560    #Wert in Logb zwischenspeichern für TMPRING
561    logb=`echo $b1            | sed -e '{s/~n//g;}'` 
562
563    b1=`echo $b1              | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
564    c1=`echo $c               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
565    #Eingehende Anrufe anzeigen?
566    if [ $monRing = 1 ]; then
567      #Welche Rufnummern sollen überwacht werden?
568      if [ $6 = $Ziel -o $6 = $Ziel_2 -o $Alle = 1 ] ; then
569        #wget -O- http://$loginname:$passwort@$ip/xml/boxstatus > $TMPSTATUS
570        #wget -O- http://$ip/query?boxstatus > $TMPSTATUS
571        $CURL http://$ip/query?boxstatus > $TMPSTATUS
[37173]572        #STANDBY=`grep "standby" $TMPSTATUS| head -n 1 | sed -e '{s/<standby>//g;s/<\/standby>//g}'`
[28064]573        STANDBY=`grep "standby" $TMPSTATUS| wc -l`
[33257]574        #STANDBY=0
[28064]575        echo "Standbystatus: $STANDBY"
576          if [ $STANDBY = 0 ]; then
577            if [ $debug = 0 ]; then
578              if [ $muteRing = 1 ]; then #wenn Option gesetzt ist dann wird der Ton abgeschaltet
579                #wget -O- http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
[37173]580                #mute=`grep "mute" $TMPSTATUS| head -n 1 | sed -e '{s/mute://g;s/<br>//g;s/ //g}'`
[28064]581                #if [ $mute = 0 ]; then
582                  #wget -q -O /dev/null "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
583                        $CURL http://$ip/query?mutestatus > $TMPSTATUS
584                                                        mute=`grep "muteon" $TMPSTATUS| wc -l`
585                                                        if [ $mute = 0 ]; then
586                                $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
587                        fi
588                #fi
589              fi
590              #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
591                $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
592                (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
593            fi 
594          else
595            echo "Dreambox ist im Standby"
596            if [ $anzeigewennaus = 1 ]; then #wenn die Box im Standby ist und die Option gesetzt ist dann wird nach dem einschalten der Box die Meldung angezeigt
597              echo "Meldung wird wenn debug 0 ist trotzdem angezeigt da -anzeigewennaus- 1 ist"
598              #wenn die Leitung überwacht wird dann den Anruf erst einmal in TMPRING schreiben und TMPINCOMING schreiben
599              if [ $uebersichtsseite = 1 ]; then
600                echo "Anruf wird für Übersichtsseite gespeichert"
601              if [ -f $TMPRING ];     then
602                  echo "TMPRING gibt es schon neu "
603                  echo "<shell name=\"von $5 $NAME\" shortcut=\"\" help=\"$2 $3\"><sh></sh></shell>
604<line name=\"$ADDRESSE\" />
605<line name=\"für $6\" />
606<separator />" >>$TMPRING
607               else
608                  echo "TMPRING gibt es noch nicht"         
609                  echo "<menu name=\"Verpasste Anrufe\">
610<shell name=\"von $5 $NAME\" shortcut=\"\" help=\"$2 $3\"><sh></sh></shell>    
611<line name=\"$ADDRESSE\" />
612<line name=\"für $6\" />
613<separator />" >$TMPRING
614                    fi
615                  echo "nach der Abfrage ob es TMPring schon gibt"
616                  echo "1" > $TMPINCOMING
617              else
618                if [ $debug = 0 ]; then     
619                  echo "Meldung wird nach dem einschalten der Box angezeigt"
620                  #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
621                  $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
622                  (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
623                fi
624              fi 
625            fi
626          fi
627      fi
628    fi   
629   
630    if [ -f $TMPSTATUS ];     then  rm $TMPSTATUS; fi
631    if [ -f $TMPFILE ];     then  rm $TMPFILE; fi
632    ;;
633  CALL)
634    mysearch $7
635    echo $2" "$3" Ausgehend: von "$6" auf "$7
636      #title of messagebox
637      c="<<<< Anruf abgehend >>>>"
638      #prepare text
639      #UH20100110
640      if [ "$6" = "4711" ]
641         then von=`echo $6               | sed -e '{s/4711/Name1/g;}'`
642#         elif [ "$6" = "4712" ]
643#            then von=`echo $6               | sed -e '{s/4712/MSN2/g;}'`
644      fi
645
646#      b=" Anruf von "$6"~n~n für "$7"~n~n "$NAME"~n "$ADDRESSE
647      b=" Anruf von "$von"~n~n~n für "$7"~n~n "$NAME"~n "$ADDRESSE
648
649      b1=`echo $b               | sed -e '{s/MSN1/Name1/g;s/MSN2/Name2/g;s/MSN3/Name3/g;s/SIP0/VOIP0/g;s/SIP1/VOIP1/g;s/SIP2/VOIP2/g;}'`
650#      b1=`echo $b               | sed -e '{s/MSN1/Name1/g;s/MSN2/Name2/g;s/MSN3/Name3/g;s/SIP0/VOIP0/g;s/SIP1/VOIP1/g;s/SIP2/VOIP2/g;}'`
651
652      b1=`echo $b1              | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
653      c1=`echo $c               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
654      #tempfile schreiben für Übersicht
655     
656      #Ausgehende Anrufe anzeigen?
657      if [ $monCall = 1 ]; then
658        #Welche Rufnummern sollen überwacht werden?
659        if [ $6 = $Ziel -o $6 = $Ziel_2 -o $Alle = 1 ] ; then
660          echo "Diese Rufnummer wird überwacht"
661          #wget -O- http://$loginname:$passwort@$ip/xml/boxstatus > $TMPSTATUS
662          #wget -O- http://$ip/query?boxstatus > $TMPSTATUS
663          $CURL http://$ip/query?boxstatus > $TMPSTATUS
[37173]664          #STANDBY=`grep "standby" $TMPSTATUS| head -n 1 | sed -e '{s/<standby>//g;s/<\/standby>//g}'`
[28064]665          STANDBY=`grep "standby" $TMPSTATUS| wc -l`
666          STANDBY=0
667          echo "Standbystatus: $STANDBY"
668          if [ $STANDBY = 0 ]; then
669            echo "Wenn debug noch 0 ist wird die Meldung angezeigt"
670            if [ $debug = 0 ]; then
671              #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
672              $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
673              (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
674            fi
675          else
676            echo "Dreambox ist im Standby"
677            if [ $anzeigewennaus = 1 ]; then
678              echo "Meldung wird wenn debug 0 ist trotzdem angezeigt da -anzeigewennaus- 1 ist"
679              if [ $debug = 0 ]; then     
680                echo "Meldung wird nach dem einschalten der Box angezeigt"
681                #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
682                $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
683                (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
684              fi
685            fi 
686          fi 
687        fi
688      fi
689      if [ -f $TMPSTATUS ];     then  rm $TMPSTATUS; fi
690      if [ -f $TMPFILE ];     then  rm $TMPFILE; fi
691      ;;
692 
693  DISCONNECT)
694  #wget -O- http://$loginname:$passwort@$ip/xml/boxstatus > $TMPSTATUS
695  #wget -O- http://$ip/query?boxstatus > $TMPSTATUS
696  $CURL http://$ip/query?boxstatus > $TMPSTATUS
[37173]697  #STANDBY=`grep "standby" $TMPSTATUS| head -n 1 | sed -e '{s/<standby>//g;s/<\/standby>//g}'`
[28064]698  STANDBY=`grep "standby" $TMPSTATUS| wc -l`
699  if [ $STANDBY = 0 ]; then
700    if [ $muteRing = 1 ]; then #wenn Option gesetzt ist dann wird der Ton abgeschaltet
701        $CURL http://$ip/query?mutestatus > $TMPSTATUS
702        mute=`grep "muteon" $TMPSTATUS| wc -l`
703        if [ $mute = 1 ]; then
704                $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL   
705        fi
706      #wget -O- http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
707      #$CURL http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
[37173]708      #'mute=`grep "mute" $TMPSTATUS| head -n 1 | sed -e '{s/mute://g;s/<br>//g;s/ //g}'`
[28064]709      #if [ $mute = 1 ]; then
710        #wget -q -O /dev/null "http://$loginname:$passwort@$ip/cgi-bin/rc?113"  >> $NULL #Befehl für Tonsperre
711        #$CURL "http://$loginname:$passwort@$ip/cgi-bin/rc?113"  >> $NULL #Befehl für Tonsperre
712      #fi
713    fi
714  fi
715     h=$(($5/3600))                        #get hours from   $5
716     m=$(($5%3600/60))                     #get minutes from $5
717     s=$((($5%3600)%60))                   #get seconds from $5
718     if [ $h -lt 10 ]; then h="0"$h; fi    #add leading 0 if needed
719     if [ $m -lt 10 ]; then m="0"$m; fi    #add leading 0 if needed
720     if [ $s -lt 10 ]; then s="0"$s; fi    #add leading 0 if needed
721     #title of messagebox
722     c="-- Anrufauswertung --"
723     #prepare text
724     b="~n Aufgelegt nach "$5" Sekunden Dauer (hh:mm:ss): "$h":"$m":"$s"~n"
725     
726     #Beenden eines Anrufes anzeigen?
727     if [ $monDisconnect = 1 ]; then 
728          if [ $debug = 0 ]; then
729          #generate the messagebox
730          b1=`echo $b               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
731          c1=`echo $c               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
732          echo "Disconnect"
733          if [ $STANDBY = 0 ]; then
734           #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"          >> $NULL
735           $CURL -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"          >> $NULL
736           (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
737          fi
738         fi
739     fi
740     if [ -f $TMPSTATUS ];     then  rm $TMPSTATUS; fi
741     if [ -f $TMPINCOMING ];     then  rm $TMPINCOMING; fi
742     ;;
743  CONNECT)
744    echo "connect ist jetzt aktiv - verbunden"
745    #kontrollieren ob dieses ein eingehender Anruf war
746    if [ -f $TMPINCOMING ];     then
[37173]747    eingehend=`grep "1" $TMPINCOMING| head -n 1`
[28064]748    else
749    eingehend="0"
750    fi
751    #wenn das ein eingehender anruf war dann letzten Zeilen löschen da der Anruf angenommen wurde
752    if [ $eingehend = 1 ]; then
753      if [ -f $TMPRING ];     then  sed -i '$D' $TMPRING; fi
754      if [ -f $TMPRING ];     then  sed -i '$D' $TMPRING; fi
755      if [ -f $TMPRING ];     then  sed -i '$D' $TMPRING; fi
756      if [ -f $TMPRING ];     then  sed -i '$D' $TMPRING; fi
757       
758      if [ -f $TMPINCOMING ];     then  rm $TMPINCOMING; fi
759    fi
760     ;;
761  SORTNAME|sortname)
762    #convert $FRITZCACHE to unix format
763    unix2dos -u  $FRITZCACHE
764    #convert $FRITZCACHE to upper case
765    awk -F '#' '{print toupper($2)"#"$1"#"$2}' $FRITZCACHE|sort $2>$FRITZCACHE"_sort"
766    #sort $FRITZCACHE
767    awk -F '#' '{print $2"#"$3}' $FRITZCACHE"_sort" > $FRITZCACHE
768     ;;
769  SORTNUMBER|sortnumber)
770    #sort FRITZCACHE by telephone number
771    sort $FRITZCACHE $2 > $FRITZCACHE"_sort"
772    mv $FRITZCACHE"_sort" $FRITZCACHE
773    ;;
774  CLEANUP|cleanup)                       #cleanup (removes all files)
775     echo "deleting $TMPFILE (if exists)"
776     if [ -f $TMPFILE ];     then  rm $TMPFILE; fi
777     echo "deleting $FRITZCACHE (if exists)"
778     if [ -f $FRITZCACHE ];   then  rm $FRITZCACHE; fi
[37173]779         echo "deleting $FRITZBUCH (if exists)"
780     if [ -f $FRITZBUCH ];   then  rm $FRITZBUCH; fi
[28064]781     ;;
[37173]782  STOP1|stop1)
[28064]783     #kill all processes we spawned
784     #hopefully only a single tail task is running so we kill it :)
785     pid=`ps | grep "tail.-f"| grep -v grep | awk '{print $1}'`
786     if [ "X${pid}" != "X" ] ; then
787        kill -9 ${pid}
788     fi
789     pid=`ps |grep "Unbekannt" | grep -v grep | awk '{print $1}'`
790     if [ "X${pid}" != "X" ] ; then
791        kill -9 ${pid}
792     fi
793     pid=`ps |grep ".*nc.*$TELDPORT" | grep -v grep | awk '{print $1}'`
794     if [ "X${pid}" != "X" ] ; then
795        kill -9 ${pid}
796     fi
797     pid=`ps |grep $SCRIPT | grep -v grep | awk '{print $1}'`
798     if [ "X${pid}" != "X" ] ; then
799        kill -9 ${pid}
800     fi
801     ;;
[37173]802    STOP|stop)
803     #STOP1 (alt STOP) bewirkt hier nichts!
804     #tail zu killen reicht, um die anderen auch zu entfernen :)
805     pid=`ps | grep "tail*"| grep -v grep | awk '{print $1}'`
806     if [ "X${pid}" != "X" ] ; then
807        kill -9 ${pid}
808     fi
809         #fals noch ein 2. läuft :-)
810     pid=`ps | grep "tail*"| grep -v grep | awk '{print $1}'`
811     if [ "X${pid}" != "X" ] ; then
812        kill -9 ${pid}
813     fi 
814     ;;
[28064]815  SHOW|show)
816  sleep 10     
817  if [ -f $TMPRING ];     then
[37173]818    eintragvorhanden=`grep "von" $TMPRING| head -n 1`
[28064]819    echo "Es ist ein Eintrag in TMPRING vorhanden"
820    if [ "$eintragvorhanden" = "" ]; then
821      echo "kein Eintrag in TMPRING"
822      rm $TMPRING
823    else
824      echo "</menu>" >>$TMPRING
825      ebox exit; exit=`opexec --width=580 --height=400 --xmlpath="$TMPRING"`
826      rm $TMPRING
827      #sed -i '$D' $TMPRING #falls die Datei nicht gelöscht werden soll muss man die letzte Zeile in der Datei löschen
828    fi
829  else
830    echo "Die Datei TMPRING existiert nicht" 
831  fi
832  ;;
833 
834  TEST|test)
835                loadFritzBook
836      echo "Testing the script: "$0
837      mysearch "$2"
838      echo "Searching for phone number: "$2" resulted in: "$NAME
839      #wget -O- http://$loginname:$passwort@$ip/xml/boxstatus > $TMPSTATUS
840      #wget -O- http://$ip/query?boxstatus > $TMPSTATUS
841      $CURL http://$ip/query?boxstatus > $TMPSTATUS
[37173]842      #STANDBY=`grep "standby" $TMPSTATUS| head -n 1 | sed -e '{s/<standby>//g;s/<\/standby>//g}'`
[28064]843      STANDBY=`grep "standby" $TMPSTATUS| wc -l`
844      STANDBY=0
845      echo "Standbystatus: $STANDBY"
846      p="$NAME    "
847      p20=`echo $p               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
848      t20=`echo $t               | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
849      ADDRESSE20=`echo $ADDRESSE | sed -e '{s/ /%20/g;s/Ä/%C3%84/g;s/Ö/%C3%96/g;s/Ü/%C3%9C/g;s/ä/%C3%A4/g;s/ö/%C3%B6/g;s/ü/%C3%BC/g;s/á/ss/g;s/&/%26/g;s/~n/%0a/g;s/#/%20/g;}'`
850      if [ $STANDBY = 0 ]; then
851        if [ $debug = 0 ]; then
852          if [ $muteRing = 1 ]; then #wenn Option gesetzt ist dann wird der Ton abgeschaltet
853            #wget -O- http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
[37173]854            #mute=`grep "mute" $TMPSTATUS| head -n 1 | sed -e '{s/mute://g;s/<br>//g;s/ //g}'`
[28064]855            #if [ $mute = 0 ]; then
856                #wget -q -O /dev/null "http://$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
857                $CURL "http://$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
858            #fi   
859          fi
860          #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=Test%20des%20Scripts&body=Ergebnis:%0a$p20%0a${ADDRESSE20}&timeout=$anzeigetimeout"          >> $NULL
861          $CURL "http://$ip/cgi-bin/xmessage?caption=Test%20des%20Scripts&body=Ergebnis:%0a$p20%0a${ADDRESSE20}&timeout=$anzeigetimeout"          >> $NULL
862          (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
863        fi
864      else
865        if [ $anzeigewennaus = 1 ]; then
866          if [ $debug = 0 ]; then
867           #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=Test%20des%20Scripts&body=Ergebnis:%0a$p20%0a${ADDRESSE20}&timeout=$anzeigetimeout"          >> $NULL
868           $CURL "http://$ip/cgi-bin/xmessage?caption=Test%20des%20Scripts&body=Ergebnis:%0a$p20%0a${ADDRESSE20}&timeout=$anzeigetimeout"          >> $NULL
869          (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
870          fi 
871        else
872          echo "Keine Anzeige da die Box aus ist und -anzeigewennaus- 0 ist"
873        fi
874      fi
875      if [ -f $TMPFILE ];     then  rm $TMPFILE; fi
876      if [ -f $TMPSTATUS ];     then  rm $TMPSTATUS; fi
877  ;;
878  loadPhoneBook|loadphonebook)
879        rm $FRITZBUCH
880        loadFritzBook
881  ;;
882esac
883
884rm /tmp/callrun
Note: See TracBrowser for help on using the repository browser.