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
Antwort Antwort
skunker
(Gast)

n/a Beiträge
 
#1

ISDN Ansprache will nicht so

  Alt 6. Jul 2006, 12:22
hallo,

ich habe die ISDN komponente "capiisdn" (die gibts hier im Forum)
Weiß jetzt nicht wie der Typ hieß der die gemacht hat, ist auf jedenfall ne bekannt, also insider müssten wissen welche ich meine. Da ist ne Anrufbeantworter Demo dabei und die kann waves abspielen.

So jetzt meine Frage:

ich will, dass mein Programm die wave nur abspielt wenn er eine best. Nummer gewählt hat:

Delphi-Quellcode:
procedure TForm1.CAPIISDN1IncomingCall(ConnectionID: Integer;
  CallingPartyNumber, CalledPartyNumber: String; CipValue: Word;
  CipValueString: String);
begin
if CallingPartyNumber = 'then begin CallingPartyNumber := 'Unbekannt'; end;
Memo1.Lines.Add('Anruf Von: ' + CallingPartyNumber + ' An MSN: ' + CalledPartyNumber + ' Uhrzeit: ' + datetostr(now));

if CalledPartyNumber = Edit2.Text then begin
capiisdn1.DefaultResponse := rAccept;
end;
in Edit1 steht die interne Nummer die angerufen wird.

Jedoch egal was ich probiere nie klappt es.

Ich kann bei DefaultResponseCause: rjeIgnoreCall und rjeNormalCallClear auswählen.
Bei DefaultResponseAction: rAccept und rReject

bei rReject wird sofort aufgelegt und bei rAccept wird automatisch angenommen.

rjeIgnoreCall und rjeNormalCallClear = k.A. bringt beides irgendwie nichts.

Fakt ist, das ich probiert habe beim Incoming Call zu prüfen welche MSN angerufen wird und dann soll der den Status auf rAccept setzen und annehmen.

Jedoch passiert da nur was wenn rjeNormalCallClear ausgewählt wurde (s.o.) ist ja klar denk ich mal. So, jetzt teste ich das ganze indem ich das in der schleife passend setze und der Anruf wird angenommen. Wenn ich im OnDisconnect jetzt die Einstellungen wieder zurücksetze passiert irgendwie nichts, weitere anrufe werden auch angenommen welche an eine andere Nummer gehen.


Ich bin selbst verwirrt weil ich schon über 10 Kombinationen probiert habe und nie funzt es.

Deswegen bedanke ich mich schonmal für jegliche Hilfe!!!
Ich möchte also das ein Anruf welche an eine best. Nummer geht angenommen wird, andere sollen nicht angenommen werden(Telefon klingelt dann)

mfg
skunker
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 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
Antwort Antwort


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 07:07 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