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 42828)
+++ /ipk/source.sh4/tools_callmonitor/_path_/usr/local/share/titan/plugins/callmonitor1/fritzbox_msg_new.sh	(revision 42829)
@@ -81,5 +81,6 @@
 #detecting Dreambox-Type (DM7020 or DM7000 or DM500 or DM600PVR)
  FRITZCACHE=/tmp/fritzbox.cache              #stores successfull reverse searches
- FRITZBUCH=/var/fritzbuch.tele
+#FRITZBUCH=/var/fritzbuch.tele		     #original
+ FRITZBUCH=/mnt/swapextensions/fritzbuch.tele #TitanNit
  TMPFILE=/tmp/fritzbox.tmp                   #stores page from wget command
  TMPSTATUS=/tmp/fritzdream.status            #status der Dreambox (standby usw)
@@ -201,298 +202,96 @@
 };
 
-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"
+
+rdom () { local IFS=\> ; read -d \< E C ;}
+
+loadXML(){
+	#ID="$1"
+	echo "Lese ID: $1"
+	$CURL --data "sid=$SID&pbid=$1" http://$FRITZBOXIP:49000/phonebook.lua  > /tmp/curlhelp7.tmp
+	        
+	 while rdom; do
+	    if [[ $E = realName ]]; then
+		name=$C
+		#exit
+	    fi
+	    if [[ $E = number* ]]; then
+		type=`echo "$E" | cut -d'"' -f2 | sed s/" "//g | sed s/"home"/"privat"/g | sed s/"work"/"geschaeftl."/g | sed s/"mobile"/"mobil"/g `
+		nummer=$C
+		tel=`echo $nummer | sed s/"+49"/"0"/g| sed s/" "//g`
+		echo "$tel#$name->$type"  >> $FRITZBUCH
+	    fi
+	done < /tmp/curlhelp7.tmp 
+};
+
+loadXMLsh4(){
+	echo "Lese ID: $1"
+	$CURL --data "sid=$SID&pbid=$1" http://$FRITZBOXIP:49000/phonebook.lua  > /tmp/curlhelp7.tmp
+	while read line; do
+		X=`echo $line | grep realName | wc -c`
+		if [[ $X -gt 0 ]]; then
+			#E=`echo $line | cut -d'<' -f2 | cut -d'>' -f1`		
+			C=`echo $line | cut -d'>' -f2 | cut -d'<' -f1`
+			name=$C
+			#echo $name
+		fi
+		
+		X=`echo $line | grep "number type" | wc -c`
+		if [[ $X -gt 0 ]]; then
+			type=`echo $line| cut -d'"' -f2 | sed s/" "//g | sed s/"home"/"privat"/g | sed s/"work"/"geschaeftl."/g | sed s/"mobile"/"mobil"/g `
+			tel=`echo $line | cut -d'>' -f2 | cut -d'<' -f1`
+			echo "$tel#$name->$type"  >> $FRITZBUCH
+		fi
+		    
+	done < /tmp/curlhelp7.tmp
+};
+
+loadFritzBook70 () {
+    echo "Version 70"
                 
-                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
+	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 SID:$SID"
+              
+        BOOKID=-1	#Liste mit möglichen IDs
+        $CURL --data "sid=$SID&pbid=$BOOKID" http://$FRITZBOXIP:49000/phonebook.lua | grep "id:"  > /tmp/curlhelp1.tmp
+        #langsamere Routine nur bei sh4-Boxen verwenden
+        sh4=`cat /proc/cpuinfo | grep "sh4" | wc -c`
         
-                #$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    
+        while read line 
+        	do
+        		BOOKID=`echo $line | cut -d':' -f2 | sed s/" \, name"//g`
+        		NAME=`echo $line | cut -d':' -f3`
+        		echo "Lese $NAME BookID: $BOOKID"
+        		if [ $sh4 -eq 0 ]; then
+        			loadXML $BOOKID
+        		else
+        			loadXMLsh4 $BOOKID
+        		fi
+        	done < /tmp/curlhelp1.tmp     
+
+	
 };
 
 loadFritzBook () {
  if [ $usePhoneBook = "1" ]; then
-        #rm $FRITZBUCH
+        rm $FRITZBUCH
         if [ ! -f $FRITZBUCH ]; then
             echo "FritzBook new -> $FRITZBUCH"
             
-            loadFritzBook60
-                    
-            if [ `grep -c "/td#" $FRITZBUCH` != "0" ]; then
-                echo "Fehler gefunden! Teste nun v5"
-                rm $FRITZBUCH
-            fi
+            loadFritzBook70
             
-            if [ ! -f $FRITZBUCH ]; then
-                    loadFritzBook50
-            fi
-            if [ ! -f $FRITZBUCH ]; then
-                    loadFritzBook49
-            fi
-            if [ ! -f $FRITZBUCH ]; then
-                echo "Error loadFritzBook"
-            fi
+            rm /tmp/curlhelp1.tmp 
+	    rm /tmp/curlhelp7.tmp 
+            
         fi
     fi  
