Hallo Frank,
ich habe diese Info dazu gefunden. Das Beispiel ist mit curl erstellt - evtl. wäre das auch mein einem LineCommand möglich.
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
So eine 'SoapAction' sollte mit HTTP funktionieren.
Von Norbert Kolb gibt es dazu Beispiele mit GetDocumentByGetOrPost() - damit könnte wohl so eine 'SoapAction' per HTTP an die FRITZ!-Box übergeben werden. Auszug aus VO-Code:
cRet := '<soapenv:Header>' +;
'<ns:authentication>' +;
'<delisId>' + SELF:cDelisID + '</delisId>' +;
'<authToken>' + SELF:cAuthToken + '</authToken>' +;
'<messageLanguage>' + SELF:cLanguage + '</messageLanguage>' +;
'</ns:authentication>' +;
'</soapenv:Header>'
cPostData := '<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="
http://MyDomain.com/common/service/type ... ervice/2.0">' + ;
'<soapenv:Header/> ' + ;
'<soapenv:Body> ' + ;
'<ns:getAuth> ' + ;
'<delisId>' + SELF:cDelisID + '</delisId> ' + ;
'<password>' + SELF:cPassword + '</password> ' + ;
'<messageLanguage>de_DE</messageLanguage> ' + ;
'</ns:getAuth> ' + ;
'</soapenv:Body> ' + ;
'</soapenv:Envelope>'
HTH
Gerhard Bunzel