Index: ipk/source.sh4/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh
===================================================================
--- ipk/source.sh4/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh	(revision 37193)
+++ ipk/source.sh4/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh	(revision 37629)
@@ -3,5 +3,8 @@
 CONFIG=`echo "$0callmon.conf" | sed s/fritzbox_msg_new.sh//`
 NC=`echo "$0nc" | sed s/fritzbox_msg_new.sh//`
-#NC="nc"
+if [ ! -x $NC ] ; then
+   NC="nc"
+fi
+
 ICONV=`echo "$0iconv" | sed s/fritzbox_msg_new.sh//`
 CURL=`echo "$0curl" | sed s/fritzbox_msg_new.sh//`
@@ -31,40 +34,40 @@
 #Options---start----------------------------------------------------------------
 #
-Version=v2.60					#Zur Versionsanzeige im telnet
-debug=0								#wenn debug auf 1 steht wird am TV nichts angezeigt
-##Ziel=4711							#bitte Rufnummer eintragen die Überwacht werden soll 
+Version=v2.60                   #Zur Versionsanzeige im telnet
+debug=0                             #wenn debug auf 1 steht wird am TV nichts angezeigt
+##Ziel=4711                         #bitte Rufnummer eintragen die Überwacht werden soll 
 if [ ! $Ziel ]; then
-	Ziel=4711
+    Ziel=4711
 fi
-##Ziel_2=4711					#2te Rufnummer die Überwacht werden soll
+##Ziel_2=4711                   #2te Rufnummer die Überwacht werden soll
 if [ ! $Ziel_2 ]; then
-	Ziel_2=4711
+    Ziel_2=4711
 fi
-											#wenn keine zweite dann gleiche nochmal eintragen!
-##Alle=1            	  #wenn hier eine 1 steht werden alle Rufnummern überwacht
-                  	  #unabhängig von Ziel und Ziel_2
-##monRing=1         	  #eingehende Anrufe anzeigen
-##muteRing=0        	  #Ton aus bei Anruf
-##monCall=0         	  #ausgehende Anrufe anzeigen
-monDisconnect=0   	  #Beenden eines Anrufes anzeigen. Hier ist noch ein Bug drin!
-                  	  #Es werden immer alle Gespräche überwacht (alle Rufnummern
-                  	  #werden überwacht- Ziel und Ziel_2 funktionieren hier nicht
-                  	  #). Ich habe das deshalb immer auf 0.
-ip=127.0.0.1      		#ip Adresse der Dreambox
-##anzeigetimeout=10  	  #Wie lange soll die Meldung angezeigt werden?
-##anzeigewennaus=0  	  #Wenn 1 dann werden alle Meldungen gespeichert und angezeigt
-                  	  #wenn die Dreambox eingeschaltet wird (kann ganz schön viel
-                  	  #werden!). Wenn 0 werden die Meldungen nicht angezeigt wenn 
-                  	  #die Box aus war als z.B. ein Anruf eingegangen ist.
-                  	  #Empfehlen tue ich eine 0. Wer weis was passiert wenn man im
-                  	  #Urlaub ist und etliche Meldungen gespeichert werden.
-uebersichtsseite=0 	  #Wenn anzeige wenn aus und uebersichtsseite 1 ist, dann werden
-                   	  #nach dem einschalten der Dream aus dem Standy alle verpassten
-                   	  #Anrufe in einer Übersichtseite angezeigt mit Datum und Uhrzeit
-                   	  #Hierzu muss OpenPanel installiert sein.
-                   	  #Hier muss aber noch ein Start Script erstellt werden!                  
-loginname=root    	  #Loginname für Dreambox (Beispiel:root)
-passwort=kathrein    	#passwort für Dreambox (Beispiel:dreambox)
-vorwahl=030						#Eigene Vorwahl eintragen
+                                            #wenn keine zweite dann gleiche nochmal eintragen!
+##Alle=1                  #wenn hier eine 1 steht werden alle Rufnummern überwacht
+                      #unabhängig von Ziel und Ziel_2
+##monRing=1               #eingehende Anrufe anzeigen
+##muteRing=0              #Ton aus bei Anruf
+##monCall=0               #ausgehende Anrufe anzeigen
+monDisconnect=0       #Beenden eines Anrufes anzeigen. Hier ist noch ein Bug drin!
+                      #Es werden immer alle Gespräche überwacht (alle Rufnummern
+                      #werden überwacht- Ziel und Ziel_2 funktionieren hier nicht
+                      #). Ich habe das deshalb immer auf 0.
+ip=127.0.0.1            #ip Adresse der Dreambox
+##anzeigetimeout=10       #Wie lange soll die Meldung angezeigt werden?
+##anzeigewennaus=0        #Wenn 1 dann werden alle Meldungen gespeichert und angezeigt
+                      #wenn die Dreambox eingeschaltet wird (kann ganz schön viel
+                      #werden!). Wenn 0 werden die Meldungen nicht angezeigt wenn 
+                      #die Box aus war als z.B. ein Anruf eingegangen ist.
+                      #Empfehlen tue ich eine 0. Wer weis was passiert wenn man im
+                      #Urlaub ist und etliche Meldungen gespeichert werden.
+uebersichtsseite=0    #Wenn anzeige wenn aus und uebersichtsseite 1 ist, dann werden
+                      #nach dem einschalten der Dream aus dem Standy alle verpassten
+                      #Anrufe in einer Übersichtseite angezeigt mit Datum und Uhrzeit
+                      #Hierzu muss OpenPanel installiert sein.
+                      #Hier muss aber noch ein Start Script erstellt werden!                  
+loginname=root        #Loginname für Dreambox (Beispiel:root)
+passwort=kathrein       #passwort für Dreambox (Beispiel:dreambox)
+vorwahl=030                     #Eigene Vorwahl eintragen
 #
 #Options---end------------------------------------------------------------------
@@ -75,10 +78,10 @@
 #additional paths to files we use (will be created automatically if not present)
 #detecting Dreambox-Type (DM7020 or DM7000 or DM500 or DM600PVR)
- FRITZCACHE=/tmp/fritzbox.cache        		 #stores successfull reverse searches
+ FRITZCACHE=/tmp/fritzbox.cache              #stores successfull reverse searches
  FRITZBUCH=/var/fritzbuch.tele
- TMPFILE=/tmp/fritzbox.tmp             		 #stores page from wget command
- TMPSTATUS=/tmp/fritzdream.status      		 #status der Dreambox (standby usw)
- TMPRING=/tmp/tmpring.xml              		 #stores missed calls 
- TMPINCOMING=/tmp/ringin.tmp         		 	 #for checking ring overview
+ TMPFILE=/tmp/fritzbox.tmp                   #stores page from wget command
+ TMPSTATUS=/tmp/fritzdream.status            #status der Dreambox (standby usw)
+ TMPRING=/tmp/tmpring.xml                    #stores missed calls 
+ TMPINCOMING=/tmp/ringin.tmp                     #for checking ring overview
 
 NULL=/dev/null                              #'NULL'
@@ -122,4 +125,5 @@
  echo "SORTNUMBER -r       sort cache file by number (reverse)"
  echo "TEST [phonenumber]  For testing connectivity and trying the search"
+ echo "loadPhoneBook"
  echo
 fi
@@ -195,285 +199,294 @@
 };
 
