Erweiterter callmonitor

Bin mir sicher, dass die eingetragen ist. Das ist meine erste MSN und auch portierte VoIP-Rufnummer.

Wähle ich über *111# raus (also Festnetz) wird die Nummer aufgelöst, über *121# (SIP0) nicht. In der tempcall.cfg steht die Nummer dann ebenfalls ohne OKZ drin.

Wie kann ich die Abfrage manuell starten?
 
Erkan schrieb:
Wie kann ich die Abfrage manuell starten?
Code:
. /usr/bin/callmonitor.out # Funktionen laden
set -x # Jeden ausgeführten Befehl anzeigen
reverse_lookup 01234567 # Nummer nachschlagen
 
OK, also reverse_lookup 08xxx4xxxx9 bringt mir natürlich das richtige Ergebnis.
reverse_lookup 4xxxx9 bringt mir nix, da keine OKZ davor gesetzt wird.

Code:
~ # reverse_lookup 4xxxxx9
+ reverse_lookup 4xxxxx9
+ local NUMBER=4xxxxx9
+ get_it OKZ
+ sed -ne s/^OKZ=\(['"]\?\)\(.*\)\1[        ]*/\2/p /var/flash/debug.cfg
+ local VALUE=
+ echo
+ OKZ=
+ NUMBER=4xxxxxx9
 
Hab's grad selbst gemerkt. Ich dachte die OKZ wird aus der voip.cfg abgefragt. Hab die OKZ nun in der debug.cfg und jetzt geht's.
Danke!

Hast Du zufällig auch eine Lösung für mein 2. Problem? Ich möchte SIPx einen Namen geben. Also dass nicht "Anruf für SIPx" sondern "Anruf für NAME" angezeigt wird.
 
Erkan schrieb:
Ich dachte die OKZ wird aus der voip.cfg abgefragt.
Steht die dort irgendwo (oder in einer anderen Datei)? Ich finde sie bei mir nicht.

Zu deinem 2. Problem: Mach doch sowas wie
Code:
case "$CALLED" in
  SIP0) CALLED="mich" ;;
  SIP1) CALLED="dich" ;;
  SIP*) CALLED="irgendjemanden" ;;
esac
vor dem Aufruf von dreammessage (z.B. in einer eigenen Funktion, die du per debug.cfg in /var/tmp/callmonitor.out anlegst)
 
buehmann schrieb:
Erkan schrieb:
Ich dachte die OKZ wird aus der voip.cfg abgefragt.
Steht die dort irgendwo (oder in einer anderen Datei)? Ich finde sie bei mir nicht.

Sollte eigentlich irgendwo drinstehen, denn schließlich verwendet die box diese ja auch wenn man ohne Vorwahl rauswählt. Und beim Einrichten der VoIP-Rufnummern muss man diese ja auch angeben.
Finden tu ich aber auch nix ... !?
 
Jetzt kommt nur noch das Message-Fenster ohne Inhalt !?

Code:
# Anpassung der callmonitor.out

cat <<'EOP' > /var/tmp/callmonitor.out
case "$CALLED" in
        SIP0) CALLED="Telefon xxxx" ;;
        SIP1) CALLED="Telefon xxxx" ;;
        SIP2) CALLED="1&1 xxx" ;;
        SIP3) CALLED="1&1 xxx" ;;
        SIP4) CALLED="1&1 xxx" ;;
        SIP5) CALLED="1&1 xxx" ;;
esac

# Eigene Message
dream_message() {
        cat <<-EOM
                $(date +%A', '%d'.'%B' '%Y)

                $(date +%R' Uhr - ') für $CALLED

                von $MSISDN
                $CALLER
                EOM
}
EOP

# nutze hash um den Listener auf Kommentar zu setzen.
#sample:  #Quelle      Ziel    Aktion
#sample:  ^01239876$   ^       dboxpopup dbox1
#sample:  ^(0162|089)  ^SIP1$  dboxmessage dbox2
cat <<'EOP' > /var/tmp/callmonitor.listeners
#Quelle         Ziel            Aktion
^               ^               dreammessage --user='root' --password='xxxxxxx' 192.168.178.10 "$(dream_message)"
^0170xxxxxx8    ^4xxxx1         etherwake -i eth0 00:xxxx:xx:xx:ED
EOP
 
Die CALLED-Auswertung solltest du in die dream_message-Funktion verschieben, schließlich soll die bei jedem Anruf durchgeführt werden.
Ansonsten könnte es sein, dass die /var/tmp/callmonitor.out Syntaxfehler hat. Mach mal einen Syntax-Check mit "ash -n /var/tmp/callmonitor.out"; die Zeile mit dem EOM kommt mir verdächtig vor: Vor dem EOM darf nur genau ein TAB stehen.
Code:
cat <<'EOP' > /var/tmp/callmonitor.out
# Eigene Message
dream_message() {
    local CALLED
    case "$CALLED" in
        SIP0) CALLED="Telefon xxxx" ;;
        SIP1) CALLED="Telefon xxxx" ;;
        SIP2) CALLED="1&1 xxx" ;;
        SIP3) CALLED="1&1 xxx" ;;
        SIP4) CALLED="1&1 xxx" ;;
        SIP5) CALLED="1&1 xxx" ;;
    esac
    cat <<-EOM
	$(date +%A', '%d'.'%B' '%Y)

	$(date +%R' Uhr - ') für $CALLED

	von $MSISDN
	$CALLER
	EOM
}
EOP
 
