Q & A zum FritzBox-Project

Die Änderung war ja für das Host Script, habe die da eingebaut und geht dort auch ohne Fehler und schneller, mein Problem mit der Anrufliste besteht aber logischer Weise weiterhin

Oh, stimmt. Da hatte ich eben nicht aufgepasst.
Dann habe ich aktuell keine Idee.
Erfahrungen zu FritzOS 7.0 habe ich nicht.
Allerdings gibt es einiges an neuer Doku von AVM, sollte aber den aktuellen Funktionsumfang nicht beeinträchtigen.
Michael

OK dann werde ich mich noch in Geduld üben müssen :smiley:

Aber das Script steigt schon in der Funktion
FB_GetABMessageList() aus
bei

$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);

bin aber in dem Bereich FB leider überhaupt nicht fit und die FB_SoapAction() habe ich auch noch nicht gefunden

Ist in dem globalen Funktions Script.
Michael

in der FB_SoapAction bei

elseif (is_object($parameter)) $status = @$client->{$action}($parameter);

habe mir dann mal die Variabeln ausgeben lassen

echo "Status
";
			echo $status;
			echo "Action
";
			echo $action;
			echo "Parameter
";
			print_r($parameter);
Status
SoapFault exception: [HTTP] Error Fetching http headers in C:\IP-Symcon\scripts\50350.ips.php:238
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://192.168....', 'urn:dslforum-or...', 1, 0)
#1 C:\IP-Symcon\scripts\50350.ips.php(238): SoapClient->__call('GetInfo', Array)
#2 C:\IP-Symcon\scripts\55356.ips.php(298): FB_SoapAction(Array, 'GetInfo', Object(SoapParam), 'root', 'geheim')
#3 C:\IP-Symcon\scripts\30975.ips.php(23): FB_GetABMessageList()
#4 {main}Action
GetInfoParameter
SoapParam Object
(
    [param_name] => NewIndex
    [param_data] => 0
)

ist das normal das IPS bei der Ausgabe Inhalt kürzt ? oder fehlt hier wirklich was bei

#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://192.168....', 'urn:dslforum-or...', 1, 0)

IPS kürzt da nix; das macht PHP.
Michael

Das ist doch AA ^^
Wie soll man da vernünftig auf Fehlersuche gehen :confused:

Die Parameter für TR 64 scheinen aber zumindest noch zu passen

<serviceType>urn:dslforum-org:service:X_AVM-DE_TAM:1</serviceType>
<serviceId>urn:X_AVM-DE_TAM-com:serviceId:X_AVM-DE_TAM1</serviceId>
<controlURL>/upnp/control/x_tam</controlURL>
<eventSubURL>/upnp/control/x_tam</eventSubURL><SCPDURL>/x_tamSCPD.xml</SCPDURL>

und

<?xml version="1.0"?>
<scpd xmlns="urn:dslforum-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>GetInfo</name>
<argumentList>
<argument>
<name>NewIndex</name>
<direction>in</direction>
<relatedStateVariable>Index</relatedStateVariable>
</argument>
<argument>
<name>NewEnable</name>
<direction>out</direction>
<relatedStateVariable>Enable</relatedStateVariable>
</argument>
<argument>
<name>NewName</name>
<direction>out</direction>
<relatedStateVariable>Name</relatedStateVariable>
</argument>
<argument>
<name>NewTAMRunning</name>
<direction>out</direction>
<relatedStateVariable>TAMRunning</relatedStateVariable>
</argument>
<argument>
<name>NewStick</name>
<direction>out</direction>
<relatedStateVariable>Stick</relatedStateVariable>
</argument>
<argument>
<name>NewStatus</name>
<direction>out</direction>
<relatedStateVariable>Status</relatedStateVariable>
</argument>
<argument>
<name>NewCapacity</name>
<direction>out</direction>
<relatedStateVariable>Capacity</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>SetEnable</name>
<argumentList>
<argument>
<name>NewIndex</name>
<direction>in</direction>
<relatedStateVariable>Index</relatedStateVariable>
</argument>
<argument>
<name>NewEnable</name>
<direction>in</direction>
<relatedStateVariable>Enable</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetMessageList</name>
<argumentList>
<argument>
<name>NewIndex</name>
<direction>in</direction>
<relatedStateVariable>Index</relatedStateVariable>
</argument>
<argument>
<name>NewURL</name>
<direction>out</direction>
<relatedStateVariable>URL</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>MarkMessage</name>
<argumentList>
<argument>
<name>NewIndex</name>
<direction>in</direction>
<relatedStateVariable>Index</relatedStateVariable>
</argument>
<argument>
<name>NewMessageIndex</name>
<direction>in</direction>
<relatedStateVariable>MessageIndex</relatedStateVariable>
</argument>
<argument>
<name>NewMarkedAsRead</name>
<direction>in</direction>
<relatedStateVariable>MarkedAsRead</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>DeleteMessage</name>
<argumentList>
<argument>
<name>NewIndex</name>
<direction>in</direction>
<relatedStateVariable>Index</relatedStateVariable>
</argument>
<argument>
<name>NewMessageIndex</name>
<direction>in</direction>
<relatedStateVariable>MessageIndex</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetList</name>
<argumentList>
<argument>
<name>NewTAMList</name>
<direction>out</direction>
<relatedStateVariable>TAMList</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>Enable</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Index</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
<allowedValueRange>
<minimum>0</minimum>
<maximum>4</maximum>
<step>1</step>
</allowedValueRange>
</stateVariable>
<stateVariable sendEvents="no">
<name>Name</name>
<dataType>string</dataType>
<defaultValue></defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>TAMRunning</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Stick</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Status</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Capacity</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>MessageIndex</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>URL</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>MarkedAsRead</name>
<dataType>boolean</dataType>
<defaultValue>1</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>TAMList</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>

