[(fast)gelöst] SMS über die Fritzbox

sweetie-pie

Neuer User
Mitglied seit
5 Feb 2005
Beiträge
118
Punkte für Reaktionen
0
Punkte
16
Hier geht es direkt zur Lösung
Hallo,

nachdem mir olistudent hier ja netterweise yaps kompiliert hat, frage ich mich jetzt natürlich wie ich das wohl zum laufen bringe ?! :noidea:

Unter fli4l hat yaps das device /dev/ttyIO genutz, m.E. serielle Console der ISDN Karte, welche ich nur unter isdn4linux habe, richtig?
Die Fritzbox hat das leider nicht, aber dafür /dev/cua .
Kann mit jemand sagen, was es damit auf sich hat?

Alternativ gibt es ja noch die CAPI, allerdings ist mir das etwas unklar.
Was bedeuten die ganzen Nummern unter /dev/capi?

Also, wenn ich yaps aufrufe passiert folgendes:
Code:
# ./yaps -C ./yaps.cfg 01701234567 "test"
Found service D1170 for 01701234567
Sending following message:
01701234567  (D1170, 01701234567): test
Trying to open /dev/capi/1/51 for modem standard
Unable to dial D1170

Die 1 beim dev/capi habe ich mal so genommen.
Die 51 soll eine MSN sein, habe ich irgendwo in einem HowTo gelesen...

Hier mal meine yaps.cfg: Anhang anzeigen yaps.cfg.txt


sweetie-pie

PS: Ich meine mal eine Struktur des Filesystems der Box irgendwo gesehen zu haben, kann sie aber nicht mehr finden... sind da vielleicht auch die devices beschrieben?
 
Zuletzt bearbeitet:
Hi.
Ich hab diesen Abschnitt in der README zu yaps for capi gefunden:
device <text>
The filename for the device where the modem is attached to. If
the CAPI interface should be used, the parameter must be coded
as capi/<controller>/<MSN> Note, there must not be a '/' at the
beginning, when using CAPI.
MfG Oliver
 
Kaum macht man es richtig: capi/1/51

