Sprung innerhalb eines eigenen Moduls

  • Hallo in die Runde.

    Im Moment arbeite ich an der Machbarkeit für eine spezielle Kundenanforderung für ein IVR-Modul.

    Das Grundgerüst funktioniert bis jetzt einwandfrei, allerdings wünscht der Kunde eine Information für den Anrufer, wenn dieser eine falsche Auswahl getroffen hat.
    Das Abfangen der DTMF-Töne mache ich mit switch/switch_case.

    Beispiel:

    Drückt ein Anrufer während oder nach der Ansage die Taste 5, für welche aber kein Rufziel hinterlegt ist, soll nicht auf "switch_default" abgeworfen werden, sondern
    eine Ansage abgespielt werden, in welcher der Anrufer auf seine Fehleingabe hingewiesen wird. Im Anschluss soll die Auswahlansage nochmals abgespielt werden.

    Hierzu würde ich gerne innerhalb des Moduls einen Sprung auf die vorherige Komponente "PlaybackResourceFile" durchführen.

    Allerdings finde ich keinen vernünftigen Ansatz, wie ich diesen "Sprung" vollziehen kann.

    Vielleicht gibt es ja einen, der mir einen Denkanstoss geben kann oder aber direkt eine Lösung hat!?

    Besten Dank schon einmal im Voraus für eure Antworten.

    Gruß Andy

  • Hallo Andy

    Neben dem von fgaertner Vorgeschlagenen vorgang, würde ich das ganze in eine while Schleife machen

    Ungefähr so:

    Variable STRING DTMF_Selection = "-"

    while(DTMF_Selection not empty)

    ______PlaybackResourceFile(....)-> DTMF_Selection

    ______switch(DTMF_Selection)

    ______case 0

    ____________break (While Loop break)

    ______case 1

    ____________break (While Loop break)

    ...

    ______default

    ____________PlaybackResourceFile(Ungültige_Auswahl.wav)

    MfG


    Fabian

  • Ich lass einfach die Ansage mit der Auswahl nochmal von vorne starten, sobald eine ungültige Auswahl getroffen wird.

    Viele Grüße,

    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG

    STARFACE Excellence PLUS Partner

  • Du solltest noch Rücksicht darauf nehmen/prüfen ob der Teilnehmer noch am Telefon ist, wenn du so eine schleife baust.

    Wenn du ein Playback auslöst, und kein Teilnehmer mehr am Telefon ist erhälst du einfach ein leeres DTMF Result.

    Das kannst du z.b. mit ISChannelopen prüfen, oder mit ExitIfChannelDown gleich das Modul beenden, wenn du nichts weiteres mit den Informationen machen musst.


    MfG


    Fabian

  • Eine kurze Zwischenfrage:

    Egal, ob ich jetzt mit CallGroup oder CallPhoneNumber arbeite, es wird immer als Anruf in Abwesenheit gewertet und angezeigt. Wenn ich nun einen Loop mit 1 oder 2 Zwischenansagen baue, werden mir auch 2 oder 3 Anrufe in Abwesenheit signalisiert, sofern ich den Anruf nicht entgegen nehme.

    Gibt es eine Möglichkeit dieses zu unterbinden?

    Es passiert ja auch, wenn ein anderer Teilnehmer der Gruppe das Gespräch entgegen nimmt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!