Callmonitor 1.13 und höher: Ankündigungen und Bedienung

Ich weiß nicht ob das hier schonmal gefragt wurde aber bei meiner 7390 ist es so, dass die DECT-Telefone mit Ihrer eigenen Station damals die Rufnummern/Namen die in ihrem Telefonbuch standen auch im Display angezeigt haben. Jetzt, durch die 7390 mit DECT, zeigen diese nur noch die Nummer oder den Namen an, der im Fritz!Box Telefonbuch hinterlegt ist. Kann der Callmonitor nicht via Rückwärtssuche die Namen raussuchen und per DECT weitersenden so wie es die Fritz!Box tut (mit den Nummern aus dem Telefonbuch) oder besser, kann man die Fritz!Box nicht so einstellen dass sie wie die Stationen der DECT-Telefone die Nummer so überträgt dass die Dinger die Rufnummer aus ihren eigenen Telefonbüchern anzeigen?

Handelt sich um Gigaset S79H Handgeräte.
 
So anscheinend,wenn ich das richtig lese, ist der Befehl ether-wake nicht vorhanden
Das liest du richtig; wahrscheinlich war der Befehl in deiner alten Firmware drin, in der neuen aber nicht. Schau beim menuconfig von Freetz mal unter Advanced options/Busybox options.
 
Kann der Callmonitor nicht via Rückwärtssuche die Namen raussuchen und per DECT weitersenden
Guten Morgen, das wurde, wie du vermutest, schon häufiger gefragt. Er kann nicht; es gibt keine Möglichkeit, in die Anrufsignalisierung über DECT einzugreifen.
 
Das liest du richtig; wahrscheinlich war der Befehl in deiner alten Firmware drin, in der neuen aber nicht. Schau beim menuconfig von Freetz mal unter Advanced options/Busybox options.

Hey, super Antwort danke dir sehr.

Ich schau mal nach


EDIT:
@buehmann: Danke dir sehr, genau das wars....neues Image ist schon gebrutzelt und wird morgen gestestet ;-)

Greetz
 
Zuletzt bearbeitet:
Guten Morgen, das wurde, wie du vermutest, schon häufiger gefragt. Er kann nicht; es gibt keine Möglichkeit, in die Anrufsignalisierung über DECT einzugreifen.

Die Fritz!Box kann doch offensichtlich die Namen aus seinem eigenen Telefonbuch mitsenden, wieso dann nicht via Rückwärtssuche? :( Schade... ist super lästig jetzt die Rufnummern doppelt zu pflegen.
 
Hallo,

ich möchte melden dass die Rückwärtssuche zu herold.at und O.Ö.Telefonbuchverlag nicht mehr funktioniert.
herold schaut die Seite noch gleich aus,
O.Ö.Telefonbuchverlag hat sich auf www.dasschnelle.at umbenannt und läuft jetzt (wenn ich das richtig sehe) mit ajax und json.

Weiters möchte nochmals den Wunsch zur Integration von addafix äußern (http://srv1.adaffix.com/adaffix/wap/start.jsp)
Die kommen mit Durchwahlen zurecht und unterstützen sehr viele Länder -> sprich auch für andere Länder als Österreich interessant.
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
Hallo,

erstmal vielen Dank für die ganze Mühe, die in den Callmonitor gesteckt wurde. Er ist der Hauptgrund weshalb ich meine FB mit einer anderen Firmware laufen lasse, zusammen mit dnsmasq.

Seit über einem Jahr meldet der Callmonitor meinem Server wer anruft/angerufen wird und was mit diesen Anrufen geschieht, dieser meldet dann die Ereignisse in Echtzeit via Websocket an jeden angemeldeten Browser/Tablet/Smartphone, und gibt es auch über die Stereoanlage/Tablet/Smartphone via TTS aus.

Nun möchte ich da aber was optimieren, und habe folgende 3 Probleme:

1) Die Variable TIMESTAMP hat eine Auflösung bis in die Sekunden hinein. Dies ist für bestimmte Anwendungszwecke zu grob. Gibt es die Möglichkeit, die Auflösung auf den Millisekundenbereich zu verfeinern? Das Problem ist, dass die Timestamp die einzige zuverlässige Variable ist, um die Sequenz der Ereignisse festzulegen. Denn auf dem Server, der die Daten via getmsg bekommt, diese in eine Datenbank geschrieben werden, dann kann es vorkommen, das mehrere Ereignisse die gleiche Timestamp bekommen, und die Sortierung bei einer Datenbankabfrage über die Timestamp nicht mehr zuverlässig ist und Probleme in der Sequenz bringt. Es ist auch nicht sinnvoll, Serverseitig einen Timestamp zu erzeugen, da die Latenz zwischen dem Telefonereignis und dem ausführen des Server-Codes im Sekundenbereich variiert, so dass ein CANCEL gelegentlich vor einem REQUEST kommt. Versuchen, die Reihenfolge per Postprocessing der Anrufereignisse mit Hilfe der ID-Variable wiederherzustellen scheint eine recht Komplizierte Aufgabe zu sein, insbesondere dann, wenn es durch viele Testanrufe, sowie abgebrochenen Testanrufen, zu vielen Ereignissen pro Sekunde kommt. Hab's mehrere Stunden lang erfolglos versucht.

2) Das Problem bei 1) hat den Ursprung darin, dass ich jedem Telefonat eine eindeutige UUID zuweisen möchte. Also jede zusammengehörende Sequenz von REQUEST, CONNECT, CANCEL bzw. DISCONNECT muss eine eindeutige UUID bekommen. Ruft man also von einer eigenen Nummer eine andere eigene Nummer an, so entstehen 2 UUID's. Eine für alle 2 (request+cancel) bis 3 (request+connect+disconnect) IN-Ereignisse, und eine für alle 2 bis 3 OUT-Ereignisse. Diese UUID sollte für jedes Ereigniss als Variable zu Verfügung stehen, in etwa wie die ID, TIMESTAMP oder SRC variable. Diese eindeutige UUID soll dazu dienen, dass ein DISCONNECT den zugehörigen CONNECT und REQUEST in der Datenbank finden kann, bzw. dass die empfangenden Geräte (Browser,...) entscheiden können, ob ein vorhandenes Ereignis mit einer bestimmten UUID durch das neue Ereignis ersetzt werden soll. Z.B. sollte im Browser ein CONNECT immer ein REQUEST ersetzen, um weniger Daten anzeigen zu müssen. Der einzige saubere Weg, dies zu erreichen, ist durch solch eine UUID, welche direkt in der Fritzbox generiert werden sollte. Die ID, die derzeit mitgeschickt wird, ist leider nicht gut genug.

