Magischer SMS-Empfang

smurfix

Neuer User
Mitglied seit
12 Okt 2004
Beiträge
37
Punkte für Reaktionen
0
Punkte
6
Hallo,

ich habe folgendes Konstrukt: Sipgate == SIP-Trunk == externer Asterisk == IAX2 == interner Asterisk == SIP == C610-IP == DECT == Telefon.

Das Magische an diesem Konstrukt: wenn jemand einen SMS-Text an die (Festnetz-)Nummer dieses DECT-Telefons schickt, dann kommt die auch als Text-SMS da an!
Technisch wird das als Anruf von 0193-0100 verwurstet; ich habe keine Ahnung, wie es die C610-IP schafft, daraus den Text zu extrahieren und eine SMS anzuzeigen, statt das Telefon klingeln zu lassen. Leite ich diesen Anruf vom externen Asterisk direkt an mein Handy weiter (ebenfalls via Sipgate), klingelt das Handy ganz normal und der Text wird mir vorgelesen.

Jetzt will ich aber den externen Asterisk (Version 11, demnächst 13) dazu bringen, diese SMS selber entgegenzunehmen und in eine Email zu packen / an XMPP weiterzuschicken / was-auch-immer.
Wie mache ich das?
 
So magisch ist das nicht. Das Telefon erkennt einen Anruf vom SMSC anhand der Callerid, nimmt automatisch ab, gibt sich als SMS-fähig zu erkennen und empfängt die Daten.

Zum Thema Asterisk und SMS http://das-asterisk-buch.de/1.6/applications-sms.html :roll:
Ich bin mir aber nicht ganz sicher, ob Du Dir das wirklich antun möchtest.
 
OK, das Erkennen eines SMSC via Caller-ID ist natürlich die extrem-High-Tech-Methode. :-/

Das in den Dialplan einzubauen ist zum Glück langweilig.
 
Anscheinend ist es nicht wirklich langweilig diesen SMS()-Aufruf auch tatsächlich zum Funktionieren zu bringen, zumindest nicht ohne Weiteres.

Hat das jemand tatsächlich im Einsatz? sämtliche Erfolgsmeldungen diesbezüglich, die ich im Netz finden kann, sind zehn Jahre alt.

[Beitrag 2:]

Weitere Tests ergeben: Ein SMSC zu simulieren und das SMS-Senden vom C610-IP aus via SMS() abzufangen klappt hervorragend.

Nur das Empfangen von außen funktioniert nicht. An igendeinem Timing kann es nicht liegen, weil die C610 hinter einer DSL und einem weiteren Asterisk hängt (25msec zusätzlicher Delay auf der Leitung).

Stattdessen meckert er, sobald Debugging an ist:

-- SMS TX 92 01 FF
[Jan 30 19:11:53] NOTICE[2407][C-0000115d]: app_sms.c:1810 sms_process: Bad stop bit
[Jan 30 19:11:53] NOTICE[2407][C-0000115d]: app_sms.c:1730 sms_process: Error 255, hanging up

Die drei Zeilen kommen 30sec lang immer wieder, dann ist Timeout. Empfangen wird da nix. :-/
 
Zuletzt bearbeitet von einem Moderator:
Und da ist für die Zielnummer auch beim "echten" SMSC hinterlegt, daß das Endgerät SMS als Text empfangen kann? Nicht daß da der "Vorleseservice" aktiviert ist anstelle des Text-Empfangs, das ist m.W. pro MSN hinterlegt. Wenn da ein Asterisk-Server empfangen soll, würde ich eine abweichende Empfangs-MSN ggü. dem C610-IP nicht als abwegig verwerfen und wenn eine MSN als "textfähig" registriert ist, muß das noch nicht für alle gelten.
 
?? Beim "echten" SMSC hinterlegt keiner irgendwas.

Das Ding ruft meine stinknormale Voice-Nummer an; der C610-IP erkennt anhand der Nummer des Anrufers "aha, ein SMSC" (diese Nummern kann man konfigurieren) und fängt an zu piepsen, das SMSC erkennt das und stellt von Vorlese- auf Modembetrieb um.
Soweit die Theorie.

