Estoy intentando hacer un programa que detecte el numero de telefono de quien llama, para ello utilizo los componentes APRO, pero no consigo que funcione

, ya he mirado todos los ejemplos y ninguno funciona. El modem es compatible y tengo activado el caller id en telefonica, es mas he probado un programa que baje de internet y que reconoce quien me llama.
De momento tengo esto y solo he conseguido que me detecte cuando alguien llama.
Código Delphi
[-]unit UMonitor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OoMisc, AdPort, ADTrmEmu, AdMdm, AdPacket, AdTapi,
JvExStdCtrls, JvHtControls;
type
TFMonitor = class(TForm)
Label1: TLabel;
ApdTapiDevice1: TApdTapiDevice;
ApdComPort1: TApdComPort;
lista: TJvHTListBox;
AdModem1: TAdModem;
AdTerminal1: TAdTerminal;
procedure ApdTapiDevice1TapiConnect(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ApdTapiDevice1TapiCallerID(CP: TObject; ID, IDName: String);
procedure AdModem1ModemConnect(Modem: TAdCustomModem);
procedure AdModem1ModemCallerID(Modem: TAdCustomModem;
CallerID: TApdCallerIDInfo);
end;
var
FMonitor: TFMonitor;
implementation
{$R *.dfm}
procedure TFMonitor.ApdTapiDevice1TapiConnect(Sender: TObject);
begin
lista.Items.Add('OnTapiConnect');
lista.Items.Add('Caller: ' + ApdTapiDevice1.CallerID);
Label1.Caption := 'Caller: ' + ApdTapiDevice1.CallerID;
end;
procedure TFMonitor.FormCreate(Sender: TObject);
begin
ApdTapiDevice1.SelectDevice;
ApdTapiDevice1.ConfigAndOpen;
ApdComPort1.Open := True;
end;
procedure TFMonitor.ApdTapiDevice1TapiCallerID(CP: TObject; ID,
IDName: String);
begin
lista.Items.Add('OnTapiCallerID');
lista.Items.Add('Caller: ' + ApdTapiDevice1.CallerID);
Label1.Caption := 'Caller: ' + ApdTapiDevice1.CallerID;
end;
procedure TFMonitor.AdModem1ModemConnect(Modem: TAdCustomModem);
begin
lista.Items.Add('OnModemConnect');
lista.Items.Add('Caller: ' + AdModem1.CallerIDInfo.Number);
end;
procedure TFMonitor.AdModem1ModemCallerID(Modem: TAdCustomModem;
CallerID: TApdCallerIDInfo);
begin
lista.Items.Add('OnModemCallerID');
lista.Items.Add('Caller: ' + AdModem1.CallerIDInfo.Number);
end;
end.
Un saludo y gracias.