für den Rest müsste ich mich einlesen aber da fehlt mir irgendwie die Zeit zu :confused:

Gibt ein vier PHP Funktionen um die letzte Anfrage und Antwort genauer zu betrachten:
public string __getLastRequest( void )

public string__getLastRequestHeaders ( void)

public string__getLastResponse ( void )

public string__getLastResponseHeaders ( void )

Michael

OK das hilft weiter

Testcode

	$client = new SoapClient(null,$service);

	for ($i=0;$i<2000;$i++)
	{
		if (IPS_SemaphoreEnter("FB_".(string)34174 /*[FritzBox Project\Config\User-Config]*/,1))
		{
			if ($parameter <> null)
			{
			   if (is_array($parameter)) $status = @$client->__soapCall($action,$parameter);
			   elseif (is_object($parameter)) $status = @$client->{$action}($parameter);
			}
			else $status = @$client->{$action}();
			IPS_SemaphoreLeave("FB_".(string)34174 /*[FritzBox Project\Config\User-Config]*/);
			$i=-1;
			
			echo "Status
";
			echo $status;
			echo "
Action
";
			echo $action;
			echo "
Parameter
";
			print_r($parameter);
			
			echo "
__getLastRequestHeaders:
" . 	$client->__getLastRequestHeaders() . "
";
			echo "__getLastResponse:
" . 			$client->__getLastResponse() . "
";
			echo "__getLastRequest:
" . 			$client->__getLastRequest() . "
";
			echo "__getLastResponseHeaders:
" . 	$client->__getLastResponseHeaders() . "
";
			break;
		} else {
		
		IPS_Sleep(mt_rand(1,5));
		}
	}

Ausgabe

Status
SoapFault exception: [HTTP] Error Fetching http headers in C:\IP-Symcon\scripts\50350.ips.php:238
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://192.168....', 'urn:dslforum-or...', 1, 0)
#1 C:\IP-Symcon\scripts\50350.ips.php(238): SoapClient->__call('GetInfo', Array)
#2 C:\IP-Symcon\scripts\55356.ips.php(313): FB_SoapAction(Array, 'GetInfo', Object(SoapParam), 'root', 'strengGeheim')
#3 C:\IP-Symcon\scripts\30975.ips.php(23): FB_GetABMessageList()
#4 {main}
Action
GetInfo
Parameter
SoapParam Object
(
    [param_name] => NewIndex
    [param_data] => 0
)

__getLastRequestHeaders:
POST /upnp/control/x_tam HTTP/1.1
Host: 192.168.178.1:49000
Connection: close
User-Agent: PHP-SOAP/7.2.5
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:dslforum-org:service:X_AVM-DE_TAM:1#GetInfo"
Content-Length: 514
Authorization: Digest username="root", realm="HTTPS Access", nonce="D8A768D81E494CCB", uri="/upnp/control/x_tam", qop="auth", nc="00000001", cnonce="086ee1eb", response="d7c84d17e77a3b198102957acd3f45b8", algorithm="MD5"


__getLastResponse:

__getLastRequest:

0

__getLastResponseHeaders:
HTTP/1.1 401 Unauthorized
Connection: keep-alive
Content-Length: 170
Content-Type: text/html
Pragma: no-cache
Server: Webserver
WWW-Authenticate: Digest realm="HTTPS Access",nonce="D8A768D81E494CCB",algorithm=MD5,qop="auth"

Da fehlen irgendwie die Zugriffsrechte: HTTP/1.1 401 Unauthorized

habe auch schon versucht direkt die userdaten hier einzugeben
$service[‚login‘];
$service[‚password‘];
aber auch ohne Erfolg

So ich habe es gefixed, Anruferliste und AB Liste werden wieder ausgelesen.
Das Ganze ist natürlich jetzt nicht die Goldrandlösung aber k.A. warum das mit der eingebauten Funktion nicht funktioniert, fehlt mir auch die Zeit und Lust dazu dem nach zu gehen :smiley:

Ich poste hier einmal die komplette Datei wo man dann seine IDs tauschen muss und dann die Änderungen nochmal im Detail, hoffe das ich dann dabei nichts vergesse :wink:

Es gibt Fundstellen mehrfach, einfach von oben nach unten abarbeiten

Aktions & Auslese-Script Anrufbeantworter

Hier die komplette Datei, bitte die IDs an eure Installation anpassen
neues habe ich wie auch schon der andere User mit //NEW gekennzeichnet,wenn es geändert wurde dann wurde der originalcode auskommentiert und darunter der neue eingefügt

<?
 ##### Project Exporter Comment: Script Version Stand 11.03.2018 19:29 #####