+loadFritzBook49 () {
+    echo "Version 49"
+                # Challenge abholen
+                echo "Challenge abholen start"
+                ChallengeXML=`wget -O - "http://$FRITZBOXIP/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
+                Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
+                echo "Challenge abholen ende"
+                
+                Passwd="$FritzPass"
+
+                # login aufbauen und hashen
+                echo "login aufbauen und hashen start"
+                CPSTR="$Challenge-$Passwd"
+                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/help; md5sum /tmp/help | awk '{print substr($0,1,32)}'`
+                RESPONSE="$Challenge-$MD5"
+                POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
+                # login senden und SID herausfischen
+                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)}'`
+                echo "login aufbauen und hashen ende"
+
+                $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
+                while read line 
+                    do
+                    art=`echo $line | cut -d'"' -f1`
+                    if [ $art = "TrFonName" ]; then
+                        name=`echo $line | cut -d'"' -f5`
+                    elif [ $art = "TrFonNr" ]; then
+                        nummer=`echo $line | cut -d'"' -f5`
+                        echo "$nummer#$name->" >> $FRITZBUCH 
+                    fi
+                done < /tmp/curlhelp.tmp
+                rm /tmp/curlhelp.tmp
+
+                if [ ! -f $FRITZBUCH ]; then
+                    #testen ob neues Telefonbuch
+                    #$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua > /tmp/test.curl
+                    $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
+                    while read line 
+                    do
+                        nummer1="0"
+                        nummer2="0"
+                        nummer3="0"
+                        pos1=14
+                        pos2=0
+                        pos3=0
+                        art=`echo $line | cut -d'<' -f1`
+                        if [ $art = "fritztele" ]; then
+                            name=`echo $line | cut -d'<' -f2`
+                            nummer1=`echo $line | cut -d'<' -f8`
+                            help=`echo $line | cut -d'<' -f11`
+                            if [ $help == "br" ]; then
+                                nummer2=`echo $line | cut -d'<' -f14`
+                                pos1=20
+                                pos2=22
+                                help=`echo $line | cut -d'<' -f17`
+                                if [ $help == "br" ]; then
+                                    nummer3=`echo $line | cut -d'<' -f20`
+                                    pos1=26
+                                    pos2=28
+                                    pos3=30
+                                fi
+                            fi
+                            if [ $nummer1 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos1`
+                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer2 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos2`
+                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer3 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos3`
+                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
+                            fi
+                        fi
+                    done < /tmp/curlhelp.tmp
+                    rm /tmp/curlhelp.tmp
+                fi
+};
+loadFritzBook50 () {
+    echo "Version 50"
+                
+                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
+                Passwd="$FritzPass"
+                # login aufbauen und hashen
+                echo "login aufbauen und hashen start"
+                CPSTR="$Challenge-$Passwd"
+                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
+                RESPONSE="$Challenge-$MD5"
+
+                POSTDATA="username=$FritzUser&response=$RESPONSE"
+
+                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
+
+                echo "login aufbauen und hashen ende"
+
+                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp3.tmp
+
+                BOOKID=`cat /tmp/curlhelp3.tmp | grep '<label for="uiBookid' | grep ritzcall | cut -d: -f2 | cut -d'"' -f1`
+                if [ -z "$BOOKID" ]; then
+                    BOOKID=0
+                fi
+
+                $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
+
+                while read line 
+                    do
+                        nummer1="0"
+                        nummer2="0"
+                        nummer3="0"
+                        nummer4="0"
+                        pos1=11
+                        pos2=0
+                        pos3=0
+                        art=`echo $line | cut -d'<' -f1`
+                        if [ ! -z $art ] && [ $art = "fritztele" ]; then
+                            name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
+                            nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
+                            help=`echo $line | cut -d'<' -f8 | cut -c 1-2`
+                            if [ $help = "br" ]; then
+                                nummer2=`echo $line | cut -d'<' -f9 | sed s/" "//g`
+                                pos1=13
+                                pos2=15
+                                help=`echo $line | cut -d'<' -f10 | cut -c 1-2`
+                                if [ $help = "br" ]; then
+                                    nummer3=`echo $line | cut -d'<' -f11 | sed s/" "//g`
+                                    pos1=15
+                                    pos2=17
+                                    pos3=19
+                                    help=`echo $line | cut -d'<' -f12 | cut -c 1-2`
+                                    if [ $help = "br" ]; then
+                                        nummer4=`echo $line | cut -d'<' -f13 | sed s/" "//g`
+                                        pos1=17
+                                        pos2=19
+                                        pos3=21
+                                        pos4=23
+                                    fi
+                                fi
+                            fi
+                            if [ $nummer1 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos1`
+                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer2 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos2`
+                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer3 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos3`
+                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer4 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos4`
+                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
+                            fi
+                        fi
+                    done < /tmp/curlhelp3.tmp
+                    rm /tmp/curlhelp3.tmp
+};
+loadFritzBook60 () {
+    echo "Version 60"
+                
+                Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
+                Passwd="$FritzPass"
+                # login aufbauen und hashen
+                echo "login aufbauen und hashen start"
+                CPSTR="$Challenge-$Passwd"
+                MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
+                RESPONSE="$Challenge-$MD5"
+
+                POSTDATA="username=$FritzUser&response=$RESPONSE"
+
+                SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
+
+                echo "login aufbauen und hashen ende"
+
+                $CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp6.tmp
+
+                BOOKID=`cat /tmp/curlhelp6.tmp | grep ' checked id="uiBookid' | cut -d: -f2 | cut -d'"' -f1`
+                if [ -z "$BOOKID" ]; then
+                    BOOKID=0
+                else
+                    echo "BookID: $BOOKID"
+                fi
+        
+                #$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
+                $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
+            
+                while read line 
+                    do
+                        nummer1="0"
+                        nummer2="0"
+                        nummer3="0"
+                        nummer4="0"
+                        nummer5="0"
+                        nummer6="0"
+                        pos1=10
+                        pos2=0
+                        pos3=0
+                        art=`echo $line | cut -d'<' -f1`
+                        if [ ! -z $art ] && [ $art = "fritztele" ]; then
+                            name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
+                            nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
+                            help=`echo $line | cut -d'<' -f8`
+                            if [ $help = "br" ]; then
+                                nummer2=`echo $line | cut -d'<' -f10 | sed s/" "//g`
+                                pos1=13
+                                pos2=15
+                                help=`echo $line | cut -d'<' -f11`
+                                if [ $help = "br" ]; then
+                                    nummer3=`echo $line | cut -d'<' -f13 | sed s/" "//g`
+                                    pos1=16
+                                    pos2=18
+                                    pos3=20
+                                    help=`echo $line | cut -d'<' -f14`
+                                    if [ $help = "br" ]; then
+                                        nummer4=`echo $line | cut -d'<' -f16 | sed s/" "//g`
+                                        pos1=19
+                                        pos2=21
+                                        pos3=23
+                                        pos4=25
+                                        help=`echo $line | cut -d'<' -f17`
+                                        if [ $help = "br" ]; then
+                                            nummer5=`echo $line | cut -d'<' -f19 | sed s/" "//g`
+                                            pos1=22
+                                            pos2=24
+                                            pos3=26
+                                            pos4=28
+                                            pos5=30
+                                            help=`echo $line | cut -d'<' -f20`
+                                            if [ $help = "br" ]; then
+                                                nummer6=`echo $line | cut -d'<' -f22 | sed s/" "//g`
+                                                pos1=25
+                                                pos2=27
+                                                pos3=29
+                                                pos4=31
+                                                pos5=33
+                                                pos6=35
+                                            fi
+                                        fi
+                                    fi
+                                fi
+                            fi
+                            if [ $nummer1 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos1`
+                                echo "$nummer1#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer2 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos2`
+                                echo "$nummer2#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer3 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos3`
+                                echo "$nummer3#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer4 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos4`
+                                echo "$nummer4#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer5 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos3`
+                                echo "$nummer5#$name->$typ" >> $FRITZBUCH
+                            fi
+                            if [ $nummer6 != "0" ]; then
+                                typ=`echo $line | cut -d'<' -f$pos4`
+                                echo "$nummer6#$name->$typ" >> $FRITZBUCH
+                            fi
+                        fi
+                    done < /tmp/curlhelp6.tmp
+                    rm /tmp/curlhelp6.tmp    
+};
+
 loadFritzBook () {
  if [ $usePhoneBook = "1" ]; then
-	 	#rm $FRITZBUCH
-	 	if [ ! -f $FRITZBUCH ]; then
-			echo "FritzBook new"
-			
-			if [ -z $FritzVersion ] || [ $FritzVersion -lt 50 ]; then
-				# Challenge abholen
-				echo "Challenge abholen start"
-				ChallengeXML=`wget -O - "http://$FRITZBOXIP/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
-				Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
-				echo "Challenge abholen ende"
-				
-				Passwd="$FritzPass"
-
-				# login aufbauen und hashen
-				echo "login aufbauen und hashen start"
-				CPSTR="$Challenge-$Passwd"
-				MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/help; md5sum /tmp/help | awk '{print substr($0,1,32)}'`
-				RESPONSE="$Challenge-$MD5"
-				POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
-				# login senden und SID herausfischen
-				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)}'`
-				echo "login aufbauen und hashen ende"
-
-				$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
-				while read line 
-					do
-					art=`echo $line | cut -d'"' -f1`
-					if [ $art = "TrFonName" ]; then
-						name=`echo $line | cut -d'"' -f5`
-					elif [ $art = "TrFonNr" ]; then
-						nummer=`echo $line | cut -d'"' -f5`
-						echo "$nummer#$name->" >> $FRITZBUCH 
-					fi
-				done < /tmp/curlhelp.tmp
-				rm /tmp/curlhelp.tmp
-
-				if [ ! -f $FRITZBUCH ]; then
-					#testen ob neues Telefonbuch
-					#$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_list.lua > /tmp/test.curl
-					$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
-					while read line 
-					do
-						nummer1="0"
-						nummer2="0"
-						nummer3="0"
-						pos1=14
-						pos2=0
-						pos3=0
-						art=`echo $line | cut -d'<' -f1`
-						if [ $art = "fritztele" ]; then
-							name=`echo $line | cut -d'<' -f2`
-							nummer1=`echo $line | cut -d'<' -f8`
-							help=`echo $line | cut -d'<' -f11`
-							if [ $help == "br" ]; then
-								nummer2=`echo $line | cut -d'<' -f14`
-								pos1=20
-								pos2=22
-								help=`echo $line | cut -d'<' -f17`
-								if [ $help == "br" ]; then
-									nummer3=`echo $line | cut -d'<' -f20`
-									pos1=26
-									pos2=28
-									pos3=30
-								fi
-							fi
-							if [ $nummer1 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos1`
-								echo "$nummer1#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer2 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos2`
-								echo "$nummer2#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer3 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos3`
-								echo "$nummer3#$name->$typ" >> $FRITZBUCH
-							fi
-						fi
-					done < /tmp/curlhelp.tmp
-					rm /tmp/curlhelp.tmp
-				fi
-		 
-			elif [ -z $FritzVersion ] || [ $FritzVersion -lt 60 ]; then
-				echo "Version 50"
-				#Fritzbox Version > 50 und < 60
-				
-				Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
-				Passwd="$FritzPass"
-				# login aufbauen und hashen
-				echo "login aufbauen und hashen start"
-				CPSTR="$Challenge-$Passwd"
-				MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
-				RESPONSE="$Challenge-$MD5"
-
-				POSTDATA="username=$FritzUser&response=$RESPONSE"
-
-				SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
-
-				echo "login aufbauen und hashen ende"
-
-				$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp.tmp
-
-				BOOKID=`cat /tmp/curlhelp.tmp | grep '<label for="uiBookid' | grep ritzcall | cut -d: -f2 | cut -d'"' -f1`
-				if [ -z "$BOOKID" ]; then
-					BOOKID=0
-				fi
-
-				$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
-
-				while read line 
-					do
-						nummer1="0"
-						nummer2="0"
-						nummer3="0"
-						nummer4="0"
-						pos1=11
-						pos2=0
-						pos3=0
-						art=`echo $line | cut -d'<' -f1`
-						if [ ! -z $art ] && [ $art = "fritztele" ]; then
-							name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
-							nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
-							help=`echo $line | cut -d'<' -f8 | cut -c 1-2`
-							if [ $help = "br" ]; then
-								nummer2=`echo $line | cut -d'<' -f9 | sed s/" "//g`
-								pos1=13
-								pos2=15
-								help=`echo $line | cut -d'<' -f10 | cut -c 1-2`
-								if [ $help = "br" ]; then
-									nummer3=`echo $line | cut -d'<' -f11 | sed s/" "//g`
-									pos1=15
-									pos2=17
-									pos3=19
-									help=`echo $line | cut -d'<' -f12 | cut -c 1-2`
-									if [ $help = "br" ]; then
-										nummer4=`echo $line | cut -d'<' -f13 | sed s/" "//g`
-										pos1=17
-										pos2=19
-										pos3=21
-										pos4=23
-									fi
-								fi
-							fi
-							if [ $nummer1 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos1`
-								echo "$nummer1#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer2 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos2`
-								echo "$nummer2#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer3 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos3`
-								echo "$nummer3#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer4 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos4`
-								echo "$nummer4#$name->$typ" >> $FRITZBUCH
-							fi
-						fi
-					done < /tmp/curlhelp3.tmp
-					rm /tmp/curlhelp3.tmp
-				
-			else
-				#Fritzbox Version > 60
-				echo "Version 60"
-				
-				Challenge=`wget -O - "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null | grep Challenge | cut -d"<" -f6 | cut -d">" -f2`
-				Passwd="$FritzPass"
-				# login aufbauen und hashen
-				echo "login aufbauen und hashen start"
-				CPSTR="$Challenge-$Passwd"
-				MD5=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE > /tmp/helpx; md5sum /tmp/helpx | awk '{print substr($0,1,32)}'`
-				RESPONSE="$Challenge-$MD5"
-
-				POSTDATA="username=$FritzUser&response=$RESPONSE"
-
-				SID=`wget -O - --post-data="$POSTDATA" "http://$FRITZBOXIP/login_sid.lua" 2>/dev/null  | grep SID | cut -d"<" -f4 | cut -d">" -f2`
-
-				echo "login aufbauen und hashen ende"
-
-				$CURL --data "sid=$SID" http://$FRITZBOXIP/fon_num/fonbook_select.lua  > /tmp/curlhelp.tmp
-
-				BOOKID=`cat /tmp/curlhelp.tmp | grep ' checked id="uiBookid' | cut -d: -f2 | cut -d'"' -f1`
-				if [ -z "$BOOKID" ]; then
-					BOOKID=0
-				else
-					echo "BookID: $BOOKID"
-				fi
-		
-				#$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
-				$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
-			
-				while read line 
-					do
-						nummer1="0"
-						nummer2="0"
-						nummer3="0"
-						nummer4="0"
-						nummer5="0"
-						nummer6="0"
-						pos1=10
-						pos2=0
-						pos3=0
-						art=`echo $line | cut -d'<' -f1`
-						if [ ! -z $art ] && [ $art = "fritztele" ]; then
-							name=`echo $line | cut -d'<' -f2 | sed s/"title="//g`
-							nummer1=`echo $line | cut -d'<' -f7 | sed s/" "//g`
-							help=`echo $line | cut -d'<' -f8`
-							if [ $help = "br" ]; then
-								nummer2=`echo $line | cut -d'<' -f10 | sed s/" "//g`
-								pos1=13
-								pos2=15
-								help=`echo $line | cut -d'<' -f11`
-								if [ $help = "br" ]; then
-									nummer3=`echo $line | cut -d'<' -f13 | sed s/" "//g`
-									pos1=16
-									pos2=18
-									pos3=20
-									help=`echo $line | cut -d'<' -f14`
-									if [ $help = "br" ]; then
-										nummer4=`echo $line | cut -d'<' -f16 | sed s/" "//g`
-										pos1=19
-										pos2=21
-										pos3=23
-										pos4=25
-										help=`echo $line | cut -d'<' -f17`
-										if [ $help = "br" ]; then
-											nummer5=`echo $line | cut -d'<' -f19 | sed s/" "//g`
-											pos1=22
-											pos2=24
-											pos3=26
-											pos4=28
-											pos5=30
-											help=`echo $line | cut -d'<' -f20`
-											if [ $help = "br" ]; then
-												nummer6=`echo $line | cut -d'<' -f22 | sed s/" "//g`
-												pos1=25
-												pos2=27
-												pos3=29
-												pos4=31
-												pos5=33
-												pos6=35
-											fi
-										fi
-									fi
-								fi
-							fi
-							if [ $nummer1 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos1`
-								echo "$nummer1#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer2 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos2`
-								echo "$nummer2#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer3 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos3`
-								echo "$nummer3#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer4 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos4`
-								echo "$nummer4#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer5 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos3`
-								echo "$nummer5#$name->$typ" >> $FRITZBUCH
-							fi
-							if [ $nummer6 != "0" ]; then
-								typ=`echo $line | cut -d'<' -f$pos4`
-								echo "$nummer6#$name->$typ" >> $FRITZBUCH
-							fi
-						fi
-					done < /tmp/curlhelp6.tmp
-					rm /tmp/curlhelp6.tmp					
-			fi
-			#cp $FRITZBUCH $FRITZCACHE
-		fi
-	fi	
+        #rm $FRITZBUCH
+        if [ ! -f $FRITZBUCH ]; then
+            echo "FritzBook new"
+            
+            loadFritzBook60
+            if [ ! -f $FRITZBUCH ]; then
+                    loadFritzBook50
+            fi
+            if [ ! -f $FRITZBUCH ]; then
+                    loadFritzBook49
+            fi
+            if [ ! -f $FRITZBUCH ]; then
+                echo "Error loadFritzBook"
+            fi
+        fi
+    fi  
 
 };
@@ -484,10 +497,10 @@
 timeout=14
 while [ -e /tmp/callrun ]; do
-	if [ $timeout != "0" ]; then
-		timeout=$(($timeout-1))
-		sleep 1
-	else
-		break
-	fi
+    if [ $timeout != "0" ]; then
+        timeout=$(($timeout-1))
+        sleep 1
+    else
+        break
+    fi
 done
 
@@ -496,10 +509,10 @@
 timeout=14
 while [ -e /tmp/xmessage ]; do
-	if [ $timeout != "0" ]; then
-		timeout=$(($timeout-1))
-		sleep 1
-	else
-		break
-	fi
+    if [ $timeout != "0" ]; then
+        timeout=$(($timeout-1))
+        sleep 1
+    else
+        break
+    fi
 done
 
@@ -546,5 +559,5 @@
     #prepare text
     #UH20100110
-		fuer=$6
+        fuer=$6
     if [ "$6" = "4711" ]
        then fuer="Name1"
@@ -581,14 +594,14 @@
                 #if [ $mute = 0 ]; then
                   #wget -q -O /dev/null "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
-                	$CURL http://$ip/query?mutestatus > $TMPSTATUS
-    							mute=`grep "muteon" $TMPSTATUS| wc -l`
-     							if [ $mute = 0 ]; then
-                		$CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
-                	fi
+                    $CURL http://$ip/query?mutestatus > $TMPSTATUS
+                                mute=`grep "muteon" $TMPSTATUS| wc -l`
+                                if [ $mute = 0 ]; then
+                        $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL #Befehl für Tonsperre
+                    fi
                 #fi
               fi
               #wget -q -O /dev/null "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
-            	$CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
-            	(touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
+                $CURL "http://$ip/cgi-bin/xmessage?caption=$c1&body=$b1&timeout=$anzeigetimeout"  >> $NULL
+                (touch /tmp/xmessage; sleep $anzeigetimeout; rm  /tmp/xmessage) &
             fi  
           else
@@ -612,5 +625,5 @@
 <line name=\"für $6\" />
 <separator />" >$TMPRING
- 	            fi
+                fi
                   echo "nach der Abfrage ob es TMPring schon gibt"
                   echo "1" > $TMPINCOMING
@@ -699,9 +712,9 @@
   if [ $STANDBY = 0 ]; then
     if [ $muteRing = 1 ]; then #wenn Option gesetzt ist dann wird der Ton abgeschaltet 
-    	$CURL http://$ip/query?mutestatus > $TMPSTATUS
-    	mute=`grep "muteon" $TMPSTATUS| wc -l`
-     	if [ $mute = 1 ]; then
-    		$CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL   
-    	fi
+        $CURL http://$ip/query?mutestatus > $TMPSTATUS
+        mute=`grep "muteon" $TMPSTATUS| wc -l`
+        if [ $mute = 1 ]; then
+            $CURL "http://@$ip/query?sendrc&rcmute"  >> $NULL   
+        fi
       #wget -O- http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
       #$CURL http://$loginname:$passwort@127.0.0.1/cgi-bin/audio >> $TMPSTATUS #tonstatus wird ermittelt und in eine Datei geschrieben
@@ -777,5 +790,5 @@
      echo "deleting $FRITZCACHE (if exists)"
      if [ -f $FRITZCACHE ];   then  rm $FRITZCACHE; fi
-	 echo "deleting $FRITZBUCH (if exists)"
+     echo "deleting $FRITZBUCH (if exists)"
      if [ -f $FRITZBUCH ];   then  rm $FRITZBUCH; fi
      ;;
@@ -807,9 +820,9 @@
         kill -9 ${pid}
      fi
-	 #fals noch ein 2. läuft :-)
+     #fals noch ein 2. läuft :-)
      pid=`ps | grep "tail*"| grep -v grep | awk '{print $1}'`
      if [ "X${pid}" != "X" ] ; then
         kill -9 ${pid}
-     fi	 
+     fi  
      ;;
   SHOW|show)
@@ -833,5 +846,5 @@
   
   TEST|test)
-  		loadFritzBook
+        loadFritzBook
       echo "Testing the script: "$0
       mysearch "$2"
@@ -877,6 +890,16 @@
   ;; 
   loadPhoneBook|loadphonebook)
-  	rm $FRITZBUCH
-   	loadFritzBook
+    if [ -f $FRITZBUCH ]; then
+        rm $FRITZBUCH
+    fi
+    loadFritzBook
+	if [ -f $FRITZBUCH ]; then
+        cat $FRITZBUCH
+		$CURL "http://$ip/cgi-bin/xmessage?caption=FritzBook%20geladen&body=FritzBox!%20Telefonbuch%20geladen&timeout=5" -o /dev/null
+		(touch /tmp/xmessage; sleep 5; rm  /tmp/xmessage) &
+	  else
+		$CURL "http://$ip/cgi-bin/xmessage?caption=Fehler%20beim%20laden&body=FritzBox!%20Telefonbuch%20konnte%20nicht%20geladen%20werden&timeout=5" -o /dev/null
+		(touch /tmp/xmessage; sleep 5; rm  /tmp/xmessage) &
+    fi
   ;;
 esac
