Как определить идентификатор звонящего с телефонной линии? - PullRequest
13 голосов
/ 27 июня 2010

Возможно ли считывание байтов напрямую с модема или телефонной линии без потери информации? Если после звонка использовать SerialPort, то на событии ReceiveData ничего не происходит.

Я хочу прочитать информацию об идентификаторе вызывающего абонента прямо из строки. Мой модем не поддерживает Caller Id.

1 Ответ

16 голосов
/ 27 июня 2010

Правильный способ определения идентификатора вызывающего абонента - использовать API TAPI.

Здесь вы можете найти библиотеку C # TAPI (называемую ITAPI3).http://www.julmar.com/tapi/

Проверьте запись в блоге от 04 апреля 2006 г. на предмет некоторых заметок о построении программ, связанных с ней на 64-битной Windows.

А вот пример кода:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...