So. Höchste Zeit, des Asterisk' Audio-Mitschneidefunktion zu verwenden und das, was ich da tue, mit dem zu vergleichen, was das C610-IP tut. Es fällt auf, dass dieser ein bisschen viel länger wartet als der Asterisk, bevor er flötet.

Und siehe da: ein schnödes

meine_nebenstelle/01930100 => SMS(von_extern,ap(1500));

und schon funktioniert alles. *Puh.* Offenbar waren die 300 msec Default viel zu wenig. (Hat jemand eine Liste von SMSCs?)

Nächstes Ziel: Vernünftige XMPP-Integration (abgehend über XMLRPC, ankommend via Asterisk).

Ach ja: Und meiner Bank verklickern, dass sie die SMS an die Festnetznummer schicken soll. *Das* wird wirklich schwierig.
 
Zuletzt bearbeitet:
?? Beim "echten" SMSC hinterlegt keiner irgendwas.
Ok, ich meinte tatsächlich das "Anmeldeverfahren" für den Empfang von SMS als Text anstatt als Sprachnachricht.

Das ist zumindest auch heute noch bei der Telekom (Seite 6+7) notwendig, um rund um die Uhr SMS empfangen zu können (sonst kannst Du Dir Dein Banking zwischen 23 und 7 Uhr (Sa+So 8 Uhr) klemmen) ... ich wäre sogar bereit zu beschwören, daß früher das ANMELD an die 8888 auch nötig war, um überhaupt in einem Modus einen "stillen Anruf" zu erhalten, wo auf die Aktivierung des SMS-Empfangs seitens des B-Teilnehmers gewartet wurde anstatt gleich zu "schwatzen". Wenn heute automatisch einen Augenblick auf die Erkennung des Pilottons gewartet wird, dann ist das von Dir beschriebene Verfahren nachvollziehbar, der zeitlichen Beschränkung wirst Du wahrscheinlich trotzdem unterworfen sein. Auch benötigt ein SMS-fähiges Telefon (bzw. bei Dir der Asterisk-Server) sicherlich eine korrekt hinterlegte Nummer des "zuständigen" SMSC. So etwas gab es eigentlich nicht im Festnetz ... keine Ahnung, ob das heute tatsächlich auch im Festnetz zwischen Providern geroutet wird oder ob da einfach die Rufnummer 01931000 bei allen Providern als SMSC-Nummer für das Festnetz festgelegt wurde (wenn, dann sicherlich von der BNetzA) und nun - neben der Erkennung der Materna-Nummer (09003266900) - bei allen Providern die 01931000 als feste SMSC-Nummer fungiert. Die Abläufe (insbesondere bei Interconnection) sind eben doch etwas anders als beim Mobilfunk, wo automatisch der Provider auch für das Routen von eingehenden SMS für seine Kunden zuständig ist.

Für die Anmeldung an anderen Services (wie dem von Materna, meines Wissens der einzige nennenswert verbreitete providerunabhängige Anbieter) muß man aber offenbar auch heute noch mindestens selbst mal eine Textnachricht über diesen Dienst verschickt haben, um den Empfang als Text-Nachricht überhaupt zu aktivieren (Frage 7 in der FAQ).

Genau das meinte ich damit und die Angabe, daß da tatsächlich anhand der Telefonnummer einer abgehenden Nachricht zu einem SMSC erst dort der Empfang als Text-Nachricht freigeschaltet wird, war ja nun nicht so falsch, wie Du gerade getan hast. Daß es bei Dir konkret um die Telekom ging, war mir nicht klar und daß es die ANMELD-Nachricht nur noch braucht, um zwischen 23 und 7 Uhr überhaupt einen Zustellversuch zu starten, war mir - s.o. - auch nicht bewußt. Das kann beim nächsten Anbieter schon wieder anders sein. M.W. bietet Vodafone es auch noch an, habe ich aber noch nie probiert, genauso wenig wie "Cross-Provider-Empfang". Und was macht eigentlich jemand an einem Anschluß eines Providers, der kein eigenes SMSC betreibt? Anders als im Mobilfunk muß die Verbindung zum Teilnehmer ja nicht zwingend über das SMSC des zuständigen Providers gehen.