################################################################################
##    Zugriff auf diese Script-Funktionen
##
## Lesen der Stati und generieren der Tabelle triggern:
##   IPS_RunScript(<ID von diesem Script>);
##
## ACHTUNG NICHT IN JEDER FIRMWARE VERFÜGBAR
## Anrufbeantworter ein-/ausschalten und Stati rücklesen (Tabellen werden nicht erneuert!)
##   IPS_RunScriptEx(<ID von diesem Script>,array('SENDER'=>'RequestAction','IDENT'=>'TAM0','VALUE'=>true));
##   Parameter: IDENT =  TAM0 bis TAM4, VALUE = true / false für an / aus
################################################################################
$ret = include(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(20065 /*[FritzBox Project\Scripte\MultiRunLocker]*/ ));
if ($ret === false) return;
require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(34174 /*[FritzBox Project\Config\User-Config]*/ ));
if (!FB_TamList) return;
require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(50350 /*[FritzBox Project\Scripte\Global-Funktionen]*/ ));
require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(40691 /*[FritzBox Project\Config\Anrufbeantworter-Config]*/  ));
require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(55356 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche]*/ ));
require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(59498 /*[FritzBox Project\Scripte\Tabellen-Funktionen]*/ ));

$ident = FB_GetIdent("/upnp/control/x_tam");
$parent = FB_GetOrCreateDummy($ident,'Anrufbeantworter');
$service['location'] = "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam";
$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_TAM:1";


	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_TAM:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW  


switch ($_IPS['SENDER'])
{
	case "RequestAction":
		$_IPS['VARIABLE'] = @IPS_GetObjectIDByIdent($_IPS['IDENT'],$parent);
		if ($_IPS['VARIABLE'] == 0)
		{
			echo "IDENT ".$_IPS['IDENT']." nicht bekannt.";
			return;
		}
	case "WebFront":
		$param = array();
		if (!isset($_IPS['IDENT']))
		{
		   $_IPS['IDENT'] =IPS_GetObject($_IPS['VARIABLE'])['ObjectIdent'];
	   }
		switch ($_IPS['IDENT'])
		{
			case "TAM0":
				$index = 0;
			break;
			case "TAM1":
				$index = 1;
			break;
			case "TAM2":
				$index = 2;
			break;
			case "TAM3":
				$index = 3;
			break;
			case "TAM4":
				$index = 4;
			break;
			default:
				echo "IDENT ".$_IPS['IDENT']." nicht bekannt.";
				return;
			break;
		}
		$param = array(
			new SoapParam((int)$index,"NewIndex"),
			new SoapParam((int)$_IPS['VALUE'],"NewEnable")
		);
		$action="SetEnable";
		$Result =  FB_SoapAction($service,$action, $param,FB_USER,FB_PASS);

		if ($Result === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error WRITE of ".$service['location']."->".$action.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error WRITE of ".$service['location']."->".$action);
			return;
		}
//		SetValueBoolean($_IPS['VARIABLE'],$_IPS['VALUE']);
		return;
	break;
}

$searchFailed = array(); // Alle nicht gefunden Nummern hier rein.
for ($i=0;$i<5;$i++)
{
	$action="GetInfo";
	//$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
	$GetInfo = $client->GetInfo(new SoapParam($i, 'NewIndex'));
	if ($GetInfo === false)
	{
		if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
		else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
		continue;
	}
	if ($GetInfo["NewName"] == "") continue;

		UpdateIPSvar($parent,'TAM'.$i,$GetInfo['NewEnable'],0,true,($i*2)+1,(int)$_IPS['SELF'],'~Switch',FB_GetIdent($GetInfo["NewName"]));
		if (($_IPS['SENDER']=="RequestAction") or ($_IPS['SENDER']=="WebFront")) continue; // Ab hier nur wenn Sender nicht auch geschaltet hatte.
		if (!FB_TamList_Tabelle) continue; // Ab hier nur wenn Tabelle aktiv
	   $action ="GetMessageList";
		//$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
		$GetMessageList = $client->GetMessageList(new SoapParam($i, 'NewIndex'));
		if ($GetMessageList === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
			continue;
		}
		$URL = FB_NOSLL($GetMessageList);
		$xml = @simplexml_load_file($URL);
		if ($xml === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Fehler beim laden der AB_Nachrichten.".PHP_EOL;
			else IPS_LogMessage("FritzBox","Fehler beim laden der AB_Nachrichten.");
			continue;
		}
		$Anrufliste = new simpleXMLElement($xml->asXML());
		// Header
		$HTMLData ='<script type="text/javascript" src="user/fritz/ttips/wz_tooltip.js"></script>';
		$HTMLData.=FB_GetTableHeader($Config);
		// Liste erzeugen. Start festlegen
		$pos=0;
		foreach ($Anrufliste->Message as $Message)
		{
			$Message->addChild("PopupData"); // PopupData -Eintrag erzeugen
			if ((int)$Message->{"New"} == 1)
			{
				$Message->Type= "1";
				$Message->PopupData =  "?path=".urlencode((string)$Message->Path)."&tam=".(string)$Message->Tam."&index=".(string)$Message->Index."&action=mark";// URL-Anpassen
			}
			else
			{
		 		$Message->Type= "2";
				$Message->PopupData =  "?path=".urlencode((string)$Message->Path)."&tam=".(string)$Message->Tam."&index=".(string)$Message->Index;// URL-Anpassen
			}

			if ((int)$Message->Inbook == 0) // Namen suchen ?
			{
				if (($Config['SucheType'] == 0) || (in_array((string)$Message->Number, $searchFailed))) // Suche abgeschaltet oder num wurde schon gesucht und nicht gefunden
				{
	      	   $Message->Name = ($Config['FBNameBeiUnbekannt'] ? (string)$Message->Name : $Config['Unbekannt']);
				} else {
					$result = FB_InversSuche((string)$Message->Number, $Config['SucheType']);
					if ($result == false)
					{
	               $searchFailed[] =(string)$Message->Number;
		      	   $Message->Name = ($Config['FBNameBeiUnbekannt'] ? (string)$Message->Name : $Config['Unbekannt']);
	            } else {
	           	   $result = FB_TextAbschneiden($result, $Config['LimitName']); // Text abschneiden
	         		switch((int)$Config['SucheMarker'])
						{
	            		case 0: $Message->Name = $result; break;
				         case 1: $Message->Name = '(*) '.$result; break;
	   			      case 2: $Message->Name = $result.' (*)'; break;
				         case 3: $Message->Name = FB_GetImage($Config['Symbole'],"SEARCHHIT").' '.$result; break;
				         case 4: $Message->Name = $result.' '.FB_GetImage($Config['Symbole'],"SEARCHHIT"); break;
				      }
	           	}
	        	}
			} else { // Name vorhanden nur kürzen
			   $Message->Name = FB_TextAbschneiden($Message->Name, $Config['LimitName']);
			}
			// Namen bearbeiten
		   if (strlen((string)$Message->Number) == 0) $Message->Number = (string)$Message->Name; // Wenn Nummer leer ist, den Eintrag vom Namen aus der FB übernehmen (bei deutscher FritzBox = unbekannt)
			// Datum bearbeiten
	    	if ($Config['DatumMaskieren'])
			 {
	       	$parts   = preg_split('/[ .:]/', (string)$Message->Date);
				$datum   = mktime(0, 0, 1, (int)$parts[1], (int)$parts[0], (int)$parts[2]);
	        	$heute   = mktime(0, 0, 0);
	       	$gestern = $heute - 86400;
	        	if ($datum > $heute) {
	         	$parts[5] = 'Heute -  ';
	        	} elseif ($datum > $gestern) {
	         	$parts[5] = 'Gestern - ';
	        	} else {
	         	$parts[5] = date('d.m.y ', $datum);
	        	}
	        	$Message->Date = $parts[5].$parts[3].':'.$parts[4];
	    	}
			// ICON festlegen
			$Message->addChild("Icon");
			(string)$Message->Icon = FB_GetImage($Config['Symbole'],$icons[(int)$Message->Type],'id="img'.(string)$Message->Tam.'_'.(string)$Message->Index.'"');
			// AB festlegen
			$Message->addChild("AB");
			$Message->AB='<div id="div'.(string)$Message->Tam.'_'.(string)$Message->Index.'"><div>'
			.FB_GetImage($Config['Symbole'],'AB_START',"onclick=\"Tip('<iframe src=\'".$Popup_URL.(string)$Message->PopupData."&key=\' width=\'130px\' height=\'70px\' frameborder=\'0\' scrolling=\'no\'>');\"") //, FOLLOWSCROLL, false)\"")
                         .'</div></div>';
			$Message->Name = utf8_decode($Message->Name);
			$HTMLData .='<tr style="'.$Config['Style']['BR'.($pos % 2 ? 'U':'G')].'">';
   	   foreach($Config['Spalten'] as $feldIndex => $value)
			{
				$HTMLData .= '<td style="'.$Config['Style']['DF'.($pos % 2 ? 'U':'G').$feldIndex].'">'.(string)$Message->{$feldIndex}.'</td>';
			}
	      $HTMLData .= '</tr>'.PHP_EOL;
			$pos++;
			if($pos >= $Config['Anzahl']) break;
		}
		$HTMLData .= FB_GetTableFooter();
		UpdateIPSvar($parent,'Anrufbeantworterliste'.FB_GetIdent($GetInfo["NewName"]),$HTMLData,3,true, ($i*2)+2,0,'~HTMLBox','Sprachbox '.$GetInfo["NewName"]);
}
	if (FB_TamList_Tabelle and $Config['DatumMaskieren'])
	{
		$timer = @IPS_GetObjectIDByIdent("MidnightTimer",$_IPS['SELF']);
		if ($timer === false)
		{
			$timer =	IPS_CreateEvent(1);
			IPS_SetIdent($timer,"MidnightTimer");
			IPS_SetName($timer,"MidnightTimer");
	      IPS_SetParent($timer,$_IPS['SELF']);
		}
		IPS_SetEventCyclic($timer,2,1,0,0,0,0);
		IPS_SetEventCyclicTimeFrom($timer,0,3,30);
		IPS_SetEventActive($timer,true);

	}
?>

Alternativ falls ihr lieber alles selber ändern wollt

suche nach:

$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_TAM:1";

füge darunter das ein

	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_TAM:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW

suche nach

$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);

und ersetze es durch

	//$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
	$GetInfo = $client->GetInfo(new SoapParam($i, 'NewIndex'));

suche nach

$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);

und ersetze es durch

		//$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
		$GetMessageList = $client->GetMessageList(new SoapParam($i, 'NewIndex'));

Telefonbuch & AB-Abfrage & Invers-Suche

Hier die komplette Datei, bitte die IDs an eure Installation anpassen
neues habe ich wie auch schon der andere User mit //NEW gekennzeichnet,wenn es geändert wurde dann wurde der originalcode auskommentiert und darunter der neue eingefügt

<?
 ##### Project Exporter Comment: Script Version Stand 11.03.2018 19:29 #####

