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!
 

Junialter

Mitglied
Mitglied seit
19 Jun 2005
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
Hat niemand eine Idee? Ich bräuchte das ziemlich dringend...
 

schogge

Mitglied
Mitglied seit
11 Aug 2005
Beiträge
211
Punkte für Reaktionen
0
Punkte
0
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.
 
F

foschi

Guest
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.
 

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
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 "[email protected]<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 "[email protected]<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:

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,913
Beiträge
2,028,113
Mitglieder
351,068
Neuestes Mitglied
mercuryex