[PHP] Socket Datentransfer gesucht

Status
Für weitere Antworten geschlossen.

LoseAndMore.de

Well-known member
ID: 12911
L
20 April 2006
292
8
Diesmal suche ich KEINE Hilfe,
sondern das Ergebnis.

Ich suche es auch nicht umsonst,
selber Programmieren würde ich es gerne,
bin jedoch unterwegs zu einer Schulung,
und habe daher leider NULL Zeit.

Es geht um einen MMS Transfer
der benötigt wird mit folgender Spezifikation:

Bei dem Verbindungstyp „LegacyConnection“ handelt es sich um eine TCP-Verbindung im Klartextformat
unter Verwendung des ISO-8859-15 Zeichensatzes.

USER Kommando
Eine Session wird durch die Authentifizierung des Benutzers eingeleitet. Der erste Schritt dazu ist die
Angabe des Benutzernamens mittels des USER Kommandos.

PASS Kommando
Nach Angabe des Benutzernamens mittels des USER Kommandos muss die Authentifizierung durch
Angabe des Kennwortes abgeschlossen werden. Nach erfolgreichem Anmelden können dann Nachrichten
abgesetzt werden.

RCPT Kommando
Der Versand einer Kurznachricht wird immer durch das RCPT Kommando eingeleitet. Mittels des RCPT
Kommandos wird der Empfänger der folgenden Nachricht festgelegt. Der Empfänger muss in
internationalem Format vorliegen, die Empfängernummer dabei nach deutschen Richtlinien vorgenommen
werden, d.h. ein deutscher Empfänger wird als 0049…, nicht als +49… angegeben.
RCPT 00491712345678
DATA Kommando
Eine Nachricht wird durch das DATA Kommando abgeschlossen. DATA spezifiziert die Nutzdaten der
Nachricht, bei „normalen“ SMS ist dies die eigentliche Nachricht. Bei der Einlieferung von MMS (SET
MMS TRUE) muss das DATA Kommando ohne Parameter aufgerufen werden, die MIME-Kodierte MMS
wird danach Zeile für Zeile direkt in den Datenstrom geschrieben und durch eine Zeile mit dem Inhalt „!X!“
abgeschlossen. ACHTUNG: MMS-Zeilen müssen entgegen den Kommandozeilen mittels Wagenrücklauf
& Zeilenvorschub (CRLF, \r\n, ASCII-13, ASCII-10) abgeschlossen werden. Für den Versand von Logos
muss das LOGO Kommando vor Angabe der Logodaten mittels DATA aufgerufen werden. Das DATA
Kommando wird dann mit folgendem Format aufgerufen:
DATA logo|t:<typ>|d:<logo>

Anstelle von <typ> muss der Logo-Typ (derzeit nur: ‘operator’) angegeben werden, anstelle von <logo>
das eigentliche Logo als hexadezimal enkodiertes GIF-Bild (Siehe Beispiel weiter unten.)
SMS:
DATA Dies ist eine Testnachricht.
203 Message queued.
MMS:
DATA
211 Ready to receive your message
Message-ID: 9182681.1064601093774.JavaMail.javamailuser@localhost
220 Line Received, continue
Mime-Version: 1.0
220 Line Received, continue
Content-Type: multipart/related;
220 Line Received, continue
[…]
fit="hidden"/></layout></head><body><par><img src="cid:relax.gif"
220 Line Received, continue
region="Image"/><text src="cid:hoho.txt"
220 Line Received, continue
region="Text"/></par></body></smil>
220 Line Received, continue
------=_Part_0_30289364.1064601093354—
220 Line Received, continue
!X!
203 Message queued.
Logo:
DATA logo|t:eek:perator|d:47494638396148000e00800000000000ffffff2c00000000
8000e0000025c848fa917a1be228cb45a30d97bad67dc5c22d225df9279ea5
48e2e789a2db9aaef3dd6a1a1db688cb3f4763bde2a882bd27c181ec7838c2
ea1a2a3545acb5197d7e9736b9a02c1c8d97796b276bbc39b72fdfb915d6f3
80368471600003b
203 Message queued.
SNDR Kommando
Mittels des SNDR Kommandos kann der Benutzer eine Absenderkennung festlegen. Die Absenderkennung
darf 15 numerische oder 11 alphanumerische Zeichen nicht überschreiten.

Format einer MMS
Eine MMS besteht aus einem zentralen Dokument, das die Anordnung von Elementen sowie deren
zeitlichen Ablauf definiert. Im Grunde ist eine MMS nicht viel anders als eine Präsentation (z.B. wie
PowerPoint-Dokumente) – das verwendete Dateiformat für MMS (SMIL) wurde dafür entworfen, einen
einheitlichen Standard für Präsentationen zu schaffen. Das SMIL Format ist eine XML-Applikation, d.h. ein
reines SMIL-Dokument ist wie es XML nun einmal ist, nicht nur elegant maschinenlesbar, sondern ebenso
elegant „von Hand“ zu lesen.
Beispiel einer SMIL-Datei, die eine Präsentation definiert, die ein „Slide“ definiert, welches in zwei
Regionen unterteilt ist und jeweils ein Bild und einen Text darstellt. Dies ist nicht nur eine valide SMILPräsentation,
dies ist das Grundgerüst einer MMS.
<?xml version="1.0" encoding="UTF-8"?>
<smil><head><layout><root-layout width="100%" height="100%"/><region id="Text" top="50%"
left="0" height="50%" width="100%" fit="hidden"/><region id="Bild" top="0" left="0" height="50%"
width="100%" fit="hidden"/></layout></head><body><par><img src="cid:bild.jpg" region="Bild"/><text
src="cid:nachricht.txt" region="Text"/></par></body>
</smil>
Jetzt haben wir die Präsentation definiert, was jetzt noch fehlt sind die referenzierten Dateien (Bild, Text)
und die Verpackung derselben zu einem einzelnen Paket.
Format eines MMS-Paketes
Ein MMS-Paket, wie es vom carmunity.com System erwartet wird ist ein MIME-Multipart kodiertes Paket,
das die einzelnen SMIL-Slides sowie darin referenzierte Dateien (Texte, Bilder, Töne) enthält. Wer schon
einmal eine E-Mail mit Anhang im Quelltext betrachtet hat, weiss ungefähr, wie das funktioniert.
Prinzipiell besteht eine derartiges MIME-Multipart Dokument aus reinem Text, der die verschiedenen
Dokumenttypen über Trennzeichen/Zeilen (Boundaries) voneinander trennt und in den darauffolgenden
Zeilen (Headers) den Dateinamen und Dokumentypen sowie die Kodierungsmethode angibt. Darauf folgt
der eigentliche (evtl. kodierte) Inhalt.
Folgendes Beispiel zeigt ein MIME-Dokument, das obige SMIL-Präsentation sowie die referenzierten
Dateien (Bilder, Texte) enhält. Die kodierten Bilddaten wurden hier allerdings auf ein verträgliches Maß
gestutzt, um das Dokument übersichtlich zu halten.
Message-ID: <2859291.1061897003100.JavaMail.javamailuser@localhost>
Mime-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_0_11935697.1061897002629";
start="<mms.smil>";
type="application/smil"
------=_Part_0_11935697.1061897002629
Content-Type: text/plain; name=test1.txt; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=nachricht.txt
Content-ID: <nachricht.txt>
Dies ist eine Textdatei.
------=_Part_0_11935697.1061897002629
Content-Type: image/jpeg; name=peachro.jpg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=bild.jpg
Content-ID: <bild.jpg>
/9j/4AAQSkZJRgABAQEASABIAAD/7AARRHVja3kAAQAEAAAAIAAA/9sAQwAIBgYHBgUIBwcH
CQkI
[…]
SvlUbieqrJxDgCvyTQ5nYxDwOK6JyMISRRTkYUnbRiDP/9k=
------=_Part_0_11935697.1061897002629
Content-Type: application/smil
Content-Transfer-Encoding: 7bit
Content-ID: <mms.smil>
<?xml version="1.0" encoding="UTF-8"?>
<smil>
<head>
<layout>
<root-layout width="100%" height="100%"/>
<region id="Text" top="50%" left="0" height="50%" width="100%" fit="hidden"/>
<region id="Image" top="0" left="0" height="50%" width="100%" fit="hidden"/>
</layout>
</head>
<body>
<par>
<img src="bild.jpg" region="Image"/>
<text src="cid:nachricht.txt" region="Text"/>
</par>
</body>
</smil>
------=_Part_0_11935697.1061897002629--
Deutlich zu sehen sind hier die durch (am Anfang definierte) Trennzeichen und die darauffolgenden
Header, die Kodierung und Dateinamen angeben.

Wer hat Ahnung davon und Lust das zu machen.

Bitte um Angebote.
 
Mal nen paar fragen ^^

Wer soll diesen Kilometerlangen unformatierten Text lesen?
Da schauen die meisten einmal kurz drauf und es vergeht ihnen die Lust am weiterlesen.

Du suchst keine kurzhilfe, Du suchst jemanden der Dir etwas Programmiert?

So bist Du leider falsch hier.
Geh in das Forum Lose4Scripts und schreibe dort Deine Scriptwünsche hinnein bzw lasse diesen Thread hier durch einen zuständigen Moderator bzw Administrator verschieben.
 
[...]lasse diesen Thread hier durch einen zuständigen Moderator bzw Administrator verschieben.
Das wäre die richtige Lösung gewesen.

@LoseAndMore.de:
Du dürftest doch langsam wissen, wie es mit Cross-Posting aussieht :roll:

closedevil.gif
 
Status
Für weitere Antworten geschlossen.