Fax Verbindung per Modem über Seriellen Port

Fridulin

Erfahrenes Mitglied
Hallo,

ich möchte gerne ein kleines Programm schreiben, welches ein Fax verschicken kann zu einem Modem über den Seriellen Port.

Zurzeit komme ich nicht so recht weiter, mein Programm läßt das Modem wählen und wenn ich es mit einen Fax verbinde erhalte ich auch ein CONNECT, danach allerdings kryptische Zeichen. Laut Fax Tabelle soll das der CSI Frame sein (Called Subscriber Identifier). Danach empfange ich noch ein Frame, mit Krytischen Zeichen und letzendlich muß ich zum Fax Transmitting Subscriber Identifier (TSI Frame) senden. Allerdings weiß ich nicht wie der aufgebaut sein muß und wie ich den senden kann, bzw. in welcher Form. Sicherlich muß ich per BinaryReader eine Datei einlesen wo der Frame enthalten ist und dann per SerialPort.BaseStream.Write(buffer...) senden, oder?
Was wichtig zu erwähnen ist, ich muß es mit einem Klasse 1 Modemtyp und mit 14,4k verschicken. Ein Klasse 2 Typ hat leider Probleme damit ein Fax zu empfangen, daß habe ich mit einen externen Programm testen können.

Falls jemand eine Idee hat, oder vielleicht auch noch eine gute Seite kennt wo es gut beschrieben ist, würde mir das sehr helfen. Vielleicht gibt es ja auch bereits ein C# Beispiel?

Viele Grüße und im voraus schon einmal vielen Dank für die Hilfe
Fridulin
 
Hallo,

ich habe es jetzt doch mal mit dem Klasse 2 Protokoll versucht. Nun habe ich folgendes Problem, ich schicke die Bilddatei und am Ende des Bildes muß ich ein „DLE und EOP“ einfügen. Sprich ein Data Link Escape und End of Procedur. In Dezimal sollte das 106 und 004 sein. Nur ich weiß nicht genau wie ich das anfügen soll.

Hier meine Funktion zum einlesen der Datei und senden:
Code:
try
{
		
	FileStream File_Stream = File.Open(dat_pfad, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
	long dat_groesse = File_Stream.Length;
	long dat_gelesen = 0;

	using (BinaryReader reader = new BinaryReader(File_Stream))
	{
		while (dat_groesse > dat_gelesen)
		{
						
			byte[] buffer = new byte[1024];
			int lese = reader.Read(buffer, 0, 1024);
			dat_gelesen += lese;
						
			sp.BaseStream.Write(buffer, 0, lese);
							

			dat_gelesen += lese;

			if (lese == 0)
			{
					
				break;
			}
		}
								
	}
					
	MessageBox.Show("Datei gesendet...");
				
}

Falls jemand eine Idee hat würde ich mich sehr freuen.

Viele Grüße und einen schönen Nikolaus, schon einmal im voraus.
Friduln
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück