hey,
Tapi Komponenten: Delphiclub Tapi Komponenten.
http://tapi.delphiclub.de/
Telefonanlage: Agfeo 200IT
Tapi Treiber: TapiCall
http://www.tapicall.de/index.htm?tap....htm~mainFrame
Ziel:
Telefonnummer des Anrufers auslesen.
Problem:
Es funktioniert, aber nur manchmal.
Meistens:
Das erste mal gehts, dann gehts nicht mehr.
Nach Software neustart gehts wieder.
Weiter Informationen:
Es gibt Telefone zu denen ein eingehender Anruf nicht durchgeleitet wird. Um den Anruf doch abzuheben, wird ein anders Telefon benutz, auf das alle zugreifen können.
Ich bin am verzweifeln. Hab schon alles nach Fehlern durchsucht.
Hoffentlich kann irgendjemand hier helfen.
Zur Vorgehensweise:
Login im Tapisystem:
Telname : Name des Telefons des Users; REDName: Name eines Telefon in dem alle Anrufe eingehen
Delphi-Quellcode:
procedure TForm3.TAPILogon(TelName: string;REDName : string);
begin
TAPILineService1.Active := true;
if TAPIDeviceLogon(Telname,TAPILineDevice1) then
begin
TAPILine1.Active := true;
TAPIenabled := true;
end
else TAPIenabled := false;
if not (REDname = '') then //If not DAT[pre]ABASE entry is empty
begin
if TAPIDeviceLogon(Redname,TAPILineDevice2) then
begin
TAPILine2.Active := true;
REDTAPIenabled := true;
end
else REDTAPIenabled := false;
end;
end;
Relevante Methode:
Delphi-Quellcode:
function TForm3.TAPIDevicelogon(TelName: String; Device: TTAPILineDevice):Boolean;
var i,si : integer;
begin
si := -1;
for I := 0 to TAPILineService1.NumDevice - 1 do
begin
Device.ID := I;
if Device.Caps.Name = TelName then
begin
si := i;
end;
end;
if si = -1 then
begin
showmessage('Telefon "'+TelName+'" nicht gefunden!');
result := false;
end
else
begin
Device.ID := si;
showmessage('Erfolgreich mit Telefon " ' + TelName + ' " verbunden!');
result := true;
end;
end;
Auslesen der Telfonnummer:
Delphi-Quellcode:
procedure TForm3.TAPICall1InfoCallerId(Sender: TObject);
begin
if not Call1 then
begin
if length(TAPICALL1.Info.CallerID)>3 then
begin
icallerid := TAPICALL1.Info.CallerID;
end;
end;
end;
bzw.
Delphi-Quellcode:
procedure TForm3.TAPICall2InfoCallerId(Sender: TObject);
begin
if not Call1 then
begin
icallerid := TAPICALL2.Info.CallerID;
end;
end;
Relevante Methoden:
Delphi-Quellcode:
procedure TForm3.TAPICall1StateConnected(Sender: TObject;
ConnectedMode: TLineConnectedModes; Rights: TLineCallPrivilege);
begin
call1 := true;
button7.Visible := false;
end;
procedure TForm3.TAPICall1StateDisconnected(Sender: TObject;
DisconnectedMode: TLineDisconnectMode; Rights: TLineCallPrivilege);
begin
call1 := false;
button7.Visible := true;
end;
fishbrain