Die Frage die sich klärenderweise noch stellt ist: wieviele Nebenstellen sollen solch eine Funktion bekommen?
Erste Idee eines Ablaufplan (für 'beliebig viele' Nebenstellen):
CFA1 - die behandelt eingehende Anrufe:
- jeder Anruf kommt über eine DID nicht auf der NSt. mit dem Endgerät des Benutzers (z.B. 210) sondern je auf einer eigenen (extra vorher einzurichtenden) Dummy Nebenstelle (z.B. 310) an
- die Dummy Nebenstelle hat kein registriertes Endgerät, aber in deren Feld Mobilnummer steht die Nummer der ersten CFA1 drin und in den Weiterleitungseinstellungen der NSt. ist die Option 'Anrufe gleichzeitig auf Mobiltelefon signalisieren' aktiviert, diese Nebenstelle kann sinnvollerweise im Telefonbuch der 3CX ausgeblendet werden
- für jede solche Nebenstelle wird z.B. eine eigene globale Variable (Parameter / Einstellungen) definiert (Name: 'AnsageNSt210', Wert als Text entweder '0' oder etwas beliebig anderes)
- die Dummy Nst. bekommt über eine DID und eingehende Regeln einen Anruf und damit auch die CFA1 (weil die in Mobilnummer drin steht und die Signalisierung bekommt), auf Grund z.B. einer festgelegten / hartcodierten Zuordnungstabelle und der angerufenen NSt. (310) weiss die CFA1 dass der Anruf eigentlich an eine andere NSt. (210) geleitet werden soll
- es wird die passende globale Variable ('AnsageNSt210') abgefragt:
- wenn die Variable vorhanden und deren Wert = 0 ist oder die Variable nicht vorhanden ist dann wird der Anruf an die Zielnebenstelle (210) weitergeleitet
- wenn die Variable vorhanden ist und deren Wert != 0 ist dann wird die Ansage abgespielt
- per DTMF wird danach die Eingabe des Anrufers abgefragt
- wenn die Eingabe des Anrufer eine 1 war ('ich stimme zu') dann wird der Anruf wird an die Zielnebenstelle (210) weitergeleitet, sonst nicht
- Ende CFA1
CFA2 - die schaltet die Ansage für NSt. ein oder aus:
- eine NSt. (210) ruft die CFA2 an um die Ansage ab- oder anzuschalten
- die CFA2 ermittelt so, welche NSt. (210) angerufen hat und fragt daraufhin die zugehörige globale Variable ('AnsageNSt210') auf Vorhandensein und Inhalt ab
- ist diese Variable vorhanden und der Inhalt = '0' dann wird der Inhalt auf '1' gesetzt, evtl. kann noch eine Ansage abgespielt werden ('Die Ansage wurde soeben zugeschaltet')
- ist diese Variable vorhanden und der Inhalt != '0' dann wird der Inhalt auf '0' gesetzt, evtl. kann noch eine Ansage abgespielt werden ('Die Ansage wurde soeben abgeschaltet')
- ist diese Variable nicht vorhanden dann wird diese Variable angelegt, deren Inhalt auf '1' gesetzt, evtl. kann noch eine Ansage abgespielt werden ('Die Ansage wurde soeben zugeschaltet')
- Ende CFA2
Klingt billig, ist es auch, sollte aber so funktionieren. Es ist halt ohne weiteres an einem Telefon nicht ersichtlich, ob die Ansage gerade ein- oder ausgeschaltet ist. Das könnte man sich z.B. mit Anruf einer dritten CFA ansagen lassen (oder einfach CFA2 2x hintereinander anrufen).
Es wird pro real erreichbarer Nebenstelle je noch eine weitere NSt. als Dummy und eine globale Variable benötigt. Es ist sinnvoll, die Zuordnung der realen NSt. und der Dummy NSt. einfach abzubilden (fester Offset in der Numerierung, z.B. +100). Sonst müsste man mit statisch programmierten Zuordnungstabellen oder in einer Textdatei hinterlegten Zuordnungstabellen (Ziel NSt. / Dummy NSt. / Variablenname) arbeiten.
Vielleicht hat noch jemand anderes eine bessere Idee - ohne Dummy Nebenstellen.
Ich dachte auch schon an Nutzung eines anderen Status einer Nebenstelle usw. - aber das wird nicht wesentlich einfacher.
Edit: kleinere Korrekturen in den letzten Minuten, hab mich durch den langen Text mehrfach vertippt und etwas gar vergessen