SNOM 360 - Asterisk Queue dynamisch beitreten

DomRoc

Neuer User
Mitglied seit
2 Aug 2007
Beiträge
118
Punkte für Reaktionen
0
Punkte
0
Hallo,

hat vielleicht jemand von Euch schonmal bei einem SNOM Telefon über die Multifunktionstasten eine dynamische Gruppen-Beitretunng bei einem Asterisk-Server implementiert?

Momentan such wir eine Lösung, wie die einzelnen Benutzer am Arbeitsplatz über einen einfachen Tastendruck (LED leuchtet = Agent Logon , LED leuchtet nicht = Agent Logoff) sich einer Gruppe, z.B. "Technik" oder "Verwaltung" anschliessen können. Wenn der Mitarbeiter nicht am Arbeitsplatz ist, dann soll der erneute Tastendruck eben einen Logoff bei dieser Asterisk-Queue bewirken.

Das Handbuch schweigt sich an dieser Stelle bei den Funktionstasten leider auch aus.

Bin für jedwede Tips und Hinweise dankbar!

Grüße,
DomRoc
 

Der_Phil

Neuer User
Mitglied seit
31 Dez 2005
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Hi!

Nutzt niemand dieses Feature, oder ist das nicht so einfach?

Würde mich auch sehr interessieren!

Gruß
Phil
 

Guard-X

Aktives Mitglied
Mitglied seit
14 Mai 2005
Beiträge
2,497
Punkte für Reaktionen
0
Punkte
0
Ich denke das ist kein Problem vom Endgerät, deshalb verschiebe ich das mal in das Asterisk Forum. Hier wird sich sicher eine Lösung finden. Ich meine das diese Frage auch schon mal gestellt wurde, finde das aber gerade nicht wieder...

mfg Guard-X
 

DomRoc

Neuer User
Mitglied seit
2 Aug 2007
Beiträge
118
Punkte für Reaktionen
0
Punkte
0
Hallo,

hat in diese Richtung evtl. schonmal jemand was realisieren können?

In Asterisk 1.4 ist ja der Befehl "AgentCallbackLogin" schonmal weggefallen, und das normale "AgentLogin" ist für meine Zwecke nicht akzeptabel, da die Mitarbeiter hier nicht hauptberuflich Hotline spielen, aber ich trotzdem Rufgruppen definieren möchte.

Zudem würde ich den Agent-Login-Prozeß gerne automatisieren:
Standardmäßig ruft der Agent ja eine Extension an und wird dort nach Agentennummer und -passwort gefragt, dass er eingeben muss.
Könnte man sowas nicht auf eine Funktionsltaste z.B. eines SNOMs legen???

Außerdem werden ja schon in der Queue.conf die Members der Queue definiert, d.h. welcher Agent zu welcher Queue gehört. Allerdings hätte ich das eben auch gerne dynamisch.
Ein Agent soll eben nur dann zu einer Queue gehören, wenn er so eine Funktionstaste drückt.


Lässt sich sowas über mit den Standard-Queues aus Asterisk realisieren, oder muss da ein komplett anderer Ansatz her?

Grüße,
DomRoc
 

Numsi

Mitglied
Mitglied seit
24 Jan 2005
Beiträge
215
Punkte für Reaktionen
0
Punkte
0
Dynamische Agenten siehe AddQueueMember / bzw. RemoveQueueMember
Belegung der Tasten siehe snom und hint
 

tomster

Mitglied
Mitglied seit
6 Dez 2004
Beiträge
238
Punkte für Reaktionen
0
Punkte
0
Ich hab unter http://www.ip-phone-forum.de/showthread.php?t=147595 schon Mal kurz beschrieben, wie man eine ähnliche Lösung (ohne Rufgruppen/ Queue zu benutzen) mit einem Tastendruck + LED hinbekommt. Das hat zwar mit einer tatsächlichen Queue nix zu tun, sollte aber mit dem Ansatz Add-/ RemoveQueueMember auch umgesetzt werden können.
Nachdem ich davon ausgehe, dass du 1.4.X benutzt, kann ich dir aber nicht sagen in wie weit ein bristuff-Patcherei notwendig ist (/me nutzt 1.2.x).
 

gooze

Neuer User
Mitglied seit
14 Nov 2006
Beiträge
46
Punkte für Reaktionen
0
Punkte
0
Hi....
also ich hab das folgendermaßen gemacht.

1.Die Queues haben bei mir keinen Pin, was die anmeldung mit einer Funktionstaste ein wenig einfacher macht.

