Asterisk "Ring Groups" per Skript modifizieren

kirchy

Neuer User
Mitglied seit
28 Jan 2005
Beiträge
22
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich habe hier gerade eine Lösung mit Elastix in Betrieb genommen - so weit läuft auch alles wie es soll. Ich möchte nun aber gerne "irgendwie per Skript" jeden Tag eine gewisse Durchwahl für die Abendstunden auf eine Handy-Nr weiterleiten (Bereitschaftsnummer). Die Nummer wechselt jeden Tag und ist nicht vorhersehbar, also kein festes Schema bezüglich Wochentagen o.ä.. Bisher lief das bei der alten ISDN-Anlage so, dass da an einer Nebenstelle ein alter PC mit einer AVM ISDN-Karte hing und per Skript aus einer Datenbank die heutige Handy-nr gelesen hat und mit einem Shell-Kommando die ISDN-Weiterleitung entsprechend gesetzt und spät abends wieder gelöscht wurde. Nun gibts aber nur noch SIP-Telefone.
Ich war eigentlich der festen Überzeugung das kann man doch bestimmt über das Asterisk CLI irgendwie so automatisieren, aber irgendwie hab ich da wohl falsch gedacht?! Zumindestens finde ich nix.

Die betreffende Durchwahl habe ich auf eine Ring Group geroutet da tagsüber da Nebenstellen klingeln sollen (können sie abends auch machen, nur ist halt dann keiner da). Nun habe ich einfach mal dort auch eine externe Rufnummer (Elastix/FreePBX-Frontend) eingegeben und dann in den Configs gewühlt wo das nun so alles steht und bin auf 5 Zeilen in der extensions_additional.conf gekommen.
Nun könnte ich da also eine Dummy-Nummer eintragen, 5 Minuten vor dem Schalten der Weiterleitung die extensions_additional.conf sichern, darin "suchen und ersetzen" spielen, asterisk neu laden und später dann die Config zurück kopieren und wieder neu laden um die Weiterleitung wieder raus zu bekommen.
Nun darf nur während der Bereitschaft keiner eine Änderung am Elastix eingeben weil dann ja die Configs neu geschrieben werden würden und der Bereitschaftsdienst nicht mehr erreichbar wäre (könnte ich notfalls erstmal mit leben, da eh nur ein weiterer Kollege an der TK Anlage was anfassen würde und dann müsste man sich halt klar machen, dass man da abends nicht ran darf).

Aber irgendwie ist das doch ne Krücke? Kann man das nicht übers CLI oder so setzen und überwachen?

Danke für jeden Tip... nach viel googlen hab ich praktisch alles hin bekommen wo ich irgendwie Probleme hatte, nur in diesem Punkt bin ich keinen Schritt weiter gekommen...
 
Also per CLI geht das wohl erst mal nicht so einfach, Du müsstest wenn dann sozusagen das GUI fernsteuern.

Bei einem echten Asterisk würde man die Zielnummer zB. in die AstDB schreiben, das ginge auch per CLI, und den Eintrag im Dialplan auswerten. Kann man in der Ringgroup "virtuelle" Nebenstellen nach dem Local-Channel Schema einbinden?

Wobei mich das wundert, dass man das nicht direkt im GUI über Geschäftszeiten regeln kann.
 
Ich habe keine Ahnung von Elastix und FreePBX, da ich grundsätzlich GUI-Verweigerer bin. Du redest davon, dass Du vorher die Daten aus einer Datenbank geholt hast. Das geht auch Adhoc mit Asterisk ziemlich einfach, indem Du ein System-Skript einsetzt. Du kannst damit die gesamte Logik in ein PHP, Perl, Bash oder was auch immer Skript auslagern.

Code:
[from-external]
exten => s,1,Set(newDestination=${SHELL(getactivenumber)})
exten => s,n,Dial(SIP/${$newDestination},150,r,t)

Und dann legst Du Dir ein Skript in "/usr/bin/getactivenumber" und programmierst da deine Logik rein. Die einzige Ausgabe auf der Konsole sollte dann die Zielrufnummer sein. Da kannst Du im Skript die DB anzapfen, die Zeit abfragen usw. Brauchst Du keine komplexen Dateneingaben in irgendeinem Backend.

Vg, Jan
 
In einem plain Asterisk gibt es tausend Möglichkeiten, so etwas umzusetzen.

Das Problem ist das GUI. Manuelle Änderungen an GUI-made Dialplänen sind nicht so einfach möglich. Man muss dazu den Quellcode bzw. die Vorlagen bearbeiten.

Für alles, was das GUI nicht von sich aus kann, gibt es die extensions-additional.conf bzw. extensions-custom.conf. Mitten in den Callflow rein grätschen geht darüber aber auch nicht, sondern man kann eine dort angelegte exten allenfalls als Ziel wählen und von dort aus per Goto wieder in den GUI-Dialplan springen, wenn man weiß wo hin. Oder eben das Ding als Local-Channel Extension einbinden.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.