Abfrage der Asterisk-internen Datenbank aus Perl-Script

stevie

Neuer User
Mitglied seit
3 Aug 2005
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Hallihallo!
Weiß jemand, wie ich eine Abfrage aus einem Perl-Script an die *-interne DB durchführen kann?
Hintergrund: Meine User sollen mit einer Art "Webfax-Mechanismus" Faxe über * verschicken können! Da ich ja die Mail-Adresse sehen kann, will ich im Callfile die CallerID entsprechend setzen!
Hat da jemand eine Idee oder einen Link??
Vielen Dank im voraus für Eure Hilfe!

Grüße
Stevie
 
Du könntest entweder vom Perl-Skript mit einem system-Kommando ein asterisk -rx <asteriskkommando> ausführen ... oder von perl über das Managerinterface auf Asterisk zugreifen. Beides aber von der Sicherheit her nicht soo toll.

Mir ist jetzt nur nicht so ganz klar was Du da in der *-internen DB drin hast und was jetzt wo gesetzt werden soll. Alternativ könnte man auch direkt auf die Asterisk-Konfigurationsdateien zugreifen oder aber Asterisk mit realtime verwenden und dann von perl auf diese DB zugreifen.

Wobei die Frage ist: was willst Du jetzt als CallerID setzen? Oder meinst Du die Stationskennung vom Fax?
 
Hallo rajo!
Danke für Deine Hilfe!
Ich habe hier eine Fax-Routing-Lösung implementiert (Jeder Mitarbeiter hat eine eigene Fax-Nr., eingehende Faxe werden direkt an den entsprechenden Mitarbeiter per Mail zugestellt!)
Das Ganze macht natürlich nur Sinn, wenn die Kollegen beim Versenden eines Faxes auch ihre eigene Fax-Nr. bei der Übertragung mitschicken! Da ich irgendwelchen Irrläufern von vorneherein vorbeugen möchte, will ich in der CallerID, im Faxheader und im Dokument überall die selbe "sendende Fax-nr. stehen haben.
Mir ist aber eben noch eine viel simplere Idee gekommen! :gruebel:
Ich lasse die CallerID und die StationID im Callfile einfach weg und frage die *-DB mit einem "get" aus dem Dialplan ab und setze die beiden Parameter dann!
Das setzt natürlich voraus, daß ich in das Callfile 'reinschreiben kann was ich will! Kann ich das?? Und wie kann ich die Parameter im Callfile innerhalb des Dialplans auslesen? Gar nicht, weil das in tx_fax fest verdrahtet ist??? Oder wie???
Wenn ich im Callfile eine Mail-Adresse unterbringen und auf diese im Dialplan irgendwie zugreifen kann, dann könnte ich von da eine Abfrage auf die DB machen!
Dat solllllllte doch eijentzlisch tun, oder nisch??? :-D

Grüße
Stevie
 
Um es abzuschließen!
Ich werde es erst mal mit dem "asterisk -rx Kommando" machen! Später werde ich mir das berkley-db-Modul für perl kompilieren und von extern eine Abfrage an die DB stellen.
Mal schauen, wie das alles so klappt.....ist spannender als jeder Krimi! :)
Grüße
Stevie
 
Hm.....ganz so einfach ist es wohl doch nicht!
Mein Fax geht 'raus und wird auch tadellos empfangen!
Nun wollte ich im Callfile mit

SetVar: LOCALSTATIONID=Irgendwas
SetVar: LOCALHEADERINFO=Noch etwas anderes
die Fax-Kennung und den "Kopf" festlegen........aber das wird immer ignoriert. Auf dem Fax steht weder das eine noch das andere!
Wenn ich im Dialplan ein
Verbose(${LOCALblabla})
eintrage sehe ich im CLI nach wie vor NICHTS! Das selbe, wenn ich das mit NoOp mache.
Daher meine Frage: Funktioniert das mit dem SetVar im Callfile bei der Version 1.0.9 vielleicht nicht?
Danke im voraus!
Grüße
Stevie
 
Hallo stevie

wie sieht das den aus mit deiner fax geschichte? funzt das?
 
Hi Vendon,

ich habe zwischenzeitlich auf die CVS-Version gewechselt und mir heftigst etwas mit Perl zusammen gescriptet .......auf der Server- und der Client-Seite!
Ist ziemlich Patchwork......aber rennt!
M.f.G.
Stevie
 
Kannst Du mir sagen was ich alles machen muss um die Faxgeschichte zu aktivieren bei Asterisk?
 
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.