Erweiterter callmonitor

hi,

habe mal in die rc.voip geschaut:

Code:
/etc/init.d # cat rc.voip
#! /bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
case "$1" in
 "" | start )
 if [ "`pidof telefon`" = "" ] ; then
 CALLINFO=`sed -e '/^CALLINFO=/!d' -e 's/[^=]*=//' /var/flash/debug.cfg`
 CALLINVERS=`sed -e '/^CALLINVERS=/!d' -e 's/[^=]*=//' /var/flash/debug.cfg`
 CALLUPDATE=`sed -e '/^CALLUPDATE=/!d' -e 's/[^=]*=//' /var/flash/debug.cfg`
 case $CALLINFO in
 1)
  if [ -x /usr/bin/callmonitor.sh ]
  then
   telefon a127.0.0.1 | /usr/bin/callmonitor.sh $CALLINVERS $CALLUPDATE &
  else
   telefon a127.0.0.1
  fi
  ;;
 2)
  telefon >/dev/null
  ;;
 3)
  if [ -x /usr/bin/callmonitor.sh ]
  then
   telefon | /usr/bin/callmonitor.sh $CALLINVERS $CALLUPDATE &
  else
   telefon
  fi
  ;;
 4)
  telefon
  ;;
 *)
 if [ "$AB_TEST" = "1" ] ; then
 telefon > /dev/null
 else
 telefon a127.0.0.1> /dev/null
 fi
 ;;
 esac
 fi
 if [ "`pidof voipd`" = "" ] ; then
 voipd
 fi
 ;;
 stop )
 AVMDAEMONS="voipd"
 DAEMONS="telefon"
 for i in $AVMDAEMONS ; do
         eval $i -s
 done
 sleep 3
 for i in $DAEMONS $AVMDAEMONS ; do
 killall -15 $i
 done
 sleep 3
 for i in $DAEMONS $AVMDAEMONS ; do
 killall -9 $i
         rm -f /var/run/$i.pid
 done
 #rmmod capi
 #rmmod capifs
 #rmmod kernelcapi
 #rmmod capiutil
 ;;
 reload )
 AVMDAEMONS="voipd"
 for i in $AVMDAEMONS ; do
         eval $i -s
 done
 sleep 1
 for i in $AVMDAEMONS ; do
 killall -15 $i
 done
 sleep 3
 for i in $AVMDAEMONS ; do
 killall -9 $i
 done
 $0 start
 ;;
 restart )
 $0 stop
 $0 start
 ;;
 * )
 echo "Usage: $0 {start|stop|reload|restart}"
 ;;
esac
/etc/init.d #

...ist ungefähr so, als wenn ein Schwein in´s Uhrwerk glotzt. :oops:

Caddy
 
Bekomme den neuen Callmontor auch nicht am lafen :cry:


telnet Verbindung aufgebaut
~ # /etc/init.d/rc.voip restart
voipd: stopped.
killall: voipd: no process killed
killall: telefon: no process killed
killall: voipd: no process killed
mknod: /var/flash/fx_def: File exists
telefon: use clock_gettime(CLOCK_MONOTONIC)!
telefon: set initial telefon time from linux time to 16:33 29.09 2005!
sizeof TA_DATA = 0x2d94!
telefon: Read TA_Charge ignorerd!
mknod: /var/flash/fx_cg: File exists
telefon: mount file '/var/flash/fx_def' id: 99!
telefon: file '/var/flash/fx_def' id: 99 mounted!
telefon: ERROR No config file '/var/flash/fx_def' !
Setupdaten geslesen!
telefon: mount file '/var/flash/fx_cg' id: 132!
~ # telefon: file '/var/flash/fx_cg' id: 132 mounted!
telefon: ERROR No CG file '/var/flash/fx_cg' !
telefon: found SIP Controller 5
telefon: found POTS Controller 4
telefon: found ISDN Controller 2
telefon: found ISDN_NT Controller 3
AB_LED: Power On
InitAnalog ExternalXSC: 10


und in der debug.cfg habe ich:



# 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
EOP
^ ^ dboxmessage 192.168.2.13
^ ^ dboxpopup 192.168.2.14

# CALLINFO:
# 0: normaler AVM start ( nur auf lokaler IP Listen ),
# 1: CALLINFO,
# 2: listen, kein CALLINFO,
# 3: CALLINFO + Listen
# 4: output nicht nach /dev/null sonst normal
CALLINFO=1

# CALLINVERS wenn 1: Suche nach Namen ueber das Telefonbuch
CALLINVERS=1

