Rufumleitung durch Festnetz-/Hdy-/...-Anruf ändern

u.g

Aktives Mitglied
Mitglied seit
27 Mrz 2005
Beiträge
1,579
Punkte für Reaktionen
18
Punkte
38
Ich habe mir was gebastelt, um durch Anruf z.B. vom Handy auf eine in der Box
eingetragenen Nummern die Rufumleitung auf mein Handy ein- und auszuschalten.

Nix dolles (und auch bestimmt noch zu verbessern), aber immerhin ... und es funktioniert ;-)
Vielleicht bringt dies (bzw. die Idee) ja dem einen oder anderen was, daher ...

Ich habe die /var/flash/fx_conf gesichert (durch cat ... > /var/tmp/...),
einmal mit Rufumleitung (fx_conf.AN) und einmal ohne (fx_conf.AUS) (im Webinterface umgestellt).
Die gesicherten Dateien habe ich entsprechend benannt und auf meinem
Webspace abgelegt.

Wenn ich mit meinem Handy auf die dafür bestimmte Nummer anrufe,
wird entweder Rufumleitung-AN- oder ...-AUS-Datei per wget geholt
und damit dann /var/flash/fx_conf überschrieben und telefon neu gestartet.

Der entsprechende Teil aus meiner callmessage.sh:
Code:
cd /var/tmp
if [ -f fx_conf.AN ]; then
        # Umleitung AUS schalten...
        rm fx_conf.AN
        rm fx_conf.AUS
        wget http://my-server/fx_conf.AUS
        cat fx_conf.AUS > /var/flash/fx_conf
else
        # Umleitung AN schalten...
        rm fx_conf.AUS
        wget http://my-server/fx_conf.AN
        cat fx_conf.AN > /var/flash/fx_conf
fi

# telefon neu starten wie in debug.cfg:
killall -15 telefon
sleep 3
killall -9 telefon
rm -f /var/run/telefon.pid
sleep 3
telefon 1 a127.0.0.1 | /var/tmp/parse_telefon.sh &

EDIT:
In Beitrag Nr. 5 ist eine bessere Lösung ...
 
Zuletzt bearbeitet:
Moin,
mir scheint das ein sehr aufwändiger Weg, vor allem killst Du ja auch alle laufenden Gespräche, die eventuell jemand gerade führt.
Im meinem Beitrag über call-back mit der FBF habe ich ein einfaches Skript, das Eintragungen einfach über webcmd ändert. Das ganze geht ohne Neustart des Telefondienstes. Vielleicht kannst Du es Dir ja einfach für Deinen Zweck anpassen.
 
Naabend,

ich fang ja auch grade erst an ...
und habe z.B. erst heute begonnen mich mit webcm zu beschäftigen,
aber trotzdem danke für den Tip.
Ein Verbindungsabbruch habe ich in Kauf genommen.

Ein Link auf den Artikel, den du meinst, wäre hilfreich gewesen ;-)
Meinst du http://www.ip-phone-forum.de/showpost.php?p=503313&postcount=51 ?

Dann fehlt mir wohl nur noch der Einstellungsname, oder wie ?

Waahnsinn was ihr alles mit der Box macht bzw. vorhabt :)
 
Zuletzt bearbeitet:
Ein Link zum Thread / Thema wär ja schon mal was gewesen bei deinen 500 Beiträgen ;-)

Warum enden bei dir eigentlich viele Zeilen mit ";" ?
Danke für den Tip mit Framequelltext.

Schön, was man jetzt alles machen kann :)
... und das ohne "killall telefon" !!!

Habe es entsprechend angepasst:
In meiner callmessage.sh wird jetzt nur noch ein Script aufgerufen,
was prüft, ob RUL an oder aus ist und es entsprechend ändert (togglet).
Das Script wird in debug.cfg erzeugt:
Code:
cat <<\EOF > /var/tmp/rultoggle
#!/bin/sh

RULStatus() {
	export REQUEST_METHOD="GET"
    	export REMOTE_ADDR="127.0.0.1"
	export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=rul"
        cd /usr/www/html/cgi-bin
       ./webcm | sed -n 's/^.*telcfg:settings\/MSN\/Port0\/Diversion".*value="\([0-9]\).*/\1/p'
}           

PASSW='secret'

export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=$PASSW"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null

