TAPI

Alle Fragen zur Netzwerkkommunikation
Antworten
slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

TAPI

Beitrag von slai »

Hallo zusammen

stehe da vor einem problem und wollte mal fragen ob schon jemand erfahrung mit der TAPI schnittstelle von windows gemacht hat?

Ich sollte von einer FRITZ!Box Fon WLAN 7270 website --> http://www.avm.de
eingehende anrufe erhalten und die in meinem programm verarbeiten. ausserdem währe es cool wenn ich von meinem programm aus jemanden anrufen kann.

Aber eben, ich habe noch 0 erfahrung und weiss ehrlich gesagt gar nicht wo ich da beginnen muss, das einzige was ich mal getan habe ist tutorials durchgelesen die tapi beschreiben, finde jedoch nirgends wie man diese tapi auch ansteuern kann.

Danke für eure hilfe...
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Also wenn ich in Google "Delphi TAPI" eingebe, lande ich da: http://tapi.delphiclub.de/

Und dort findet man alles was man braucht damit hab ich auch angefangen. Wenn du weitere Hilfe brauchst kannst mich fragen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

Beitrag von slai »

Hy christian

jap auf diese bin ich auch schon gestossen, werde mich an diesem wochenende mal intensiver mit dieser komponente befassen.

Hast du den schon erfahrung mit diesen Komponenten?

danke und gruss
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ja, ´s prometheus kann Anrufe abfangen beantworten oder auslösen. Und führt eine entsprechende History und Notizen bei der Person mit.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

Beitrag von slai »

Hy Christian wie hast du es geschafft diese Komponente zu installieren?
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Da muss man nix installieren, das sind keine visuellen Komponenten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

Beitrag von slai »

Wie hast dus geschaft die TAPI unit zu kompilieren?
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

kA, kann sein das ich da noch ein paar sachen anpassen musste.
Hier hast meine Units, die lassen sich jedenfals problemlos mitm fpc comilieren.
Dateianhänge
tapi.zip
(151.47 KiB) 157-mal heruntergeladen
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

Beitrag von slai »

Hey Christian

Danke für deine Units, nun kann ichs kompilieren und kann mir eine menge zeit sparen...

gruss
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

kunstlust
Beiträge: 30
Registriert: Fr 29. Jun 2012, 09:36

Re:

Beitrag von kunstlust »

slai hat geschrieben:Hey Christian

Danke für deine Units, nun kann ichs kompilieren und kann mir eine menge zeit sparen...

gruss


Es ist ja schon etwas her, aber ich wollte fragen ob die vielleicht eine Form mit einem Beispiel hast, welches du hier zeigen könntest.
Ich finde die Tapi Ansteuerung sehr interessant, aber leider eben auch nicht so einfach.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TAPI

Beitrag von MmVisual »

@Christian, Danke für den Code!

Hier mein Beispiel:

Code: Alles auswählen

    If Not Assigned(AssistedTAPI1) Then
    Begin
      AssistedTAPI1 := TAssistedTAPI.Create(Self);
      AssistedTAPI1.OnInvalDestAddress := @AssistedTAPI1InvalDestAddress;
      AssistedTAPI1.OnNoRequestRecipient := @AssistedTAPI1NoRequestRecipient;
      AssistedTAPI1.OnRequestFailed := @AssistedTAPI1RequestFailed;
      AssistedTAPI1.OnRequestQueueFull := @AssistedTAPI1RequestQueueFull;
    end;
    i := 1;
    if Copy(sTel, 1, 1) = '+' then
      sTel := StringReplace(sTel, '+', '00', []);
    while i <= Length(sTel) do
    begin
      if sTel[i] in ['0'..'9'] then
        Inc(i)
      else
        Delete(sTel, i, 1);
    end;
    ShowMessage(sTel + #10 + Caption + #10 + sName)// <<< hier sehe ich alles richtig
    AssistedTAPI1.DestAddress := UTF8ToSys(sTel);
    AssistedTAPI1.AppName := UTF8ToSys(Caption);
    AssistedTAPI1.Comment := UTF8ToSys('');
    AssistedTAPI1.CalledParty := UTF8ToSys(sName);
    AssistedTAPI1.MakeCall;


Leider klappt das nicht so recht. In Windows startet zwar der Dialer und es erscheint ein Dialog, aber die Zeichen darin sind völlig korrupt. Ich habe schon alles probiert, UTF8ToAnsi, UTF8Decode, auch die Funktion tapiRequestMakeCallA / tapiRequestMakeCallW aufgerufen, aber immer das gleiche.
Weiß jemand Rat wie ich mein Code ändern muss, damit es geht (Win7/32) :?:

Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

tampara
Beiträge: 1
Registriert: Fr 1. Mär 2013, 10:19

Re: TAPI

Beitrag von tampara »

Würde ggf. die Möglichkeit bestehen, die hpTapi (http://www.hbtapi.com/) Komponenten für Lazarus zu verwenden?
Habe diese bereits unter Delphi verwendet und die liefen dort einwandfrei.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TAPI

Beitrag von MmVisual »

Wohl müsste man diese HBTAPI Komponente auch umschreiben, sofern der Quellcode dabei ist.

Das original von Christian kommt von http://www.delphiclub.de/. Doch die Demos funktionieren nicht mehr unter Win7. Ich habe auch in Foren gelesen, dass diese Komponente "Hänger" hat. Das einzige ist "TAssistedTAPI" die einfach nur einen simplen Call aufruft. Das reicht auch für mein Programm. Wenn ich allerdings eingehende Anrufe zeigen lassen wollte, dann ginge das nicht.
Über TAPI gibt es unmengen Infos im Internet, allesamt unbrauchbar und TAPI ist enorm schlecht dokumentiert.

Hier meine umgeschriebene Funktion, damit wenigstens das Nummern Wählen geht. Man könnte das sicher auch besser machen, wenigstens geht das:

Code: Alles auswählen

procedure TAssistedTAPI.MakeCall;
var R:LongInt;
  aD, aA, aC: Array [0..255] of Byte;
  i: Integer;
begin
  For i := 1 To Length(FDestAddress) Do
    aD[i - 1] := Ord(FDestAddress[i]);
  aD[Length(FDestAddress)] := 0;
  FAppName := Application.Title;
  For i := 1 To Length(FAppName) Do
    aA[i - 1] := Ord(FAppName[i]);
  aA[Length(FAppName)] := 0;
  For i := 1 To Length(FCalledParty) Do
    aC[i - 1] := Ord(FCalledParty[i]);
  aC[Length(FCalledParty)] := 0;
  R:=tapiRequestMakeCall(@aD, @aA, @aC, PChar(''));
  case R of
    TAPIERR_INVALDESTADDRESS  : if Assigned(FOnInvalDestAddress) then FOnInvalDestAddress(self);
    TAPIERR_REQUESTQUEUEFULL  : if Assigned(FOnRequestQueueFull) then FOnRequestQueueFull(self);
    TAPIERR_NOREQUESTRECIPIENT: if Assigned(FOnNoRequestRecipient) then FOnNoRequestRecipient(self);
  end;
end;
 
// der Aufruf;
    AssistedTAPI1.DestAddress := UTF8ToSys(sTelDialPrefix + sTel);
    AssistedTAPI1.AppName := UTF8ToSys(Caption);
    AssistedTAPI1.Comment := UTF8ToSys('');
    AssistedTAPI1.CalledParty := UTF8ToSys(sName);
    AssistedTAPI1.MakeCall;
 
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten