Anrufer auf Squeezebox anzeigen lassen und muten

paul-peter

Neuer User
Mitglied seit
21 Nov 2008
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich habe für den Callmonitor ein paar Zeilen geschrieben, welche es ermöglichen, dass bei einem Anruf der Anrufer und die Zielrufnummer auf dem Display der Squeezebox erscheint. Außerdem ist es möglich, dass die Squeezebox gemutet wird, sobald der Anruf angenommen wird.
Das ganze funktioniert nur, wenn die Squeezebox über den Squeezebox Server läuft.


Code:
#Für xx:xx:..... muss die Squeezebox ID des Players eingetragen werden,
#welcher angesprochen werden soll.
#Für mehrere Player müssen somit mehrere Einträge gemacht werden.
#Die IP nach "telnet" muss durch die IP eures Squeezebox Servers ersetzt werden.

in:request ^ ^ echo xx:xx:xx:xx:xx:xx display Anruf Anruf%20von%20$SOURCE_NAME%20f%FCr%20$DEST 15 | telnet 192.168.178.xxx 9090
in:connect ^ ^ echo xx:xx:xx:xx:xx:xx mixer muting 1 | telnet 192.168.178.xxx 9090
in:disconnect ^ ^ echo xx:xx:xx:xx:xx:xx mixer muting 0 | telnet 192.168.178.xxx 9090

Ich habe das bei mir so eingestellt, dass das Display bei Anrufen auf alle Nummern anzeigt. Aber die Lautstärke nur gemutet wird, falls der Anruf für mich ist. Falls also eine Aktion nur für bestimmte Zielrufnummern verwendet werden soll, so muss der zweite "^" in der jeweiligen Zeile durch diese Rufnummer ersetzt werden.

Viel Spaß für den ders gebrauchen kann ;)

mfg paul-peter
 
Wie Doppelnamen übertragen

Hallo,

vielen Dank für die Anregung. Ich habe die folgende Zeilen:

Code:
url="http://dastelefonbuch.de/?sp=55&aktion=23&ort=&cifav=0&s=a10000&stype=S&la=de&cmd=search&ort_ok=0&vert_ok=0&x=31&y=9&kw=$1";