STATUS=`RULStatus`
if [ $STATUS -eq 0 ]; then
	POST_DATA="telcfg:settings/MSN/Port0/Diversion=1&telcfg:settings/MSN/Port0/DiversionNumber=017XXXXXXX"
else
	POST_DATA="telcfg:settings/MSN/Port0/Diversion=0"
fi  	 				
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
EOF

EDIT:
Anzupassen sind:
PASSW und POST_DATA ( => PortX und ...Number) und Art der Umleitung (1=sofort,2=verzögert...) (Diversion=...)

schön wärs, wenn die Nr., auf die umgeleitet wird auch noch dynamisch änderbar wäre, vielleicht über DTMF-Töne ...
Hat jemand damit schon was gemacht ?
 
Zuletzt bearbeitet:
u.g schrieb:
schön wärs, wenn die Nr., auf die umgeleitet wird auch noch dynamisch änderbar wäre, vielleicht über DTMF-Töne ...
Hat jemand damit schon was gemacht ?

Ich mach das schon seit ewigkeiten mit der Durchwahl:

Durchwahl auf einer speziellen MSN nur für mein Handy aktiviert.
Handy ruft spezielle MSN an, Pin eingeben und dann
#4xy*ziel*.

Jetzte geht das ja auch mit den MSN-Abhängigen Rufumleitungen wie hier beschrieben: http://www.ip-phone-forum.de/showthread.php?t=97801
 
u.g schrieb:
Warum enden bei dir eigentlich viele Zeilen mit ";" ?
Viele Programiersprachen sehen das Semikolon als zwingenden Abschluß einer Zeile vor, eigentlich gilt das auch bei .sh Skripten, wenn ich mich nicht irre. Also gehört es da hin. Die FBF scheint zwar nicht drauf zu bestehen, aber es schadet ja nix.
Außerdem wars in den Scripten, die ich mir angeschaut habe, so;-)

Aktionen über DTMF-Töne wurden meines Wissens noch nicht gemacht. Die Auswertung ist wohl auch nicht ohne weiteres möglich.
Der einzige Gedanke, den ich hätte, wäre, den call-through zu mißbrauchen(für Umprogrammierung von außen) - indem man eine Nummer wählt, die es nicht gibt (z.B. wegen ungültiger Vorwahl 000), sodaß ein call-through nicht zustande kommt. Es erscheint dann ja im Ereignisprotokoll ein Eintrag: Verbindung zu 000xyz fehlgeschlagen. jetzt braucht man nur noch einen Cronjob, der das Ereignisprotokoll auswertet, feststellt, daß da jemand eine Nummer mit drei Nullen am Anfang gewählt hat und den nchfolgenden Teil als neue Rufumleitung einstellt...
Wie gesagt, nur eine Idee, ich habe bisher weder mit cronjobs noch mit regulären Ausdrücken gearbeitet.

@stsoft: Es geht nicht um die Nutung des Calltroughs, sondern darum, daß Anrufer auf eine Festnetznummer je nach Einstellung irgendwohin weiter verbunden werden - und man dieses Ziel von außen umprogramieren kann. Also wahlweise aufs Handy, aufs Büro...

Etwas dynamisch, wenn die möglichen Zielnummern bekannt sind, wäre, das Skript aus dem callmonitor des ds-mod mit Parametern aufzurufen. Rufst Du also vom Büro die FBF an, schaltet er automatisch die Rufumleitung zum Büro um, klingelst Du vom Handy an, schaltet er darauf um, klingelst Du auf eine andere MSN an, schlatet sich die Rufumleitung ab...
Du kannst die Rufumleitung quasi durch beliebige CallerID/CalledID-Kombinationen ändern lassen, indem Du im listener einträgst:
^01xxx ^yyy scriptname(ggf.mitPfad) zzz w u
xxx ist die übermittelte Rufnummer, yyy die angerufene MSN (oder SIP0-9 bei VoIP-Accounts), zzz das neue Ziel ,w die Nebenstelle die umgeleitet werden soll (oder ggf. wenn der ds-mod für die neue beta-firmware verfügbar ist, die MSN) und u die Art der Umleitung.

Du hast dann nur ein Skript, das in vielen Zeilen in den Listerners aufgerufen wird.