Aber wenn es mit der Erhöhung der Wartezeit auf den Sendebeginn jetzt bei Dir klappt, dann ist ja alles in Butter.

Trotzdem war mein Einwand/Hinweis nicht vollkommen umsonst, denn beim nächsten Leser, der dann eben nicht bei der Telekom Kunde ist und ggf. erst entsprechende Vorbereitungshandlungen vornehmen muß, kann das zumindest der Anstoß sein, diesen Umstand zu recherchieren und zu prüfen, wenn bei ihm der Empfang auch nicht auf Anhieb funktioniert oder z.B. bei einem Telekom-Anschluß auch zwischen 23 und 7 Uhr einfach keine SMS direkt ankommen wollen.

Mahlzeit.

BTW: Reine Neugierde ... hast Du es an einem Anschluß mit leitungsgebundener Telefonie oder tatsächlich an einem All-IP-Anschluß getestet/umgesetzt? Ich wüßte gerne, ob es auch als RTP-Verbindung reibungslos funktioniert, denn theoretisch ergeben sich da dieselben Schwierigkeiten wie beim Faxen und das Senden/Empfangen per ISDN X.75 (wie bei SMS-fähigen ISDN-Geräten möglich, wo - nebenbei - auch erst einmal die Anmeldung notwendig war, um den X.75-Empfang zu aktivieren) als "reine Daten" klappt ja bei All-IP auch eher nicht.

Da ja bei einem analogen Anschluß die Übermittlung der Rufnummer des Anrufers erst nach der Signalisierung des Anrufs an sich erfolgt, müßte dann ja - wenn die Erkennung eines SMSC immer anhand der Rufnummer erfolgt - noch eine zusätzliche Verzögerung vor dem ersten "Klingeln" eines SMS-fähigen Telefons entstehen, denn das Telefon muß ja nun erst einmal die Übertragung der Anrufernummer abwarten, um dann entscheiden zu können, ob eine SMS zu empfangen ist oder ob es ein Sprach-/Faxanruf ist und eine entsprechende Signalisierung zu starten ist.
 
Zuletzt bearbeitet:
Fax ist über IP nur deshalb ein Problem, weil der Jitterbuffer bei einer mehrminütigen IP-Verbindung _immer_ irgendwann leerläuft, wenn man sich nicht anstrengt. Und dann ist das Timing und damit die Seite kaputt.
Bei SMS sind die Bursts aber weniger als eine Sekunde lang, da geht das problemlos.
Auch die Modulation der Daten ist beim SMS-Übertragen viel einfacher.

Achtung: "Die" SMSC-Nummer ist 0193-0100, nicht -1000. Ich habe davon schon mindestens eine leichte Abwandlung gesehen (-00100; in der Telekom-Doku steht -010) und matche im Asterisk inzwischen einfach auf -0[01]*. Das "ANMELD an die 8888"-Ding geht natürlich nur bei der Telekom, ich werde gleich mal nachfragen was sipgate da tut.

Nix leitungsgebunden. Komplett VoIP via Sipgate. Ping von meinem zu deren Server: <7 msec. Mit so einer super-Anbindung funktioniert auch stinknormal-Fax via iaxmodem problemlos – aber bevor ich mir das weiterhin antue, verwende ich lieber das Fax-Frontend bei sipgate …
 
Zuletzt bearbeitet von einem Moderator:
Nix leitungsgebunden. Komplett VoIP via Sipgate.
Danke für die Info.