name=$(wget -q -O - "$url" | grep -A 1 class=\"short\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
 
echo XX:XX:XX:XX:XX:XX display ANRUF Anruf%20von%20"$name"%20f%FCr%20$DEST 15 | busybox telnet 192.168.178.3 9090

in mein calllog Skript eingebaut. Es funktioniert, solange in $name ein Wort steht. Sollte die Telefonbuchabfrage zuvor aber einen Vor und Zunamen ausgegeben worden sein funktioniert es nicht mehr. Gibt es einen Trick um das auch zu erreichen?

Bin über Tipps dankbar.

Gruß
 
Wenn schon hier die Leerzeichen umgewandelt werden (Anruf%20von%20), dann sollte man das auch mit den Leerzeichen im Namen machen. Das "%20" steht für ein Leerzeichen.
Code:
echo XX:XX:XX:XX:XX:XX display ANRUF Anruf%20von%20"$(echo $name | sed -e 's/ /%20)"%20f%FCr%20$DEST 15 | busybox telnet 192.168.178.3 9090
Vielleicht auch gleich so:
Code:
echo XX:XX:XX:XX:XX:XX display ANRUF "$(echo "Anruf von $name f%FCr $DEST" | sed -e 's/ /%20)" 15 | busybox telnet 192.168.178.3 9090
 
Irgend ein Fehler ist noch drin

Hallo RalfFriedel,

danke für den schnellen Tip. Habe es damit versucht, allerdings hat es nicht richtig funktioniert bei mir. Habe jetzt immerhin die Leerzeichen entfernen können. Allerdings klappt es bei einigen Anrufen noch immer nicht. Es flackert dann nur eine kurze Meldung auf der Squeezbox auf und das wars.

Findet jemand den Fehler? Gleichzeitig sende ich auch die Meldung an die Reelbox. Das Funktioniert immer ohne Probleme.

Code:
#!/bin/sh
# CALLLOG für Wake on Call

echo $1 $2 $3 $4 $5 > /var/tmp/wol.log

callerid=$1
name=$5

if [ $1 = "016XXXXXX" ] && [ $2 = "0XXXXXXXX" ]; then
    echo "Booting PC"
    /usr/bin/ether-wake -b AB:AB:AB:AB:AB:AB
   else
   if [ -z "$callerid" ]
     then
        callerid="Unbekannt";
        name="Unbekannt";
  else
  	if [ -z "$5" ]
	  then
	url="http://dastelefonbuch.de/?sp=55&aktion=23&ort=&cifav=0&s=a10000&stype=S&la=de&cmd=search&ort_ok=0&vert_ok=0&x=31&y=9&kw=$1";
	name=$(wget -q -O - "$url" | grep -A 1 class=\"short\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
    fi
 
  echo -e "MESG Anruf von "$name" $1 an $2 \n quit" | busybox nc 192.168.178.3 2001
  echo AB:AB:AB:AB:AB:AB display ANRUF Anruf%20von%20$1%20"$(echo "$name" | sed -e "s/\ //g")"%20 15 | busybox telnet 192.168.178.3 9090

 fi
fi
exit 0

Danke für jeden Tipp.

Gruß an alle
 
Habe das ganze Gerade 'von Hand' versucht mit Putty.

Es klappt aber weder auf dem angegebenen Port 9090 noch auf 9000 wo der Webserver ist.
In beiden Fällen kommt ein leeres Putty-Fenster in dem man nichts eintippen kann.

Klappt das nicht mehr?

Version: 7.5.3 - r31792 @ Mon Jan 24 08:21:38 MST 2011
Hostname: Syno
IP-Adresse des Servers: 192.168.2.8
Server-HTTP-Portnummer: 9000
Betriebssystem: SSODS 4.x (Synology DiskStation) - DE - utf8
Plattformarchitektur: i686-linux
Perl-Version: 5.10.0 - i686-linux-thread-multi
MySQL-Version: 5.0.21-standard
Anzahl erkannte Player: 5
 
Hallo,

auch wenn hier lange nichts mehr passiert ist, möchte ich als neuer Squeeze Radio Besitzer evtl. auch dieses Feature nutzen.

Muss also immer ein "Squeeze Server" laufen ?? Oder geht das auch ohne ?? Denn mein WHS (wo´nen SqueezeServer installiert ist), läuft längst nicht immer..

Gruß

Timo
 
Also wenn, geht es nur mit dem Squeezebox-Server.
Aber aktuell geht es ja eh auch damit nicht.
 
Bei mir funktioniert es nach wie vor. Einfach per telnet auf 9090 connecten und Befehle eintippen, das wars. Sorry*@mega dass ich mich vorher nicht gemeldet habe, ich habe dafür wohl keine Benachrichtigung bekommen. Ein Squeezebox Server muss dafür auf jeden Fall laufen.

EDIT: Bei mir läuft es nicht, sobald ich eine Passwort-Protection für den Squeezebox Server eingerichtet habe. Ich bin mir nicht sicher ob man das im Telnet Befehl integrieren kann.
 
Zuletzt bearbeitet:
Es funktioniert hier weiterhin nicht.

Auf der Synology per telnet eingeloggt und dann genau das eingegeben:
echo 00:04:20:12:22:d4 display Anruf Anruf 15 | telnet 192.168.2.8 9000

Auf der Squezzebox passiert nichts und eine Fehlermeldung kommt auch nicht
 
Wenn du dich per telnet schon vorher einloggst, musst du nur den befehl
00:04:20:12:22:d4 display Anruf Anruf 15
eingeben
die listeners müssen aber mit dem anderen befehl eingetragen werden, da dort der telnet-login per pipe geschehen muss
 
Der normale telnet-Login ist ja auf dem Standard-Port und nicht auf 9000
 
Dann versuch es doch erstmal direkt per Telnet auf dem Port 9090 (nicht 9000) und den Befehl da einzugeben. Wenn das Funktioniert ist die grundsätzliche Funktionalität ja schonmal gegeben.
 
Danke, aber wenn das eh nur per Server geht, ist das mir nicht drin .. schade :(
 
Habe das grade nochmal angetestet, mit 9090 geht es auch nicht.
Weder ne Fehlermeldung noch sonstwas.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.