Abwurf auf AB wenn ein Mitarbeiter im Team telefoniert

Moin zusammen,
ich stehe auf dem Schlauch:
Ich möchte einfach nur, dass ein Anrufer auf den AB abgeworfen wird, sobald eine Person im Team telefoniert. In meinem jugendlichen Leichtsinn habe ich gedacht, das funktioniert mit “Maximale Anzahl Wartende” = 0 und eine “Warteschlange voll” Aktion in Extern/Nachher.
Aber das klappt so nicht.
Hat jemand die richtige Lösung für mich?
Dankeschön :slight_smile:
Jasper

Hallo Jasper,

mh, ich vermute Du willst sowas wie “ab einer Verbindung besetzt” erreichen, egal wie vielen Agenten im Team eingeloggt sind.

Das gibt es in der Pascom-Welt derzeit so nicht, zumindest nicht so einfach über die GUI einstellbar.

Was funktionieren könnte, ist mit Hilfe eines Skripts die Anzahl an Anrufe im Team zu ermitteln und auf >= 1 zu prüfen. Dann mag das funktionieren.

Ich habe da mal was zusammen geschrieben, aber aus Zeitgründen bisher nicht getestet, ist also eher ein theoretischer Ansatz.

exten => s,1,NoOp(*** SHOW QUEUECALLS BEGIN ***)
same => n,NoOp(${QUEUE_VARIABLES(TeamZentrale)})
same => n,NoOp(${QUEUECALLS})
same => n,Set(MDC_LABEL-10= ${QUEUECALLS})
same => n,NoOp(*** SHOW QUEUECALLS END***)
same => n,Return()

Das Skript muss in Zeile 2 und Zeile 4 auf Deine Bedürfnisse angepasst werden und an der passenden Stelle eingebunden wird, beispielsweise in einem Anrufverteiler, spätestens jedoch im Extern-vorher-Kontext des Teams.

Dann bedarf es dann noch der Anlage eines Labels und der dazugehörigen Asterisk-Expression, damit Du das im ebenfalls im Extern-vorher-Kontext abprüfen kannst.

Weiterhin musst Du in dem Team auf dem Kartenreiter Optionen noch setqueuevar=yes eintragen, sonst stehen Dir die Variable QUEUECALLS nicht zur Verfügung.

Kann sein, dass sich das sogar noch viel einfacher umsetzen lässt und mein Ansatz ist viel zu kompliziert gedacht. Vielleicht gibt es ja hier in der Community weitere Meinungen dazu.

Vielen lieben Dank @noses !!
Ich bin zwar ein alter Programmierer, muss mich jedoch noch in die Logik von Asterisk reinfuchsen, was die Scripts angeht.
Ich danke Dir vorerst für die Hilfe und ich werde berichten, ob es so funktioniert.

So, dann hier mal eine vollständige und auf Funktionsfähigkeit getestete Lösung, Schritt für Schritt:

  1. Im Team auf dem Kartenreiter Erweitert im Feld Optionen setqueuevar=yes eintragen.
    .

Den Teamnamen grafik merken, der wird für Schritt 3 benötigt.

  1. Unter Anrufverteilung → Anruflabels ein generisches Label anlegen und speichern.
    grafik

Danach erneut den Dialog Anrufverteilung → Anruflabels aufrufen und sich den automatisch vergebenen Variablen-Namen grafik kopieren Der wird im nächsten Schritt beim Skript benötigt

  1. Ein Skript anlegen:
    Auf dem Kartenreiter Basis:

grafik

Auf dem Kartenreiter Skript folgenden Inhalt hinzufügen:

exten => s,1,NoOp(${QUEUE_VARIABLES(HIER NAME VOM TEAM EINFÜGEN )})
same => n,Set(MDC_HIER KORREKTENVARIABLENNAMEN EINFÜGEN=${QUEUECALLS})
same => n,Return()
  1. Unter Anrufverteilung → Aktionsbedingungen den durch den 2. Schritt automatisch angelegten Eintrag bearbeiten. In meinem Beispiel halt QueueCalls. Bei Dir lautet der Name so wie Du ihn zuvor festgelegt hast.

grafik

  1. Jetzt zurück zum Team und hier unter Aktion → Vorher folgende Einstellunge vornehmen.

Dabei ist die erste Zeile (1) zwingend erforderlich, da hier das Skript aufgerufen wird und der Wert aus QUEUECALL in die Variable geschrieben wird für den späteren Vergleich in der AsteriskExpression.

Bei den darauffolgenden Zeilen (2) achte man auf die korrekte Auswahl Bedingung (AsteriskExpression).

Damit lässt sich nun also die Anforderung von @deto erfüllen, ab einem aktiven Anruf im Team den AB einzuschalten. Natürlich kann man statt dem AB auch irgendwas anderes definieren.

Abgehende Anrufe bleiben dabei allerdings unberücksichtigt, weil ein Team abgehende Anrufe nicht registriert.

Mag sein, dass sich das auch eleganter lösen lässt, aber zumindest funktioniert es so.

1 Like

Vielen Dank für deine Mühen Michael!!!
Das gehört eigentlich als HowTo kategorisiert :wink:

Ich muss mich unbedingt in die Scriptwelt einfuchsen. Die Möglichkeiten sind ja quasi unbegrenzt.

Ich habe gesehen, dass man im CLI auch die Zustände der einzelnen Teammitglieder abfragen kann. Das muss doch auch per Script möglich sein. Dann könnte man auch ausgehende Telefonate als Verbindung mitzählen, da ein Mitglied im Team dann als “busy” gilt.
Wenn ich Zeit finde, werde ich mich belesen :slight_smile:

Ich habe das Ganze jetzt mit einer Aktionsbedingung geregelt:

$[${QUEUE_MEMBER(“Zentrale”,logged)} - ${QUEUE_MEMBER(“Zentrale”,free)} >= 1 ]

Somit sind meine Anforderungen vollumfänglich erfüllt.
Oder übersehe ich was?

Aber @noses Lösung finde ich auch sehr genial :slight_smile: