Fischertechnik
AVR
Raspberry Pi
Elektronik
Netzwerk
Sonstiges


















Impressum

Dies und Das für FRITZ!Box

IPv6

Die FB unterstützt schon lange IPv6 und kann auch die üblichen Tunneltechniken bereitstellen. Da mein Internetprovider nur IPv4 "liefert", habe ich einen kostenlosen Account bei SixXS angelegt. Dabei ist es wichtig, den richtigen Tunneltyp zu bestellen, da die FB "nur" Heartbeat kann und nicht AYIYA (was aber die Standardeinstellung bei SixXS ist).

Freigaben IPv6

Mit der Umstellung auf FRITZ!OS 06.20 sind meine IPv6-Freigaben kaputtgegangen und ich kann nur empfehlen, alle IPv6-Adressen für Dienste ausschließlich im zugehörigen Unterpunkt mit neuen Fantasienamen zu pflegen. Die Kopplung an ein bestehendes IPv4-System empfehle ich nach den schlechten Erfahrungen nicht.

Beispiel für einen Web-Server an der Adresse ::27

Screenshot

Exkurs IPv6

Bei IPv6 ist es sehr hilfreich, dass pro Interface mehrere IPv6-Adressen die Regel und nicht die Ausnahme sind. Für Services sollten deshalb immer einzelne IPv6-Adressen aus dem Global-Unicast-Adressbereich vergeben werden. Von diesen gibt es pro Netz typischerweise 18446744073709551616 (kein Witz; über 18 Trillionen Adressen). Diese können also sehr großzügig vergeben werden. Eine dieser Adressen wird immer automatisch aus der MAC-Adresse des Interfaces berechnet und bereitgestellt; diese sollte aber aus vielerlei Gründen nicht für Dienste/Services genutzt werden. Einer der Gründe ist, dass bei einem Rechnerwechsel typischerweise auch das Netzwerkinterface ein physikalisch anderes ist und somit auch die MAC. Aus aus Sicherheitsgründen sollte man die MAC nicht kommunizieren. Ich empfehle das einfache Hochzählen der Adressen ab ::1.

Für die, die es nicht lassen können...

telnet einschalten

#96*7* wählen

telnet ausschalten

#96*8* wählen

Hinweis "Vom Hersteller nicht unterstützte Änderungen" entfernen

#96*7* wählen
telnet auf die FRITZ!Box (Kennwort wie beim WEB-Interface)
echo clear_id 87 > /proc/tffs
#96*8* wählen. Damit wird nicht nur der telnetd beendet, sondern auch alle Telnet-Sessions.

Callmonitor

Über TCP-Port 1012 kann die FRITZ!Box wesentliche SIP-Informationen in Klartext ausgeben. Die Felder einer Zeile sind durch den Strichpunkt (Semikolon) getrennt. Das erste Feld enthält den Zeitstempel Tag.Monat.Jahr Stunde:Minute:Sekunde. Das zweite Feld das Ereignis RING, CALL, CONNECT, DISCONNECT und ggf. weitere. Die restlichen Felder kontextabhängig zusätzliche Informationen. Zum Beispiel enthät das vierte Feld bei RING die Rufnummer des Anrufers (CgPN Calling Party Number) und das fünfte die angerufene Nummer (CdN Called Party Number).
20.02.16 18:28:24;RING;0;017xxxxxxxx;8xxxxxx;SIP1;
20.02.16 18:28:27;DISCONNECT;0;0;
20.02.16 18:29:03;CALL;1;12;9xxxxx;053xxxxxx;SIP2;
20.02.16 18:29:31;CONNECT;1;12;053xxxxxx;
20.02.16 18:29:52;DISCONNECT;1;21;
20.02.16 18:30:00;CALL;1;12;9xxxxx;053xxxxxx;SIP2;
20.02.16 18:30:18;CONNECT;1;12;053xxxxxx;
20.02.16 18:51:39;DISCONNECT;1;1281;
20.02.16 18:58:12;CALL;1;11;9xxxxx;041xxxxxxxxx;SIP2;
20.02.16 18:58:26;DISCONNECT;1;0;

Callmonitor einschalten

#96*5* wählen

Callmonitor ausschalten

#96*4* wählen

Callmonitor von einem Unix-Rechner anzeigen lassen

netcat fritz.box 1012

CAPI

Für die Nutzung der FritzFax-Software ist es erforderlich das CAPI (Common ISDN Application Programming Interface) einzuschalten. Dabei gibt es unter Windows oft zusätzliche Schwierigkeiten. Zur Lösung ist der Registry-Eintrag HKEY_LOCAL_MACHINE\SOFTWARE\AVM\AVMIGDCTRL\FoundFritzBoxes auf die Adresse der Fritz!Box zu setzen: 192.168.x.y

CAPI einschalten

#96*3* wählen

CAPI ausschalten

#96*2* wählen

TR-064

http://fritz.box:49000/tr64desc.xml

Unter dem in der Überschrift angegebenen URL ist ohne Anmeldung abfragbar, welche TR-064-Service-Typen implementiert sind. Die XML-Struktur ist nicht ganz übersichtlich, deshalb habe ich sie in eine Tabelle gewandelt, die sich an den aktuell 33 Services orientiert. Dabei habe ich dann festgestellt, dass die Werte für controlURL und eventSubURL bei jedem Service jeweils denselben Wert enthalten und die Spalten zusammengelegt. Unter dem in der letzten Spalte angegebenen Pfad sind dann alle implementierten Funktionsaufrufe ("action") mit den ggf. erforderlichen Argumenten aufgeführt. Darüberhinaus stehen dort auch die Zustandsvariablen, die mit dem Service verbunden sind (serviceStateTable). Auch diese Informationen sind ohne Kennwort abfragbar. Für den markierten ServiceType ist unten ein Auszug der Informationen beispielhaft angegeben.
Die Informationen beziehen sich auf den Software-Stand FRITZ!OS:06.60 auf einer FRITZ!Box 7490.
serviceTypeserviceIdcontrolURL=eventSubURLSCPDURL
<deviceType>urn:dslforum-org:device:InternetGatewayDevice:1</deviceType>
<friendlyName>FRITZ!Box 7490</friendlyName>
<manufacturer>AVM</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>FRITZ!Box 7490</modelDescription>
<modelName>FRITZ!Box 7490</modelName>
<modelNumber> - avm</modelNumber>
<modelURL>www.avm.de</modelURL>
<UDN>uuid:739f2409-bccb-40e7-8e6c-xxxxxxxxxxxx</UDN>
urn:dslforum-org:service:DeviceInfo:1urn:DeviceInfo-com:serviceId:DeviceInfo1/upnp/control/deviceinfo/deviceinfoSCPD.xml
urn:dslforum-org:service:DeviceConfig:1urn:DeviceConfig-com:serviceId:DeviceConfig1/upnp/control/deviceconfig/deviceconfigSCPD.xml
urn:dslforum-org:service:Layer3Forwarding:1urn:Layer3Forwarding-com:serviceId:Layer3Forwarding1/upnp/control/layer3forwarding/layer3forwardingSCPD.xml
urn:dslforum-org:service:LANConfigSecurity:1urn:LANConfigSecurity-com:serviceId:LANConfigSecurity1/upnp/control/lanconfigsecurity/lanconfigsecuritySCPD.xml
urn:dslforum-org:service:ManagementServer:1urn:ManagementServer-com:serviceId:ManagementServer1/upnp/control/mgmsrv/mgmsrvSCPD.xml
urn:dslforum-org:service:Time:1urn:Time-com:serviceId:Time1/upnp/control/time/timeSCPD.xml
urn:dslforum-org:service:UserInterface:1urn:UserInterface-com:serviceId:UserInterface1/upnp/control/userif/userifSCPD.xml
urn:dslforum-org:service:X_VoIP:1urn:X_VoIP-com:serviceId:X_VoIP1/upnp/control/x_voip/x_voipSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Storage:1urn:X_AVM-DE_Storage-com:serviceId:X_AVM-DE_Storage1/upnp/control/x_storage/x_storageSCPD.xml
urn:dslforum-org:service:X_AVM-DE_OnTel:1urn:X_AVM-DE_OnTel-com:serviceId:X_AVM-DE_OnTel1/upnp/control/x_contact/x_contactSCPD.xml
urn:dslforum-org:service:X_AVM-DE_WebDAVClient:1urn:X_AVM-DE_WebDAV-com:serviceId:X_AVM-DE_WebDAVClient1/upnp/control/x_webdav/x_webdavSCPD.xml
urn:dslforum-org:service:X_AVM-DE_UPnP:1urn:X_AVM-DE_UPnP-com:serviceId:X_AVM-DE_UPnP1/upnp/control/x_upnp/x_upnpSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Speedtest:1urn:X_AVM-DE_Speedtest-com:serviceId:X_AVM-DE_Speedtest1/upnp/control/x_speedtest/x_speedtestSCPD.xml
urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1urn:X_AVM-DE_RemoteAccess-com:serviceId:X_AVM-DE_RemoteAccess1/upnp/control/x_remote/x_remoteSCPD.xml
urn:dslforum-org:service:X_AVM-DE_MyFritz:1urn:X_AVM-DE_MyFritz-com:serviceId:X_AVM-DE_MyFritz1/upnp/control/x_myfritz/x_myfritzSCPD.xml
urn:dslforum-org:service:X_AVM-DE_TAM:1urn:X_AVM-DE_TAM-com:serviceId:X_AVM-DE_TAM1/upnp/control/x_tam/x_tamSCPD.xml
urn:dslforum-org:service:X_AVM-DE_AppSetup:1urn:X_AVM-DE_AppSetup-com:serviceId:X_AVM-DE_AppSetup1/upnp/control/x_appsetup/x_appsetupSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Homeauto:1urn:X_AVM-DE_Homeauto-com:serviceId:X_AVM-DE_Homeauto1/upnp/control/x_homeauto/x_homeautoSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Homeplug:1urn:X_AVM-DE_Homeplug-com:serviceId:X_AVM-DE_Homeplug1/upnp/control/x_homeplug/x_homeplugSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Dect:1urn:X_AVM-DE_Dect-com:serviceId:X_AVM-DE_Dect1/upnp/control/x_dect/x_dectSCPD.xml
urn:dslforum-org:service:X_AVM-DE_Filelinks:1urn:X_AVM-DE_Filelinks-com:serviceId:X_AVM-DE_Filelinks1/upnp/control/x_filelinks/x_filelinksSCPD.xml
<deviceType>urn:dslforum-org:device:LANDevice:1</deviceType>
<friendlyName>LANDevice - FRITZ!Box 7490</friendlyName>
<manufacturer>AVM</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>LANDevice - FRITZ!Box 7490</modelDescription>
<modelName>LANDevice - FRITZ!Box 7490</modelName>
<modelNumber> - avm</modelNumber>
<modelURL>www.avm.de
<UDN>uuid:75802409-bccb-40e7-8e6b-xxxxxxxxxxxx</UDN>
<UPC>AVM TR-064</UPC>
urn:dslforum-org:service:WLANConfiguration:1urn:WLANConfiguration-com:serviceId:WLANConfiguration1/upnp/control/wlanconfig1/wlanconfigSCPD.xml
urn:dslforum-org:service:WLANConfiguration:2urn:WLANConfiguration-com:serviceId:WLANConfiguration2/upnp/control/wlanconfig2/wlanconfigSCPD.xml
urn:dslforum-org:service:WLANConfiguration:3urn:WLANConfiguration-com:serviceId:WLANConfiguration3/upnp/control/wlanconfig3/wlanconfigSCPD.xml
urn:dslforum-org:service:Hosts:1urn:LanDeviceHosts-com:serviceId:Hosts1/upnp/control/hosts/hostsSCPD.xml
urn:dslforum-org:service:LANEthernetInterfaceConfig:1urn:LANEthernetIfCfg-com:serviceId:LANEthernetInterfaceConfig1/upnp/control/lanethernetifcfg/ethifconfigSCPD.xml
urn:dslforum-org:service:LANHostConfigManagement:1urn:LANHCfgMgm-com:serviceId:LANHostConfigManagement1/upnp/control/lanhostconfigmgm/lanhostconfigmgmSCPD.xml
<deviceType>urn:dslforum-org:device:WANDevice:1</deviceType>
<friendlyName>WANDevice - FRITZ!Box 7490</friendlyName>
<manufacturer>AVM</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>WANDevice - FRITZ!Box 7490</modelDescription>
<modelName>WANDevice - FRITZ!Box 7490</modelName>
<modelNumber>
- avm</modelNumber>
<modelURL>www.avm.de</modelURL>
<UDN>uuid:75802409-bccb-40e7-8e6a-xxxxxxxxxxxx</UDN>
<UPC>AVM TR-064</UPC>
urn:dslforum-org:service:WANCommonInterfaceConfig:1urn:WANCIfConfig-com:serviceId:WANCommonInterfaceConfig1/upnp/control/wancommonifconfig1/wancommonifconfigSCPD.xml
urn:dslforum-org:service:WANDSLInterfaceConfig:1urn:WANDSLIfConfig-com:serviceId:WANDSLInterfaceConfig1/upnp/control/wandslifconfig1/wandslifconfigSCPD.xml
<deviceType>urn:dslforum-org:device:WANConnectionDevice:1</deviceType>
<friendlyName>WANConnectionDevice - FRITZ!Box 7490</friendlyName>
<manufacturer>AVM</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>WANConnectionDevice - FRITZ!Box 7490</modelDescription>
<modelName>WANConnectionDevice - FRITZ!Box 7490</modelName>
<modelNumber> - avm</modelNumber>
<modelURL>www.avm.de</modelURL>
<UDN>uuid:75802409-bccb-40e7-8e69-xxxxxxxxxxxx</UDN>
<UPC>AVM TR-064</UPC>
urn:dslforum-org:service:WANDSLLinkConfig:1urn:WANDSLLinkConfig-com:serviceId:WANDSLLinkConfig1/upnp/control/wandsllinkconfig1/wandsllinkconfigSCPD.xml
urn:dslforum-org:service:WANEthernetLinkConfig:1urn:WANEthernetLinkConfig-com:serviceId:WANEthernetLinkConfig1/upnp/control/wanethlinkconfig1/wanethlinkconfigSCPD.xml
urn:dslforum-org:service:WANPPPConnection:1urn:WANPPPConnection-com:serviceId:WANPPPConnection1/upnp/control/wanpppconn1/wanpppconnSCPD.xml
urn:dslforum-org:service:WANIPConnection:1urn:WANIPConnection-com:serviceId:WANIPConnection1/upnp/control/wanipconnection1/wanipconnSCPD.xml

