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#?
Antwort
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
(oderAT+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:
okay, ich werde es zu Hause versuchen, es wird sehr gut sein, wenn Sie eine Referenz finden. Danke. – zer0w1dthspace
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.
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
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
heh, wusste nicht, dass Sie diese Zeichenfolgenbefehle mit der Methode writeline hinzufügen können. Tnx (der Link funktioniert nicht) –
Könnte jemand mit Fachkenntnissen bitte diese Frage erneut schreiben? –
Das ist ziemlich toll, nur ein Popup oder etwas, wenn das Telefon klingelt. Nachteil: Wer hat einen Festnetzanschluss mehr ... – tsilb