CallPhoneNumber in 7.x hat mehr Parameter und zeigt anderes Verhalten

  • Hallo zusammen,


    ich stehe vor dem Umstieg der Starface von 6.7.3.22 zur 7. Ich habe mir dazu eine Testmaschine mit 7.1.1.7 aufgesetzt und meine Module importiert.


    Dabei ist aufgefallen, das die Funktion "CallPhoneNumber" jetzt mehr Parameter hat und die Erklärung zu den Parametern unzureichend sind.

    - Was ist "Caller Channel" ? Ich habe es mit der neuen Funktion "GetCurrentChannel" probiert.

    - Welche Bedeutung hat "Outgoing"? Da die Funktion einen Anruf erzeugt ist das ja immer ein outgoing call, oder? Oder ist gemein, das es ein Ruf nach außerhalb der Anlage wird?


    Im Ergebnis funktionierten jetzt meine Module, die diese Funktion nutzen, nicht wie bisher.

    Beispiel Sekretariatsfunktion (ist bei uns etwas speziell, deshalb kann ich die vorhandene nicht nutzen):

    Der Anrufende zum Chef wird umgeleitet zum Sekretariat. Beendet jetzt das Sekretariat das Gespräch ohne Vermittlung, so klingelt der Anrufer jetzt direkt beim Chef. Das soll so natürlich nicht sein.

    Noch eigenartiger ist es, wenn das Gespräch vermittelt wird, der Anrufer als mit dem Chef gesprochen hat und jetzt der Chef auflegt. Auch in dem Fall klingelt es wieder beim Chef und der Anrufende ist weiterhin dran.

    Nur wenn der Anrufende zuerst das Gespräch beendet funktioniert alles wie bisher.

    Es sieht so aus als würde das Telefonat nicht wirklich beendet, wenn es nicht von dem Anrufenden beendet wird.


    Wie ist diese Funktion korrekt zu benutzen?

    pasted-from-clipboard.png


    Ich habe es schon mit einem "HangUp" nach der Vermittlung versucht. Dann kommt der zweite Ruf nicht, aber der Anrufende bleibt in der Leitung.


    Bisher alles nur mit internen Rufnummern probiert, sollte aber keine Rolle spielen.


    Wäre schön wenn mir jemand helfen könnte.


    Auch habe ich keinerlei Informationen in den Release-Notes der Version 7 gefunden, die die Veränderungen am Modul-System erklärt.

    Wer kann mich dort mit Informationen versorgen?


    Danke für eure Hilfe.


    Steffen

  • Hallo Steffen


    Ich habe das Modul analysiert, und habe etwas Feedback bezgl. des Bauteins, und des CallPhoneNumber bausteins.


    Von der STARFACE 6.X zu 7.X hat sich etwas an der Identifikation der Calls geändert. zuvor wurde mit CalllegUUID's gearbeitet, und neu Arbeitet man mit CallerChannels.


    Die neue Variable "CallerChannel", muss nicht belegt werden. Meines wissens definiert dies nur wem dieser Anruf gehört. und hat dadurch eventuell einfluss auf die CDR's.

    Den Wert "Outgoing" lass ich standardmässig auf "false" auch dieser hat nach mir keinen direkten Einfluss auf das Verhalten des Moduls, (Weiss auch nicht wozu der gut ist)


    Das Problem mit deinem Modul ist, dass es im Fehlschlag keine Notroutine hat.

    Das bedeutet, wenn keine der Bedingungen des Moduls passt, so macht das Modul am Ende mit dem Anruf gar nichts, und stellt ihn durch.


    In deinem Fall, wenn der Teilnehmer der Gruppe angerufen wird, und dieser nicht abnimmt, wird dieser vorgang nicht wiederholt, sondern das Modul sagt einfach "Ich bin fertig mit der Anrubearbeitung"


    Deine Version


    1.png


    Mein grober Vorschlag


    2.png


    Zu beachten gibt es, das ist keine perfekte Lösung. Ich prüfe z.b. vor dem CallPhoneNumber nicht nochmal , ob der Kunde wirklich noch drann ist, sondern erst beim nächsten Loop. Da fehlt also noch ein IF.


    Ich hoffe es ist verständlich.


    Ausserdem gibt es einen Bug mit dem CallPhoneNumber, dass bei wiederholten Anrufen, alle Folgeversuche automatisch sofort ein "false" zurückgeben.

    Hierfür gibts von mir einen Fix: [Fix] RepairCallPhoneNumber


    MfG


    Fabian

  • Hi Fabian,


    Den Wert "Outgoing" lass ich standardmässig auf "false" auch dieser hat nach mir keinen direkten Einfluss auf das Verhalten des Moduls, (Weiss auch nicht wozu der gut ist)


    das Feld "outgoing" markiert den erzeugten Kanal als ein- oder ausgehend für die Darstellung in der UCI.


    LG


    Tom

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Hallo Fabian,


    danke, dass du dir das so intensiv angesehen hast.

    Du hast jedoch meine Intension mit der Gruppe nicht ganz erkannt. Ich will nicht jedes Mitglied der Gruppe anrufen, sondern ich will mit der Schleife nur ermitteln, ob überhaupt noch jemand in der Gruppe angemeldet ist.

    Wenn es also mindestens einen angemeldeten Teilnehmer gibt soll das Gespräch in die Gruppe weitergeleitet werden, wer es dann abnimmt ist egal. Auch ob es angenommen wird oder nicht ist egal.

    Wenn niemand in der Gruppe ist soll das Gespräch nicht "abgefangen", sondern zu dem ursprünglichen Ziel weitergeleitet werden. So als gäbe es das Modul nicht. Das ist die Situation "unbesetztes Sekretariat"


    Ich habe den Eindruck, dass der Kanal nicht abgebaut wird, nachdem das Gespräch vermittelt wird und intern angenommen und dann beendet wird. Er springt dann in den Modus "Gruppe ohne Teilnehmer", obwohl nach dem Vermitteln ein "Break" gesetzt ist.


    Ich habe es mit einem "Hangup" und nachfolgendem "Exit" probiert, aber das beendet das Gespräch leider auch nicht komplett, der Anrufer bleibt in der (jetzt toten) Leitung.


    Dein Modul RepairCallPhoneNumber, platziert unmittelbar vor dem "CallPhoneNumber", ändert leider auch nichts am Verhalten.


    Die Grundidee sollte sich doch umsetzen lassen: Wir behandeln einen Anruf an eine Rufnummer und leiten ihn um, sodass er nur zur Umleitung kommt und nicht zum ursprünglichen Ziel. Nach dem Zustandekommen des Gespräches wird korrekt beendet.

    Problem: hier wird nach dem Beenden von innen das Gespräch doch noch an den ursprünglichen Anrufer weitergeleitet.


    Noch Ideen?


    Danke für eure Hilfe.


    Steffen

  • Hallo Steffen


    Achso verstehe.

    Dementsprechend ist es doch besser anstatt mit Foreach einfach mit "Size(_userofGroups)" zu arbeiten. Wenn der Wert > 0 ist, dann ist jemand in der Gruppe.


    Zusätzlich habe ich es so angepasst, und es funktioniert:


    3.png


    Der Anruf wird durch das Modul angenommen, und versucht an die Gruppe zu vermitteln. Wurde der Anruf erfolgreich Ermittelt, so bleibt das Modul automatisch bei "CallPhoneNumber" stehen, wenn zwei Kanäle miteinander verbunden sind. Sobla eine der zwei Stellen aufgehängt wird, geht das Modul hin, und hängt die andere Stelle auch auf, sofern der Anruf erfolgreich war.

    Falls der Anruf nicht erfolgreicht war, hängt das Modul diesen auch nicht auf, und es geht ordnungsgemäss zum Chef.


    MfG


    Fabian

  • Hallo Fabian,


    ich habe es jetzt entsprechend deinen Vorschlag umgebaut und das Verhalten bessert sich. Ich habe auch unabhängig davon, ob das Gespräch von der Gruppe angenommen wurde, das "Hangup" gesetzt.

    Das Gespräch wird jetzt aber leider nur einseitig beendet. Der Anrufende bleibt in der nun toten Leitung. Er muss manuell auflegen.

    Hat das was mit der neuen Behandlung der Channels zu tun? Muss man den Channel auch noch irgendwie beenden? Ich finde dafür keinen Befehl.


    Danke für deine Hilfe.


    Steffen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!