- Mitglied seit
- 14 Feb 2009
- Beiträge
- 58
- Punkte für Reaktionen
- 0
- Punkte
- 6
Ich habe die aktuelle FreePBX 14 Distro in einer Virtualbox VM installiert mit Asterisk 13.22.0
FreePBX hat leider bisher keine Möglichkeit, das Resultat einer einfachen TimeConditions-Kette darzustellen. Das was zB bei einer Auerswaldanlage zur Standardfunktion gehört, nämlich Tasten am Telefon mit LED-Anzeige (Dienst, Kein-Dienst und Sonderdienst) ist in FreePBX nicht möglich.
freePBX weiß angeblich erst wenn ein Anruf reinkommt, wohin der Anruf laut aktueller Zeitschaltung (TimeConditions-Kette) geht.
Ich bringe hier mein Praxisbeispiel:
Die Apotheke hat jeden 9.Tag einen 24h Sonderdienst. Ich erstelle also eine Incoming Route die zur ersten TimeCondition zeigt...ich erstelle eine entsprechende TimeCondition SONDERDIENST gekoppelt an einen Sonderdienstkalender im Kalendermodul v freePBX, wo ich einen 24h-Event eintrage, der sich jeden 9. Tag wiederholt.
Diese SONDERDIENST-TimeCondition geht beim Match zum IVR der Apotheke, beim Non-Match gehts zur nächsten TimeCondition welche FEIERTAGE heißt. Diese TimeCondition ist an einen Kalender in FreePBX gekoppelt, der wiederum versorgt wird von einem finnischen Feiertagsgenerator ( http://www.webcal.fi/de-AT/feiertage.php ).
Also wenn kein Sonderdienst ist, dann leitet die FEIERTAGS-TimeCondition beim Match zum Anrufbeantworter und beim Non-Match zur dritten und letzen TimeCondition...nämlich DIENST. Da ist dann eine TimeGroup mit den Standarddienstzeiten Mo-Fr von 8:00-18:00h und Sa von 8:00-12:00h enthalten. Die TimeCondition DIENST leitet also bei einem Match mit den Standarddienstzeiten (wenn nicht schon vorher die TimeCondition SONDERDIENST gematcht wurde bzw. die TimeCondition FEIERTAGE zugeschlagen hat) zum IVR der Apotheke weiter bzw. bei einem Non-Match zum Anrufbeantworter.
So weit so gut. Nun die FRAGE: Wie kann ich an einem Digium, Sangoma oder Cisco Telefon visuell darstellen, ob wir nun offen oder geschlossen haben?
Ich habe 3 BLF Buttons an den Telefonen angelegt, mit den Featurecodes für die TimeConditions
*271 Sonderdienst
*272 Feiertage
*273 Dienst
...das Problem ist nur, man muss hier jedesmal nachdenken, um zu wissen in welchem "Zustand" sich die Anlage befindet.
An einem Feiertag an einem Wochentag um 16:00h, leuchtet die LED von Feiertage und die LED von Dienst grün...man muss dann wissen, dass der obere den unteren schlägt.
Wenn alle drei LEDs rot sind, dann bedeutet das dass KEIN-DIENST aktiv ist und alle Anrufe zum Anrufbeantworter geschickt werden.
Ich hatte das mal im freePBX-Forum erwähnt, dass jede Business-Telefonanlage in der Lage sein sollte, dem User visuell zu zeigen, ob der Laden (Haupttelefonnummer der Firma) offen oder geschlossen ist. Das hat dort niemanden interessiert. Die meinten, dass sie tausende von zufriedenen Kunden hätten und nach dem Feature noch nie jemand gefragt hätte...thread closed ;-)
Ich bin kein Programmierer, wäre aber bereit mir ein Skript zu stricken und die notwendigen Dinge zu lernen. Nur weiß ich derzeit gar nicht, wo ich anfangen soll, und wär sehr froh, wenn mir jemand einen Tipp geben könnte...wie die Route ungefähr ausschaut.
Mir ist aufgefallen, dass wenn ich in Asterisk CLI 'core show hints' eingebe, dass mir meine drei TimeConditions angezeigt werden.
*271@timeconditions-: Custom:TC1 State:InUse Presence:not_set Watchers 1
*272@timeconditions-: Custom:TC2 State:InUse Presence:not_set Watchers 1
*273@timeconditions-: Custom:TC3 State:InUse Presence:not_set Watchers 1
Mir ist auch noch aufgefallen, dass wenn sich eine TimeCondition im Match-Modus befindet, dass dort statt 'InUse' 'Idle' steht. Ich müsste jetzt also ein Skript basteln, was den Status meiner drei TimeConditions abfragt, dann die Logik berücksichtig (271 schlägt 272 welche 273 schlägt) und mir dann das Letztziel ausgibt e.g. Sonderdienst-match bzw. Dienst-non-match.
Im Idealfall würde ich das dann auch noch über XML am Telefon darstellen und alle paar Sekunden abfragen.
Wäre für jeden Tipp sehr dankbar ;-)
Reinhard
EDIT: Weiterer Nachtrag
...das wäre ja mal ein Anfang...aber dieses Script kann viel zu viel...
Simple PHP script that checks the extension status at a remote PBX and updates a custom hint on the local pbx for proper BLF operation.
https://gist.github.com/lgaetz/8545099
Weiterer Nachtrag (ich verwende den Thread mal als meinen Notizzettel ;-)
Um die Information für jede TimeCondition zu bekommen, muss ich in Asterisk CLI sowas eingeben
CLI> core show hint *271
dann bekomm ich das
*271@timeconditions-: Custom:TC1 State:InUse Presence:not_set Watchers 1
1 hint matching extension *271
...Match State wäre Idle ...non-Match State: InUse
FreePBX hat leider bisher keine Möglichkeit, das Resultat einer einfachen TimeConditions-Kette darzustellen. Das was zB bei einer Auerswaldanlage zur Standardfunktion gehört, nämlich Tasten am Telefon mit LED-Anzeige (Dienst, Kein-Dienst und Sonderdienst) ist in FreePBX nicht möglich.
freePBX weiß angeblich erst wenn ein Anruf reinkommt, wohin der Anruf laut aktueller Zeitschaltung (TimeConditions-Kette) geht.
Ich bringe hier mein Praxisbeispiel:
Die Apotheke hat jeden 9.Tag einen 24h Sonderdienst. Ich erstelle also eine Incoming Route die zur ersten TimeCondition zeigt...ich erstelle eine entsprechende TimeCondition SONDERDIENST gekoppelt an einen Sonderdienstkalender im Kalendermodul v freePBX, wo ich einen 24h-Event eintrage, der sich jeden 9. Tag wiederholt.
Diese SONDERDIENST-TimeCondition geht beim Match zum IVR der Apotheke, beim Non-Match gehts zur nächsten TimeCondition welche FEIERTAGE heißt. Diese TimeCondition ist an einen Kalender in FreePBX gekoppelt, der wiederum versorgt wird von einem finnischen Feiertagsgenerator ( http://www.webcal.fi/de-AT/feiertage.php ).
Also wenn kein Sonderdienst ist, dann leitet die FEIERTAGS-TimeCondition beim Match zum Anrufbeantworter und beim Non-Match zur dritten und letzen TimeCondition...nämlich DIENST. Da ist dann eine TimeGroup mit den Standarddienstzeiten Mo-Fr von 8:00-18:00h und Sa von 8:00-12:00h enthalten. Die TimeCondition DIENST leitet also bei einem Match mit den Standarddienstzeiten (wenn nicht schon vorher die TimeCondition SONDERDIENST gematcht wurde bzw. die TimeCondition FEIERTAGE zugeschlagen hat) zum IVR der Apotheke weiter bzw. bei einem Non-Match zum Anrufbeantworter.
So weit so gut. Nun die FRAGE: Wie kann ich an einem Digium, Sangoma oder Cisco Telefon visuell darstellen, ob wir nun offen oder geschlossen haben?
Ich habe 3 BLF Buttons an den Telefonen angelegt, mit den Featurecodes für die TimeConditions
*271 Sonderdienst
*272 Feiertage
*273 Dienst
...das Problem ist nur, man muss hier jedesmal nachdenken, um zu wissen in welchem "Zustand" sich die Anlage befindet.
An einem Feiertag an einem Wochentag um 16:00h, leuchtet die LED von Feiertage und die LED von Dienst grün...man muss dann wissen, dass der obere den unteren schlägt.
Wenn alle drei LEDs rot sind, dann bedeutet das dass KEIN-DIENST aktiv ist und alle Anrufe zum Anrufbeantworter geschickt werden.
Ich hatte das mal im freePBX-Forum erwähnt, dass jede Business-Telefonanlage in der Lage sein sollte, dem User visuell zu zeigen, ob der Laden (Haupttelefonnummer der Firma) offen oder geschlossen ist. Das hat dort niemanden interessiert. Die meinten, dass sie tausende von zufriedenen Kunden hätten und nach dem Feature noch nie jemand gefragt hätte...thread closed ;-)
Ich bin kein Programmierer, wäre aber bereit mir ein Skript zu stricken und die notwendigen Dinge zu lernen. Nur weiß ich derzeit gar nicht, wo ich anfangen soll, und wär sehr froh, wenn mir jemand einen Tipp geben könnte...wie die Route ungefähr ausschaut.
Mir ist aufgefallen, dass wenn ich in Asterisk CLI 'core show hints' eingebe, dass mir meine drei TimeConditions angezeigt werden.
*271@timeconditions-: Custom:TC1 State:InUse Presence:not_set Watchers 1
*272@timeconditions-: Custom:TC2 State:InUse Presence:not_set Watchers 1
*273@timeconditions-: Custom:TC3 State:InUse Presence:not_set Watchers 1
Mir ist auch noch aufgefallen, dass wenn sich eine TimeCondition im Match-Modus befindet, dass dort statt 'InUse' 'Idle' steht. Ich müsste jetzt also ein Skript basteln, was den Status meiner drei TimeConditions abfragt, dann die Logik berücksichtig (271 schlägt 272 welche 273 schlägt) und mir dann das Letztziel ausgibt e.g. Sonderdienst-match bzw. Dienst-non-match.
Im Idealfall würde ich das dann auch noch über XML am Telefon darstellen und alle paar Sekunden abfragen.
Wäre für jeden Tipp sehr dankbar ;-)
Reinhard
EDIT: Weiterer Nachtrag
...das wäre ja mal ein Anfang...aber dieses Script kann viel zu viel...
Simple PHP script that checks the extension status at a remote PBX and updates a custom hint on the local pbx for proper BLF operation.
https://gist.github.com/lgaetz/8545099
Weiterer Nachtrag (ich verwende den Thread mal als meinen Notizzettel ;-)
Um die Information für jede TimeCondition zu bekommen, muss ich in Asterisk CLI sowas eingeben
CLI> core show hint *271
dann bekomm ich das
*271@timeconditions-: Custom:TC1 State:InUse Presence:not_set Watchers 1
1 hint matching extension *271
...Match State wäre Idle ...non-Match State: InUse
Zuletzt bearbeitet: