- Mitglied seit
- 1 Okt 2010
- Beiträge
- 32
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo, zur Zeit nutze ich beispielsweise folgende Einträge
Was mich daran stört ist, dass wenn einer der Teilnehmer DND aktiviert gleich der ganze Raum klingelt. Das wirkt einem ungestörten Arbeiten ja eher entgegen.
Daher habe ich (teilweise aus Codeschnipseln aus dem Netz) folgende Macros erstellt.
Das erste Macro erstellt über das Wählen einer Extension in der DB einen Eintrag mit DND/CALLERID(num) und dem Wert 1 beim aktivieren der DND Funktion, beziehungsweise löscht den Eintrag aus der DB beim Deaktivieren
Wird nun ein Teilnehmer angerufen wird das folgende DialMacro ausgeführt, dass zuerst schaut ob ein Teilnehmer die DND Funktion aktiviert hat und ruft den Teilnehmer entweder an oder "soll dann nach einer Ansage alle Teilnehmer der Gruppe klingeln lassen die nicht DND aktiviert haben, wenn der Anrufer auch jemand anderes sprechen möchte" (da liegt der Hund begraben ;-)
In den im Macro aufgeführten Zeilen
springe ich dann im Beispiel für Sales in den Kontext
Damit werden nun wieder alle Teilnehmer angeklingelt, ungeachtet dessen, ob ein DND DB Eintrag gesetzt ist oder nicht. Wie kann ich das DialCOmmand denn so dynamisch aufbauen, dass Teilnehmer mit aktiviertem DND in der DB nicht mit angeklingelt werden ? Ginge das irgendwie mit Warteschlangen oder kann ich mir das dial cmd via DB Abfrage und regulärem Ausdruck dynamisch aufbauen ? Über einen Denkanstoß (je einfacher desto besser) würd ich mich freuen!
Code:
exten => 1866,1,Dial(SIP/1866,25,r)
exten => 1866,n,Goto(sales,1)
exten => 1865,1,Dial(SIP/1865,25,r)
exten => 1865,n,Goto(sales,1)
exten => 1851,1,Dial(SIP/1851,25,r)
exten => 1851,n,Goto(sales,1)
exten => 1857,1,Dial(SIP/1857,25,r)
exten => 1857,n,Goto(sales,1)
exten => sales,1(sales),Dial(SIP/1866&SIP/1865&SIP/1851&SIP/1857)
Was mich daran stört ist, dass wenn einer der Teilnehmer DND aktiviert gleich der ganze Raum klingelt. Das wirkt einem ungestörten Arbeiten ja eher entgegen.
Daher habe ich (teilweise aus Codeschnipseln aus dem Netz) folgende Macros erstellt.
Das erste Macro erstellt über das Wählen einer Extension in der DB einen Eintrag mit DND/CALLERID(num) und dem Wert 1 beim aktivieren der DND Funktion, beziehungsweise löscht den Eintrag aus der DB beim Deaktivieren
[macro-DNDONOFF]
exten => s,1,GotoIf(${DB_EXISTS(DND/${CALLERID(num)})}?disable-dnd,1)
exten => s,n,Set(DB(DND/${CALLERID(num)})=1) ;There was no entry on AstDB, so We active your DND
exten => s,n,playback(do-not-disturb)
exten => s,n,playback(activated)
exten => s,n,hangup
exten => disable-dnd,1,DBdel(DND/${CALLERID(num)}) ; You are disabling your DND
exten => disable-dnd,n,playback(do-not-disturb)
exten => disable-dnd,n,playback(de-activated)
exten => disable-dnd,n,hangup
Wird nun ein Teilnehmer angerufen wird das folgende DialMacro ausgeführt, dass zuerst schaut ob ein Teilnehmer die DND Funktion aktiviert hat und ruft den Teilnehmer entweder an oder "soll dann nach einer Ansage alle Teilnehmer der Gruppe klingeln lassen die nicht DND aktiviert haben, wenn der Anrufer auch jemand anderes sprechen möchte" (da liegt der Hund begraben ;-)
[macro-DIALDND]
exten => s,1,GotoIf(${DB_EXISTS(DND/${ARG1})}?DND-ON,1);If DND entry exists on AstDB it means DND is ON
exten => s,n,Dial(SIP/${ARG1},25,t) ; DND is OFF, start dialing
exten => s,n,Goto(from-inside,${ARG2},1)
exten => DND-ON,1,Dial(SIP/${ARG1},3,t)
exten => DND-ON,n,Background(sorry&the-party-you-are-calling&has&activated&do-not-disturb&please-try-again-later&or&pls-stay-on-line&silence/5)
;exten => DND-ON,n,Goto(from-inside,${ARG2},1)
In den im Macro aufgeführten Zeilen
exten => s,n,Goto(from-inside,${ARG2},1)
springe ich dann im Beispiel für Sales in den Kontext
exten => sales,1(sales),Dial(SIP/1866&SIP/1865&SIP/1851&SIP/1857)
Damit werden nun wieder alle Teilnehmer angeklingelt, ungeachtet dessen, ob ein DND DB Eintrag gesetzt ist oder nicht. Wie kann ich das DialCOmmand denn so dynamisch aufbauen, dass Teilnehmer mit aktiviertem DND in der DB nicht mit angeklingelt werden ? Ginge das irgendwie mit Warteschlangen oder kann ich mir das dial cmd via DB Abfrage und regulärem Ausdruck dynamisch aufbauen ? Über einen Denkanstoß (je einfacher desto besser) würd ich mich freuen!
Zuletzt bearbeitet: