Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Telefonnummer auslesen funktioniert nur sporadisch (https://www.delphipraxis.net/142257-telefonnummer-auslesen-funktioniert-nur-sporadisch.html)

fishbrain 24. Okt 2009 18:52


Telefonnummer auslesen funktioniert nur sporadisch
 
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

fishbrain 25. Okt 2009 19:03

Re: Telefonnummer auslesen funktioniert nur sporadisch
 
hat keiner irgendeine Idee??
Könnte es an den veralteten Komponenten oder am TAPI Treiber liegen?

fishbrain 26. Okt 2009 16:57

Re: Telefonnummer auslesen funktioniert nur sporadisch
 
Es muss doch jemanden geben, der ein ähnliches Projekt schon erfolgreich geschrieben hat, oder ein ähnlichen Problem hat/hatte.

Bitte helft mir. Ich hab keinen blassen Schimmer was der Auslöser des Fehlers sein könnte.

Vielen Dank schonmal für die, die sich die Mühe gemacht haben das ding durchzulesen.

MFG

fishbrain

fishbrain 6. Nov 2009 00:52

Re: Telefonnummer auslesen funktioniert nur sporadisch
 
Ich habs jetzt mit einem sehr unsauberen Lösungsweg versucht:
Jedesmal wenn bei ondisconnect werden alle Tapikomponenten neu verbunden.
Das Feedback vom Kunden:
Es läuft besser aber immer noch nicht 100%

Kann sich irgendjemand ausmalen wieso?

muenster 6. Nov 2009 07:36

Re: Telefonnummer auslesen funktioniert nur sporadisch
 
Hi,

wenn Du Zugriff auf die Telefonanlage hast, prüfe ob Deine ISDN-Karte (ich gehe einfach davon aus, dass Du
bei Verwendung von TAPI Komponenten die Schnittstelle zur Anlage damit herstellst) in der Anlage richtig
konfiguriert ist. Agfeo bietet mit der TK Suite zumindest für die Konfiguration ein schönes Frontend.
Zumindest bei AVM Karten gibt es in Verbindung mit TAPI immer mal wieder Probleme. Ist die ISDN Karte
in die Rufgruppe für das "Telefon für Alle" eingetragen? Wenn nicht könnte es sein, dass die Karte von der
Anlage nicht über den eingehenden Ruf informiert wird. Auch gerne die Rufzuordnungen für eingehende Rufe prüfen,
wenn die Karte (der entsprechende Port der Anlage) nicht auf die Anrufe reagiert steht man selbst bei einem eingehenden
Fax im Dunkeln.
Das waren so die Probleme, die ich mit meiner AS100IT hatte wobei ich nicht selbst darauf programmiere.

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz