SMS auslesen

oskars

Neuer User
Mitglied seit
14 Jul 2011
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Hi,
mein Asterisk empfängt eine SMS von außen. Nun möchte ich den Inhalt der SMS überprüfen, und wenn der Inhalt z.B. Test ist, dann soll er etwas ausführen.
Mein Problem ist, ich schaffe es nicht den SMS Inhalt auszulesen. Bei der Suche bin ich auf ein paar Sachen gestoßen, aber die haben nicht funktioniert.

Der Text wird ja wenn man eine SMS versendet an der vierten Stelle eingegeben und in der SMS datei wird es in ud gespeichert. Aber ich hab keine Idee, wie ich das auslösen kann. Eine Tipp war ein AGI Skript zu erstellen, aber damit hab ich 0 Erfahrung. Und auch nur Grundkenntnisse in java und php und damit bin ich nicht weiter gekommen.

Hat einer von euch eine Idee?

oskars
 
Zuletzt bearbeitet:
Mit irgendeiner Programmiersprache wirst Du die Datei lesen müssen. Egal ob das Shell, PHP oder sonst was ist. Wenn Du ein passendes Skript hast, lässt sich das mit hoher Wahrscheinlichkeit auch zu einem AGI Skript umbauen.
 
k, danke, habs hinbekommen. Hab es mit perl gemacht und es funktioniert einwandfrei. War viel einfacher, als ich dachte.
 
jo, hatte ich eh vor, bin das grad noch am verändern. Ich hab gleich auch feierabend, mal gucken ob ich es heute noch schaffe.

--------------------
edit:
Ich hab im moment noch Probleme mein Perl-Skript in ein AGI Skript zu verwandeln. Ich blicke da noch nicht ganz durch. Aber ist hier schonmal mein Perl-Skript. Habe es größten Teils hierher:klick.
Code:
#!/usr/bin/perl -w

use strict;
#Dateiverzeichnis der ankommenden SMS
my $dir = "/var/spool/asterisk/sms/mtrx/";

#Suche nach der neusten Datei
my $LATESTSMS = (
    map{
        $_->[0]
    }
    sort{
        $a->[1] <=> $b->[1]
    }
    map{
        [$_, -M $_]
    }
    grep {
        -f $_ and $_ =~ /Meine-SIPID/
    }
    glob(
         $dir."*"))[0];

#öffnet die SMS
open(SMS, $LATESTSMS);

#Sucht nach der Textnachricht und gibt diese aus
for my $MSG (<SMS>){
        if($MSG =~ /ud=/){
                $MSG =~ s/ud=//;
                print "Der Text der SMS lautet: $MSG";
        }
}
close SMS;

Ist bestimmt nicht die beste Lösung, aber es funktioniert.

---------------------
edit:
ich habs jetzt mal im Asterisk Skript Bereich gepostet. Da ich überhaupt nicht durchblicke, wie ich es in ein AGI Skript umbaue.klick
 
Zuletzt bearbeitet:
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.