Hab nun die TABS entfernt, die zuviel waren. ash bringt keine Meldung.
Mir kommt es so vor, als würde die erzeugte callmonitor.out ignoriert und deshalb wird kein Inhalt angezeigt.

Code:
~ # cat /var/tmp/callmonitor.out
dream_message() {
   local CALLED
   case "$CALLED" in
        SIP0) CALLED="Telefon xxxxx" ;;
        SIP1) CALLED="Telefon xxxxx" ;;
        SIP2) CALLED="1&1 xxxxx" ;;
        SIP3) CALLED="1&1 xxxxx" ;;
        SIP4) CALLED="1&1 xxxxx" ;;
        SIP5) CALLED="1&1 xxxxx" ;;
   esac

   cat <<-EOM
        $(date +%A', '%d'.'%B' '%Y)

        $(date +%R' Uhr - ') für $CALLED

        von $MSISDN
        $CALLER
        EOM
}
~ #
^ ^ dreammessage --user='root' --password='xxxxxx' 192.168.178.10 "$(dream_message)"
 
Erkan schrieb:
Mir kommt es so vor, als würde die erzeugte callmonitor.out ignoriert und deshalb wird kein Inhalt angezeigt.
Ahh, ich glaube, wir haben ein Timing-Problem: Der Callmonitor wird gestartet, bevor die debug.cfg ausgeführt wird und die Datei /var/tmp/callmonitor.out geschrieben wird. Du könntest mal probieren, ob ein Neustarten mittels "/etc/init.d/rc.voip restart" ausreicht.
 
Am pragmatischten, indem du den Neustart von rc.voip in deiner debug.cfg machst (nachdem die zusätzlichen Konfigurationen geschrieben wurden). :)

Ansonsten denke ich mal darüber nach, wie ich den callmonitor umbauen könnte, dass man auch nach dem Start die Konfiguration ändern kann.
 
Das hatte ich schon versucht, aber dann loopt die box und nix geht mehr. Habe es ganz am Ende der debug.cfg eingefügt und auch direkt nach Erzeugung der callmonitor.out ... geht so nicht :( Versucht hab ich:
/etc/init.d/rc.voip restart
./etc/init.d/rc.voip restart
und
. /etc/init.d/rc.voip restart
 
Imsadi schrieb:
Ich nutze einen VDR (auf Linux Basis) und möchte die
Daten vom VDR aus auslesen, sobald ein Anruf eingeht und das
ganze dann auf dem TV ausgeben per svdrpsend.pl.

Das Ganze geht, allerdings nicht per svdrpsend.pl, da ja kein perl auf der Box läuft...

Aber es reicht, per nc einen "mesg" Befehl an Port 2001 des VDR zu schicken:

Code:
^ ^ echo -e "mesg Anruf von $MSISDN ($CALLER) an $CALLED \nquit" | nc -w 2 192.168.xxx.xxx 2001

Wichtig ist, die Verbindung mit "quit" zu beenden, weil der VDR nur eine Verbindung gleichzeitig zulässt.
 
Erkan schrieb:
Das hatte ich schon versucht, aber dann loopt die box und nix geht mehr. Versucht hab ich:
/etc/init.d/rc.voip restart
Bei dem hätte ich erwartet, dass es funktioniert. Schließlich wird es so (bis auf "restart") auch in rc.S aufgerufen ... Was genau heißt denn "loopt"? Bootet immer wieder neu?
 
Genau, startet immer wieder neu.
Läuft hoch, startet DSL und Netzwerk und nach ein paar Sekunden reboot. Telefonieren ist gar nicht möglich - der S0 bleibt tot. Hab gerade noch geschafft die Zeile wieder zu löschen :(
 
Hab's nun nochmal ohne "./" probiert. Rebooten tut sie in diesem Fall nicht, aber es läuft kein "telefon" und kein "callmonitor" (laut ps). Scheint von einem ins andere Timing-Problem zu kommen :(

Was mir noch aufgefallen ist, wenn ich manuell restarte macht der callmonitor ebenfalls Probleme. Es kommt der erste eingehende Ruf, die Nummer wird aufgelöst und der Telefonbucheintrag angezeigt. Kommt die gleiche Nummer ein zweites mal, dann wird der Name doppelt angezeigt. Auch in der tempcall.cfg steht der Eintrag dann doppelt drin mit gleicher MSISDN ...
 
Erkan schrieb:
Auch in der tempcall.cfg steht der Eintrag dann doppelt drin mit gleicher MSISDN ...
Hi, ich hab gerade versucht, diese Verdoppelung zu reproduzieren. Ist mir nicht gelungen: Bei meinem Versuch wurde beim ersten Anruf die Nummer aufgelöst und in tempcall.cfg eingetragen, beim zweiten (dritten, vierten) Anruf blieb's dann bei dem einen Eintrag.

Ich könnte mir höchstens vorstellen, dass bei zwei kurz hintereinander eintreffenden Anrufen von der gleichen Rufnummer auch der zweite in tempcall.cfg eingetragen wird, weil die erste Eintragung noch nicht fertig ist. Kamen deine Anrufe kurz hintereinander rein?
 
Komisch ... gestern hatte ich diesen Effekt mindestens 4 mal hintereinander und heute kann ich es nicht mehr reproduzieren :( oder :) ?

Hatte gestern extra mal 5 Minuten gewartet, da ich auch dachte, dass der Zeitraum zu kurz war. Trotzdem wurde er immer wieder doppelt eingetragen.
 
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.