Ну например так: Ваша телефонная линия втыкается в FXO gateway (жедезку), который переводит ваш аналоговый телефонный звонок в VOIP. Дальше это все попадает — ну например в астериск
www.asterisk.org/ (i.e. программа на сервере, которая может сортировать, распределять и тд VOIP звонки). Этот астериск перенаправляет звонок клиента на нужное устройство у оператора — VOIP телефон (железный, или в виде программы, как ekiga, twinkle, xlite и тд).
На том компьютере, на котором вы собираетесь получать подсказки, нужно написать программу, которая будет цепляться через «asterisk manager api» (AMI) к астериску — (серверу то есть, который управляет VOIP звонками).
Когда через этот AMI придет событие, что оператор поднял трубку и отвечает на звонок клиента, ваша программа из этого события берет номер телефона (если он не скрыт и если он присутсвует), и дальше уж выводит на экран нужную вам информацию.
Как-то так. Если на пальцах.