Asterisk mit mobilen Arbeitsplätzen (ISDN-Telefone)

magician

Neuer User
Mitglied seit
19 Jun 2005
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ist es möglich folgendes Szenario zu realisieren:

In einem Grossraumbüro haben die Mitarbeiter keine festen Arbeitsplätze,
haben aber feste Durchwahlen. Wenn sie sich an einen Arbeitsplatz
setzen, soll nach einer Anmeldung (per GUI) die Rufe auf das
entsprechende Telefon gemappt werden. Der Haken ist, dass es keine
IP-Telefone, sondern ISDN-Telefone sind.
Ich hab mir schon Konstruktionen mit Queues und Rufumleitungen ausgedacht, aber ich kann den Mitarbeitern nicht zumuten mit Funktionscodes per Telefon die Sache zu bedienen.

Vielleicht kennt ja jemand ein kostenloses oder kostenpflichtiges Plugin für
Asterisk.

Gruss
Jörg
 
Sowas läßt sich meines Erachtens ohne GUI einfach vom Telefon aus mit Hilfe der Asterisk internen Datenbank realisieren. Ich muß da mal ein paar Stunden drüber nachdenken. Auf jeden Fall melde ich mich wieder.
 
So - da sind wir schon wieder. So schwierig war das gar nicht.

Also ... die Funktionsweise ist ganz einfach.

Was das "Zumuten von Funktionscodes" angeht - ich denke ** wird wohl jeder Mitarbeiter grade noch schaffen, oder :wink: ?

1.) Der Mitarbeiter hat eine persönliche Rufnummer. Im Beispiel gehe ich von Nummern im Bereich 40-49 aus.

2.) Die echte Rufnummer der Nebenstelle ist völlig bedeutungslos, die muß der Mitarbeiter gar nicht kennen.

3.) Der Mitarbeiter geht an seinen "temporären" Arbeitsplatz und wählt ** + seine persönliche Rufnummer (Beispiel **45) Mit diesem Eintrag überschreibt er automatisch einen etwaigen Eintrag des vorherigen Benutzer dieses Arbeitsplatzes, falls dieser vergessen hat, seinen Alias-Eintrag zu löschen.

4.) Ab sofort ist der Mitarbeiter an seinem temporären Arbeitsplatz unter der Nummer 45 erreichbar.

5.) mit *40+persönliche Rufnummer (Beispiel *4045) wird der Alias-Eintrag aus der Datenbank gelöscht.

6.) wird eine persönliche Rufnummer gewählt, die nirgends angemeldet ist, erfolgt eine Fehleransage. Das läßt sich natürlich auch ändern (Nachricht auf VoiceMail aufzeichen etc).

Ich denke, der Code ist ausreichend dokumentiert. Falls nicht, einfach nochmal nachfragen.

( ja - ich mag die Asterisk-DB sehr :D )

Code:
[alias]
;
; mit ** und der "persönlichen Rufnummer" einen Alias-Eintrag
; auf die aktuelle Nebenstelle setzen
; die "persönlichen Rufnummern" befinden sich in diesem Beispiel
; im Bereich 40-49
; Das läßt sich natürlich beliebig ändern.
; Beispiel:
; **44 setzt für die aktuelle Nebenstelle den Alias 44
; Ab sofort wird bei Anruf auf die 44 die aktuelle
; Nebenstelle angewählt.
;
exten => _**.,1,NoOp(Alias setzen)
exten => _**.,n,DBput(alias/${EXTEN:2}=${CALLERIDNUM})
exten => _**.,n,PlayBack(auth-thankyou)
exten => _**.,n,HangUp

;
; Bei Anrufen auf eine Nummer von 40-49 wird die
; asterisk-interne Datenbank befragt, zu welcher "echten"
; Nebenstelle der Anruf geleitet werden soll.
;
exten => _4X,1,NoOp(Alias suchen und waehlen)

exten => _4X,n,DBget(alias=alias/${EXTEN})
; wird kein Eintrag gefunden, geht es mit n+101 = 103 weiter

exten => _4X,n,Dial(SIP/${alias},30,r)
; Hier wird die "echte" Nebenstelle angewählt.
; der Dial-Befehl kann natürlich beliebig geändert werden,
; also für CAPI oder ZAP oder IAX oder was auch immer

exten => _4X,n,HangUp ; Auflegen


;
; wird kein Eintrag für den Alias gefunden, erfolgt eine
; Fehleransage und der Anruf wird beendet.
;
exten => _4X,103,Answer
exten => _4X,n,Wait(1)
exten => _4X,n,PlayBack(invalid)
exten => _4X,n,HangUp

;
; Das ganze läßt sich noch erweitern, um eine "Abmeldefunktion"
; damit der Alias wieder aus der Datenbank gelöscht wird.
; *40+"persönliche Rufnummer" löscht den Alias-Eintrag aus der DB
;

exten => _*40.,1,NoOp(Alias loeschen)
exten => _*40.,n,DBdel(alias/${EXTEN:3})
exten => _*40.,n,PlayBack(auth-thankyou)
exten => _*40.,n,HangUp
 
Das hört sich gut an!
Die Bedienung kann ich sogar meinen Kollegen zutrauen :lol:

Danke für die Hilfe.
 
Hast Du die Sache schon umgesetzt ? Mich würden die Erfahrungen von Anwenderseite mal interessieren.
 
Hallo!

Naja,.....

Ich wollte das erstmal auf nem Testsystem austesten. Aber
wenn ich den Code für "Alias setzen" benutze kommt immer folgende
Meldung:

Code:
Connected to Asterisk 1.0.7-BRIstuffed-0.2.0-RC8 currently running on asterisk1 (pid = 1641)
Verbosity is at least 3
    -- Starting simple switch on 'Zap/2-1'
    -- Accepting overlap voice call from '204' to '<unspecified>' on channel 0/2, span 1
    -- Executing NoOp("Zap/2-1", "Alias setzen") in new stack
    -- Executing Macro("Zap/2-1", "hangupcall") in new stack
    -- Executing ResetCDR("Zap/2-1", "w") in new stack
    -- Executing NoCDR("Zap/2-1", "") in new stack
    -- Executing Wait("Zap/2-1", "5") in new stack
    -- Executing Hangup("Zap/2-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'Zap/2-1' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'Zap/2-1'
    -- Hungup 'Zap/2-1'
    -- parse_srv: SRV mapped to host sipgate.de, port 5060
asterisk1*CLI>

Das Sytem läuft mit Asterisk@home. Das Skript von Dir habe ich in die
extensions_custom.conf eingefügt und per "include" in den Context
"from-internal-custom" eingebunden.

Kann sein, dass ich gerade etwas Übermüdet bin und einen saudämlichen Fehler mache... :doof:
 
Hallo,

bin noch neu was Asterisk betrifft. Habe das Skript wegen Alias setzten mal bei mir in die extensions.conf reinkopiert und in der sip.conf bei dem Teilnehmer 12 den context auf alias gesetzt. asterisk neu reloadet und mich mit dem x-ten Client neu eingeloggt. Dem Sip Client ist die MSN 980078 zugeordnet.

Wenn ich das ja jetzt richtig verstanden habe, kann ich mich an einen anderen PC setzten den Sip Client starten der die 18 hat und Ihm jetzt z.B die 45 zuordnen. Dann müsste wenn die 980078 gewählt wird der Client klingeln.

Ich bekomme nur beim versuch den Alias zu setzten folgende meldung vom asterisk.

Code:
 -- Unregistered SIP '12'
    -- Registered SIP '12' at 192.168.210.12 port 5060 expires 1200
    -- Saved useragent "X-Lite release 1103m" for peer 12
    -- Executing NoOp("SIP/12-d0d6", "Alias setzen") in new stack
Oct 23 17:47:02 WARNING[10163]: pbx.c:1948 ast_pbx_run: Timeout, but no rule 't' in context 'alias'

Da ich nicht genau weiß was Ihr unter persönlicher Nr. versteht habe ich es mit **45980078 und mit **4512 versucht.

Wo liegt mein Fehler?
 
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.