Nachtrag:
Mit neuer Firmware und loopbackkabel müßte auch eine Umprogramierung via dtmf gehen:
http://www.ip-phone-forum.de/showthread.php?p=547610#post547610
Beschreibt die Codes, die man an einer Nebenstelle eingeben kann, um die Rufumleitung umzuprogramieren. Hast Du nun ein Loopbackkabel, könntest Du ene Rufumleitung für von deinem handy/bürotelefon (oder welche Telefone auch immer berechtigt sein sollen) auf eine bestimmte MSN eingehende Anrufe auf pots (analoges Amt) einrichten. der Analoge Amtsanschluß ist mit einer Nebenstelle verbunden, ergo bekkomst Du bei Anruf direkt ein Freizeichen (wie ein callthrough, nur ohne PINeingabe). Da dies von der internen Nebenstelle kommt, Du also virtuell an der Nebenstelle hängst, kannst Du die Programiercodes zum Ändern verwenden.
[P.S.: schon bei callthrough kommt ja erst ein interner Wahlton. Ich weis nicht, ob da schon die internen Steuercodes gehen, dann bäuchte man gar kein loopbackkabel dafür]
 
Zuletzt bearbeitet:
Andre schrieb:
[P.S.: schon bei callthrough kommt ja erst ein interner Wahlton. Ich weis nicht, ob da schon die internen Steuercodes gehen, dann bäuchte man gar kein loopbackkabel dafür]

Das habe ich doch geschrieben:
Callthrough ist nicht nur für Callthrough gut. Man kann einmal in der Box dann auch die Rufumleitungen per DTMF aus der Ferne ändern.

Aber wenn Ihr für sowas simples lieber Kanonen nehmen wollt.
 
uups, stimmt. Da hätte ich richtig lesen sollen.

Das mit dem loopbackkabel kam mir natürlich nur deshalb in den Sinn, weil ichs eh für call-back nutze. Rufumleitung via Telefon/callthrough einstellen habe ich noch nie genutzt, es fallen da ja (wenn man das von extern macht) Verbindungskosten an.

Bei der Lösung mit callmonitor fallen hingegen keine Verbindungskosten an, dafür läufts nur mit den vorher festgelegten möglichen Weiterleitungszielen. Wenn man im Büro angekommen ist, einmal Telefon in die Hand nehmen, zuhause anklingeln, fertig ist die Umleitung ins Büro. Beide Lösungen schließen sich aber nicht aus, insofern ist die Kombination aus beiden Möglichkeiten die Ideallösung.
 
Andre schrieb:
Viele Programiersprachen sehen das Semikolon als zwingenden Abschluß einer Zeile vor, eigentlich gilt das auch bei .sh Skripten, wenn ich mich nicht irre. Also gehört es da hin. Die FBF scheint zwar nicht drauf zu bestehen, aber es schadet ja nix.
Außerdem wars in den Scripten, die ich mir angeschaut habe, so;-)

Nein, bei Shell-Skripten gilt das nicht und es ist jeweils ein Byte mehr ;-)

Vom Loopback-Kabel habe ich wohl in deinen Artikeln, Andre, mal was gelesen, nehme daher an, es hat was mit Callback zu tun.
Ich glaube aber, dass ich dafür dann den 2.Phone-Port opfern müsste,
was bei mir nicht geht.

Habe beide Vorschläge (int.Steuercodes/ungültige Nr. wählen) mal ausprobiert.
Der Nachteil ist halt wie Andre schon bemerkte: es kostet evtl. was ,
bei der callmonitor-Methode dagegen nicht.

Die bessere Methode von beiden für obiges Problem ist wohl die mit den internen Steuercodes (*4...) (über Pseudo-Calltrough) (ja, es geht ohne Loopbackkabel). Die andere funktionierte bei mir nicht so einwandfrei.

Wollte aber trotzdem mal versuchen, ob man damit "eigene Befehle über DTMF schicken" hinbekommen würde ...
Du würdest den einen Vorschlag per cronjob erledigen, Andre ? Warum ?
Habe es direkt in dem Skript, was telefon-Output verarbeitet gemacht.
Läuft aber wie gesagt nicht so toll bisher ...

Erste Hürde war übrigens: DTMF über sipdiscount geht nicht (richtig) :-(

Habe übrigens weder dsmod noch 7170, ging bisher auch ohne ;-)

Kann man eigentlich die Tastencodes (wie z.B. #96*7*) um eigene erweitern und/oder sind die in einer Datei auf der Box zu finden ?
 
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.