"Ferienhaus" / Telefone aus- und zuschalten -- Wie?

merkc

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
135
Punkte für Reaktionen
0
Punkte
16
Hallo Liste
Wann immer ich angerufen werde, klingeln so um die 10 Telefone an den verschiedensten Orten immer gleich los. Wer kann mir denn sagen, wie ich dieses "Problem" (naja, für die anderen halt) los werden kann? Ich stelle mir so was vor, wie "telefon abheben, code wählen, und ab sofort klingelt der aparat auch". dann an ein anderes telefon gehen, neuen code wählen, und jetzt klingelts halt hier (und evt. dort).
Mein derzeitiger Dial-cmd ist halt dial(SIP/...&SIP/... usw). Andereseits muss ich halt immer und überall erreichbar sein. (da ich nicht non-stop im büro hocken will ;-) wo ich halt erreichbar sein sollte.
Jeder "Input" / Hilfe ist hier willkommen. Derzeit manipuliere ich halt auch ein wenig am sip.conf, um die anderen aperate auszuschalten, aber ist in keinster weise eine elegante lösung.

gruss
chris
 
... ein Vorschlag:
definiere einmal eine variable mit den telefonen die immer klingeln sollen - z.B. Büro
Dann kannst du in der asterisk-DB ein feld anlegen, mit den telefonen, die auch noch angerufen werden soll. Dieses kannst du ja über eine bestimmte Tastenkombination manipulieren

Code:
exten => user1,n,Set(DIALPARTIES=SIP/buro&SIP/buro2)
exten => user1,n(getdb),Set(temp=${DB(CFIM/${EXTEN})}) 
exten => user1,n,GotoIf($[${LEN(${temp})} > 0]?concat:calling)
exten => user1,n(concat),Set(DIALPARTIES=${DIALPARTIES}&${temp})

exten => user1,200(calling),Dial(${DIALPARTIES},31,wmt)
 
Hy,

ich nutze immer die DND Taste, schnell, einfach, klappt.
 
@chaos2000: Die Idee gefällt mir... ich werde mir mal ein paar Gedanken dazu machen
 
@junk: sorry, ich hatte vergessen zu erwähnen, dass ich alles zu 100% mittlerweile auf SIP habe. Unter den Telefonen sind auch zwei Handys (1x Handy, 1x Festeinbau), die falls ich in Deutschland bin, ebenfalls parallel angerufen werden. Somit hat keines der "Apparate" eine DND Taste.
 
Die Idee find ich sehr toll, weil ich eigentlich praktisch das gleiche suche, siehe
http://www.ip-phone-forum.de/showthread.php?t=166089
aber ich bin noch nicht Meister genug, um die obige Dialplan Syntax zu verstehen. Der Thread geht ja noch weiter ;-)
Trotzdem schonmal jetzt ein grosses DANKE!
Starry
 
Wir haben also quasi DREI Phasen, die ein Telefon einnehmen kann:
(und mehr als drei mögliche Implementationen)

Aparate orientierte Einstellungen:
1) kurz alles "klingeln" ausschalten -- auch DND genannt.
einschalten über zB *0# resp. *1# möglich

2) Benutzer/User auf "diesem" Apparat klingeln lassen
einschalten über zB *1*1000
ausschalten über zB *0*1000

Benutzer orientierte Einstellungen:
3) Benutzer auf einem bestimmten Apparat klingeln lassen
einschalten über zB *1*1000*300 (für EXTEN 300)
ausschalten über zB *0*1000*300

4) Benutzer auf allen Apparaten ausschlaten (er quasi vergessen, wo er überall angemeldet war)
ausschalten über *0*1000*999 (auch wieder nur ein Beispiel)



Was habe ich vergessen? ... noch habe ich keine Zeile programmiert. Doch der Ansatz von Chaos war nicht übel, und die "Überlegung" von Junk hat seine Berechtigung. Mal sehn, ob sich so etwas mit der AstDB verwirklichen lässt. Bin noch am rumgrübeln.
Gruss
Chris
 
Hallo,

ich hatte vor einiger Zeit genau den gleichen Funktionswunsch. Ich bin so vorgegangen, wie chaos2000 vorgeschlagen hat. Ich habe für jede externe Telefonnummer einen Datenbankeintrag angegelgt, in dem die Endgeräte eingetragen werden, die angerufen werden:
Code:
exten => 123456,n,Dial(${DB(NUMBERS/${EXTEN})},30,tw)

