Jump to content

Call Routing nacheinander zu verschiedenen Handys


MHI
 Share


Go to solution Solved by Tom Wellige,

Recommended Posts

Hallo zusammen,

erstmal vielen Dank für das super Forum, ich lese schon eine Weile mit und es wurde schon oft geholfen... 🙂

Wir nutzen aktuell Swyx v.13.25. Ich selbst bin kein Entwickler, versuche mich aber so gut wie möglich in Problemstellungen einzuarbeiten und zu lernen.

 

An folgender Aufgabenstellung häng ich gerade fest und hab keine wirkliche Idee zur Lösung.

Wir haben ein externes Büro, in dem 6 Kollegen in ständig wechselnden Schichten arbeiten. Keiner davon arbeitet am PC und die Affinität dazu hält sich auch im Rahmen (kein SwyxIt! Softclient oder ControllCenter als Option).

Ziel ist es, dass es eine zentrale Rufnummer gibt (ein Yealink T-54W steht vor Ort) und der Kollege, welcher gerade Dienst hat, sich über eine Telefontaste "einloggt" und die Gespräche auf sein Handy umgeleitet wird.

Zusätzlich soll eine verzögerte Umleitung das eingehende Gespräch zum Büroleiter (ebenfalls aufs Handy) weitergereicht werden, falls sich sonst keiner meldet.

Die Kollegen sind alle nicht als Swyx User angelegt, damit fällt die Rufgruppe raus.

 

Meine Idee wäre dazu:

Im MEM die Rufnummer des aktuell diensthabenden Kollegen hinterlegen -> Vorteil: Es klingelt das Telefon im Büro UND sein Handy

Eine verzögerte Umleitung auf den Büroleiter setzen

 

Damit wäre die Anforderung zu 100% erfüllt. ABER: 

Wie soll die Nummer des MEM geändert werden? Einen Funktionscode dafür konnte ich nicht finden. (Den könnte ich einfach für jeden Benutzer auf die Schnellwahltasten des Telefons speichern)

Gibt es die Möglichkeit, einen eigenen Funktionscode zu hinterlegen?

 

Ich hoffe, ich blamiere mich nicht völlig, aber ich komme an dieser Stelle einfach nicht weiter...

Schonmal vielen Dank, für jede Idee / Hilfestellung, die ihr mir geben könnt! 🙂

Link to comment
Share on other sites


Statt des MEM könntest Du auch das Parallelruf Feature verwenden. Ich denke, das sollte keinen Unterschied machen, beides kann vom Call Routing aus manipuliert werden.

 

Ich würde das ganze wie folgt angehen:

 

- ein Call Routing Skript für den Benutzr hinter dem Yealink anlegen

- ein "Skript Code einfügen" verwenden, und folgenden Code einfügen:

 

Dim sNumber
sNumber = IpPbx.CallingNumber

if (sNumber = "00176111111") or _
   (sNumber = "00176222222") or _
   (sNumber = "00176333333") or _
   (sNumber = "00176444444") or _
   (sNumber = "00176555555") or _
   (sNumber = "00176666666") then

   UseExit = 1
else
   UseExit = 0
end if

 

Du musst dann auf dem "Verbindungen" Reiter in den Eigenschaften dieses Bocks noch den Ausgang "1" sichtbar machen. Und natürlich die richtigen Handynummern der 6 Kollegen eintragen.

 

Wenn nun einer der Kollegen von seinem Handy aus anruft, dann kommst Du durch den "1" Ausgang raus. Bei jedem anderen Anrufer durch den "Vorgabe" Ausgang.

 

"Vorgabe" Ausgang:

- "Durchstellen" Block auf das "ursprüngliche Ziel"

- Timeout Ausgang mit zweitem "Durchstellen" Block verbinden, der zum Büroleiter durchstellt

 

"1" Ausgang:

- ein "Skript Code einfügen" verwenden, und folgenden Code einfügen:

 

select case sNumber

   case "00176111111"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176111111"

   case "00176222222"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176222222"

   case "00176333333"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176333333"

   case "00176444444"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176444444"

   case "00176555555"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176555555"

   case "00176666666"
      PBXUser.EnableParallelCall = True
      PBXUser.ParallelCallNumbers = "00176666666"

end select  

 

Auch hier muss Du jeweils die richtigen Handnummern der Kollegen in den 6 "case" Fällen eintragen.

 

Hinter den "Script Code einfügen" Block setzt Du nun einen "Ruf beenden" Block.

 

 

Ergebnis:

 

- wenn einer der 6 Kollegen anruft, setzt er seine eigene Handynummer als Parallelruf Nummer. Da der Ruf nicht verbunden wird, fallen dem Kollegen auch keine Kosten an.

- wenn irgendwer sonst anruft, klingelt es auf dem Yealink Telefon und der aktuell gesetzten Handynummer. Wenn da keiner dran geht, landet der Ruf beim Büroleiter.

 

 

Eine einfachere Lösung in der Anwendung als auch in der Konfiguration kann ich mir gerade nicht vorstellen.

 

Link to comment
Share on other sites


Vorab erstmal ein Riesenlob und Dankeschön an @Sebastian Dreier, welcher mit mir ein telefonisches Brainstorming gemacht hat und mir (ganz nebenbei) noch bei 3 anderen Themen helfen konnte 🙂 Super netter Kontakt und ausgesprochen kompetent!! Natürlich auch ein Danke an Tom, abgesehen von der angebotenen Antwort ist auch die Funktionsbeschreibung der Lua / VBS-Codes super hilfreich!

 

Mein Ansatz ist jetzt eher eine Mischung eurer beider Ideen, welche ich gerne für die Forenuser beschreiben möchte. (Hatte ich Hr. Dreier versprochen und ist auch richtig so!!)