################################################################################
##    INCLUDE-SCRIPT
##
##    Keine direkte Verwendung !
##
################################################################################

## Fon-Geräte lesen
function FB_GetPhoneDevice($id)
{
	global $FB_Fons;
	if (!is_numeric($id)) return $id;

   // ID der Cachevariable ermitteln
   if (!IPS_SemaphoreEnter('39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/', 2000)) return false;  // Und ende... beim nächsten mal mehr Glück...
   $data = GetValueString(39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/ );
	IPS_SemaphoreLeave('39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/');        // Jetzt noch die Semaphore zurückgeben
   // und deserialisieren
	$result = @unserialize($data);
   if (($result === FALSE) or (!isset($result[(int)$id]))) // Fehler oder nicht vorhanden
	{
		if (isset($FB_Fons[(int)$id])) return $FB_Fons[(int)$id]; // Rückfallebene
		return 'unbekannt';
   }
   // fertig, das Array mit den cache-daten an den Aufrufer zurückliefern
   return $result[(int)$id];
}

function FB_SetPhoneDevice($data)
{
   if (!IPS_SemaphoreEnter('39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/', 2000)) return false;  // Und ende... beim nächsten mal mehr Glück...
   $olddata = GetValueString(39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/ );
   // und deserialisieren
	if (($result = @unserialize($olddata))===false) $result = array();
	foreach ($data as $id => $name)
	{
		$result[(int)$id] = $name;
	}
	SetValueString(39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/,serialize($result));
	IPS_SemaphoreLeave('39276 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\Device-Cache]*/');        // Jetzt noch die Semaphore zurückgeben
}

## Telefonbuch FritzBox


function FB_LoadAllPhonebooks()
{
	if (!FB_FonBook) return false;
 	$service['uri'] = 'urn:dslforum-org:service:X_AVM-DE_OnTel:1';
	$service['location'] ='http://'.FB_HOST.':'.FB_PORT.'/upnp/control/x_contact';

	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW 

	$action="GetPhonebookList";
	//$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$result =  $client->GetPhonebookList();
	if ($result === false)
	{
		if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
		else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
		return false;
	}
	$indexes = @explode(',',$result);
	$action="GetPhonebook";
	$PhoneBooks = array();

	$TargetDir = IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.FB_FonBook_Directory;
	if (!is_dir($TargetDir)) @mkdir($TargetDir);
	$Target = $TargetDir.DIRECTORY_SEPARATOR.FB_FonBook_Filename;
	foreach ($indexes as $index)
	{
		$param = new SoapParam((integer)$index,"NewPhonebookID");
		//$result =  FB_SoapAction($service,$action,$param,FB_USER,FB_PASS);
		$result =  $client->GetPhonebook(new SoapParam((integer)$index, 'NewPhonebookID'));
		if ($result === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
			continue;
		}
		if(!@copy($result['NewPhonebookURL'],$Target.$index.'.xml'))
		{
   		$errors= error_get_last();
			if ($_IPS['SENDER'] == "WebFront") echo "Error (".$errors['message'].") COPY of ".$result['NewPhonebookURL']." -> ".$Target.$index.".xml".PHP_EOL;
			else IPS_LogMessage("FritzBox","Error (".$errors['message'].") COPY of ".$result['NewPhonebookURL']." -> ".$Target.$index.".xml");
			continue;
		}
	}
	return true;
}

function FB_GetPhoneBooks()
{
	if (!FB_FonBook) return array();
 	$service['uri'] = 'urn:dslforum-org:service:X_AVM-DE_OnTel:1';
	$service['location'] ='http://'.FB_HOST.':'.FB_PORT.'/upnp/control/x_contact';
	
	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW   
	
	$action="GetPhonebookList";
	//$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$result =  $client->GetPhonebookList();
	if ($result === false)
	{
		if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
		else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
		return false;
	}
	$indexes = @explode(',',$result);
	$TargetDir = IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.FB_FonBook_Directory;
	if (!is_dir($TargetDir)) @mkdir($TargetDir);
	$PhoneBookData = array();
	foreach ($indexes as $index)
	{
		$Target = $TargetDir.DIRECTORY_SEPARATOR.FB_FonBook_Filename.$index.'.xml';
		if (!is_file($Target))
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error READ of FILE ".$Target.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error READ of FILE ".$Target);
			continue;
		}
		$xml = @simplexml_load_file($Target);
		if ($xml === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Fehler beim laden des Telefonbuches (".$index.").".PHP_EOL;
			else IPS_LogMessage("FritzBox","Fehler beim laden des Telefonbuches (".$index.").");
			continue;
		}
		$PhoneBookData[(integer)$index] = new simpleXMLElement($xml->asXML());
	}
	return $PhoneBookData;
}

