Nur ein gleichzeitiger Anruf

Hallo zusammen,

Ich habe eine etwas ungewöhnliche Anforderung.
Ein Kunde von mir hat die Anforderung das an seinem Empfang, wo 2 Telefone sich befinden, bei eingehenden Anrufen zwar beide klingeln sollen, allerdings soll ab dem zweiten eingehenden Anruf der Anruf in der Warteschlange verbleiben bis der erste Call fertig ist.
Folgende Möglichkeiten sind noch wichtig:

  • es müssen 2 User sein, also kommt die Möglichkeit von einem User mit 2 Endgeräten nicht in Frage
  • auch kommt eine dynamische Warteschlange mit dem ein. Bzw einloggen nicht in Frage, da die einzelne Mitarbeiterin mal bei ersten und mal beim zweiten Telefon drangeht.

Ich dachte an eine Möglichkeit einer Bedingung. Bin auch schon soweit gekommen das ich es schaffen könnte wenn mehr als ein Gespräch über die Warteschlange reinkommt, das dann eine Aktion wie eine Ansage oder Mailbox ausgeführt wird. Aber es fehlt mir die Möglichkeit den Anrufer weiter in der Warteschlange zu halten.

Hat da jemand eine Idee ?

Gruß Jens

Servus. Ich hab das mit einem Script im Team, extern vorher gelöst
Bei mir sind aber 4 User im Team

; set queue to check
exten => s,1,Set(CHECKQUEUE=Kanzlei)
exten => s,n,Verbose(–> QUEUE CHECK FOR QUEUE ${CHECKQUEUE})

; queue check
exten => s,n,Set(QUEUEFREE=${QUEUE_MEMBER(${CHECKQUEUE},free)})
exten => s,n,Set(QUEUELOGGED=${QUEUE_MEMBER(${CHECKQUEUE},logged)})
exten => s,n,Set(QUEUECOUNT=${QUEUE_MEMBER(${CHECKQUEUE},count)})
exten => s,n,Set(QUEUEREADY=${QUEUE_MEMBER(${CHECKQUEUE},ready)})
exten => s,n,Set(QUEUEWAIT=${QUEUE_WAITING_COUNT(${CHECKQUEUE})})

exten => s,n,Verbose(–> QUEUEFREE: ${QUEUEFREE} – QUEUELOGGED: ${QUEUELOGGED} – QUEUECOUNT: ${QUEUECOUNT} – QUEUEREADY: ${QUEUEREADY} – QUEUEWAIT: ${QUEUEWAIT})

;how many loggin in agents are not free?
exten => s,n,Set(QUEUENOTFREE=${MATH(${QUEUELOGGED} - ${QUEUEFREE},i)})

;weniger als 4 frei?
exten => s,n,GoToIf($[ “${QUEUEFREE}” < “4” ]?s-noavailable,1)

; weiter zum Team
exten => s,n,Return()

; Auflegen da bereits zu viele Telefonieren
exten => s-noavailable,1,NoOp(weniger als 1 Mitglieder frei)
exten => s-noavailable,n,Hangup(17)

Hi, vielen Dank erstmal für das Skript.
Aber leider wird mir von der Anlage das Skript bei der Validierung als fehlerhaft zurückgegeben.
Wo kann hier der Fehler liegen ?
Ich habe den Name der Warteschlange und die User angepasst.
Ich bin leider nicht sehr gut in Programmiersprache.

Gruß Jens

Hallo,

zumindest beim schnellen überfliegen sehe ich keinen Syntax Fehler. Da hier aber aufgelegt wird müsstest du statt
exten => s-noavailable,n,Hangup(17)
ein GoTo auf die Durchwahl eines zweiten Teams (welches nur zum heranholen beispielsweise dient) verwenden. Der Asterisk selbst “trackt” leider die angenommenen Teamanrufe nicht auf eine Art und Weise, die sich in den Teamstatistiken für den Dialplan einfach verwenden lassen würden. Dadurch ergeben sich auch bei dieser Möglichkeit ein paar Nachteile (für deine Anforderung ohne Auflegen):

  • Die Anrufe würden nicht automatisch von dem zweiten Team auf das “aktiv Anruf zustellen”-Team abgeworfen werden
  • die Abfrage “ein Mitglied weniger frei” reagiert nicht nur auf angenommene Teamanrufe dieses Teams. Unabhängig von der Anruferherkunft ist diese Bedingung gegeben wenn ein Mitglied gerade angerufen wird/telefoniert (was vielleicht aber sogar gewollt ist).

“es müssen 2 User sein” Was ist da der genaue Hintergrund, werden beide separat ausgewertet? Auch bei einem User kann das zweite Telefon jederzeit einen abgehenden Call absetzen, es wäre nur nicht “direkt erreichbar” solange ein Gespräch des Users aktiv ist.

Leider fällt mir hier auch keine praktikable Lösung ein, man könnte sich zwar einen “Counter” überlegen, den man abfragt, es ist aber alles andere als leicht im hangup Kontext diesen genau für diese Gespräche wieder zu reduzieren.

Ohne “custom scripts” sehe ich abseits der ein User Lösung nur die Möglichkeit, “das Gebimmel” möglichst unaufdringlich zu gestalten, d.h. lautloser Klingelton oder leeres Team mit Pickup Benachrichtigung. Das ist aber vermutlich auch wieder nicht gewünscht, wegen der Gefahr die Anrufe komplett zu verpassen.
Aber vielleicht kommen ja noch mehr Ideen :wink:

Grüße,
Steve

Hallo Steve,

ich würde die Idee von Stefan gerne weiterverfolgen, allerdings kriege ich immer besagten Fehler vom Speichern des Skriptes gezeigt. Vielleicht mache ich da schon den Fehler. Wie lege ich das denn an ?
Kannst du es mal selbst in eines kopieren, dann siehst du was ich meine.

Hallo Jens,

beim Speichern erhalte ich zumindest noch keinen Fehler, anzulegen wäre das als Dialplan Script. Einbinden nein, irgendeine Bezeichnung und im Team dann extern/vorher das Skript hinzufügen.

Vermutlich hattest du hier “Warteschlange” gewählt, damit kann man mit LUA komplexere Strategien (angepasstes Skillbased routing, aber vermutlich auch sowas, wie du versuchst zu erreichen) umsetzen, bei LUA selbst bin ich persönlich jedoch leider raus :sweat_smile:

Grüße,
Steve