Как определить идентификатор вызывающего абонента из телефонной линии?

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

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

Ответы

Ответ 1

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

Здесь вы можете найти библиотеку С# 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();