Dann klappts auch mit dem Senden....
Code:
# ./yaps -C ./yaps.cfg 01701234567 "test"
Found service D1170 for 01701234567
Sending following message:
01701234567  (D1170, 01701234567): test
Trying to open capi/1/51 for modem standard
CAPI controller=1 MSN=51
Trying do dial 01712521001
plci_change_state:0x0 0 -> 1 event=1
plci_change_state:0x101 1 -> 2 event=3
plci_change_state:0x101 2 -> 3 event=6
ncci_change_state:0x101 0 -> 1 event=1
ncci_change_state:0x10101 1 -> 3 event=3
ncci_change_state:0x10101 3 -> 4 event=7
ncci 0x10101 up
CAPI connected
Dial successful
[Send] <cr>
[Expect] ID= got ID=
Send initial CR
[Send] <esc>PG1<cr>
[Expect] 2.9.0.2<cr><ack><cr> got <ack><cr>
Login request accepted
[Expect] <esc>[p<cr> got <esc>[p<cr>
Successful login
[Send] <stx>01701234567<cr>test<cr><etx>412<cr>
[Expect] Message 2602115447 send successful - message submitted for processing<cr><cr><ack><cr> got <ack><cr>
Transmited part
Sent message
[Send] <eot><cr>
[Expect] <cr><esc><eot><cr> got <esc><eot><cr>
Message sending completed
Logout successful
[Drain]
[Hangup] ncci_change_state:0x10101 4 -> 6 event=12
ncci_change_state:0x10101 6 -> 7 event=10
ncci_change_state:0x10101 7 -> 0 event=13
plci_change_state:0x101 3 -> 7 event=8
 reason 0x3400 () for plci 0x101
plci_change_state:0x101 7 -> 8 event=9
plci_change_state:0x101 8 -> 0 event=11
CAPI disconnected
[Send] ATZ<cr>

Jetzt noch die Einwahlnummern um einen CbC-Anbieter ergänzen, der Mobilnetze sekundengenau abrechnet (z.B. 01028 ) und SMS für wenige Cents versenden....

Danke!!!:D

sweetie-pie

@Edit: Jetzt feht nur noch das Webinterface...

Was man damit z.B. jetzt machen kann:
SMS bei neuen eMails
SMS bei DSL-Einwahlproblemen (wichtig für den dynip-Server)
SMS bei verpassten Anrufen
SMS bei Problemen mit Anmeldung SIP-Account
...

@Edit2:
Erfolgreich getestet mit D1 und e-Plus
 
Zuletzt bearbeitet:
klasse sache!
kann sich einer mal dem webinterface annehmen?
und z.b. einstellungen wie "sms bei verpasstem anruf" hinzufügen.
das würde die box doch um einiges bereichern
 
@sweetie-pie
Kannst du mal erklären wie das technisch abläuft. Ich versteh nicht so ganz wie man über's Festnetz SMS versenden kann und was das dann kostet.
Das Webinterface dazu geht dann wohl nur mit dsmod, da man ja einen 2. Webserver dafür braucht.

MfG Oliver
 
olistudent schrieb:
@sweetie-pie
Kannst du mal erklären wie das technisch abläuft. Ich versteh nicht so ganz wie man über's Festnetz SMS versenden kann und was das dann kostet.
Das Webinterface dazu geht dann wohl nur mit dsmod, da man ja einen 2. Webserver dafür braucht.

MfG Oliver

Man verschickt nicht wirklich "über das Festnetz" eine SMS, sondern man wählt sich in die SMS-Gateways der Mobilfunkanbieter ein und versendet SMS über TAP (T-Mobile, Eplus) oder UCP (Vodafone). O2 geht meines Erachtens nach gar nicht (mehr). Die Preise richten sich nach der Einwahl in die Mobilnetze, TAP dauert ca. 15-20 Sekunden, UCP etwa doppelt so lang. Bei sekundengenauer Taktung kann man damit SMS einigermaßen günstig versenden - es gibt aber schwarze Schafe unter den CbC-Anbieter, die diese Gateways abweichend tarifieren.
 
WrMulf hat es technisch beschrieben...

Ich nutze Tiscali-CbC (mit Anmeldung aber ohne Grundgebühr):
D1, D2, E-Netze für 23,5 Cent/Minute bei sekundengenauer Abrechung.

Die genannten Gateways stehen in der yaps.cfg:
D1: 01712521001 Dauer: ca 3-6 Sek. Kosten: 1,2 - 2,5 ct/sms
D2: 01722278010 Dauer: nicht getestet
E+: 01771167 Dauer: ca. 10-15 Sek. Kosten: 3,9 - 5,9 ct/sms
O2: 01722278010 (über D2 s.o.)

[Das sind Erfahrungswerte aber ohne Garantie;) ]

Nich jeder CbC Anbieter mit sekundengenauer Abrechung hat die GW freigegeben (z.B. sperrt U3 diese). Hier heisst es dann probieren...
Einfach die Einwahlnummern in der yaps.cfg um den CbC-Abieter erweitern, z.B. 0102801712521001 für D1-SMS über Tiscali.


@edit: Webinterface:
Gibts nicht einen LCR der den Webserver der Fritzbox mitnutzt? Habe ich irgendwo auf techchannel gelesen...
@edit2:
Hier ist ein Quasi-How-To: http://www.tecchannel.de/server/linux/434025/index11.html

sweetie-pie
 
Zuletzt bearbeitet:
Probiere mich gerade an einem einfachen Web-IF.

Gestaltet sich ganz schön schwierig, wenn man von Perl keine Ahnung hat.:confused:
Habe das mit dem umlegen des Webspaces in der FB hinbekommen.:)

Ich habe ein Formular, das gibt per POST folgende Daten ab:
http://fritz.box/cgi-bin/yaps/yapscgi?Recipient=01701234567&Message=Dies%20ist%20ein%20Test!

Wie bekomme ich diese Werte denn nun in mein Script, unter php ist mir das bekannt, aber cgi habe ich nach 3 Std. nicht hinbekommen. Muss man den POST-String etwa selber zerlegen?:confused:

Habe mal das Skript Anhang anzeigen yapscgi.txt angehängt, dann versteht man vielleicht besser was ich möchte...


Gute N8

sweetie-pie
 
Hi.
Hier mal ein Beispiel vom etherwake:
Code:
#!/bin/sh
ADRESSE=`echo $QUERY_STRING|sed -e 's/\&/\:/g' -e 's/\=//g' -e 's/MAC.//g'`
RETURN=`/var/test/etherwake $ADRESSE 2>&1`
if [ -z $RETURN ]
then
echo "Befehl wurde erfolgreich ausgeführt!"
else
echo "Es gab einen Fehler beim ausführen des Befehls!"
fi
MfG Oliver
 
Moin Moin,

