Frage

Können Sie mir bitte jemand in mir zeigen in eine Richtung, Beispielcode oder eine Online-Ressource zu erreichen, die folgenden:

Anforderung: Ich möchte eine einfache IVR Menü-Option schreiben, die ein Skript (Bash oder Python) ausgeführt werden sollen. Zum Beispiel ruft die Asterisk-Maschine und fordert einen Dienst auf einer anderen Linux-Box neu zu starten. Die ‚andere Linux-Box‘ Details schwer zu IVR-Menüoption codiert werden würden und nicht erforderlich, da ein Teil der IVR-Interaktion geliefert werden - nur Service X neu starten auf Feld Y. Ich bin etwas besorgt und unsicher, wie man dies mit einem sichern würde Passwort (auch wenn es schwer in Version codiert).

Hintergrund: Ich bin ein Asterisk-Neuling und installiert es von der AsteriskNow Verteilung und ich lerne immer noch das Produkt. Die grundlegende PBX-Funktionalität arbeitet und durch FreePBX verabreicht. Asterisk ist nicht unser Schwerpunkt der Entwicklungsarbeit, sondern ein Werkzeug in der Toolbox. Wir meist .NET Arbeit tun, aber Unix Fähigkeiten haben.

Wenn möglich, würde ich nicht gerne Tage verbringen die Details Asterisk integrieren lernen die Arbeit zu erledigen ...

War es hilfreich?

Lösung

Die Asterisk AGI Seite enthält Links zu Anwendungen in vielen Programmier Sprachen. Wenn Sie das tun meist .NET, vielleicht nasterisk oder die ältere MONO-TON helfen.

Andere Tipps

Asterisk ist nicht immer wartet auf Benutzereingaben. Erst im Hintergrund, WaitExten, Lesebefehle. Wenn Sie mit Playback (), Asterisk ignoriert alle DTMF, während es die Audiodatei spielt.

Sie können ersetzen Wiedergabe mit Read (), aber Sie haben die Lese Timeout auf einen sehr niedrigen Wert setzen oder es wird eine Stille nach jeder Audio-Datei, die Sie mit Read spielen () sein. Wenn Sie Read (), dann müssen Sie den Wert Eingang für Ausgang, so etwas zu überprüfen, indem der Benutzer überprüfen ...

Anstelle von

exten => x,n,Playback(yourfile) 
exten => x,n,somethingelse...

Sie müssen

exten => x,n,Read(Exit,yourfile,1)
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1) 
exten => x,n,somethingelse...

Werden Sie Asterisk einrichten nur für dieses oder ist es / wird es andere Dinge tun, wie PBX, IVR, etc.?

Wenn Sie andere Dinge tun, mit Asterisk, stellen Sie dann eine versteckte Verlängerung (ein nicht auf dem IVR Menü beworben), die Sie wählen können, wenn Sie verbunden sind; in dieser Erweiterung können Sie die Anrufer-ID überprüfen und vergleichen Sie es mit Ihrer Nummer, so dass nur Sie das Skript ausführen können (Sie etwas mehr Sicherheit, indem er für eine PIN-Nummer hinzufügen können, so können Sie leichter Ruhe, wenn Sie nicht finden können Ihr Telefon).

So etwas wie folgt aus:

exten => 9999,1,GotoIf($["${CALLERID(num)}" = "yournumber"]?4)
exten => 9999,2,Playback(sorry)
exten => 9999,3,Hangup
exten => 9999,4,Read(Pin,please-enter-pin,4)
exten => 9999,5,AGI(your-script)

In your-Skript überprüfen Sie das Pin-Variable und wenn sie gültig ist, ausgeführt werden, sonst verlassen, ohne etwas zu tun. Auf diese Weise müssen Sie den Stift nicht in der dialplan hart codieren, die jemand anderes aussehen kann auf ... wenn es sich um eine vertrauenswürdige Maschine ist, dann können Sie den Pin direkt im dialplan bestätigen:

exten => 9999,5,GotoIf($["Pin" != "1234"]?2)
exten => 9999,6,AGI(your-script)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top