3) Mein Server besteht aus dem Python Web-Framework CherryPy. Leider kann ich den Server nicht Upgraden, da CherryPy 3.2 die HTTP GET aufrufe in UTF-8 kodierung erwartet, und der Callmonitor diese anscheinend in Latin-1 ausführt. Das ist nicht wirklich schlimm, da ich problemlos eine ältere version laufen lassen kann, aber vielleicht lässt sich da was machen.

Ich wäre für jeden Kommentar dankbar.

Mfg,
Daniel
 
Hallo Daniel,

es freut mich jedes Mal zu hören, wer meinen Callmonitor wo und wofür einsetzt – wenn eine ungewöhnliche Anwendung oder ein Land hinzukommen, umso mehr.

Zu deinen Fragen:

1. Die Auflösung von TIMESTAMP wird von AVM vorgegeben; ich übernehme sie nur. Insofern ist eine Verfeinerung nicht möglich. Einen eigenen zu generieren, möchte ich gerne vermeiden, da die Generierung später als der Anruf erfolgen könnte und ich die Sekunden für hinreichend genau halte (für die Zwecke des Monitorings).

Versuchen, die Reihenfolge per Postprocessing der Anrufereignisse mit Hilfe der ID-Variable wiederherzustellen scheint eine recht Komplizierte Aufgabe zu sein
Ja, wenn ich mich recht erinnere, ist die ID (die auch von AVM stammt) nur während parallel laufender Anrufe eindeutig, danach kann sie sich wiederholen.

2. Eine UUID könnte ich leicht erzeugen und in den Anruf-Variablen bereitstellen.

3) [HTTP-GET-Aufrufe] der Callmonitor diese anscheinend in Latin-1 ausführt.
Der Callmonitor macht nur das, was du ihm sagst (stets zu Diensten ;-)). Richtig ist, dass die Texte wie *_NAME, *_ADDRESS, etc. in Latin-1 vorliegen. Wenn der Callmonitor aber zum Beispiel mit einer DBox, Dreambox oder einem Samsung-Fernseher spricht, konvertiert er sie in UTF-8. Das kannst du bei deinen Aufrufen auch machen: Die Arbeit macht eine Funktion latin1_utf8, die als Filter arbeitet:
Code:
echo "$SOURCE_NAME" | latin1_utf8
Wenn du allerdings mehrere Parameter zu konvertieren hast, machst du es am besten so wie die anderen höherwertigen Benachrichtigungsfunktionen, die intern getmsg benutzen: Wähle einen eindeutigen Namen NAME für den Typ deiner Nachricht, implementiere encode_NAME, deine Benachrichtigungsfunktion und evtl. noch default_NAME in einer .sh-Datei im Erweiterungsverzeichnis /tmp/flash/callmonitor/actions.local.d. Beispiel (Typ ist "daniel"):
Code:
encode_daniel() { # Gibt den String $1 (der das $2. Argument von getmsg ist) kodiert aus
  echo "$1" | latin1_utf8
}