function FB_SearchPhoneBookByNumber($Number)
{
	if (!FB_FonBook) return false;
	$PhoneBookData = FB_GetPhoneBooks();
	$Name = false;
	foreach ($PhoneBookData as $XMLPhoneBook)
	{
		$Contact = $XMLPhoneBook->xpath("//contact[telephony/number ='".$Number."']");
		if (sizeof($Contact) <> 0)
		{
			try
			{
			   $Name = (string)$Contact[0]->person->realName;
			}
			catch (Exception $exc)
			{
				$Name = false;
			}
		}
	}
	return $Name;
}
## Tel-Search-ch
function FB_QueryTelSearchCh($Rufnummer)
{
	$record = false;
	$pageurl = "http://tel.search.ch/?tel=$Rufnummer";
	$wsdata = @Sys_GetURLContent($pageurl);
	if ($wsdata === false)
	{
// WriteLogMessage(WARNING, 'Datei: '.__file__.' Zeile: '.__line__, 'Timeout bei Abruf der Webseite '.$pageurl);
	} else {
		$data = str_replace(array(CRLF, LF), ' ', $wsdata);
		if (preg_match('/class="fn">(.*?)<\/a>.*class="adrgroup street-address">(.*) ([0-9]+[0-9a-zA-Z]*)'.
							'<\/span>.*class="postal-code">(.*?)<\/span>.*class="locality">(.*?)<\/span>/', $data, $result))
		{
         $record =html_entity_decode(trim($result[1]));
		}
	}
	return $record;
}

## Das Örtliche
function FB_QueryDasOertlicheDe($Rufnummer)
{
   $record = false;
   $url = "http://www.dasoertliche.de/Controller?form_name=search_inv&ph=$Rufnummer";
	# Create a DOM parser object
	$dom = new DOMDocument();
	# Parse the HTML from klicktel
	# The @ before the method call suppresses any warnings that
	# loadHTMLFile might throw because of invalid HTML or URL.
	@$dom->loadHTMLFile($url);
	if ($dom->documentURI == null)
	{
//   	WriteLogMessage(WARNING, 'Datei: '.__file__.' Zeile: '.__line__, 'Timeout bei Abrufen der Webseite '.$url);
		return false; // DOH! nix geladen zurück
	}
	$finder = new DomXPath($dom);
	$classname="hit clearfix ";
	$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), '$classname')]");
	if ($nodes->length == 0) return false;
	$cNode = $nodes->item(0); //div left
	if ($cNode->nodeName != 'div') return false;
	if (!$cNode->hasChildNodes()) return false;
	$ahref = $cNode->childNodes->item(1); // a href
	if (!$ahref->hasChildNodes()) return false;
	foreach ($ahref->childNodes as $div)
	{
	   if ($div->nodeName == "a" ) break;
	}
   $record = trim($div->nodeValue);
   return $record;
}

## KlickTel
function FB_QueryKlickTelApi ($Rufnummer)
{
	$record = false;
	if (!FB_KlicktelApi) return false;
	$Data = file_get_contents("http://openapi.klicktel.de/searchapi/invers?key=".FB_KlicktelApiKey."&number=$Rufnummer");
	if($Data) $Json = json_decode($Data);
	if (isset($Json->response->results[0]->entries[0]->displayname))
		$record = $Json->response->results[0]->entries[0]->displayname;
	return $record;
}

// Führt eine Cache-unterstützte Suche nach der Rufnummer durch
function FB_InversSuche($Rufnummer, $modus)
{
   // Daten aus dem Suchcache laden
   $cacheData = FB_GetCacheData();
	if (substr($Rufnummer,0,1) <> '0') $Rufnummer = FB_Vorwahl.$Rufnummer;
   // Ergebnisrecord mit false vorbelegen
   $Name = false;
	if (FB_KlicktelApi) $modus =2;
   // Suchcache checken, ob ein Eintrag passend zur Rufnummer vorhanden ist
   if (isset($cacheData[$Rufnummer]))
	{  // Treffer im Cache, Daten holen und rück zum Aufrufer springen
		$Name = $cacheData[$Rufnummer]['Name'];
		if ($cacheData[$Rufnummer]['Expire'] < time()) $Name = false; // Zeit abgelaufen neu holen.
	}
	// Wenn im Cache kein Treffer gefunden wurde, das Telefonbuch der Box fragen.
	if ($Name === false)
	{
		$Name =FB_SearchPhoneBookByNumber($Rufnummer);
		// Wenn wir jetzt einen Treffer haben, muss der noch in den Cache...
      if ($Name !== false) FB_AddRecordToCache($Rufnummer, $Name);

	}
	// Wenn noch immer kein Treffer, eine Websuchmaschine befragen
	if ($Name === false)
	{
   	switch ($modus)
		{
			case 1: $Name = FB_QueryDasOertlicheDe($Rufnummer); break;
			case 2: $Name = FB_QueryKlickTelApi($Rufnummer); break;
			case 3: $Name = FB_QueryTelSearchCh($Rufnummer); break;
		}
		// Wenn wir jetzt einen Treffer haben, muss der noch in den Cache...
      if ($Name !== false) FB_AddRecordToCache($Rufnummer, $Name);

	}
	// So, jetzt sind wird fertig, zurück zum Aufrufer...
	return $Name;
}

# Cache Data lesen
function FB_GetCacheData()
{
   // ID der Cachevariable ermitteln
   if (!IPS_SemaphoreEnter('49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/', 2000)) return false;  // Und ende... beim nächsten mal mehr Glück...
   $data = GetValueString(49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/ );
	IPS_SemaphoreLeave('49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/');        // Jetzt noch die Semaphore zurückgeben
   // und deserialisieren
   if (($result = @unserialize($data)) === FALSE)
	{
      $result = array();
   }
   // fertig, das Array mit den cache-daten an den Aufrufer zurückliefern
   return $result;
}

