Hi *
ich hatte das mal vor Ewigkeiten zwischen meiner FB7050 und der DM5620S am laufen, aber anscheinend ist das durch irgendeinen Firmware-update kaputtgegangen. Dabei sind 3 Probleme aufgetreten:
1) wie hier schon beschrieben, funktioniert auch bei mir der download mittels wget nicht (komische Zeichen am Anfang der callmonitor.sh).
2) der callmonitor läuft nicht.
3) der callmonitor hat #!/var/tmp in der ersten Zeile.
Zu 1)
Das mache ich grade per Hand, bis jemand eine bessere Lösung hat.
Zu 2)
Ich hab das script debugged und hab gesehen, dass der schon beim ersten readline rausfliegt, was ich für mich so interpretiert habe, dass der telefon process jetzt nichts mehr auf stdout liefert. Also hab ich per #98*5* den port 1012 freigeschaltet, und das callmonitor.sh script angepasst:
Im Wesentlichen geht's dabei um die ersten paar zeilen, die man umbauen muss:
Aus
Code:
case $line in
IncomingCall*)
MSISDN=`echo $line | sed 's/^.*caller: .\(.*\). called:.*/\1/'`
CALLED=`echo $line | sed 's/^.*called: .\(.*\)".*/\1/'`
wird
Code:
case $line in
*RING*)
echo "Line is " $line;
let j=0;
for i in `echo $line|sed 's/[^\;]*\;\([^@]*\)\;\([^\;]*\)\;/\1 \2/'| sed 's/\;/ /g'`; do
echo $i;
let j=j+1;
if [ $j = 3 ]
then
MSISDN=$i;
fi
if [ $j = 4 ]
then
CALLED=$i;
fi
done
#MSISDN=`echo $line | sed 's/^.*caller: .\(.*\). called:.*/\1/'`
#CALLED=`echo $line | sed 's/^.*called: .\(.*\)".*/\1/'`
Auch das Startscript braucht eine modifikation:
Code:
/var/tmp/nc 127.0.0.1 1012| /var/tmp/callmonitor.sh 1 1
Allerdings bleibt der mit SIGTTIN stehen, wenn man ihn im hintergrund startet...
Wobei ich das nur rudimentär getestet hab, und das warscheinlich auch nur funzt, wenn die Telefonnummer mit kommt. Da ich auch nicht der sed-Held bin, wird das mglw. auch noch eleganter funktionieren. Also nicht hauen
Ich kenn das enigma2 noch nicht, aber evtl. funzt das ja auch da.
Zu 3)
wenn man das von Hand ausführt (nicht direkt beim booten), kommt immer "/var/tmp not found", was auch meinem Vertändnis entspricht, weil ich meine, dass da immer eine shell (oder der ausführende process) drin stehen muss.
Ich hab das auf /bin/sh geändert. Oder gibt's da Probleme, die ich nicht sehe?