2010-06-27 9 views
13

Ist es möglich, Bytes direkt von Modem oder Telefonleitung zu lesen, ohne dass Informationen verloren gehen? Wenn nach dem Klingeln SerialPort verwendet wird, passiert nichts unter ReceiveData Ereignis.wie Anrufer ID aus der Telefonleitung erkennen?

Ich möchte Anrufer-ID-Informationen direkt aus der Zeile lesen. Mein Modem unterstützt die Anrufer-ID nicht.

Antwort

16

Der richtige Weg zur Erkennung der Anrufer-ID ist die Verwendung der TAPI-API.

Hier finden Sie eine C# TAPI-Bibliothek (genannt ITAPI3).

Überprüfen Sie den Blog-Eintrag April 04 für einige Hinweise zum Erstellen von Programmen, die dagegen auf 64-Bit-Windows verknüpft sind.

Und hier ist Beispielcode:

TTAPI tapi = new TTAPI(); 

tapi.TE_CALLINFOCHANGE += (sender, e) => 
{ 
    if (e.Cause == CALLINFOCHANGE_CAUSE.CIC_CALLERID) 
    { 
     Console.WriteLine(e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNUMBER)); 
     Console.WriteLine(e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNAME)); 
    } 
} 

tapi.Initialize(); 

// ... 
// Keep the TAPI object in memory so it can listen for events 
// ... 

tapi.ShutDown();