Java-App zum Senden von SMS über Asterisk

eggman

Neuer User
Mitglied seit
23 Apr 2005
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hallo Community,

nachdem ich länger gesucht habe, bis ich endlich eine funktionierende Lösung fand um SMS über Asterisk zu versenden, möchte ich hier meine Ergebnisse mit Euch teilen (download unter http://www.voip-profi.net).

Was ich herausgefunden habe:
- Die Lösung mit dem Context "smsdial" und den zwei SMS-Befehlen darin ist deprecated und hat bei mir auch nicht richtig funktioniert (SMS ging offensichtlich raus, aber kam nie beim Empfänger an)
- smsq hat funktioniert, aber ist nicht überall verfügbar (z.B. bei meinem Kunden).
- smsq ist auch schlecht (zumindest unschön) in eine Java-Anwendung einzubinden.

Deshalb habe ich eine Java-Applikation erstellt, die Standalone zu verwenden ist, aber auch in größere Java-Projekte eingebunden werden kann. Hierfür steht sowohl eine (statische) send-Methode zur Verfügung, wenn schon eine Manager Connection (siehe http://www.asteriskjava.org) besteht, oder eine send-Methode, die die Connection erst aufbaut.

Das Programm habe ich als Source-Code und als Jar auf meine Home-Page unter Download gepackt, siehe http://www.voip-profi.net
 
Zuletzt bearbeitet:
Code:
Not Found
 The requested URL / was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 
Apache/df-exts 1.2 Server at www.voip_profi.net Port 80
 
Jonny schrieb:


Darauf hätte man auch selbst kommen können.
Ich habe gar nicht so genau geschaut ;)


@eggman

bei deinem Prog gibt es wohl ein bug; Der Channel ist nicht korrekt angegeben - es wird ein "/" zu viel angehängt. Bei mir ergibt sich aus der Originalversion foldender String: CAPI/contr1//0193010

Richtig wäre: CAPI/contr1/0193010

Es funktioniert auch nicht das Programm auf einem anderen Rechner auzuführen, da die File local gespeichert werden.
 
Zuletzt bearbeitet:
Sorry mit dem Domänen-Namen. Ich hatte da wohl einen Dreher mit Java. Dort darf man ja keine "-" in Package-Namen verwenden, dafür aber "_". Ist auch gleich oben korrigiert.

Das Programm habe ich gerade repariert. Sollte jetzt gehen.

Wie unter Einschränkungen steht, brauche ich direkten Schreibzugriff in das Spool-Verzeichnis von Asterisk. Deshalb muss das Programm auf dem gleichen Rechner wie Asterisk laufen, oder du muss das Spool-Verzeichnis freigeben und dann auf Rechner, auf dem AsteriskSMS läuft verbinden bzw. mounten.

Ich habe leider keine Möglichkeit gefunden, eine SMS zu schicken, ohne eine Datei in der Queue anzulegen. Falls jemand eine Möglichkeit kennt, werde ich die aber gerne implementieren.

Viele Grüße,

eggman
 
Hallo eggman,

es gibt noch eine Möglichkeit; Du arbeitest mit client-server-verbindungen
Auf dem asterisk lässt du einen server laufen (das programm wie jetzt nur noch mit einer socketconnection)
Auf clientseite brauchst du dann nur noch die daten an den server senden ;)

wenn ich demnächst mal zeit finde, implementiere ich es mal

cu
 
Hi chaos2000,

die Klasse habe ich aus einem größeren Projekt herausgenommen, und die Klasse ist genau die Server-Seite auf dem Asterisk-Server, erweitert noch um die Main-Methode. Deshalb gibt es ja auch die send-Methode, die schon eine bestehende Manager-Verbindung benutzt.
Den Client kann ich leider nicht mitliefern, da die Verbindung von anderen Teilen meines Projektes verwaltet wird. Aber du hast recht, als Client-Server Anwendung funktioniert das genau so.

Viele Grüße,

eggman
 

Statistik des Forums

Themen
244,696
Beiträge
2,216,706
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
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.