# Schreibe Daten in Cache
function FB_AddRecordToCache($Rufnummer, $Name)
{
	if (!IPS_SemaphoreEnter('49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/', 2000)) return false;  // Und ende... beim nächsten mal mehr Glück...
   $data = GetValueString(49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/);
   if (($cache = @unserialize($data)) === FALSE) $cache = array();
   // Jetzt den neuen Eintrag in $data vornehmen
   $cache[$Rufnummer] = array('Expire' => (time() + FB_FonCache_Timeout), 'Name' => $Name);
   // Das ganze wieder serialisieren und in die Variable zurückschreiben
   $data = serialize($cache);
   SetValueString(49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/, $data);
   IPS_SemaphoreLeave('49955 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche\InversSuche-Cache]*/');        // Jetzt noch die Semaphore zurückgeben
   return true;
}
function FB_NOSLL ($URL)
{
	return str_replace(array("https://",":49443"),array("http://",":".FB_PORT),$URL); // bitte ohne SSL
}

function FB_GetABMessageList()
{
	$service['location'] = "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam";
	$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_TAM:1";
	
	
//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_TAM:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
//NEW     
	
	
	for ($i=0;$i<5;$i++)
	{
		$action = 'GetInfo';
		//$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
		$GetInfo = $client->GetInfo(new SoapParam($i, 'NewIndex'));
		if ($GetInfo === false)
		{
			if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
			else IPS_LogMessage("FritzBox","Error AB Function READ of ".$service['location']."->".$action);
			return false;
		}
		if ($GetInfo["NewName"] <> "")
		{
		   $action ="GetMessageList";
			//$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
			$GetMessageList = $client->GetMessageList(new SoapParam($i, 'NewIndex'));
			//echo $GetMessageList;
			if ($GetMessageList === false)
			{
				if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
				else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
				return false;
			}
			$URL = FB_NOSLL($GetMessageList);
			$xml = @simplexml_load_file($URL);
			if ($xml === false)
			{
				if ($_IPS['SENDER'] == "WebFront") echo "Fehler beim laden der AB_Nachrichten.".PHP_EOL;
				else IPS_LogMessage("FritzBox","Fehler beim laden der AB_Nachrichten.");
				return false;
			}
			$xml = new simpleXMLElement($xml->asXML());
			$AB_Data[40+$i]=$xml;
		}
	}
	return $AB_Data;
}
function FB_GetCallList()
{
	$service['location'] = "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact";
	$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_OnTel:1";
	
	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
//NEW    
	
	
	$action = 'GetCallList';
	//$GetCallList = FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$GetCallList = $client->GetCallList();
	if ($GetCallList === false)
	{
		if ($_IPS['SENDER'] == "WebFront") echo "Error READ of ".$service['location']."->".$action.PHP_EOL;
		else IPS_LogMessage("FritzBox","Error READ of ".$service['location']."->".$action);
		return false;
	}
	$URL = FB_NOSLL($GetCallList);
//	stream_context_set_default(array('http' => array('timeout' => 2)));
	$xml = @simplexml_load_file($URL);
	if ($xml === false)
	{
		if ($_IPS['SENDER'] == "WebFront") echo "Fehler beim laden der Anrufliste.".PHP_EOL;
		else IPS_LogMessage("FritzBox","Fehler beim laden der Anrufliste.");
		return false;
	}
	$xml = new simpleXMLElement($xml->asXML());
	return $xml;
}

function FB_GetNumberXpath ($Nummern,$Fax)
{
	if ( count($Nummern) == 0) return "";
	if ($Fax <> 0) $Fax=" or Port='".$Fax."'";
	else $Fax ="";
	$XPath="[Called='".implode("' or Called='",$Nummern)."'".$Fax."]";
	return $XPath;
}

function FB_GetTypeXpath ($Type)
{
	if ( count($Type) == 0) return "";
	$XPath="[Type='".implode("' or Type='",$Type)."']";
	return $XPath;
}

if ($_IPS['SELF'] == 55356 /*[FritzBox Project\Scripte\Telefonbuch & AB-Abfrage & Invers-Suche]*/)
{
	echo "Dieses Script kann nicht direkt ausgeführt werden!";
}
?>

Alternativ falls ihr lieber alles selber ändern wollt
Es gibt Fundstellen mehrfach, einfach von oben nach unten abarbeiten

suche nach:

$service['location'] ='http://'.FB_HOST.':'.FB_PORT.'/upnp/control/x_contact';

füge darunter das ein

	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW 

suche nach

$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);

und ersetze es durch

	//$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$result =  $client->GetPhonebookList();

suche nach

$result =  FB_SoapAction($service,$action,$param,FB_USER,FB_PASS);

und ersetze es durch

		//$result =  FB_SoapAction($service,$action,$param,FB_USER,FB_PASS);
		$result =  $client->GetPhonebook(new SoapParam((integer)$index, 'NewPhonebookID'));

suche nach

$service['location'] ='http://'.FB_HOST.':'.FB_PORT.'/upnp/control/x_contact';

und füge darunter das ein

	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
	//NEW 

suche nach

$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);

und ersetze es durch

	//$result =  FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$result =  $client->GetPhonebookList();

suche nach

$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_TAM:1";

und füge darunter das ein

//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_tam", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_TAM:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
//NEW  

suche nach

$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);

und ersetze es durch

		//$GetInfo = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
		$GetInfo = $client->GetInfo(new SoapParam($i, 'NewIndex'));

suche nach

$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);

und ersetze es durch

			//$GetMessageList = FB_SoapAction($service,$action,new SoapParam($i,"NewIndex"),FB_USER,FB_PASS);
			$GetMessageList = $client->GetMessageList(new SoapParam($i, 'NewIndex'));

