Nach etwas probieren hat sich die folgende, noch im Detail zu testende Lösung anerboten:
Modul A:
- Define module type: Call-Processing
- Activation: on all incoming calls
- Code:
Code:
SetVariableValue('Channel','STOP_MODULE','TRUE')
exit
Modul B (zum Beispiel eine Kopie des Moduls Zeitgesteuerte Umleitung)
- Code am Anfang der Hauptroutine (oder dort wo es reinpasst - Vorsicht beim Modul Zeitgesteuerte Umleitung! Ich habe den Code nicht am Anfang sondern vor dem SWITCH Statement eingesetzt):
Code:
GetVariableValue('Channel','STOP_MODULE') --> _value
if(?(_value))
exit
Modul Reihenfolge A, B
Wenn Modul A inaktiv ist, wird Modul B ganz durchlaufen.
Wenn Modul A aktiv ist, wird Modul B beim 'exit' abgebrochen.
So wie ich die Option 'Channel' verstehe, wirkt sich das ganze jeweils pro aktiven call (Channel) aus. Das heisst, beim nächsten Anruf startet das ganze von vorne.
Sieht jemand ein Problem? Ich habe mit dieser Lösung ziemlich alles getestet was mir in den Sinn kam. Aber vielleicht verpasse ich etwas?
Wozu das Ganze?
Ein Kunde hat recht komplexe Zeitgesteuerte Umleitungen mit verschiedenen Zeiten und Aktionen (Ansagen, Weiterleitung auf verschiedene Mailboxen, Weiterleitung auf Nummern, etc.). An und für sich mit dem wiederholten Einsatz vom Modul Zeitgesteuerte Umleitung (in meinem Fall 4, ev. 5 aktive Module dieses Typs) kein Problem. Allerdings will der Kunde auch noch eine Möglichkeit alle Umleitungen aufs Mal ausser Kraft zu setzen, im Sinne von "es sind zwar Umleitungen definiert, aber jetzt bin ich trotzdem als Firma erreichbar". Und es sollte machbar sein mit einer Funktionstaste am Telefon.
--> Modul A aktiv, alle Umleitungen ausser Betrieb
--> Modul A inaktiv, alle Umleitungen in Betrieb
Daniel
Lesezeichen