Dann hab ich in der extensions.conf das macro [macro-agent-del] und [macro-agent-add] so geändert das automatisch die CALLERID als CALBBACKNUM gesetzt wird so das der Agent der sich anmelden möchte keine weiteren tasten als die Funktionstaste auf seinem Snom drücken muß.
Die LED belegung hab ich nicht realisiert.

Hier meine geänderten [macro-agent-del] und [macro-agent-add]:

[macro-agent-add]

Code:
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,Set(CALLBACKNUM=${CALLERID(number)})
exten => s,3,AddQueueMember(${ARG1},Local/${CALLBACKNUM}@from-internal/n)	; using chan_local allows us to have agents over trunks
exten => s,4,UserEvent(Agentlogin,Agent: ${CALLBACKNUM})
exten => s,5,Wait(1)
exten => s,6,Playback(agent-loginok)
exten => s,7,Hangup()

[macro-agent-del]

Code:
[macro-agent-del]
exten => s,1,Wait(1)
exten => s,2,Set(CALLBACKNUM=${CALLERID(number)})
exten => s,3,RemoveQueueMember(${ARG1},Local/${CALLBACKNUM}@from-internal/n)
exten => s,4,UserEvent(RefreshQueue)
exten => s,5,Wait(1)
exten => s,6,Playback(agent-loggedoff)
exten => s,7,Hangup()

Zum ab und anmelden am SNOM eine Taste mit zb. 9999* und 9999** belegen.

Hoffe das hilft weiter...

Gruß
Sven
 

DomRoc

Neuer User
Mitglied seit
2 Aug 2007
Beiträge
118
Punkte für Reaktionen
0
Punkte
0
Danke für die vielen Infos!

Im Prinzip ist das was gooze gemacht hat, genau das was ich suche!
Die ganzen Sachen mit Agents usw. brauch ich nämlich garnicht, ich will eben nur per Tastendruck ein bestimmtes Gerät, z.B. SIP/123 als Member zu einer Queue hinzufügen.

Da ich sowieso das BRI-gestuffte Asterisk einsetze kann ich mit Devstate auch gleich meine SNOM-LEDs ein- und ausschalten!

Jetzt geht alles genauso, wie ich's mir vorgestellt habe! :)
Danke!

Grüße,
DomRoc
 

cherzberg

Mitglied
Mitglied seit
21 Mai 2006
Beiträge
239
Punkte für Reaktionen
0
Punkte
0
Hallo gooze,

kannst Du mir verraten woher dein Macro das ARG1 bekommt?
Habe bestimmt was übersehen, oder?

Besten Dank und viele Grüsse

Christian
 

gooze

Neuer User
Mitglied seit
14 Nov 2006
Beiträge
46
Punkte für Reaktionen
0
Punkte
0
Hi cherzberg,

das ist ne gute Frage.... :confused:
Ich hab mir da nie wirklich gedanken drüber gemacht.
Den großteil von dem Macro habe ich einfach von dem übernommen was freepbx erstellt, und einfach nur den Teil mit der Abfrag nach der Rufnummer rausgeschmissen (Nummer vom Agent).
Und da das so direkt funktioniert hat hab ich mich nicht weiter drum gekümmert :p


Ich kann aber am Montag mal nachschauen wo das herkommt...


Gruß
Sven
 

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
hallo,

ich hab euch das hier mal gemacht, inklusive leuchtender LED am snom, wenn das telefon in der queue ist. ich habe für dieses beispiel 2-stellige nebenstellen angenommen, meine queue soll "board" heißen. 4 Schritte sind notwendig:

1. einen hint anlegen für jedes telefon, das sich zur queue hinzuschalten kann (für die LED). dazu im dialplan folgendes hinzufügen:
Code:
...
[internal]
...
exten = qm-board-10,hint,DS/qm-board-10
exten = qm-board-11,hint,DS/qm-board-11
; usw
...
schema: "qm-<queuename>-<callerid>"
wenn ihr mehrere queues verwendet, brauch ihr einen hint pro queue/telefon kombination

2. im dialplan context, in dem die telefone landen, wenn sie einen anruf absetzen ("context=" in der sip.conf), einen featurecode für das beitreten und verlassen der queue anlegen, ich nehme mal "*30*" dafür, sowie eine extension, wenn am telefon die taste neben der LED gedrückt wird (toggle-funktion):
Code:
...
[internal]
...
; === queuemanagement ===
exten = *30*,1,Macro(queuemgmt,board)
exten = _qm-board-XX,1,Goto(*30*,1)
...
3. im dialplan folgendes macro hinzufügen:
Code:
...
[macro-queuemgmt]
exten = s,1,NoOp(Macro queuemgmt called for extension ${CALLERID(num)})
exten = s,n,NoCDR()
exten = s,n,Set(CID=${CALLERID(num)})
exten = s,n,Set(QUEUENAME=${ARG1})
exten = s,n,Set(PEERCHANNELNAME=SIP/${SIPCHANINFO(peername)})
exten = s,n,Set(QUEUEHINTNAME=qm-${QUEUENAME}-${CALLERID(num)})
exten = s,n,Set(QUEUEMEMBERS=${QUEUE_MEMBER_LIST(${QUEUENAME})})
exten = s,n,Set(MEMBERCOUNTER=1)
 
