AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ISDN Ansprache will nicht so
Thema durchsuchen
Ansicht
Themen-Optionen

ISDN Ansprache will nicht so

Ein Thema von skunker · begonnen am 6. Jul 2006 · letzter Beitrag vom 28. Nov 2007
 
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.995 Beiträge
 
Delphi 12 Athens
 
#2

Re: ISDN Ansprache will nicht so

  Alt 28. Nov 2007, 12:40
Du kannst das nicht innerhalb des Events machen.

- Baue einen MessageHandler.
- Schicke im Event eine selbstdefinierte WM_abheben Message mit der PostMessage Funktion (NICHT Sendmessage).
- Programmiere im WM_Abheben MessageHandler das abheben.

Delphi-Quellcode:


Procedure TCAPIISDN_ImpEvents.IncomingCallEVENT (ConnectionID :integer;
                        CallingPartyNumber : string;
                        CalledPartyNumber : string;
                        CipValue : word;
                        CipValueString : string) ;
begin
  If assigned (Protokoll) then
  Begin
    Protokoll.add('');
    Protokoll.add('INCOMMING');
    Protokoll.add('ConnectionID:' + inttostr(ConnectionID));
    Protokoll.add('CallingPartyNumber:' + CallingPartyNumber);
    Protokoll.add('CalledPartyNumber:' + CalledPartyNumber);
    Protokoll.add('CipValue:' + inttostr(CipValue));
    Protokoll.add('CipValueString:' + CipValueString);
  end;

  OpenConnections.Add(
                      TOpenConnection.Create(
                                             DefaultController,
                                             ConnectionID,
                                             CallingPartyNumber,
                                             CalledPartyNumber,
                                             self,
                                             TCapiTermFormular(owner).Client
                                            )
                      );
  OpenConnections.Items[openConnections.Count-1].operate; // Hier drinnen mache ich evtl. TOpenConnection.TakeCall;
end;

Procedure TOpenConnection.TakeCall;
Begin
  PostMessage(fCapi.handle, WM_ACCEPTCALL,0 ,ID);
  //Application.ProcessMessages;// !!!gefährlich!!! bei Fehlern zuerst prüfen
  //SendMessage(fCapi.handle, WM_ACCEPTCALL,0 ,ID);
end;

Procedure TCAPI_MSG_RECEIVER.WMAcceptCall(var message:tmessage);
Begin
  try
    if assigned(capiisdn) then
      CAPIISDN.AcceptCall(message.LParam);
  except
    on e:EACcessviolation do
    Begin
      Showmessage('Fehler:WMAcceptCall');
    end;
  end;
end;
ich verwende für vieles Message Handler weil aus den Ereignissen heraus oft nicht reagiert werden kann.


Delphi-Quellcode:
    Procedure WMAcceptCall(var message:tmessage);Message WM_ACCEPTCALL;
    Procedure WMListenDTMF(var message:tmessage);Message WM_LISTENDTMF;
    Procedure WMREJECTCALL(var message:tmessage);Message WM_REJECTCALL;
    Procedure WMDISCONNECT(var message:tmessage);Message WM_DISCONNECT;
    Procedure WMCONNECT(var message:tmessage);Message WM_CONNECT;
    Procedure WMPLAY(var message:tmessage);Message WM_PLAY;
    Procedure WMSTOPPLAY(var message:tmessage);Message WM_STOPPLAY;
    Procedure WMCLEARCALL(var message:tmessage);Message WM_CLEARCALL;
    Procedure WMOPERATE(Var message:tmessage);Message WM_OPERATE;
Einige sind allerdings auch überflüssig... ist halt so gewachsen.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz