Thread anzeigen
DSL bis 300 | Mesh | WLAN AC 2,4 GHz 5 GHz | WAN | Gigabit-LAN | DECT | USB | Telefonie | Media | MU-MIMO
 Thread drucken
Prüfen ob Anruf aktiv ist
domi
Ich nutze ein IP Telefon als Türsprechanlage. Ab und zu hängt diese sich auf. Leider kann ich das per PING oder HTTP Abfrage nicht detektieren. Meistens "führt das Tel. noch ein Gespräch". Frage: Wäre es ve. per HTTP Reqest an Fritzbox möglich, diesen Hänger festzustellen. ODER ist es möglich, per HTTP Request an die Fritz abzufragen, ob das interne IP Telefon Nr. **621 am telefonieren ist ?

Danke!
 
Fritzie
Ja, du kannst per HTTP(S)-Anfrage an die FRITZ!Box abfragen, ob ein internes IP-Telefon aktiv telefoniert – z. B. ob die interne Nummer 621 aktuell belegt ist. Dafür nutzt man TR-064, das lokale UPnP/Soap-basierte API der FritzBox.
Was du erreichen willst:
* Prüfen, ob z. B. die Türsprechanlage (interne Rufnummer 621
) aktuell in einem Gespräch ist.
* Ziel: automatisierte Erkennung, ob das Gerät hängt, sich „aufhängt“ oder z. B. dauerhaft als "im Gespräch" angezeigt wird.

Voraussetzungen
1. Heimnetz-Zugriff auf die FritzBox
2. FRITZ!Box erlaubt Zugriff über TR-064
* aktivierbar unter:
* Heimnetz > Netzwerk > Netzwerkeinstellungen > Zugriff für Anwendungen zulassen (UPnP / TR-064)
3. FritzBox-Benutzer mit Passwort und Rechte auf Telefonie und Status

Lösung: Telefon-Status über TR-064 abfragen
Der relevante TR-064 Dienst ist:
urn:dslforum-org:service:X_VoIP:1

Verwendete Methode:
X_AVM-DE_GetCallList

Die FRITZ!Box gibt bei Aufruf die Liste aktueller Anrufe als XML zurück, inklusive interner Nummern und Status („active“, „connected“, „disconnected“ etc.).

Beispiel: Python-Skript zum Abfragen

import requests
from requests.auth import HTTPDigestAuth
from xml.etree import ElementTree

fritzbox_ip = '192.168.178.1'
username = 'dein_username'
password = 'dein_passwort'

url = f'http://{fritzbox_ip}:49000/upnp/control/x_voip'
headers = {
    'Content-Type': 'text/xml; charset="utf-8"',
    'SOAPAction': 'urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetCallList'
}

soap_body = """<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <u:X_AVM-DE_GetCallList xmlns:u="urn:dslforum-org:service:X_VoIP:1" />
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>"""

response = requests.post(url, data=soap_body, headers=headers, auth=HTTPDigestAuth(username, password))

if response.status_code == 200:
    xml_root = ElementTree.fromstring(response.text)
    # parse relevant data
    print(response.text)
else:
    print("Fehler beim Abruf:", response.status_code)


Du kannst dann nach Einträgen suchen, in denen Caller oder Called xx621 ist und der Status z. B. active oder connected.

Alternativ: Automatisiert prüfen mit upnp-inspector oder TR-064 Tooling

Wenn du kein Python nutzen willst, kannst du auch Tools wie:

* fritzconnection (Python-Paket)
* TR064Lib
* curl mit Digest-Auth und SOAP-Requests

verwenden.

Aternatieve ein PowerShell-Version, um zu prüfen, ob das FritzBox-IP-Telefon xx621 aktiv ist (z. B. deine Türsprechanlage):
Skript: Check-FritzPhone621.ps1

# FritzBox-Zugangsdaten
$fritzIP     = "192.168.178.1"
$username    = "dein_benutzername"
$password    = "dein_passwort"
$internalNum = "**621"

# HTTP Digest Auth vorbereiten
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$username:$password"))

# Schritt 1: SOAP-Anfrage an FritzBox für CallList-URL
$soapAction = "urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetCallList"
$soapBody = @"
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
            s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body>
    <u:X_AVM-DE_GetCallList xmlns:u="urn:dslforum-org:service:X_VoIP:1" />
  </s:Body>
</s:Envelope>
"@

$response = Invoke-WebRequest -Uri "http://$fritzIP:49000/upnp/control/x_voip"
    -Method POST

    -Body $soapBody
    -ContentType 'text/xml; charset="utf-8"'

    -Headers @{SOAPAction = $soapAction}
    -Credential (New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString $password -AsPlainText -Force)))

# Schritt 2: CallList-URL extrahieren
$xml = [xml]$response.Content
$calllistUrl = $xml.Envelope.Body.'X_AVM-DE_GetCallListResponse'.NewCallListURL

if (-not $calllistUrl) {
    Write-Host "❌ CallList-URL nicht gefunden"
    exit
}

# Schritt 3: Anrufliste abrufen
$callListXml = Invoke-WebRequest -Uri $calllistUrl

    -Credential (New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString $password -AsPlainText -Force)))
$callList = [xml]$callListXml.Content

# Schritt 4: Prüfen, ob Nummer aktiv
$activeCall = $callList.CallList.Call | Where-Object {
    ($_.Caller -eq $internalNum -or $_.Called -eq $internalNum) -and $_.Duration -eq "0"
}

if ($activeCall) {
    Write-Host " $internalNum ist aktuell aktiv oder hängt."
} else {
    Write-Host " $internalNum ist nicht aktiv."
}



Automatisierung (geplant alle 5 Minuten)

Aufgabenplanung
1. PowerShell-Skript speichern: C:\Scripts\Check-FritzPhone621.ps1
2. Aufgabenplanung → Aufgabe erstellen:
* Trigger: alle 5 Minuten
* Aktion:
* Ausgabe z. B. nach >> C:\Logs\fritz-monitor.log
In meiner Freizeit versuche ich so gut ich kann zu helfen. Geduld ist eine Tugend. 🙏
 
 Diese Website nutzt Affiliate-Links von Awin sowie Google-Anzeigen, um den Betrieb für Sie kostenlos zu halten.
 Erfolgt über ein Affiliate-Link ein Kauf, erhalten wir eine Provision ohne Mehrkosten für Sie.
 Bitte blockieren Sie keine Anzeigen und Cookies.
Zum Forum springen
Neuer Thread Antwort posten
Verwende BBcode oder HTML um nach; 'Prüfen ob Anruf aktiv ist', zu verweisen!
BBcode:
HTML:
Verwandte Themen
Betreff Fritz Forum         Letzter Beitrag
Fritzbox 7360 - Anruf-SMS FRITZ!Box allgemein : 9 22.06.25
eingehender Anruf Anzeige während man telefoniert FRITZ!Box allgemein : 2 27.03.25
Fritzbox 7490 - Bei Anruf Faxton! FRITZ!Box allgemein : 4 15.01.22
Geräte über Anruf steuern FRITZ!Box allgemein : 2 26.09.21
Hilfe FRITZ!Box
Wählen Sie Ihr Modell aus und klicken Sie auf „öffnen“. Die richtige Hilfeseite wird geöffnet.
Hilfe FRITZ!Repeater
Wählen Sie Ihr Modell aus und klicken Sie auf „öffnen“. Die richtige Hilfeseite wird geöffnet.
Hilfe FRITZ!Powerline
Wählen Sie Ihr Modell aus und klicken Sie auf „öffnen“. Die richtige Hilfeseite wird geöffnet.