default_daniel() { # brauchst du nur, falls getmsg mal ohne (Nicht-Options-und-Template-)Argument aufgerufen wird
  echo "Hello, world!"
}

meine_benachrichtigung() {
  getmsg -T daniel "http://my.server/deliver?foo=%s&bar=%s" "$SOURCE_NAME" "$SOURCE_ADDRESS"
}
In dem erzeugten GET-Request lägen in diesem Beispiel beide Parameter-Werte in UTF-8 vor.

Hoffe, das hilft. Die UUID nehme ich mal auf meine Todo-Liste.

Viele Grüße,

Andreas
 
callmonitor-1.20

Hallo,

Version 1.20 steht zum Download bereit. Ich habe einige der Anregungen der letzten Wochen umgesetzt. Danke an duffy6, berndy2001 und leinad75 für die Hinweise und Ideen:

  • herold.at: An Änderungen angepasst
  • DasSchnelle.at: An Änderungen angepasst
  • Einbindung einer benutzerdefinierten Rückwärtssuche ist nun möglich (einstellbar auf der Rückwärtssuche-Seite; Anleitung siehe unten).
  • Neue Variable UUID steht Aktionen zur Verfügung. Sie identifiziert den Anruf (Folge von *:request bis *:disconnect oder *:cancel), nicht ein einzelnes Ereignis: Wie ID, nur (im Rahmen der zufälligen UUID-Erzeugung) global eindeutig.

Viel Spaß!

Andreas

PS: @berndy2001: Die Rückwärtssuche auf m.adaffix.com ist momentan down (?). Deswegen dazu nichts Neues.

Kurzanleitung für benutzerdefinierte Rückwärtssuche

/tmp/flash/callmonitor/reverse-userdef muss ausführbar sein, wird aufgerufen mit Rufnummer als Argument (im internationalen Format, z.B. +498912345); existiert ein Name, Ausgabe auf STDOUT: "Name; Adresse" (einzeilig; in Latin-1), Rückgabewert 0; existiert kein Name, Rückgabewert 1; bei Fehlern Rückgabewert 2 oder größer.
 
Zuletzt bearbeitet:
Hi,

in einem Beitrag ein paar Seiten vorher wurde mir der folgende Befehl genannt, um das aktuell verwendete Telefonbuch vom Callmonitor anzuzeigen.

Das hatte seinerzeit auch gut geklappt. Nun klappt es irgendwie nicht mehr und ich bekomme eine Fehlermeldung.

Der Callmonitor funktioniert ansonsten einwandfrei.

Code:
root@fritz:/var/mod/root# /usr/www/cgi-bin/webcm getpage=/usr/www/all/html/callmonitor/fonbuch.txt
Content-Type: text/plain

getcgivars(): Unsupported REQUEST_METHOD.

Was mach ich da falsch?

Gruesse,

Goggo
 
Hallo Andreas,

Danke für die Version 1.20. Ich habe die nun am Laufen und das mit der UUID funktioniert einwandfrei.

Diese benutzerdefinierte Rückwärtssuche hört sich interessant an. Am liebsten würde ich es so machen, dass die Fritzbox meinen Server abfragt, welcher dann bei verschiedenen Providern nachsuchen würde und der Fritzbox dann das Ergebnis liefert, da die Programmierung so um einiges erleichtert wird. Das scheint ja nun möglich zu sein. Wenn ich nun ein neues "reverse" Script anlege, etwa homeserver.sh, wie habe ich da vorzugehen? Kann ich per FTP eine Datei in das reverse Verzeichnis auf der Fritzbox hochladen, und diese dort auch per FTP-fähigem Texteditor abändern? Ich kenne mich mit Shell-Script gar nicht aus, und würde das dann so per Trial-and-Error ausprobieren bis es passt. Würde ich so einen Absturz der Fritzbox riskieren falls das skript Fehler enthält? Wie gehe ich da am besten vor?

Wegen der Änderung/Hinzufügen von Shell-Skripten, wie z.B. das von Dir erwähnte daniel.sh für die UTF-8 konvertierung, wie kann ich da am besten vorgehen? Sorry für diese Neuling-Frage, ich brauche da leider einen kleinen Schubser in die richtige Richtung. Kann man das per FTP-fähigen Texteditor machen und die Änderungen sofort nur durch Abspeichern und ohne Reboot anwenden? (So bin ich's von meinem Server gewohnt)

Danke nochmals für den schnellen Release.

Daniel
 
Hallo Goggo16,
in einem Beitrag ein paar Seiten vorher wurde mir der folgende Befehl genannt, um das aktuell verwendete Telefonbuch vom Callmonitor anzuzeigen.
wie man webcm (das nicht zum Callmonitor gehört!) aufzurufen hat, hat sich geändert. Lass lieber den Callmonitor das Telefonbuch abrufen (macht er automatisch beim Start) und lass es dir mit
Code:
phonebook list avm
ausgeben.

Viele Grüße,

Andreas
 
Hallo Daniel,

nur eine Verständnisfrage: Du übernimmst die Signalisierung auf Endgeräten selbst auf deinem Server und willst jetzt auch noch die Rückwärtssuche selbst machen. Damit hast du fast alle wesentlichen Funktionalitäten vom Callmonitor übernommen; brauchst du ihn dann noch?

Zur benutzerdefinierten Rückwärtssuche: Ich habe das momentan so vorgesehen, dass nur dieses eine Programm festen Namens, das im beschreibbaren Bereich des Dateisystems liegt (und im Flash persistiert werden kann), benutzt werden kann. Dort kann man dann veranstalten, was immer man möchte. In das reverse-Verzeichnis unterhalb von /usr/lib/callmonitor kannst du im laufenden Betrieb nicht schreiben; natürlich kann man auch dort (zur Compilezeit des Images) weitere eigene Rückwärtssuche-Anbieter ergänzen und in provider.cfg eintragen, aber dieser Weg wird von mir nicht unterstützt.

Ich lade Dateien per scp auf die Fritzbox hoch, aber FTP, Samba oder ähnliches tut es natürlich auch. Texteditoren gibt es auch auf der Fritzbox, aber die benutze ich nur im Notfall, da sie in der Funktionalität recht eingeschränkt sind. Arbeiten auf der Fritzbox kann man z.B. per SSH wie auf jedem anderen Server.

reverse-userdef braucht kein Shell-Skript zu sein. Das kann meinetwegen auch Python oder kompiliertes C sein; hauptsache ausführbar.

Änderungen kannst du ohne Reboot benutzen. Wie das Dateisystem der Fritzbox strukturiert ist, liest du besser im Freetz-Wiki nach (ich hoffe, das steht dort irgendwo): Knapp gesagt: Es gibt persistente, nur-lesbare Teile sowie flüchtige, die auch beschreibbar sind, aber beim nächsten Reboot verlorengehen. Durch "modsave flash" wird der Bereich /tmp/flash zusammengepackt gesichert, so dass er auch nach dem nächsten Reboot zur Verfügung steht.

Viele Grüße

Andreas
 
Zuletzt bearbeitet:
Danke Andreas :)
 
Version 1.20 steht zum Download bereit.

hey, vielen dank für die schnellen änderungen.

adaffix war heute down, geht aber jetzt wieder (edit: wieder down, edit2: wieder up);
beim dasschnelle klappt derzeit die abfrage nicht, website geht aber (langsam). vielleicht liegts daran?
 
Zuletzt bearbeitet:
Hallo,

ich habe das gleiche Problem wie auf dem Bild in diesem Thread zu sehen ist. Leider habe ich dazu die mögliche Lösung nicht gefunden.

Ich habe versucht, die letzte Version (1.20.1) in ein Freetz 1.2 mit der Addon-Methode zu integrieren. Ist das grundsätzlich möglich? Muss ich noch etwas zusätzlich beachten neben der Beschreibung im Wiki?

Vielen Dank im voraus für Eure Hilfe.
 
Hallo KBeng,

ich habe das schon lange nicht mehr probiert, aber ja, grundsätzlich sollte das funktionieren. Ich teste es selbst einmal und melde mich dann wieder.

Viele Grüße

Andreas

PS: Ich habe es getestet; die Installation als Add-on ist nicht mehr möglich: Als Add-ons können nur Pakete installiert werden, die so weit vorbereitet sind, dass ein reines Entpacken für die Installation genügt. Der Callmonitor braucht inzwischen allerdings mehr Arbeit (vor allem Auswahl der zu installierenden Komponenten, aber auch Kompilieren).

Am einfachsten kannst du die aktuelle Version so einbinden (im Wurzelverzeichnis von Freetz):
Code:
svn switch http://svn.freetz.org/trunk/make/callmonitor/callmonitor.mk make/callmonitor/callmonitor.mk
Das holt die callmonitor.mk mit aktueller Versionsnummer und Prüfsumme aus der Entwicklerversion von Freetz.
 
Zuletzt bearbeitet:

Neueste Beiträge

Statistik des Forums

Themen
244,691
Beiträge
2,216,605
Mitglieder
371,308
Neuestes Mitglied
Chrischan 79
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.