# CALLUPDATE wenn 1:Namen in debug.cfg merken
# Ansonsten werden die Namen in /var/tmp/tempcall.cfg abgelegt
CALLUPDATE=0
 
jenswmeyer schrieb:
~ # /etc/init.d/rc.voip restart
Hi, könntest du mal stattdessen
Code:
sh -x /etc/init.d/rc.voip restart
ausprobieren? Das gibt alle Befehle aus, die beim Skriptablauf ausgeführt werden. Vielleicht finden wir so raus, was bei euch beim Starten schiefläuft.
 
buehmann schrieb:
jenswmeyer schrieb:
~ # /etc/init.d/rc.voip restart
Hi, könntest du mal stattdessen
Code:
sh -x /etc/init.d/rc.voip restart
ausprobieren? Das gibt alle Befehle aus, die beim Skriptablauf ausgeführt werden. Vielleicht finden wir so raus, was bei euch beim Starten schiefläuft.

Code:
fritz.box login: root
Password:


BusyBox v1.00 (2005.06.01-21:22+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.



telnet Verbindung aufgebaut
~ # sh -x /etc/init.d/rc.voip restart
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ /etc/init.d/rc.voip stop
voipd: stopped.
killall: voipd: no process killed
killall: telefon: no process killed
killall: voipd: no process killed
+ /etc/init.d/rc.voip start
mknod: /var/flash/fx_def: File exists
telefon: use clock_gettime(CLOCK_MONOTONIC)!
telefon: set initial telefon time from linux time to 21:10 29.09 2005!
sizeof TA_DATA = 0x2d94!
telefon: Read TA_Charge ignorerd!
mknod: /var/flash/fx_cg: File exists
telefon: mount file '/var/flash/fx_def' id: 99!
telefon: file '/var/flash/fx_def' id: 99 mounted!
telefon: ERROR No config file '/var/flash/fx_def' !
Setupdaten geslesen!
telefon: mount file '/var/flash/fx_cg' id: 132!
telefon: file '/var/flash/fx_cg' id: 132 mounted!
telefon: ERROR No CG file '/var/flash/fx_cg' !
telefon: found SIP Controller 5
~ # telefon: found POTS Controller 4
telefon: found ISDN Controller 2
telefon: found ISDN_NT Controller 3
AB_LED: Power On
InitAnalog ExternalXSC: 10
~ #
 
Code:
+ /etc/init.d/rc.voip stop
+ /etc/init.d/rc.voip start
Ah, das ruft intern stop und start auf. Daran habe ich nicht gedacht. Könntest du die beiden von Hand aufrufen, start dann mit dem "sh -x" davor? Wir müssen herausfinden, was genau beim Starten passiert (die Zeilen mit dem Pluszeichen davor sind die ausgeführten Befehle).
 
~ # sh -x /etc/init.d/rc.voip stop
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ AVMDAEMONS=voipd
+ DAEMONS=telefon
+ eval voipd -s
+ voipd -s
voipd: stopped.
+ sleep 3
+ killall -15 telefon
+ killall -15 voipd
killall: voipd: no process killed
+ sleep 3
+ killall -9 telefon
killall: telefon: no process killed
+ rm -f /var/run/telefon.pid
+ killall -9 voipd
killall: voipd: no process killed
+ rm -f /var/run/voipd.pid
~ #


~ # sh -x /etc/init.d/rc.voip start
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ pidof telefon
+ [ = ]
+ sed -e /^CALLINFO=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLINFO=1
+ sed -e /^CALLINVERS=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLINVERS=1
+ sed -e /^CALLUPDATE=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLUPDATE=0
+ [ -x /usr/bin/callmonitor.sh ]
+ /usr/bin/callmonitor.sh 1 0
+ telefon a127.0.0.1
+ pidof voipd
+ [ = ]
+ voipd
mknod: /var/flash/fx_def: File exists
telefon: use clock_gettime(CLOCK_MONOTONIC)!
telefon: set initial telefon time from linux time to 8:51 30.09 2005!
sizeof TA_DATA = 0x2d94!
telefon: Read TA_Charge ignorerd!
mknod: /var/flash/fx_cg: File exists
telefon: mount file '/var/flash/fx_def' id: 99!
telefon: file '/var/flash/fx_def' id: 99 mounted!
telefon: ERROR No config file '/var/flash/fx_def' !
Setupdaten geslesen!
telefon: mount file '/var/flash/fx_cg' id: 132!
telefon: file '/var/flash/fx_cg' id: 132 mounted!
telefon: ERROR No CG file '/var/flash/fx_cg' !
telefon: found SIP Controller 5
~ # telefon: found POTS Controller 4
telefon: found ISDN Controller 2
telefon: found ISDN_NT Controller 3
AB_LED: Power On
InitAnalog ExternalXSC: 10
~ #
 
hi,

hier meine ausgaben bei: sh -x /etc/init.d/rc.voip restart:

Code:
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ /etc/init.d/rc.voip stop
voipd: stopped.
killall: voipd: no process killed
killall: telefon: no process killed
killall: voipd: no process killed
+ /etc/init.d/rc.voip start
voipd: csock: using poll
/etc/init.d #

dann sh -x /etc/init.d/rc.voip stop:
Code:
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ AVMDAEMONS=voipd
+ DAEMONS=telefon
+ eval voipd -s
+ voipd -s
voipd: stopped.
+ sleep 3
+ killall -15 telefon
+ killall -15 voipd
killall: voipd: no process killed
+ sleep 3
+ killall -9 telefon
killall: telefon: no process killed
+ rm -f /var/run/telefon.pid
+ killall -9 voipd
killall: voipd: no process killed
+ rm -f /var/run/voipd.pid
/etc/init.d #

dann sh -x /etc/init.d/rc.voip start:

Code:
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
+ pidof telefon
+ [  =  ]
+ sed -e /^CALLINFO=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLINFO=1
+ sed -e /^CALLINVERS=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLINVERS=1
+ sed -e /^CALLUPDATE=/!d -e s/[^=]*=// /var/flash/debug.cfg
+ CALLUPDATE=1
+ [  = 1 ]
+ telefon a127.0.0.1
+ pidof voipd
+ [  =  ]
+ voipd
voipd: csock: using poll
/etc/init.d #

hoffe das bringt uns weiter.
Aber irgend etwas stimmt mit meiner Box sowieso nicht.
JFritz 04.4 erkennt meine Firmware nicht, der Anrufmonitor unter JFritz funktioniert auch nicht, wenn ich Yac ausgewählt habe, und den callmonitor per Hand gestartet habe. Obwohl der callmonitor ja dann läuft und ich z.b. auf der dreambox 'ne message bekomme.
Seltsam, seltsam das ganze. :roll:

Ach ja, und der FBeditor will auch nicht funktionieren, er kann die Firmware nicht auslesen, bzw. ich kann dort nicht auswählen das er sie von der Box holen soll.
Vielleicht hängt das alles irgendwie zusammen?

Ciao
Caddy
 
Hallo zusammen,

bei mir funktioniert der callmonitor recht gut.
KLASSE ARBEIT!!!

Nur eines verstehe ich nicht.

Wenn ich in meiner callmonitor.listeners die VoIP Nummern eintrage (^3xxxx6) reagiert er nicht. Ich muss dort folgendes Eintragen: ^SIP0 oder ^SIP1 oder ^SIP2 ...

Ist das richtig?

Noch ne andere Frage:

Ist es möglich den Callmonitor eine eMail verschicken zu lassen, wenn ich meinen PC über ne bestimmte Rufnummer aufwecke? So ne Art von Mailsend (smpt über 1&1)?


Und noch ne Frage:
Wenn ich per Telner auf meiner box bin und den befehl GETMSG eingebe, findet er den Befehl nicht. Sämtliche GETMSG-Befehle in meiner callmonitor.listeners funktionieren daher nicht. Woran kann das liegen?
 
RalfBauer schrieb:
Wenn ich in meiner callmonitor.listeners die VoIP Nummern eintrage (^3xxxx6) reagiert er nicht. Ich muss dort folgendes Eintragen: ^SIP0 oder ^SIP1 oder ^SIP2 ...
Ja, das ist richtig, der Dienst telefon benutzt diese Kürzel für Anrufe, die an die SIP-Nummern gehen.

Ist es möglich den Callmonitor eine eMail verschicken zu lassen
Ja, auf der Box gibt es ein Kommando mailer, mit dem das geht. Hier im Forum gibt es auch Anleitungen, wie man es aufruft.

Wenn ich per Telner auf meiner box bin und den befehl GETMSG eingebe, findet er den Befehl nicht.
Der Befehl heißt "getmsg" (Kleinschreibung) und wird in callmonitor.out als Funktion definiert. Wenn du den direkt auf der Kommandozeile benutzen willst, musst du die Datei vorher einlesen per ". /usr/bin/callmonitor.out".
 
Hi,

alles klar, danke. Hat alles wunderbar geklappt.

Jetzt hab ich nur noch ein Problem:

Ich möchte mit einer Nummer den PC aufwecken und mit ner Anderen herunterfahren. Das aufwecken klappt. Nur das herunterfahren nicht.

PS: Mail verschicken funktioniert auch!!!

Bsp:
^01xxxxxxxx ^SIP0 etherwake -i -eth1 xx:xx:xx:xx:xx:xx:xx
^01xxxxxxxx ^SIP0 mailer (und so weiter,...)
^01xxxxxxxx ^SIP1 nc 10.0.0.11 44444
^01xxxxxxxx ^SIP1 mailer (und so weiter,...)

wenn ich den nc befehl in der telnet-Session auf der box direkt in der Konsole eingebe, funktioniert es. Habe den Callmonitor auch schon im debug-Mode laufen lassen. Da Meldet er SUCEEDED.
Allerdings steht als executed 'nc 10.0.0.11 44444' (ich mein die hochkommas). Wenn ich es mit hochkommas in der konsole eingebe bekomme ich die Meldung ...not found.

Kann mir vielleicht irgend jemand weiterhelfen?

Vielen Dank im voraus.
 
RalfBauer schrieb:
Allerdings steht als executed 'nc 10.0.0.11 44444' (ich mein die hochkommas). Wenn ich es mit hochkommas in der konsole eingebe bekomme ich die Meldung ...not found.
Die Hochkommas gehören zur Debug-Ausgabe, damit man genau sieht, wo die Kommandozeile anfängt und aufhört. Wenn du vor den Hochkomma-Ausdruck in der Konsole ein "eval " schreibst, sollte es dort gehen (etwas ähnliches macht der callmonitor).

Du könntest mal probieren, den nc explizit mit einer leeren Eingabe zu versorgen
Code:
nc 10.0.0.11 44444 </dev/null
Wenn das hilft, haben wir einen Fehler im callmonitor gefunden (den ich dann beheben werde).

Viele Grüße.
 
Kann ich den Callmonitor auch noch am laufen bekommen?
 
jenswmeyer schrieb:
+ /usr/bin/callmonitor.sh 1 0
+ telefon a127.0.0.1
Anscheinend wird der callmonitor bei dir gestartet. Bist du sicher, dass er dann später nicht mehr läuft? Ich hätte keine Erklärung dafür parat. :-/
 
also bei beiden dboxen kommt nicht an :-(
 
Hallo Jens, Schau mal bitte in deine debug.cfg. Wenn die wirklich so aussieht wie von dir gepostet, dürfte in callmonitor.listeners nicht viel stehen und dann natürlich auch nichts bei deinen Boxen ankommen.
Code:
cat <<EOP > /var/tmp/callmonitor.listeners
#Quelle      Ziel    Aktion
EOP
^        ^       dboxmessage 192.168.2.13
^        ^       dboxpopup 192.168.2.14
Das EOP muss ans Ende. (Alles zwischen <<EOP und EOP wird in die Datei geschrieben.)

Viele Grüße.
 
nc 10.0.0.11 44444 </dev/null

funktioniert leider auch nicht.

Kann es sein das es daran liegt, weil nc in der busybox drinsteckt?
 
caddy schrieb:
kannst Du bei mir etwas erkennen?
Hi, bei dir wird der callmonitor nicht gestartet, obwohl CALLINFO=1 ist. Hmm, mal ganz wild geraten: Hast du in der debug.cfg hinter CALLINFO=1 noch irgendwelche Leerzeichen oder so?
 
Super!!!!!!
Du bist mein Gott!

Tatsächlich, hinter Callinfo war noch ein Leerzeichen.
Mann was hab ich alles probiert. Nicht zu fassen.:D

Danke buehmann! Solltest Du mal in Bremen sein, geb ich Dir einen aus. Das haste Dir verdient. :wink:

Caddy
 
Habe es da so stehen

Code:
# 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
EOP
^ ^ dboxmessage 192.168.2.13
^ ^ dboxpopup 192.168.2.14
# Immer auf Kommentar lassen, damit kein Syntaxfehler in der Shell kommt.
#CALLOWNGET=/call.php?nr=

# CALLINFO:
# 0: normaler AVM start ( nur auf lokaler IP Listen ),
# 1: CALLINFO,
# 2: listen, kein CALLINFO,
# 3: CALLINFO + Listen
# 4: output nicht nach /dev/null sonst normal
CALLINFO=1

# CALLINVERS wenn 1: Suche nach Namen ueber das Telefonbuch
CALLINVERS=1

und das nun geändert

Code:
^ ^ dboxmessage 192.168.2.13
^ ^ dboxpopup 192.168.2.14
EOP

und es läuft *freu* danke euch allen
 
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.