[ds-mod] Callmonitor

Status
Für weitere Antworten geschlossen.

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
Hallo,
futurama schrieb:
da bei mir "xbmcmessage" nicht ging [...] XBMC.Notification
danke für den Test. Ich habe irgendwo in der API-Doku oder dem Code gelesen, dass XBMC der Standard-Präfix ist und auch weggelassen werden kann. Aber wenn dem nicht so ist, baue ich ihn gerne wieder ein.

Die Fenster und die Schrifte sind auch so klein. Mann kann kaum was lessen. Ich weiss es nicht ob man es von der X-Box einstellen kann oder ist es mit deiner script möglich?
Mit der Funktion XMBC.Notification ist auf jeden Fall nicht mehr zu machen, die hat nur die beiden schon vorhandenen Argumente. Aber vielleicht findest du ja noch einen Weg.

beim "dboxlcd"; wenn die informationen von das Örtliche kommen [...]zeile 3 (von 1 - bis 17) | zeile 4 (von 18 - bis rest) anzeigen.
Das kann ich einbauen.

Gruß,
Andreas
 

kay1234

Mitglied
Mitglied seit
25 Jan 2006
Beiträge
262
Punkte für Reaktionen
0
Punkte
16
futurama schrieb:
Und was mich noch bewundert hat, das es ohne CallerID script läuft.
Das liegt daran, dass XBMC.Notification eine Standard-Funktion des Media Centers ist. Den CallerID Script braucht man nur, wenn man yac-Meldungen anzeigen möchte.

Das (CallerID) habe ich übrigens noch nicht zum Laufen gebracht. Ich habe aber noch Hoffnung, die stirbt ja bekanntlich zuletzt. Irgendwie wird es der Programmierer ja auch hinbekommen haben...

futurama schrieb:
... und jetzt geht es. Aber ich habe noch nicht gefunden, wie man den Meldung länger auf dem Fernseher anzeigen läst.
Die API-Funktionen lassen keine Einstellung zu und die XBMC-Konfiguration auch nicht. Das bedeutet wohl, man müsste das im Source Code ändern und XBMC neu compilieren...

futurama schrieb:
Die Fenster und die Schrifte sind auch so klein. Mann kann kaum was lessen. Ich weiss es nicht ob man es von der X-Box einstellen kann oder ist es mit deiner script möglich ?
Mit etwas Glück könnte das über ein anderes XBMC-Skin funktionieren. Kannst ja mal ausprobieren.

@buehmann: Vermutlich war ich blind. Aber ich habe keine Doku über die möglichen Funktionen vom callmonitor gefunden. Gibt's die irgendwo?
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
kay1234 schrieb:
Vermutlich war ich blind. Aber ich habe keine Doku über die möglichen Funktionen vom callmonitor gefunden. Gibt's die irgendwo?
Nein, die einzige Doku ist momentan leider der Quellcode mit seinen Kommentaren (die Kommentare sind nur in der Version im SVN-Repository auf Berlios; für die Installation werden die herausgefiltert) sowie die beiden Callmonitor-Threads (dieser hier und der "Erweiterte Callmonitor" (oben als Doku zur Listeners-Syntax verlinkt)).

Ich sollte wirklich mal eine Liste von zur Verfügung stehenden Funktionen erstellen und erklären, was sie tun oder wie man sie parametrisieren kann. Vielleicht fange ich mal eine Seite im Wiki an; dann könnt ihr auch mithelfen oder Praxisbeispiele, Tipps & Tricks etc. beisteuern.

Andreas
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
Vielleicht fange ich mal eine Seite im Wiki an; dann könnt ihr auch mithelfen oder Praxisbeispiele, Tipps & Tricks etc. beisteuern.
Ich habe unter http://wiki.ip-phone-forum.de/software:callmonitor:start mit einem kleinen Grundgerüst für die Dokumentation des Callmonitors begonnen und werde dort in nächster Zeit vor allem die Seiten für die Listeners und für die möglichen Aktionen ausbauen. Ihr seid eingeladen mitzuhelfen.

Gruß,
Andreas
 

futurama

Neuer User
Mitglied seit
25 Feb 2006
Beiträge
69
Punkte für Reaktionen
0
Punkte
0
futurama schrieb:
beim "dboxlcd"; wenn die informationen von das Örtliche kommen, werden die Name und die Anschrift als eine Variable erhalten. Wenn diese Variablelänge grösser als 17 wird, zeigt es den Rest nicht an. Also da sollte der script; zeile 1 -> Anruf an 1122334 | zeile 2 -> von 09991122334 | zeile 3 "wenn länger als 17" -> (erhaltene variable),(von 1 - bis 17) | zeile 4 -> (erhaltene variable),(von 18 - bis rest) anzeigen.
Hi,
wird diese Änderung durchgeführt,wenn ja wann.
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0

