2009-07-29 8 views
9

Hallo Ich möchte 56K-Modem verwenden, um die Telefonnummer zu bekommen, wer das Haustelefon anruft, gibt es eine Möglichkeit, dies mit C# zu erreichen?Wie erhalte ich die Anrufer-ID in C#?

+0

Könnte jemand mit Fachkenntnissen bitte diese Frage erneut schreiben? –

+1

Das ist ziemlich toll, nur ein Popup oder etwas, wenn das Telefon klingelt. Nachteil: Wer hat einen Festnetzanschluss mehr ... – tsilb

Antwort

17

Nicht alle Modems unterstützen die Anrufer-ID. Und für diejenigen, die das tun, variiert die Implementierung zwischen den Herstellern.

Dort Anrufer-ID wird durch die seriellen Daten übergeben, so dass Sie die TAPI library (oder Windows HyperTerminal zu testen) verwenden müssen. Die Anrufer-ID-Nummer erscheint normalerweise zwischen dem ersten und dem zweiten Klingelton.

Sie müssen dem Modem einen Befehl geben, um die Anrufer-ID zu aktivieren. Typisch:

AT#CID=1 (oder AT+VCID=1)

OK

Überprüfen Sie die Dokumentation für Ihr Modem.

Wenn ein Anruf eingeht, empfängt das Modem eine Anrufzeichenfolge. Typisch:.

RING

Dann in der Anrufer-ID-Text kommen Wenn ich richtig bin zu erinnern, wird es in der Form:

NMBR=XXXXXXXXXX

[Ich bin auf der Suche nach einer Referenz. Ich werde einen Link veröffentlichen, wenn ich es finden kann]

UPDATE: Ah, gefunden. Schauen Sie sich diese Seite für die Befehle und Verbindungszeichenfolgen für für verschiedene Modems:

How to Test a Modem for Caller ID Support

+0

okay, ich werde es zu Hause versuchen, es wird sehr gut sein, wenn Sie eine Referenz finden. Danke. – zer0w1dthspace

5

Es ist möglich, aber es gibt einige Dinge über sie Sie beachten sollten:

  • Sie noch haben Anrufer-ID unterstützt haben von Ihrem Netzbetreiber/Provider. Eine Basis-POTS-Leitung enthält diese Informationen nur, wenn der Netzbetreiber zusätzliche Arbeit geleistet hat, um sie hinzuzufügen. Sie können dies also nicht tun, um eine zusätzliche Anrufergebühr zu vermeiden.
  • Es ist nicht in .NET integriert. Sie müssen in die grundlegende TAPI Bibliothek anrufen. Ich habe selbst nie mit dieser Bibliothek gearbeitet, das ist so viel wie ich dir sagen kann.
+0

Ich bin sicher, dass meine Telefonleitung die Anrufer-ID unterstützt, weil das Telefon die Anrufernummer auf seinem scrreen anzeigt. Ich werde mit TAPI weitermachen, danke. – zer0w1dthspace

3

serialPort1.Open(); serialPort1.WriteLine ("AT # cid = 1" + System.Environment.NewLine); // wo serialPort1 ist die serielle Steuerung für weitere Details siehe folgenden Link: http://www.itworld2.com/frmsCsharp.aspx

+0

heh, wusste nicht, dass Sie diese Zeichenfolgenbefehle mit der Methode writeline hinzufügen können. Tnx (der Link funktioniert nicht) –