Ich bitte um Nachsicht, wenn meine Beschreibung / Wording nicht ideal sind, ich fummel mich gerade in das ganze CallRouting Thema erst rein und probiere viel rum...

 

Der Plan ist, die Namenstasten am Tischtelefon zu belegen und so den "Login" der Kollegen zu machen.

Ich habe dem Telefonbenutzer eine neue INTERNE Durchwahl (949) gegeben. 

Bei eingehendem Ruf wird geprüft, ob die 949 angerufen wurde -> Ja = Funktion / Nein = Regel überspringen

Die Namenstasten sollen im Format -> Name = Freitext / Nummer = (zB) 9490016012345678 belegt

Über die die Funktion "PostDialingDigits" werden die Nummern NACH der 949 ausgelesen und in das Parallelcall Feld geschrieben.

So kann auch schnell ein Kollege angelegt / geändert werden. Bei Toms Idee stört mich ein wenig, dass die Nummern fest im Callrouting eingetragen werden muss. Dann muss ich wieder ständig selbst ran um Anpassungen zu machen. So können das die Kollegen für sich selbst erledigen 😉 

Soweit die Theorie...

 

So sieht mein aktuelles Test-Callrouting aus:

image.thumb.png.fb12d61b0bbaab0e63d6e2bda563a4e7.png

Die Ansage ist nur drin um zu testen, ob er auch auf dem richtigen Weg ist...

Noch nicht getestet, aber mein Plan wäre, dass der Büroleiter sich seine sofortige Rufumleitung auf seine Nummer setzt (dann kann die bei Urlaub / Krank etc.) schnell durch einen Kollegen am Telefon geändert werden. Wenn ich das Callrouting richtig verstehe, werden die Regeln der Reihe nach abgearbeitet. Das heißt, Regel übersprungen (bei Timeout, Besetzt,...) gehe in den nächsten aktiven Eintrag. 

image.png.06218cc6b79ef93e6944ec966b332e19.png

 

Das ist mein Code im Startblock:

Function SetParallelNo()
Const MAXWAITFORPDD     = 3  ' seconds
Const NUMOFEXPECTEDPDDS = 13  ' digits

Dim nWait
nWait = 0
While (Len(PostDialingDigits()) < NUMOFEXPECTEDPDDS) and (nWait < MAXWAITFORPDD)
  PBXScript.Sleep 1000
  nWait = nWait + 1
Wend

PBXUser.EnableParallelCall = True
PBXUser.ParallelCallNumbers = PostDialingDigits()
End Function

 

Der Code im Codeblock ruft nur die Funktion auf:

SetParallelNo
UseExit = 0 

 

Nun mein aktuelles Problem:

An und für sich läuft das auch. Aber der Wert in ParallelCallNumbers bleibt beim Benutzer immer leer.

Ich hab auch schon die direkte Zuweisung einer Nummer versucht: PBXUser.ParallelCallNumbers = "004916212345678"

Auch dieser Wert wird nicht eingetragen...

 

Das EnableParallelCall wird aber schon auf True gesetzt.

Was mach ich falsch?? Bin etwas ratlos!

Link to comment
Share on other sites


  • Solution

Die "PostDialingDigits" waren auch mein erster Gedanke. Da ich aber nicht wusste, ob an dem Telefon immer jemand ist, der auch umschalten kann, habe ich mich für das Umschalten wie oben entschieden. Das erfordert nicht, dass jemand am Telefon sitzt und per Namenstaste umschaltet.

 

Was Deinen Code angeht: da Du ja von einer Namenstaste aus wählst, d.h. per Blockwahl, brauchst Du im Skript nicht mehr max. 3 Sekunden darauf zu warten, ob Du alles zusammen gesammelt hast. Es kommt ja immer in einem Rutsch und es wird nicht von Hand nachgewählt.

 

Was das Problem des setzens der Nummer angeht: ich habe das gerade bei mir nachstellen können und auch bereits als Bug gemeldet.

 

Link to comment
Share on other sites


Ja, das war aus der Beschreibung auch tatsächlich nicht herauszulesen, dass die Kollegen immer erst ins Büro müssen, um Unterlagen (und Kaffee) zu holen.

Wenn ich das richtig sehe, springt er ja aus der Schleife, sobald er die 13 Digits hat. Er wartet beim Testen auch nicht so lange. Läuft super schnell durch. Aber du hast Recht, das braucht es wohl eher nicht 🙂 

 

Es beruhigt mich sehr, dass das ein Bug ist, weil ich schon etwa 1000 Varianten versucht hab, die Variable zu schreiben und habe schon langsam an mir und meinem Verstand gezweifelt...

Bis wann ist denn erfahrungsgemäß mit einer Lösung zu rechnen, wenn ein Bug gemeldet wird? 

 

Vielen Dank und einen schönen Abend.

Michi

Link to comment
Share on other sites


  • 6 months later...

@Tom Wellige Guten Morgen,

jetzt ist einige Zeit verstrichen und wir haben zwischenzeitlich das Update auf 13.28 durchgeführt.

 

Leider läuft es noch immer nicht. Der Code im Call Routing / PBXUser.ParallelCallNumbers schreibt noch immer keinen Wert beim User.

Ist da bei dem gemeldeten Bug schon was rausgekommen?

 

Vielen Dank und einen guten Start in den Tag 🙂

Link to comment
Share on other sites


Ich habe gerade gesucht und stelle fest, dass ich damals keine Rückmeldung bekommen hatte.

 

Unmittelbar nach meinem Report hatte ich alle Details zu den Call Routing Änderungen in der 13.27 erhalten und angefangen, die hier zu dokumentieren. Da ist mir Dein Problem aus dem Fokus geraten.

 

Ich werde da nochmal nachfragen, ob da schon was passiert ist.

 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.