Einzelnen Beitrag anzeigen

fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#1

Telefonnummer auslesen funktioniert nur sporadisch

  Alt 24. Okt 2009, 18:52
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
  Mit Zitat antworten Zitat