unter dem URL http://www.steines.de/linux/smsscript.html hat jemand schon
mal eine Webseiten CGI für Yaps programmiert.
Jetzt braucht es nur noch jemanden der das Script auf die Fritz!Box portiert.

Grüße
bademeister
 
Nur mal so nebenbei: ich kann als Arcor-Kunde kein call-by-call nutzen. Über VoIP ist die Sache mit den SMS-Zentralen nicht nutzbar, oder gibt es da für mich andere Möglichkeiten?
 
Hi.
@bademeister
Leider ist das ein Perl-Skript und Perl haben wir auf der Fritz nicht.

Ein dsmod-Package dafür wäre eine Kleinigkeit. Leider hab ich im Moment für sowas keine Zeit... :-(

MfG Oliver
 
olistudent schrieb:
ADRESSE=`echo $QUERY_STRING|sed -e 's/\&/\:/g' -e 's/\=//g' -e 's/MAC.//g'`

Vielleicht ein bischen OT, aber kannst du das mal erklären?
Habe jetzt 2 Std. damit gebastelt, aber stehe auf dem Schlauch...

Alles was ich im Netz gefunden habe, kann dieser AVM websrv nicht (oder ich bin zu blöd dafür:noidea: )

@CyberKing2k:
Mein mini-Skript läuft eigenlich schon, auch mit dem AVM-websrv, d.h. wenn es fertig ist mit pseudo-update, nur genanntes Prob oben...


sweetie-pie

PS: Werde mir wohl mal ein "cgi for Dummys" kaufen müsse...
 
Sorry, ich komm mit dem sed-Zeugs auch nicht klar...
Den $Query_String bekommst du? Nur das zerlegen ist das Problem?

MfG Oliver
 
olistudent schrieb:
Sorry, ich komm mit dem sed-Zeugs auch nicht klar...
Den $Query_String bekommst du? Nur das zerlegen ist das Problem?

Exakt!

QUERY_STRING enthält: Recipient=01701234567&Message=Die%20ist%20ein%20Test!

Bloß, wie zerleg ich es ...?
 
Hi.
Ich hab's. Es geht auch ohne sed...
Code:
FORM_Recipient=${QUERY_STRING%%&*}
FORM_Recipient=${FORM_Recipient##*=}
FORM_Message=${QUERY_STRING##&*}
FORM_Message=${FORM_Message##*=}
MfG Oliver
 
Sieht sehr gut aus... läuft!:cool:

Jetzt muss ich den Rest noch zusammen basteln.. poste ich dann hier!

sweetie-pie
 
So.. fast fertig:

yaps.PNGyaps1.PNG


Ich poste das mal hier, obwohl noch ein paar Dinge offen sind. Da ich aber jetzt in (meinen wohlverdienten) Ski-Urlaub gehe, kann sich ja vielleicht mal jemand den noch offenen Punkten annehmen...

ToDo:
- Sonderzeichen im GET-String korregieren.
Wünschenswerte Verbesserungen:
-POST statt GET für das Formular
-tar-File nachladen, statt Einzeldateien (bereits vorbereitet)

Im Groben läuft es aber:

Die Datei Anhang anzeigen yaps.zip herunterladen und auf den eigenen Webspace entpacken.
In der Datei installyaps.sh die Einstellungen anpassen:
- Server und Downloadpfad
- Call-by-Call-Anbieter wenn gewünscht
(Achtung: Voreinstellung Tiscali erfordert Anmeldung)

Per Telenet auf die Box enloggen und installieren (oder gleich in debug.cfg engänzen):
Code:
wget -qO /var/tmp/installyaps.sh "http://server/pfad/installyaps.sh"
chmod +x /var/tmp/installyaps.sh
/var/tmp/installyaps.sh

Jetzt über: http://fritzbox/yaps.html lustig SMS versenden.

Getestet wurde das alles auf einer FBF 5050 von 1und1 am ISDN-Anschluss der Telekom.
Empfänger waren D1 und E+ Teilnehmer. Browser IE6.0 mit Java-Script.

Credits (alles nur geklaut): ;)
olistudent compile, div Tipps
Harald Becker - www.Telefonsparbuch.de (eigene Webseiten einbinden)
yaps-GUI Felix Eckhofer
Armin Schindler - capi4yaps

Ich würde mich über Feedback und Kompatibilitätsmeldungen freuen.

Grüße
sweetie-pie
 
Hi.
Was meinst du mit tar-File nachladen? Du musst die Datein auf deinem Rechner mit dem Parameter --format=oldgnu packen, falls das dein tar kann...

MfG Oliver
 
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.