Um die Datenbankeinträge zu manipulieren habe ich einen Satz an Wahlregeln definiert:
Code:
exten => _*1X*76X.,1,NoCDR()
exten => _*1X*76X.,n,Answer()
exten => _*1X*76X.,n,GotoIf($["${DB(DEVSTATES/${EXTEN:1})}" = "1"]?disable)
exten => _*1X*76X.,n,Playtones(!950/200,!1250/200)
exten => _*1X*76X.,n,Set(DB(NUMBERS/${EXTEN:6})=${DB(NUMBERS/${EXTEN:6})}${IF($[${LEN(${DB(NUMBERS/${EXTEN:6})})} > 0]?&)}Local/${EXTEN:1:2})
exten => _*1X*76X.,n,Devstate(${EXTEN:1},1)
exten => _*1X*76X.,n,Goto(end)
exten => _*1X*76X.,n(disable),Playtones(!1250/200,!950/200)
exten => _*1X*76X.,n,Set(numbers=${DB(NUMBERS/${EXTEN:6})})
exten => _*1X*76X.,n,Set(i=1)
exten => _*1X*76X.,n,While($[${LEN(${CUT(numbers,&,${i})})} > 0])
exten => _*1X*76X.,n,GotoIf($["${CUT(numbers,&,${i})}" = "Local/${EXTEN:1:2}"]?cont)
exten => _*1X*76X.,n,Set(nnumbers=${nnumbers}${IF($[${LEN(${nnumbers})} > 0]?&)}${CUT(numbers,&,${i})})
exten => _*1X*76X.,n(cont),Set(i=$[${i} +1])
exten => _*1X*76X.,n,EndWhile()
exten => _*1X*76X.,n,GotoIf($["${nnumbers}" = ""]?error)
exten => _*1X*76X.,n,Set(DB(NUMBERS/${EXTEN:6})=${nnumbers})
exten => _*1X*76X.,n,Devstate(${EXTEN:1},2)
exten => _*1X*76X.,n(end),Wait(.4)
exten => _*1X*76X.,n,StopPlaytones()
exten => _*1X*76X.,n,Hangup()
exten => _*1X*76X.,n(error),Playtones(!950/200,!0/100,!950/200)
exten => _*1X*76X.,n,Wait(.5)
exten => _*1X*76X.,n,StopPlaytones()
exten => _*1X*76X.,n,Hangup()

Diese Codes habe ich bei mir für alle Endgeräte entsprechend auf die Erweiterungstastatur vom GXP 2000 als BLF gelegt. Ausserdem habe ich noch für jede Kombination aus Endgerät und Rufnummer einen hint-Eintrag angegelt:
Code:
exten => *10*76123456,hint,DS/10*76123456

Und So funktioniert das ganze:
Am Telefon wird über die LED neben der entsprechenden Taste angezeigt, ob das entsprechende Endgerät klingeln soll. Ist dies der Fall, leuchtet die LED grün, andernfalls rot. Dazu nutze ich die Devstate-Applikation aus den Bristuff-Patches.
Wird nun eine Taste gedrückt, wird zunächst der aktuelle Status geprüft und ermittelt, ob das Endgerät in die Liste eingetragen oder ausgetragen werden soll (Zeile 3). Das Eintragen war hier die leichtere Übung. Die Nummer muss lediglich angehängt werden (Zeile 5). Danach wird der Status der LED auf grün gesetzt (Zeile 6). Der Befehl Playtones (Zeile 4) dient zur Rückmeldung an den Benutzer.
Soll das Telefon aus der Liste ausgetragen werden wird die Sache etwas komplizierter. Kurz zusammengefasst: Der aktuelle Datenbankeintrag wird anhand der & zerschnitten und die einzelnen Elemente werden auf Übereinstimmung mit dem zu ändernden Endgerät geprüft. Stimmt der aktuelle Eintrag mit dem Endgerät überein, wird dieser nicht in die neue Liste übernommen. Sind alle Einträge überprüft, wird die neue Liste in die Datenbank geschrieben und der LED-Status entsprechend auf rot gesetzt.
Ausserdem wird noch überprüft, ob die neue Liste nicht leer ist, damit nie der Fall eintreten kann, dass ein Dial(,30,tw) ausgeführt wird. Ist dies der Fall wird zur Marke error gesprungen.
Kleine Bemerkung am Rande. Auch bei mir handelt es sich um SIP-Entgeräte allerdings spreche ich diese über Local/10 an und nicht über SIP/10. Wenn die Geräte über SIP/10 angesprchen werden sollen, muss Local/ überall dur SIP/ ersetzt werden.

Ich hoffe ich kann damit weiterhelfen.

Gruss hotroot
 
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.