Beispiel serviceType urn:dslforum-org:service:X_VoIP:1
http://fritz.box:49000/x_voipSCPD.xml

...
<actionList>
  ...
  <action>
    <name>X_AVM-DE_DialNumber</name>
    <argumentList>
      <argument>
      <name>NewX_AVM-DE_PhoneNumber</name>
        <direction>in</direction>
        <relatedStateVariable>X_AVM-DE_PhoneNumber</relatedStateVariable>
      </argument>
    </argumentList>
  </action>
  ...
  ...
</actionList>
<serviceStateTable>
  ...
  <stateVariable sendEvents="no">
    <name>X_AVM-DE_PhoneNumber</name>
    <dataType>string</dataType>
  </stateVariable>
  ...
</serviceStateTable>
...

FRITZ!Box-Dialer

Auf Basis dieser Informationen läßt sich leicht die zugehörige Aktion per Skript aufrufen. Der URL setzt sich aus der Adresse der FRITZ!Box, dem Port 49000 und controlURL zusammen. Im Header steht noch die SoapAction, die sich aus serviceType (urn:dslforum-org:service:X_VoIP:1) und action (X_AVM-DE_DialNumber) zusammensetzt.
In den POST-Daten ist dann der Aufruf mit der Rufnummer als Argument enthalten. cURL unterstützt die von der FRITZ!Box eingesetzte Authentisierung eigentlich mit der Option "--digest"; dieses hat bei meinen Tests aber nicht zuverlässig funktioniert. Mit "--anyauth" gibt es keine Probleme.
In der FRITZ!Box muss die Wählhilfe eingeschaltet sein.
Nach dem Aufruf des Dialers wählt die FRITZ!Box die Nummer und wenn die Verbindung zustande kommt (abgenommen wird), klingelt das in der Wählhilfe angegebene Telefon.

#!/bin/bash
credentials="benutzer:passwort"
FB="fritz.box:49000"
Rufnummer="0800012345678";


curl -4 -k --anyauth -u "${credentials}"                                    \
     "http://${FB}/upnp/control/x_voip"                                     \
     -H 'Content-Type: text/xml; charset="utf-8"'                           \
     -H 'SoapAction: urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialNumber' \
     -d '<?xml version="1.0" encoding="utf-8"?>
         <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
            <s:Body>
               <u:X_AVM-DE_DialNumber xmlns:u="urn:dslforum-org:service:X_VoIP:1">
                 <NewX_AVM-DE_PhoneNumber>'${Rufnummer}'</NewX_AVM-DE_PhoneNumber>
               </u:X_AVM-DE_DialNumber>
            </s:Body>
         </s:Envelope>' > /dev/null 2>&1

netcat -4 fritz.box 1012