sorry, irgendwie komm ich nicht weiter und muss nochmal was fragen ...
ich habe unter Linux folgende Datei angelegt:
/tmp/message.txt
Code:
POST /PMR/control/MessageBoxService HTTP/1.0
Host: 192.168.178.100
Content-Type: text/xml; charset=UTF-8
Content-Length: 757
SOAPACTION: "urn:samsung.com:service:MessageBoxService:1#AddMessage"
Connection: close
<?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:AddMessage xmlns:u="urn:samsung.com:service:MessageBoxService:1">
<MessageType>text/xml</MessageType>
<MessageID>2</MessageID>
<Message>
<Category>Incoming Call</Category>
<DisplayType>Maximum</DisplayType>
<CallTime>
<Date>2010-08-09</Date>
<Time>19:04:32</Time>
</CallTime>
<Callee>
<Number>1234</Number>
<Name>Asterisk</Name>
</Callee>
<Caller>
<Number>5678</Number>
<Name>oggy</Name>
</Caller>
</Message>
</u:AddMessage>
</s:Body>
</s:Envelope>
Wenn ich das richtig verstanden habe, kann ich doch mit folgender Syntax, die Message zum TV schieben
Code:
cat /tmp/message.txt | netcat -n -w 1 192.168.178.100 52235
Hab ich irgendetwas übersehen? Mit dem Java-Tool bekomm ich die Nachricht erfolgreich auf den TV-Schrim, aber per Shell passiert nichts.
[edit]
... unter Windows habe ich die Nachricht abgeschickt bekommen und dort ist mir dank "Wireshark" aufgefallen, dass erstens ein LF am ende fehlte und dadurch zweitens die Nachrichtenlänge im "Content Length" nicht stimmte.
Code:
more message.txt | netcat 192.168.178.100 52235
jetzt schau ich mal, dass ich das auch unter Linux hinbekomme ...
[edit2]
so, ich hab es jetzt mit einem leicht modifizierte Script von Martin hinbekommen. Dank wireshark sieht man auch was so schief läuft
... mein debian kam beim "echo -e" mit dem "-e" nicht klar und verunstaltete mir die erstellte Nachricht.
asterisk - extensions.conf
Code:
...
exten => _1234567,n,GotoIF($[ "${name}"="unbekannter Anrufer" ]?tvunbekannt:tvbekannt)
exten => _1234567,n(tvbekannt),system(/usr/src/scripte/message.sh "${CALLERID(num)}" "${name}" "${name}")
exten => _1234567,n,Goto(markereins)
exten => _1234567,n(tvunbekannt),system(/usr/src/scripte/message.sh "${CALLERID(num)}" "${name}" "${CALLERID(num)}")
exten => _1234567(markereins),n,...
...
-der Name in der Variable ${name} wird anhand einer Datenbankabfrage festgestellt
-kommt der Anrufer mit einer unterdrückten Rufnummer rein oder ist schlicht unbekannt, wird das Script mit anderen Daten gefüttert, so dass man die Rufnummer im Popup-Fenster sieht
Ich habe mal für Interessierte 3 Bilder angehängt, wie es auf dem TV aussieht.
Bild 1 = TV befindet sich im Mediaplayer und die angerufene Rufnummer ist unbekannt
Bild 2 = TV befindet sich im Mediaplayer und die Rufnummer ist in der Datenbank/bekannt
Bild 3 = TV ist im TV-Betrieb und zeigt einen bekannt Anrufer