So... ein rudimentäres Shellskript ist geschrieben...
Der Syntax ist:
makeSoap Fritzbox-Nachricht Zielgerät
Beispiel:
Ist recht banal und benötigt außer netcat nichts Zusätzliches (kann man im Zweifel beilegen)
Nun fehlt aber irgendwas, was auf dem Port 1012 horcht und bei jeder neuen Zeile mit RING das Skript aufruft. Keine Ahnung wie das geht, dürfte aber eine unbekannte Banalität sein, da es auch Skripte gibt, die Logfiles etc. ständig auf neue Zeilen hin parsen.
Der Syntax ist:
makeSoap Fritzbox-Nachricht Zielgerät
Beispiel:
Code:
makeSoap "06.05.10 19:19:50;RING;1;1234;4567;SIP1;" 192.168.178.20
Ist recht banal und benötigt außer netcat nichts Zusätzliches (kann man im Zweifel beilegen)
Code:
#!/bin/bash
DESTINATION=$2
IFS=";"
set -- $1
DATETIME=$1
CALLEE=$4
CALLER=$5
IFS=" "
set -- $DATETIME
CALLDATE=$1
CALLTIME=$2
# BUILD XML
echo '<?xml version="1.0" encoding="utf-8"?>' > /tmp/soap
echo '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" >' >> /tmp/soap
echo '<s:Body>' >> /tmp/soap
echo '<u:AddMessage xmlns:u="urn:samsung.com:service:MessageBoxService:1\">' >> /tmp/soap
echo '<MessageType>text/xml</MessageType>' >> /tmp/soap
echo '<MessageID>'$(date +%H%M%S)'</MessageID>' >> /tmp/soap
echo '<Message>' >> /tmp/soap
echo '<Category>Incoming Call</Category>' >> /tmp/soap
echo '<DisplayType>Maximum</DisplayType>' >> /tmp/soap
echo '<CallTime>' >> /tmp/soap
echo '<Date>'$CALLDATE'</Date>' >> /tmp/soap
echo '<Time>'$CALLTIME'</Time>' >> /tmp/soap
echo '</CallTime>' >> /tmp/soap
echo '<Callee>' >> /tmp/soap
echo '<Number>'$CALLEE'</Number>' >> /tmp/soap
echo '<Name>'$CALLEE'</Name>' >> /tmp/soap
echo '</Callee>' >> /tmp/soap
echo '<Caller>' >> /tmp/soap
echo '<Number>'$CALLER'</Number>' >> /tmp/soap
echo '<Name>'$CALLER'</Name>' >> /tmp/soap
echo '</Caller>' >> /tmp/soap
echo '</Message>' >> /tmp/soap
echo '</u:AddMessage>' >> /tmp/soap
echo '</s:Body>' >> /tmp/soap
echo '</s:Envelope>' >> /tmp/soap
# BUILD HTTP
echo 'POST /PMR/control/MessageBoxService HTTP/1.0' > /tmp/message
echo 'Content-Type: text/xml; charset="utf-8"' >> /tmp/message
echo 'HOST: '$DESTINATION >> /tmp/message
echo 'Content-Length: '$(filesize /tmp/soap) >> /tmp/message
echo 'SOAPACTION: "urn:samsung.com:service:MessageBoxService:1#AddMessage"' >> /tmp/message
echo 'Connection: close' >> /tmp/message
echo '' >> /tmp/message
cat /tmp/soap >> /tmp/message
# SEND MESSAGE TO TV
cat /tmp/message | netcat $DESTINATION 52235
Nun fehlt aber irgendwas, was auf dem Port 1012 horcht und bei jeder neuen Zeile mit RING das Skript aufruft. Keine Ahnung wie das geht, dürfte aber eine unbekannte Banalität sein, da es auch Skripte gibt, die Logfiles etc. ständig auf neue Zeilen hin parsen.