exten = s,n(begin),Set(CURRENTPEER=${CUT(QUEUEMEMBERS,\,,${MEMBERCOUNTER})})
exten = s,n,GotoIf($["${CURRENTPEER}"=""]?add)
exten = s,n,GotoIf($["${CURRENTPEER}"="${PEERCHANNELNAME}"]?remove)
exten = s,n,Set(MEMBERCOUNTER=${MATH(${MEMBERCOUNTER}+1)})
exten = s,n,Goto(begin)
 
exten = s,n(add),AddQueueMember(${QUEUENAME},${PEERCHANNELNAME})
exten = s,n,Devstate(${QUEUEHINTNAME},2)
exten = s,n,Goto(end)
 
exten = s,n(remove),RemoveQueueMember(${QUEUENAME},${PEERCHANNELNAME})
exten = s,n,Devstate(${QUEUEHINTNAME},1)
exten = s,n,Goto(end)
 
exten = s,n(end),Answer()
exten = s,n,Wait(1)
exten = s,n,Hangup()
...
Code:
*CLI> dialplan reload
4. auf dem snom telefon eine funktions-taste belegen, ich nehme mal die P7 (rechts oben auf dem 12er block mit den LEDs). dazu im webfrontend des telefons (beispiel callerid "10") den typ auf "Nebenstelle" und den wert auf "<sip:[email protected]>" stellen, wobei

"qm-board-10" ist der hint für dieses telefon (z.b. extension 10)
"192.168.0.100" ist die ip der asterisk

und schon sollte es funktionieren: der benutzer kann sich mit einer betätigung der belegten funktionstaste am snom der queue hinzufügen (wenn er kein member isr) oder aus dieser entfernen (wenn er bereits member ist), ist er member der queue, dann leuchtet die LED neben der funktionstaste P7. auf telefonen, die das nicht unterstützen, kann der benutzer "*30*" wählen, um das gleiche zu machen.

[EDIT]
hier noch meine "/etc/asterisk/queues.conf":
Code:
[general]
persistentmembers = yes
autofill = yes
monitor-type = MixMonitor
 
[board]
musicclass = default
timeout = 30
retry = no
es sind hier KEINE members in der queue definiert.
[/EDIT]

grüße,
laureen
 
Zuletzt bearbeitet:

Ottone

Mitglied
Mitglied seit
3 Jun 2008
Beiträge
486
Punkte für Reaktionen
0
Punkte
16
Ausgesprochen hübsch gelungen!
 

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
eine kleine anmerkung noch:

bitte reloadet den dialplan, bevor ihr die taste auf dem snom belegt, sonst müsst ihr das telefon re-registrieren oder rebooten, damit es funzt!

grüße,
laureen
 

above2m

Neuer User
Mitglied seit
28 Jul 2006
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Ich habe dieses Beispiel übernommen, es funktioniert auch super für einzelne Queues. Ich bräuchte aber folgende Funktion.

1. Taste drücken, einloggen in mehrere Queues gleichzeitig und LED signalisierung, das man eingeloggt ist.

2. Erneutes drücken auf Taste, auloggen aus den Queues und LED erlischt.

Wie müsst ich dieses Script dazu anpassen? Ich schaff es einfach nicht, denn ich weiß nicht, wie ich mit "AddQueueMember" mich direkt an mehreren Queues anmelden kann? Alternativ gerne auch eine andere Lösung, ich brauch auf jeden Fall die LogIn /Out Lösung auf einer einzigen Taste (nur eine Extension).

Hoffe auf Eure Hilfe.

Alex
 
F

foschi

Guest
Die von Dir gewünschte Funktionalität ist im Projekt Gemeinschaft realisiert; vielleicht kannst Du dieses nutzen oder Dir zumindest den code "abgucken".
 

Zurzeit aktive Besucher

3CX

Neueste Beiträge

Statistik des Forums

Themen
235,558
Beiträge
2,062,543
Mitglieder
356,308
Neuestes Mitglied
berndsams81