BTW: Da kann man mal wieder sehen, was alles so an einem vorbeigeht, wenn man so eine Technik gedanklich ad acta legt. Ursprünglich war für mich die Möglichkeit, SMS im Festnetz per FSK-Modulation zu übertragen, als Patent angemeldet (DE 10236082 A1) und nach meinem Verständnis auch zugeteilt. Damit war das für mich in OpenSource-Software gestorben. Entweder das wurde vom Antragsteller/Inhaber zurückgezogen oder vom Patentamt ... wenn ich das, was da 2009 passiert sein muß, richtig verstanden habe - ich finde keine Angaben dazu bei einer Internet-Suche.

Mit der Asterisk-SMS-Application ist dann ja tatsächlich wieder auch auf einer FRITZ!Box direkt der Empfang und Versand von SMS im Festnetz (und wahlweise im Mobilfunk, wenn ein passender USB-Stick angeschlossen ist) denkbar. Nun fehlt mir nur noch eine bezahlbare SMS-Flatrate auch im Festnetz (oder auch bei All-IP, das ist ja "Festnetz") und die Welt wäre um eine weitere Möglichkeit des Nachrichtenversands (die sie vielleicht nicht unbedingt braucht) reicher.

OT:
Wobei ich die Idee einer preiswerten und ohne zusätzliche Technik zu realisierenden Alarm-Eskalation schon spannend finde. Wenn die FRITZ!Box eine SMS per Festnetz empfängt, läßt sie entsprechend interne Telefone klingeln (das hört man auch, wenn man schläft) und wenn sie in einer definierten Zeitspanne kein "ack" kriegt, eskaliert sie ihrerseits diese Meldung weiter an den nächsten Empfänger. Das wäre dann die Alarmkette "für Arme", aber da ist dann eben nicht mal kurz das Handy leer oder hat kein Netz, was ansonsten schon mal passieren kann. Und man hat trotzdem keine "zentrale" Verwaltung der Kette, ggf. kann jeder in der Kette nach Absprache mit den Nachbarn (in der Kette meine ich) eingefügt/umgangen werden, auch mal zeitweise. Ich kenne zwar sogar "halbprofessionelle" Einsätze von Twitter & Co. für solche Zwecke, aber das ist mir "zu neumodisch" und außerdem muß nicht jeder NSA-Mitarbeiter sofort wissen, wenn es irgendwo bei meinen Kunden/bei mir klemmt. Ansonsten kenne ich eigentlich keinen (plattformübergreifenden) XMPP-Service, der tatsächlich die sichere Zustellung von Push-Notifications ohne Umwege über US-amerikanische Server ermöglicht. Das im Moment von mir eingesetzte Prowl ist schon mal definitiv nicht plattformübergreifend und auch über den Standort des Dienstes habe ich nichts herausfinden können (die Vermutung wäre zwar Frankreich anstatt USA, aber das ist auch nicht gerade die sicherste Gesetzgebung für die Privatsphäre in diesen Land). Der Prowl-Service ist zwar auch recht zuverlässig, aber ich habe auch schon Benachrichtigungen erst nach 10 Minuten erhalten.
 
SMS per FSK ist als Patent Unfug. Irgendjemand hat dem Patent im Februar 2004 widersprochen. (Die Asterisk-Implementierung ist von März desselben Jahres.)
Wer wissen will, wer wie was wann wieso warum, muss wohl einen Patentanwalt mit entsprechender Recherche beauftragen. Ich frag mal meinen Cousin, der ist Physiker und arbeitet bei sowas.

So. Und jetzt update ich meinen Asterisk auf 13.2-rc1, lausche auf seinem Websocket, und schreibe meinen Dialplan demnächst in Python. Aber das ist ein anderes Thema.
 
..Ansonsten kenne ich eigentlich keinen (plattformübergreifenden) XMPP-Service, der tatsächlich die sichere Zustellung von Push-Notifications ohne Umwege über US-amerikanische Server ermöglicht...

Openfire ist ein XMPP-Server, der 'in' einer Java-VM läuft.
Unter Linux und Windows.
Da könnte man sich etwas 'draußen' aufsetzten.
 
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.