Besetzt wenn einer im Team telefoniert

Hallo,

Ich habe bei einem Kunden folgendes Problem. Es sind 2 Telefone in einem Team, es soll aber jedoch besetzt kommen, wenn bereits ein eingehendes aktives Gespräch besteht. Kann ich dies realisieren?

Vielen Dank und Viele Grüße
Thomas Enke

Hallo @TEnke,

wenn es ausreichen würde das kein Anruf zugestellt werden soll wenn irgend ein Gespräch auf einem der beiden Telefone vorliegt wäre es das einfachste beide Geräte einfach dem gleichen Benutzer zuzuweisen.

Wenn jedes Telefon einen eigenen Benutzer zugewiesen werden soll (bezüglich Clientnutzung beispielsweise) müsste man entweder per Vorher Skript prüfen ob weniger als 2 freie Mitglieder im Team sind oder um wirklich nur eingehende Gespräche (vermutlich auch nur über dieses Team) zu berücksichtigen müsste man noch Tiefer in die Scriptkiste greifen und die Anrufe zu diesem Team wirklich zählen und im def_hangup entsprechend tilgen. Das wäre aber ziemlich aufwendig und ggf gar nicht so zuverlässig wie erhofft.

Grüße,
Steve

Hallo @Steve,

Danke für die schnelle Antwort, jedes Telefon gehört einem eigenen Benutzer, dies muss leider auch so bleiben.
Daher denke ich, dass das Vorher Skript, welches abfrägt ob weniger als 2 Mitglieder frei sind, die Lösung wäre. Es handelt sich hier um eine Arztpraxis, bei der halt sobald ein Telefon an der Anmeldung telefoniert (egal ob abgehend oder eingehend) besetzt kommen soll.

Gibt es hier schon etwas, wie das skript aussehen müsste? Wir sind leider nicht so ganz fit mit den Skripten.

Vielen Dank und Viele Grüße
Thomas

Hallo Thomas,

ohne Gewähr und Teamname muss beispielsweise anpeasst werden, aber das sollte als Dialplanscript (einbinden nein, Kontext egal, z.B. customteamcheck) welches extern/vorher im Team aufgerufen wird funktionieren:

; set queue to check
exten => s,1,Set(CHECKQUEUE=meinTeamName)
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)}) 

;at least one logged on agent not free
exten => s,n,GoToIf($[ "${QUEUELOGGED}" != "${QUEUENOTFREE}" ]?s-alreadytalking,1)

 
; back to queue
exten => s,n,Return()
   
   
exten => s-alreadytalking,1,NoOp(jemand ist bereits im Gespraech)
exten => s-alreadytalking,n,Hangup()
; alternative go on with post context of queue (replace extension of the team)
;exten => s-alreadytalking,n,GoSub(sub_suffix-111,${MDC_DIALDESCENT},1)