futurama

Neuer User
Mitglied seit
25 Feb 2006
Beiträge
69
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
Hi, ja (siehe oben), wird in der nächsten Version drin sein. (Falls du es nicht erwarten kannst, siehe default_dboxlcd() in http://svn.berlios.de/svnroot/repos/callmonitor/fritzbox/callmonitor/trunk/base/usr/lib/callmonitor/actions.d/dboxlcd.sh; noch ungetestet)

Gruß,
Andreas
Hi, ich habe es getestet. Es hat wunderbar geklappt. Aber die Anzeige auf der LCD war noch immer nicht besonders gut. Ich habe den dboxlcd.sh editiert. Jetzt funtioniert es wunderbar. Es sind jetzt 5 zeilen und die ganze Informationen werden angezeigt.

Code:
################## dboxlcd.sh ########################
require net

dboxlcd() {
    __getmsg __getmsg_dboxlcd -d default_dboxlcd -t "-" "[email protected]"
}
__getmsg_dboxlcd() {
    local lcd="/control/lcd"
    local lcdtext="$lcd?xpos=1&size=17&font=2&text=%s"
    local line= init="&lock=1&clear=1" ypos=0
    local IFS="$LF"
    echo "$*" |
    for ypos in 12 24 36 48 60; do
	read -r line
	if ! empty "$line"; then
	    TEMPLATE="$lcdtext&ypos=$ypos&update=1$init" __getmsg_simple "$line"
	    init=
	fi
    done
    sleep ${DBOX_TIMEOUT:-10}
    TEMPLATE="$lcd?lock=0" __getmsg_simple
}
default_dboxlcd() {
    {
	if ! empty "$DEST_NAME"; then
	    echo "Anruf an $DEST_NAME"
	elif ! empty "$DEST"; then
	    echo "Anruf an $DEST"
	else
	    echo "Anruf"
	fi
	if ! empty "$SOURCE"; then
	    echo "von $SOURCE"
	fi
	if ! empty "$SOURCE_NAME"; then
	    if ? "$#SOURCE_NAME <= 19"; then
		echo "$SOURCE_NAME"
	    else
		expr substr "$SOURCE_NAME" 1 19
		expr substr "$SOURCE_NAME" 20 19
		expr substr "$SOURCE_NAME" 39 19
	    fi
	fi
    } | latin1_utf8
} 
##################### the End ######################
 
Zuletzt bearbeitet:

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
futurama schrieb:
Hi, ich habe es getestet.
Danke für deine Tests; ich werde deine Änderungen übernehmen.

Code:
		expr substr "$SOURCE_NAME" 1 19
		expr substr "$SOURCE_NAME" 20 38
		expr substr "$SOURCE_NAME" 39 57
Das soll sicher "1 19", "20 19" und "39 19" heißen, oder? (Der dritte Parameter von substr ist die Länge des Substrings.)

Gruß,
Andreas
 

futurama

Neuer User
Mitglied seit
25 Feb 2006
Beiträge
69
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
Danke für deine Tests; ich werde deine Änderungen übernehmen.


Das soll sicher "1 19", "20 19" und "39 19" heißen, oder? (Der dritte Parameter von substr ist die Länge des Substrings.)

Gruß,
Andreas
ja, so wie du es beschrieben hast, stimmt.
 

mailando

Neuer User
Mitglied seit
4 Jul 2005
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Meldungston

Ist es irgenwie möglich, zusätzlich zum Meldungsfenster auch noch einen Ton über die Dreambox abzugeben?
 

buergernb

Neuer User
Mitglied seit
21 Feb 2006
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
ds-mod 0.2.4 mit Callmonitor und und YAC-Server auf PC funzt nicht.

Hi,

habe eine FBF 7170 mit der Firmware 29.04.01ds-0.2.4. Versuche nun auf mehreren PCs gleichzeitig je einem YAC-Server dazu zu bringen, mir die den anruf zu signalisieren. Klappt bis jetzt leider nicht!!! Die Mail über einen missed call geht aber raus???

Hier das Protokoll des Testanrufs:
[NOPARSE]including /usr/lib/callmonitor/actions.d/dboxlcd.sh
including /usr/lib/callmonitor/actions.d/dropbear.sh
including /usr/lib/callmonitor/actions.d/messages.sh
including /usr/lib/callmonitor/actions.d/missed-call.sh
detected 'IncomingCall: ID 0, caller: "40XXXX" called: "62XXXX"'
SOURCE='40XXXX' DEST='62XXXX' SOURCE_NAME='Tester Tess (Adresse)' DEST_NAME='' NT=false END=false
[0] processing rule '^' '^' 'yac 192.168.178.X1'
[0] parameter SOURCE='40XXXX' matches pattern '^'
[0] parameter DEST='62XXXX' matches pattern '^'
[0] SUCCEEDED: executing 'yac 192.168.178.X1'
[1] processing rule '^' '^' 'yac 192.168.178.X2'
[1] parameter SOURCE='40XXXX' matches pattern '^'
[1] parameter DEST='62XXXX' matches pattern '^'
[1] SUnc: connect: Connection refused
nc: Timed out
CCEEDED: executing 'yac 192.168.178.X2'
[2] processing rule '^' '^' 'mail_missed_call'
[2] parameter SOURCE='40XXXX' matches pattern '^'
[2] parameter DEST='62XXXX' matches pattern '^'
[2] SUCCEEDED: executing 'mail_missed_call'
[0] listener failed with ancould not find call from '40XXXX' in log
exit status of 1
[1] listener failed with an exit status of 1
[2] listener failed with an exit status of 1[/NOPARSE]​

Meine Listeners-Konfiguration sieht so aus:
[NOPARSE]#Quelle Ziel Aktion
^ ^ yac 192.168.4.21
^ ^ yac 192.168.4.22
^ ^ mail_missed_call[/NOPARSE]​

Was muß ich bei der YAC-Installation auf den PCs beachten? Welches Modem muß ich wählen, da ich ja über Netz mit FBF verbunden bin. Muß ich in der Windows Firewall vielleicht einen Port für YAC freigeben?

Fragen über Fragen... Bin Linux-FBF-Neueinsteiger und bis jetzt total begeistert von den Möglichkeiten.

Nils
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
buergernb schrieb:
Code:
[0] SUCCEEDED: executing 'yac 192.168.178.X1'
[1] SUCCEEDED: executing 'yac 192.168.178.X2'
nc: connect: Connection refused
nc: Timed out
Deine Listeners-Datei sieht gut aus; laut Log vom Testanruf werden die yac-Befehle ja auch ausgeführt. Die nc-Fehlermeldungen zeigen aber, dass die Verbindung zu den YACs auf deinen PCs nicht funktioniert hat (nc wird intern von yac benutzt und stellt einfach eine Verbindung übers Netz her).
Was muß ich bei der YAC-Installation auf den PCs beachten? Welches Modem muß ich wählen, da ich ja über Netz mit FBF verbunden bin. Muß ich in der Windows Firewall vielleicht einen Port für YAC freigeben?
Modem? (Huch...) Du bist doch sicher über Ethernet, USB oder WLAN mit der Fritzbox verbunden (der Zugriff auf z.B. das Webinterface der Fritzbox sollte einfach so funktionieren, ohne dass du dich irgendwie einwählen musst oder ähnliches); also brauchst du dich um Dinge wie Modems nicht kümmern.

Dass die Verbindung fehlschlägt, kann eigentlich nur wenige Ursachen haben: (Ich nehme mal an, dass du dich bei der IP-Adresse nicht geirrt hast.) Entweder läuft der YAC nicht auf deinem PC oder nicht auf dem Standardport (10629) oder deine Firewall verhindert den Zugriff. Im letzten Fall solltest du für die Fritzbox den Zugriff auf TCP/10629 erlauben; im zweiten Fall kannst du in deine Listeners sowas wie "yac --port=4711 ..." schreiben; im ersten Fall ... naja, sollte klar sein. ;-)

Viel Erfolg,

Andreas
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
mailando schrieb:
Ist es irgenwie möglich, zusätzlich zum Meldungsfenster auch noch einen Ton über die Dreambox abzugeben?
Dabei kann ich dir leider nicht helfen (habe keine Dreambox); aber du kannst bestimmt mit Hilfe der Dreambox-Dokumentation herausbekommen, ob man z.B. irgendwie eine MP3-Datei auf der Dreambox abspielen kann. Alles, was dann noch für eine erfolgreiche Zusammenarbeit mit dem Callmonitor fehlt, ist, dass sich die Funktion über das Netz automatisch aufrufen lässt (z.B. über SSH oder das Webinterface der Dreambox); bei den Details kann ich dir dann gerne weiterhelfen.

Andreas
 

buergernb

Neuer User
Mitglied seit
21 Feb 2006
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
Nabend,

Dass die Verbindung fehlschlägt, kann eigentlich nur wenige Ursachen haben:
Ja... dachte ich mit meinem Halbwissen auch. :)

(Ich nehme mal an, dass du dich bei der IP-Adresse nicht geirrt hast.)
Nein. Hab es zwar zur Sicherheit noch mal nachgeschaut und verglichen, aber nein, die sind in beiden fällen richtig.

Entweder läuft der YAC nicht auf deinem PC...
Nein... installiert und gestartet. Läuft. Da kann man ja eigentlich auch nicht viel falsch machen, oder?

