Away Status anzeigen

Junialter

Mitglied
Mitglied seit
19 Jun 2005
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
Hey,

Arbeitsplätze sind verteilt auf verschiedene Standorte, ein zentraler asterisk server bristuff 1.2.25.

Ich hätte jetzt gerne an den Apparaten eine Anzeige, ob der anderer Teilnehmer "am Arbeitsplatz sitzt". Natürlich muss dieser andere Teilnhemer das schon über einen Knopf signalisieren (away-Taste).

Die Busy-Lamp-Fields zeigen mir ja nur an, wenn es klingelt, oder wenn ein Gespräch läuft. Ich will aber sehen, ob man "auf der Arbeit" quasi "Anruf-Annahme-Bereit" ist.

Danke sehr!
 
Hat niemand eine Idee? Ich bräuchte das ziemlich dringend...
 
Wir lösen das außerhalb von Asterisk mit einem Instant Messaging Server/Client (Openfire). Funktioniert wie ICQ & Co. Die Anzeige ist nicht am Telefon und geht natürlich nur, wenn es sich um PC-Arbeitsplätze handelt.
 
Presence kommt erst mit Asterisk 1.6., alternativ nen MS OCS dazu nehmen und die Telefonie von Asterisk machen lassen.

Schau mal nach chan_jabber.
 
Hallo,

du kannst ein BLF (Busy Lamp Field) auch auf einen Dailplan-Hint setzen, der nicht einem Telefon entspricht, in den BriStuff-gepatchten Asterisken gibt's dafür einen eigenen Channel-Treiber, den DeviceState. Im Dialplan (extensions.conf) legt man einfach zusätzlich zum Telefon Hint einen DeviceState Hint an, den man mit dem Dialplan-Command "Devstate" setzen kann:

extensions.conf:
Code:
...
[intern]
exten = 10,hint,SIP/tel10     ; das ist der hint für das Telefon mit DW 10
exten = pres10,hint,DS/pres10   ; das ist der presence-hint für DW 10
...
exten = _presXX,1,Macro(toggle-presence)

[macro-toggle-presence]
exten = s,1,NoOp(Macro toggle-diversion called for ${CALLERID(num)})
exten = s,n,GotoIf($["${MACRO_EXTEN:4}"!="${CALLERID(num)}"]?hangup) ; wichtig, damit nur das telefon mit der zugehörigen callerid das flag umsetzen kann
exten = s,n,GotoIf($["${DB(DEVSTATES/${MACRO_EXTEN})}"=""]?setAvailable)
exten = s,n,GotoIf($["${DB(DEVSTATES/${MACRO_EXTEN})}"="1"]?setAvailable)
exten = s,n,GotoIf($["${DB(DEVSTATES/${MACRO_EXTEN})}"="2"]?setUnavailable)
exten = s,n,Goto(hangup)

exten = s,n(setUnavailable),Devstate(${MACRO_EXTEN},1)
exten = s,n,Goto(end)

exten = s,n(setAvailable),Devstate(${MACRO_EXTEN},2)
exten = s,n,Goto(end)

exten = s,n(end),Answer()
exten = s,n,Wait(0.5)
exten = s,n(hangup),Hangup()
...
jetzt nur noch eine Taste am Telefon 10 auf "pres10@<ip des asterisk>" setzen (zu ein- bzw ausschalten der presence) und auf den anderen Telefonen das selbe machen, also z.b. auf dem Telefon mit DW 11 eine Taste auf "pres10@<ip des asterisk>" setzen, dann sieht das Telefon mit DW 11 anhand des BLF, ob Telefon 10 bereit ist.

WICHTIG: die CallerID der Telefone muss zum Setzen des Devstate im Macro richtig gesetzt sein!

Das würde dann so aussehen, dass das Lämpchen auf dem Telefon 11 leuchtet, wenn der Teilnehmer bereit ist und ausgeht, wenn der Teilnehmer nicht bereit ist.

Zusätzlich sollte man dann im Dialplan bevor das Telefon 10 angewählt wird ("Dial(SIP/tel10)") den DevState der presence auf "1" umsetzen, damit das Lämpchen der Presence auf den anderen Telefonen ausgeht, wenn Telefon 10 spricht. Im hangup dann wieder auf "2" setzen.

Devstate-Parameter:
1 ... Idle (Lämpchen aus)
2 ... Busy (Lämpchen an)

[EDIT]
ev. musst Du den DeviceState das erste mal von der Asterisk CLI aus auf "2" setzen:
Code:
asterisk*CLI> devstate pres10 2
[/EDIT]



Hilft Dir das weiter?

Grüße,
Laureen
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,831
Beiträge
2,219,105
Mitglieder
371,533
Neuestes Mitglied
ipeee
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.