suche nach

$service['uri'] = "urn:dslforum-org:service:X_AVM-DE_OnTel:1";

und füge darunter das ein

	//NEW    
    $client = new SoapClient( 
        null, 
        array( 
            'location'   => "http://".FB_HOST.":".FB_PORT."/upnp/control/x_contact", 
            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1", 
            'noroot'     => True, 
            'login'      => FB_USER, 
            'password'   => FB_PASS 
        ) 
    );     
//NEW   

suche nach

$GetCallList = FB_SoapAction($service,$action,null,FB_USER,FB_PASS);

und ersetze es durch

	//$GetCallList = FB_SoapAction($service,$action,null,FB_USER,FB_PASS);
	$GetCallList = $client->GetCallList();

Ich hoffe ich habe nichts vergessen

Vergebt mir, sicherlich habe ich einfach nur etwas übersehen …

Script aus v1.09 in ein script in IPS gepackt.
WFC_TagrteID angepasst
Gespeichert
Run

dann kommt folgender Fehler:

Fatal error: Uncaught Error: Call to undefined function ExtFile_ebfrontuserfritzbeginpng() in /var/lib/symcon/scripts/23239.ips.php:216 Stack trace: #0 /var/lib/symcon/scripts/23239.ips.php(51): createExportFiles(Array) #1 {main} thrown in /var/lib/symcon/scripts/23239.ips.php on line 216

bin für jeden Tip Dankbar …

Das selbe bei mir!!
Hat einer eine Idee???

Siehe hier:
Q & A zum FritzBox-Project - Seite 61
Michael

also ist das Problem die (Web Console) und mit der Legacy geht es?

HI, ich habe trotz der Anpassung im Script immer noch einige Fehler im LOG

10.10.2018 18:12:20*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_storage->GetInfo
10.10.2018 18:12:20*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_webdav->GetInfo
10.10.2018 18:12:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_upnp->GetInfo

10.10.2018 18:16:20*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_myfritz->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_webdav->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_remote->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_upnp->GetInfo

10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/x_storage->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/lanhostconfigmgm->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/wlanconfig1->GetInfo
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/wanipconnection1->GetPortMappingNumberOfEntries
10.10.2018 18:16:21*| FritzBox*| Error READ of http://192.168.178.1:49000/upnp/control/wlanconfig3->GetInfo

Grüße
cerberusde

Bei mir auch, allerdings nur auf einer 7490. Bei der 7590 mit gleicher Firmware habe ich die Fehler nicht.

Hy alle zusammen,ich komme leider keinen schritt weiter.
Fritzbox Einstellungen wurden gemacht. Laut Anleitung soll ja nur in Zeile 25 die ID des WFC eingetragen werden.

Danch kommt folgende Fehlermeldung :

atal error: Uncaught Error: Call to undefined function AusleseScriptHardwareInformationen11475 /[Hardware\FritzBox Project\Scripte\Auslese-Script Hardware Informationen]/() in /var/lib/symcon/scripts/31077.ips.php:649 Stack trace: #0 /var/lib/symcon/scripts/31077.ips.php(375): Objekteanlegen(Array) #1 /var/lib/symcon/scripts/31077.ips.php(386): createObjectsTree(Array) #2 /var/lib/symcon/scripts/31077.ips.php(386): createObjectsTree(Array) #3 /var/lib/symcon/scripts/31077.ips.php(103): createObjectsTree(Array) #4 {main} thrown in /var/lib/symcon/scripts/31077.ips.php on line 649
Abort Processing during Fatal-Error: Uncaught Error: Call to undefined function AusleseScriptHardwareInformationen11475 /[Hardware\FritzBox Project\Scripte\Auslese-Script Hardware Informationen]/() in /var/lib/symcon/scripts/31077.ips.php:649 Stack trace: #0 /var/lib/symcon/scripts/31077.ips.php(375): Objekteanlegen(Array) #1 /var/lib/symcon/scripts/31077.ips.php(386): createObjectsTree(Array) #2 /var/lib/symcon/scripts/31077.ips.php(386): createObjectsTree(Array) #3 /var/lib/symcon/scripts/31077.ips.php(103): createObjectsTree(Array) #4 {main} thrown Error in Script /var/lib/symcon/scripts/31077.ips.php on Line 649

Kann mir da einer weiter helfen.

Fritzbox 7490 aktuelle Firmware.

Grüße

Jörg

Siehe Post 602 und auch 653 und…
Also einfach bitte die Suchfunktion benutzen :banghead:
Michael

Glaube mir, ich habe die Suchfunktion benutzt.
Aber für einen Neuling ist dies alles schwer zu verstehen. Auf Posts zu verweisen, ist nur hilfreich wenn dieser Post auch zu verstehen ist (Legacy Console) etc… Deshalb ist :banghead: nicht nett und erst recht nicht hilfreich.

Vielleicht hätte ich dazu schreiben sollen, das ich IPS 5 auf einem Raspberry laufen habe und mit einem Mac arbeite.
Soweit ich es verstanden habe, kann ich mit dieser Kombi nicht mit der Legacy Console arbeiten.

Also ist das Fritz Box Projekt nicht für mich / jeden nutzbar???

Hi

Doch, kannst du :slight_smile:

Lade dir mal das installstionspaket für Mac runter.
Da ist die Konsole und der Server drin.
Damit sollte es dann gehen.

Gesendet von iPhone mit Tapatalk