Hm... ich glaub, jetzt hab ich den Fehler. Ja das ist es. Hm, sorry. ich war ziemlich dumm. Ich hab grundsätzlich den YAC-Server gestartet, statt dem YAC Listener. Okay, jetzt klappt es auch prima. Danke für eure Hilfe. Asche auf mein Haupt.

Nils
 

buergernb

Neuer User
Mitglied seit
21 Feb 2006
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
Yac

Hi,

Gibt es eigentlich eine Möglichkeit die Action in Listeners statt nur an eine IP an das ganze Netzwerk zu verschicken? Ich meine, gerade wenn der DHCP-Server läuft ist doch das sinnvoller oder? Also statt dem Eintrag:
Code:
^  ^ yac 192.168.178.20
so etwas wie
Code:
^  ^ yac NETWORK
Das NETWORK ist nur exemplarisch und könnte vielleicht der Name des lokalen Netzwerk sein. Geht so etwas?

Nils
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
Hallo Nils,
buergernb schrieb:
Gibt es eigentlich eine Möglichkeit die Action in Listeners statt nur an eine IP an das ganze Netzwerk zu verschicken? Ich meine, gerade wenn der DHCP-Server läuft ist doch das sinnvoller oder?
es gibt im Callmonitor eine Funktion for_leases, die für so etwas gut ist:
Code:
## get matching IPs from multid.leases and execute a command for each of them
## example: for_leases 192.168.10. dboxpopup "Ring!"
(Die passenden IP-Adressen landen als erstes Argument hinter dem Kommando; hier würde also 'dboxpopup 192.168.10.1 "Ring!"' etc. ausgeführt.)

Das funktioniert aber nur für den DHCP-Server von AVM (oder besser müsste funktionieren; ich hab es noch nie ausprobiert, weil meine Box kein DHCP-Server ist) und nicht für dnsmasq (aber für den könnte man bestimmt einfach etwas ähnliches schreiben).

Andreas
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
Das funktioniert aber nur für den DHCP-Server von AVM (oder besser müsste funktionieren; ich hab es noch nie ausprobiert, weil meine Box kein DHCP-Server ist) und nicht für dnsmasq (aber für den könnte man bestimmt einfach etwas ähnliches schreiben).
Nicht ganz. Seit hdeller's Patch für dnsmasq schreibt der dnsmasq aus dem danisahne mod die Leases auch im AVM Format in die Datei /var/flash/multid.leases (das Character Device wird vorher entfernt, da dies nicht in den Flash muss). Wenn's also mit dem DHCP Server von AVM geht, dann sollte es automatisch mit dnsmasq gehen.

Mfg,
danisahne

PS: Patch für den callmonitor 1.0 mit ds-0.2.4 ist nun im danisahne mod Thread online
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
danisahne schrieb:
Wenn's also mit dem DHCP Server von AVM geht, dann sollte es automatisch mit dnsmasq gehen.
Ah, umso besser. :) (Ich wusste nicht, dass der Patch mittlerweile mit drin ist.)

PS: Patch für den callmonitor 1.0 mit ds-0.2.4 ist nun im danisahne mod Thread online
Funktioniert einwandfrei; danke für die Unterstützung.

Andreas
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe [thread=100706]einen neuen Thread zum Callmonitor 1.0[/thread] (und seinen Nachfolgern) erstellt.

Den Callmonitor 1.0 gibt es seit heute Nachmittag. Den Versionssprung in der ersten Stelle habe ich vorgenommen, weil sich unter anderem das Listeners-Format inkompatibel geändert hat (keine Angst, der Großteil ist gleich geblieben).

Lasst uns bitte die Änderungen in dem neuen Thread diskutieren.

Viele Grüße,
Andreas
 

buergernb

Neuer User
Mitglied seit
21 Feb 2006
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
Hm... helft mir mal auf die Sprünge:
es gibt im Callmonitor eine Funktion for_leases, die für so etwas gut ist:

Code:

Code:
## get matching IPs from multid.leases and execute a command for each of them
## example: for_leases 192.168.10. dboxpopup "Ring!"
Wenn ich das also für alle PCs im Netz realisieren will lautet der Code:
Code:
#Quelle  Ziel  Aktion
     ^      ^   yac for_leases 192.168.178.
Nils
 
Status
Für weitere Antworten geschlossen.

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
231,859
Beiträge
2,016,030
Mitglieder
348,948
Neuestes Mitglied
protter