Ignore:
Timestamp:
05/13/16 12:59:10 (8 years ago)
Author:
karlo
Message:

fix callmon (without version)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ipk/source.sh4/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh

    r37193 r37629  
    33CONFIG=`echo "$0callmon.conf" | sed s/fritzbox_msg_new.sh//`
    44NC=`echo "$0nc" | sed s/fritzbox_msg_new.sh//`
    5 #NC="nc"
     5if [ ! -x $NC ] ; then
     6   NC="nc"
     7fi
     8
    69ICONV=`echo "$0iconv" | sed s/fritzbox_msg_new.sh//`
    710CURL=`echo "$0curl" | sed s/fritzbox_msg_new.sh//`
     
    3134#Options---start----------------------------------------------------------------
    3235#
    33 Version=v2.60                                   #Zur Versionsanzeige im telnet
    34 debug=0                                                         #wenn debug auf 1 steht wird am TV nichts angezeigt
    35 ##Ziel=4711                                                     #bitte Rufnummer eintragen die Überwacht werden soll
     36Version=v2.60                   #Zur Versionsanzeige im telnet
     37debug=0                             #wenn debug auf 1 steht wird am TV nichts angezeigt
     38##Ziel=4711                         #bitte Rufnummer eintragen die Überwacht werden soll
    3639if [ ! $Ziel ]; then
    37         Ziel=4711
     40    Ziel=4711
    3841fi
    39 ##Ziel_2=4711                                   #2te Rufnummer die Überwacht werden soll
     42##Ziel_2=4711                   #2te Rufnummer die Überwacht werden soll
    4043if [ ! $Ziel_2 ]; then
    41         Ziel_2=4711
     44    Ziel_2=4711
    4245fi
    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
    49 monDisconnect=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.
    53 ip=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.
    61 uebersichtsseite=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!                 
    66 loginname=root            #Loginname für Dreambox (Beispiel:root)
    67 passwort=kathrein       #passwort für Dreambox (Beispiel:dreambox)
    68 vorwahl=030                                             #Eigene Vorwahl eintragen
     46                                            #wenn keine zweite dann gleiche nochmal eintragen!
     47##Alle=1                  #wenn hier eine 1 steht werden alle Rufnummern überwacht
     48                      #unabhängig von Ziel und Ziel_2
     49##monRing=1               #eingehende Anrufe anzeigen
     50##muteRing=0              #Ton aus bei Anruf
     51##monCall=0               #ausgehende Anrufe anzeigen
     52monDisconnect=0       #Beenden eines Anrufes anzeigen. Hier ist noch ein Bug drin!
     53                      #Es werden immer alle Gespräche überwacht (alle Rufnummern
     54                      #werden überwacht- Ziel und Ziel_2 funktionieren hier nicht
     55                      #). Ich habe das deshalb immer auf 0.
     56ip=127.0.0.1            #ip Adresse der Dreambox
     57##anzeigetimeout=10       #Wie lange soll die Meldung angezeigt werden?
     58##anzeigewennaus=0        #Wenn 1 dann werden alle Meldungen gespeichert und angezeigt
     59                      #wenn die Dreambox eingeschaltet wird (kann ganz schön viel
     60                      #werden!). Wenn 0 werden die Meldungen nicht angezeigt wenn
     61                      #die Box aus war als z.B. ein Anruf eingegangen ist.
     62                      #Empfehlen tue ich eine 0. Wer weis was passiert wenn man im
     63                      #Urlaub ist und etliche Meldungen gespeichert werden.
     64uebersichtsseite=0    #Wenn anzeige wenn aus und uebersichtsseite 1 ist, dann werden
     65                      #nach dem einschalten der Dream aus dem Standy alle verpassten
     66                      #Anrufe in einer Übersichtseite angezeigt mit Datum und Uhrzeit
     67                      #Hierzu muss OpenPanel installiert sein.
     68                      #Hier muss aber noch ein Start Script erstellt werden!                 
     69loginname=root        #Loginname für Dreambox (Beispiel:root)
     70passwort=kathrein       #passwort für Dreambox (Beispiel:dreambox)
     71vorwahl=030                     #Eigene Vorwahl eintragen
    6972#
    7073#Options---end------------------------------------------------------------------
     
    7578#additional paths to files we use (will be created automatically if not present)
    7679#detecting Dreambox-Type (DM7020 or DM7000 or DM500 or DM600PVR)
    77  FRITZCACHE=/tmp/fritzbox.cache                  #stores successfull reverse searches
     80 FRITZCACHE=/tmp/fritzbox.cache              #stores successfull reverse searches
    7881 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
     82 TMPFILE=/tmp/fritzbox.tmp                   #stores page from wget command
     83 TMPSTATUS=/tmp/fritzdream.status            #status der Dreambox (standby usw)
     84 TMPRING=/tmp/tmpring.xml                    #stores missed calls
     85 TMPINCOMING=/tmp/ringin.tmp                     #for checking ring overview
    8386
    8487NULL=/dev/null                              #'NULL'
     
    122125 echo "SORTNUMBER -r       sort cache file by number (reverse)"
    123126 echo "TEST [phonenumber]  For testing connectivity and trying the search"
     127 echo "loadPhoneBook"
    124128 echo
    125129fi
     
    195199};
    196200
     201loadFritzBook49 () {
     202    echo "Version 49"
     203                # Challenge abholen
     204                echo "Challenge abholen start"
     205                ChallengeXML=`wget -O - "http://$FRITZBOXIP/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
     206                Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
     207                echo "Challenge abholen ende"
     208               
     209                Passwd="$FritzPass"
     210
     211                # login aufbauen und hashen
     212                echo "login aufbauen und hashen start"
     213                CPSTR="$Challenge-$Passwd"
     214                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/help; md5sum /tmp/help | awk '{print substr($0,1,32)}'`
     215                RESPONSE="$Challenge-$MD5"
     216                POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
     217                # login senden und SID herausfischen
     218                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)}'`
     219                echo "login aufbauen und hashen ende"
     220
     221                $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
     222                while read line
     223                    do
     224                    art=`echo $line | cut -d'"' -f1`
     225                    if [ $art = "TrFonName" ]; then
     226                        name=`echo $line | cut -d'"' -f5`
     227                    elif [ $art = "TrFonNr" ]; then
     228                        nummer=`echo $line | cut -d'"' -f5`
     229                        echo "$nummer#$name->" >> $FRITZBUCH
     230                    fi
     231                done < /tmp/curlhelp.tmp
     232                rm /tmp/curlhelp.tmp
     233
     234                if [ ! -f $FRITZBUCH ]; then
     235                    #testen ob neues Telefonbuch
     236                    #$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua > /tmp/test.curl
     237                    $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
     238                    while read line
     239                    do
     240                        nummer1="0"
     241                        nummer2="0"
     242                        nummer3="0"
     243                        pos1=14
     244                        pos2=0
     245                        pos3=0
     246                        art=`echo $line | cut -d'<' -f1`
     247                        if [ $art = "fritztele" ]; then
     248                            name=`echo $line | cut -d'<' -f2`
     249                            nummer1=`echo $line | cut -d'<' -f8`
     250                            help=`echo $line | cut -d'<' -f11`
     251                            if [ $help == "br" ]; then
     252                                nummer2=`echo $line | cut -d'<' -f14`
     253                                pos1=20
     254                                pos2=22
     255                                help=`echo $line | cut -d'<' -f17`
     256                                if [ $help == "br" ]; then
     257                                    nummer3=`echo $line | cut -d'<' -f20`
     258                                    pos1=26
     259                                    pos2=28
     260                                    pos3=30
     261                                fi
     262                            fi
     263                            if [ $nummer1 != "0" ]; then
     264                                typ=`echo $line | cut -d'<' -f$pos1`
     265                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
     266                            fi
     267                            if [ $nummer2 != "0" ]; then
     268                                typ=`echo $line | cut -d'<' -f$pos2`
     269                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
     270                            fi
     271                            if [ $nummer3 != "0" ]; then
     272                                typ=`echo $line | cut -d'<' -f$pos3`
     273                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
     274                            fi
     275                        fi
     276                    done < /tmp/curlhelp.tmp
     277                    rm /tmp/curlhelp.tmp
     278                fi
     279};
     280loadFritzBook50 () {
     281    echo "Version 50"
     282               
     283                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
     284                Passwd="$FritzPass"
     285                # login aufbauen und hashen
     286                echo "login aufbauen und hashen start"
     287                CPSTR="$Challenge-$Passwd"
     288                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
     289                RESPONSE="$Challenge-$MD5"
     290
     291                POSTDATA="username=$FritzUser&response=$RESPONSE"
     292
     293                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
     294
     295                echo "login aufbauen und hashen ende"
     296
     297                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp3.tmp
     298
     299                BOOKID=`cat /tmp/curlhelp3.tmp | grep '<label for="uiBookid' | grep ritzcall | cut -d: -f2 | cut -d'"' -f1`
     300                if [ -z "$BOOKID" ]; then
     301                    BOOKID=0
     302                fi
     303
     304                $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
     305
     306                while read line
     307                    do
     308                        nummer1="0"
     309                        nummer2="0"
     310                        nummer3="0"
     311                        nummer4="0"
     312                        pos1=11
     313                        pos2=0
     314                        pos3=0
     315                        art=`echo $line | cut -d'<' -f1`
     316                        if [ ! -z $art ] && [ $art = "fritztele" ]; then
     317                            name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
     318                            nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
     319                            help=`echo $line | cut -d'<' -f8 | cut -c 1-2`
     320                            if [ $help = "br" ]; then
     321                                nummer2=`echo $line | cut -d'<' -f9 | sed s/" "//g`
     322                                pos1=13
     323                                pos2=15
     324                                help=`echo $line | cut -d'<' -f10 | cut -c 1-2`
     325                                if [ $help = "br" ]; then
     326                                    nummer3=`echo $line | cut -d'<' -f11 | sed s/" "//g`
     327                                    pos1=15
     328                                    pos2=17
     329                                    pos3=19
     330                                    help=`echo $line | cut -d'<' -f12 | cut -c 1-2`
     331                                    if [ $help = "br" ]; then
     332                                        nummer4=`echo $line | cut -d'<' -f13 | sed s/" "//g`
     333                                        pos1=17
     334                                        pos2=19
     335                                        pos3=21
     336                                        pos4=23
     337                                    fi
     338                                fi
     339                            fi
     340                            if [ $nummer1 != "0" ]; then
     341                                typ=`echo $line | cut -d'<' -f$pos1`
     342                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
     343                            fi
     344                            if [ $nummer2 != "0" ]; then
     345                                typ=`echo $line | cut -d'<' -f$pos2`
     346                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
     347                            fi
     348                            if [ $nummer3 != "0" ]; then
     349                                typ=`echo $line | cut -d'<' -f$pos3`
     350                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
     351                            fi
     352                            if [ $nummer4 != "0" ]; then
     353                                typ=`echo $line | cut -d'<' -f$pos4`
     354                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
     355                            fi
     356                        fi
     357                    done < /tmp/curlhelp3.tmp
     358                    rm /tmp/curlhelp3.tmp
     359};
     360loadFritzBook60 () {
     361    echo "Version 60"
     362               
     363                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
     364                Passwd="$FritzPass"
     365                # login aufbauen und hashen
     366                echo "login aufbauen und hashen start"
     367                CPSTR="$Challenge-$Passwd"
     368                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
     369                RESPONSE="$Challenge-$MD5"
     370
     371                POSTDATA="username=$FritzUser&response=$RESPONSE"
     372
     373                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
     374
     375                echo "login aufbauen und hashen ende"
     376
     377                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp6.tmp
     378
     379                BOOKID=`cat /tmp/curlhelp6.tmp | grep ' checked id="uiBookid' | cut -d: -f2 | cut -d'"' -f1`
     380                if [ -z "$BOOKID" ]; then
     381                    BOOKID=0
     382                else
     383                    echo "BookID: $BOOKID"
     384                fi
     385       
     386                #$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
     387                $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
     388           
     389                while read line
     390                    do
     391                        nummer1="0"
     392                        nummer2="0"
     393                        nummer3="0"
     394                        nummer4="0"
     395                        nummer5="0"
     396                        nummer6="0"
     397                        pos1=10
     398                        pos2=0
     399                        pos3=0
     400                        art=`echo $line | cut -d'<' -f1`
     401                        if [ ! -z $art ] && [ $art = "fritztele" ]; then
     402                            name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
     403                            nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
     404                            help=`echo $line | cut -d'<' -f8`
     405                            if [ $help = "br" ]; then
     406                                nummer2=`echo $line | cut -d'<' -f10 | sed s/" "//g`
     407                                pos1=13
     408                                pos2=15
     409                                help=`echo $line | cut -d'<' -f11`
     410                                if [ $help = "br" ]; then
     411                                    nummer3=`echo $line | cut -d'<' -f13 | sed s/" "//g`
     412                                    pos1=16
     413                                    pos2=18
     414                                    pos3=20
     415                                    help=`echo $line | cut -d'<' -f14`
     416                                    if [ $help = "br" ]; then
     417                                        nummer4=`echo $line | cut -d'<' -f16 | sed s/" "//g`
     418                                        pos1=19
     419                                        pos2=21
     420                                        pos3=23
     421                                        pos4=25
     422                                        help=`echo $line | cut -d'<' -f17`
     423                                        if [ $help = "br" ]; then
     424                                            nummer5=`echo $line | cut -d'<' -f19 | sed s/" "//g`
     425                                            pos1=22
     426                                            pos2=24
     427                                            pos3=26
     428                                            pos4=28
     429                                            pos5=30
     430                                            help=`echo $line | cut -d'<' -f20`
     431                                            if [ $help = "br" ]; then
     432                                                nummer6=`echo $line | cut -d'<' -f22 | sed s/" "//g`
     433                                                pos1=25
     434                                                pos2=27
     435                                                pos3=29
     436                                                pos4=31
     437                                                pos5=33
     438                                                pos6=35
     439                                            fi
     440                                        fi
     441                                    fi
     442                                fi
     443                            fi
     444                            if [ $nummer1 != "0" ]; then
     445                                typ=`echo $line | cut -d'<' -f$pos1`
     446                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
     447                            fi
     448                            if [ $nummer2 != "0" ]; then
     449                                typ=`echo $line | cut -d'<' -f$pos2`
     450                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
     451                            fi
     452                            if [ $nummer3 != "0" ]; then
     453                                typ=`echo $line | cut -d'<' -f$pos3`
     454                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
     455                            fi
     456                            if [ $nummer4 != "0" ]; then
     457                                typ=`echo $line | cut -d'<' -f$pos4`
     458                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
     459                            fi
     460                            if [ $nummer5 != "0" ]; then
     461                                typ=`echo $line | cut -d'<' -f$pos3`
     462                                echo "$nummer5#$name->$typ" >> $FRITZBUCH
     463                            fi
     464                            if [ $nummer6 != "0" ]; then
     465                                typ=`echo $line | cut -d'<' -f$pos4`
     466                                echo "$nummer6#$name->$typ" >> $FRITZBUCH
     467                            fi
     468                        fi
     469                    done < /tmp/curlhelp6.tmp
     470                    rm /tmp/curlhelp6.tmp   
     471};
     472
    197473loadFritzBook () {
    198474 if [ $usePhoneBook = "1" ]; then
    199                 #rm $FRITZBUCH
    200                 if [ ! -f $FRITZBUCH ]; then
    201                         echo "FritzBook new"
    202                        
    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"
    211 
    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"
    221 
    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
    234 
    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`
    252                                                         if [ $help == "br" ]; then
    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
    263                                                         fi
    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
    276                                                 fi
    277                                         done < /tmp/curlhelp.tmp
    278                                         rm /tmp/curlhelp.tmp
    279                                 fi
    280                  
    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"
    292 
    293                                 POSTDATA="username=$FritzUser&response=$RESPONSE"
    294 
    295                                 SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
    296 
    297                                 echo "login aufbauen und hashen ende"
    298 
    299                                 $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp.tmp
    300 
    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
    305 
    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
    307 
    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`
    321                                                         help=`echo $line | cut -d'<' -f8 | cut -c 1-2`
    322                                                         if [ $help = "br" ]; then
    323                                                                 nummer2=`echo $line | cut -d'<' -f9 | sed s/" "//g`
    324                                                                 pos1=13
    325                                                                 pos2=15
    326                                                                 help=`echo $line | cut -d'<' -f10 | cut -c 1-2`
    327                                                                 if [ $help = "br" ]; then
    328                                                                         nummer3=`echo $line | cut -d'<' -f11 | sed s/" "//g`
    329                                                                         pos1=15
    330                                                                         pos2=17
    331                                                                         pos3=19
    332                                                                         help=`echo $line | cut -d'<' -f12 | cut -c 1-2`
    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
    340                                                                 fi
    341                                                         fi
    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
    358                                                 fi
    359                                         done < /tmp/curlhelp3.tmp
    360                                         rm /tmp/curlhelp3.tmp
    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
    471                                                 fi
    472                                         done < /tmp/curlhelp6.tmp
    473                                         rm /tmp/curlhelp6.tmp                                   
    474                         fi
    475                         #cp $FRITZBUCH $FRITZCACHE
    476                 fi
    477         fi     
     475        #rm $FRITZBUCH
     476        if [ ! -f $FRITZBUCH ]; then
     477            echo "FritzBook new"
     478           
     479            loadFritzBook60
     480            if [ ! -f $FRITZBUCH ]; then
     481                    loadFritzBook50
     482            fi
     483            if [ ! -f $FRITZBUCH ]; then
     484                    loadFritzBook49
     485            fi
     486            if [ ! -f $FRITZBUCH ]; then
     487                echo "Error loadFritzBook"
     488            fi
     489        fi
     490    fi 
    478491
    479492};
     
    484497timeout=14
    485498while [ -e /tmp/callrun ]; do
    486         if [ $timeout != "0" ]; then
    487                 timeout=$(($timeout-1))
    488                 sleep 1
    489         else
    490                 break
    491         fi
     499    if [ $timeout != "0" ]; then
     500        timeout=$(($timeout-1))
     501        sleep 1
     502    else
     503        break
     504    fi
    492505done
    493506
     
    496509timeout=14
    497510while [ -e /tmp/xmessage ]; do
    498         if [ $timeout != "0" ]; then
    499                 timeout=$(($timeout-1))
    500                 sleep 1
    501         else
    502                 break
    503         fi
     511    if [ $timeout != "0" ]; then
     512        timeout=$(($timeout-1))
     513        sleep 1
     514    else
     515        break
     516    fi
    504517done
    505518
     
    546559    #prepare text
    547560    #UH20100110
    548                 fuer=$6
     561        fuer=$6
    549562    if [ "$6" = "4711" ]
    550563       then fuer="Name1"
     
    581594                #if [ $mute = 0 ]; then
    582595                  #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
     596                    $CURL http://$ip/query?mutestatus > $TMPSTATUS
     597                                mute=`grep "muteon" $TMPSTATUS| wc -l`
     598                                if [ $mute = 0 ]; then
     599                        $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
     600                    fi
    588601                #fi
    589602              fi
    590603              #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) &
     604                $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
     605                (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
    593606            fi 
    594607          else
     
    612625<line name=\"für $6\" />
    613626<separator />" >$TMPRING
    614                     fi
     627                fi
    615628                  echo "nach der Abfrage ob es TMPring schon gibt"
    616629                  echo "1" > $TMPINCOMING
     
    699712  if [ $STANDBY = 0 ]; then
    700713    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
     714        $CURL http://$ip/query?mutestatus > $TMPSTATUS
     715        mute=`grep "muteon" $TMPSTATUS| wc -l`
     716        if [ $mute = 1 ]; then
     717            $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL   
     718        fi
    706719      #wget -O- http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
    707720      #$CURL http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
     
    777790     echo "deleting $FRITZCACHE (if exists)"
    778791     if [ -f $FRITZCACHE ];   then  rm $FRITZCACHE; fi
    779         echo "deleting $FRITZBUCH (if exists)"
     792    echo "deleting $FRITZBUCH (if exists)"
    780793     if [ -f $FRITZBUCH ];   then  rm $FRITZBUCH; fi
    781794     ;;
     
    807820        kill -9 ${pid}
    808821     fi
    809         #fals noch ein 2. läuft :-)
     822    #fals noch ein 2. läuft :-)
    810823     pid=`ps | grep "tail*"| grep -v grep | awk '{print $1}'`
    811824     if [ "X${pid}" != "X" ] ; then
    812825        kill -9 ${pid}
    813      fi 
     826     fi 
    814827     ;;
    815828  SHOW|show)
     
    833846 
    834847  TEST|test)
    835                 loadFritzBook
     848        loadFritzBook
    836849      echo "Testing the script: "$0
    837850      mysearch "$2"
     
    877890  ;;
    878891  loadPhoneBook|loadphonebook)
    879         rm $FRITZBUCH
    880         loadFritzBook
     892    if [ -f $FRITZBUCH ]; then
     893        rm $FRITZBUCH
     894    fi
     895    loadFritzBook
     896        if [ -f $FRITZBUCH ]; then
     897        cat $FRITZBUCH
     898                $CURL "http://$ip/cgi-bin/xmessage?caption=FritzBook%20geladen&body=FritzBox!%20Telefonbuch%20geladen&timeout=5" -o /dev/null
     899                (touch /tmp/xmessage; sleep 5; rm  /tmp/xmessage) &
     900          else
     901                $CURL "http://$ip/cgi-bin/xmessage?caption=Fehler%20beim%20laden&body=FritzBox!%20Telefonbuch%20konnte%20nicht%20geladen%20werden&timeout=5" -o /dev/null
     902                (touch /tmp/xmessage; sleep 5; rm  /tmp/xmessage) &
     903    fi
    881904  ;;
    882905esac
Note: See TracChangeset for help on using the changeset viewer.