AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ISDN: Anrufer erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

ISDN: Anrufer erkennen

Offene Frage von "Grolle"
Ein Thema von nypharos · begonnen am 15. Jan 2003 · letzter Beitrag vom 5. Feb 2011
Antwort Antwort
Seite 1 von 3  1 23      
nypharos

Registriert seit: 14. Jan 2003
5 Beiträge
 
Delphi 6 Personal
 
#1

ISDN: Anrufer erkennen

  Alt 15. Jan 2003, 18:24
Ich suche einen Weg um einen Anrufer (ISDN) an der Nummer zu erkennen und das Gespräch nicht anzunehmen, sondern den Anruf abzulehnen und stattdessen ein Programm zu starten.

Zweck ist es, meinen PC so auch ohne Internet ein Programm ausführen lassen zu können.

Gibt es dafür vielleicht auch irgendwelche Komponenten?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 15. Jan 2003, 18:29
Zitat von Chewie:
Bestimmt. Such mal bei Torry nach den Stichwörtern CLIP, CAPI oder ISDN.
Edit: Seltsam. Aus dem Editieren wurde eine neue Antwort.
@Mods: Bitte das obige löschen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#3
  Alt 15. Jan 2003, 18:40
Hast du vielleicht Zitat anstatt Edit gedrückt ??
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 15. Jan 2003, 18:46
Zitat von FuckRacism:
Hast du vielleicht Zitat anstatt Edit gedrückt ??
Oh, verdammt. Erst bin ich so blöd und drück den falschen Knopf und dann fällt mir nicht mal auf, dass ich mich ja selbst zitiert hab.
Noch nie hab ich den Mit-Dem-Kopf-An-Die-Wand-Schlag-Smiley so vermisst wie jetzt
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
nypharos

Registriert seit: 14. Jan 2003
5 Beiträge
 
Delphi 6 Personal
 
#5
  Alt 16. Jan 2003, 13:32
Auf Torry habe ich nichts passendes gefunden, aber ich habe das Problem trotzdem gelöst, mit einer Komponente von hier

Gratis und perfekt für meine Zwecke!

Und was die alles kann:
Zitat:
Eigenschaften
DefaultResponse : TRespType
Legt fest, welche Standardbehandlung nach Ablauf der in RESPONSETIMEOUT angegeben Sekundenzahl einsetzen soll. Möglich ist rAccept, rReject und rClear.

DefaultResponseTimeOut : word
Legt fest nach wieviel Sekunden die Standardbehandlung eines eingehenden Anrufs erfolgen soll. Das Programm hat bis zum erreichen dieser Zeit Gelegenheit mit ACCEPTCALL, REJECTCALL oder CLEARCALL auf einen eingehenden Anruf zu reagieren.

DefaultRejectCause : TRejectCause
Falls die DEFAULTRESPONSE auf rREJECT gesetzt ist kann hier der Grund für die Zurückweisung eingetragen werden. Möglich ist rjeNormalCallClear oder rjeIgnoreCall. DTMFToneDuration : word read
Enthält die Dauer eines DTMF-Tons (ich glaub in Millisekunden). Sollte möglichst nicht verändert werden.

DTMFGapDuration : word read
Enthält die Dauer der Pausen zwischen DTMF-Tönen (ich glaub in Millisekunden) Sollte möglichst nicht verändert werden.

DebugLevel : word read
Da sich die Komponente im Entwicklungsstadium befindet kann mit dem Ereignis OnCAPIINFO eine Menge Information geliefert werden. Wieviel das ist bestimmt diese Eigenschaft. Die meisten Infos erhält man mit Fünf. Mit Null gar keine.

DefaultController : dWord (nur lesen)

Error : dword (nur lesen)

ErrorString : string (nur lesen)

--------------------------------------------------------------------------------

Ereignisse
onCapiInfo (Sender: TObject; info: String)
Im String INFO werden Informationen über CAPI-Messages und Komponenteninfos zum debuggen übermittelt.

OnIncomingCall (ConnectionID: Integer; CallingPartyNumber, CalledPartyNumber: String; CipValue: Word; CipValueString: String);
Wenn der Controller mit LISTEN in Empfangsbereitschaft gesetzt wurde wird bei einem eingehenden Anruf dieses Ereignis ausgelöst. Der Verbindung wird die ConnectionID zugewiesen und die Anwendung erhält Daten über den Anrufer (CallingPartyNumber) und den angerufenen Anschluss (CalledPartyNumber), sowie den benutzten ISDN-Dienst (CIP...)

OnConnect (ConnectionID: Integer)
Ein mit OnIncomingCall signalisierter Anruf wird von der Anwendung angenommen oder eine mit CONNECT gewünschte Verbindung wird von der Gegenstelle angenommen.

OnDisconnect (ConnectionID: Integer)
Die Verbindung mit der Nummer CONNECTIONID wird getrennt. Der Wert den CONNECTIONID bisher hatte wird von der Komponente danach für neue Verbindungen wieder verwendet.

OnWavEnded(ConnectionID: Integer)
Ein mit PLAY abgespieltes WAV-File wurde zu Ende abgespielt.

onDTMF(ConnectionID: Integer; DTMFChar: Char)
Wenn mit LISTENDTMF die Tonerkennung eingeschaltet wurde wird bei einem erkannten DTMF Ton dieses Ereignis ausgelöst. In DTMFChar steht dann entweder '0'..'9','#',oder '*'. Achtung: Dies funktioniert nicht bei allen ISDN-Karten gleich zuverlässig. Mit der FritzCard ist es aber O.k.
--------------------------------------------------------------------------------

Methoden
function Listen (aController : dWord ): boolean;
Setzt die Karte in Empfangsbereitschaft, damit sie auf eingehende Anrufe reagieren kann

function StopListen(aController : dWord) : boolean;
Hebt die Empfangsbereitschaft wieder auf

procedure RejectCall (aConnectionID:integer; aRejectCause:TRejectCause);
Weist einen signalisierten Anruf ab. Andere ISDN-Geräte haben weiterhin die Möglichkeit den Anruf entgegen zu nehmen

procedure ClearCall (aConnectionID:integer);
Nimmt den Anruf an und trennt danach sofort die Verbindung. DIES KOSTET DEN ANRUFER EINE EINHEIT. Andere Geräte können den Anruf nicht mehr annehmen.

procedure AcceptCall (aConnectionID:integer);
Nimmt den eingehenden Anruf an

function connect (aController:dword;aNumber:string):integer;
Baut eine Verbindung zur Gegenstelle mit der Telefonnummer aNumber auf.

procedure disconnect (aConnectionID:integer);
Trennt eine bestehende Verbindung

procedure Play (aConnectionID:integer; Filename:string);
Spielt das mit "Filename" angegegebene WAV-File über eine bestehende Verbindung ab. Wird bereits ein File abgespielt, so wird dieses geschlossen und stattdessen das neue abgespielt.

procedure StopPlay (aConnectionID:integer);
Beendet das Abspielen eins WAV-Files

procedure RecordWav (aConnectionID:integer; Filename:string);
Nimmt das Telefongespräch in das WAV-File mit dem Dateinamen "Filename" auf. Dies kann auch passieren während mit Play() eine Datei abgespielt wird.

procedure StopRecord (aConnectionID:integer);
Beendet die Aufnahme

procedure SendDTMF (aConnectionID:integer; aDTMFStr:shortstring);
Sendet die in aDTMFStr angegebenen Tastentöne (z.B: zur Fernsteuerung von Anrufbeantwortern)

procedure ListenDTMF (aConnectionID:integer);
Schaltet die Empfangsbereitschaft für, von der Gegenstelle gesendete,DTMF-Töne ein

procedure StopListenDTMF (aConnectionID:integer);
Schaltet die Empfangsbereitschaft für DTMF-Töne wieder ab

function GetCallingNumber(aConnectionID:integer):string;
Liefert die Telefonnummer des Anrufenden zurück

function GetCalledNumber (aConnectionID:integer):string;
Liefert die Telefonnummer des Angerufenen zurück

function GetCIPValue (aConnectionID:integer):word;
Liefert den CIPValue (Kennzeichen für ISDN-Dienste, siehe CAPI-Doku)
  Mit Zitat antworten Zitat
chippie

Registriert seit: 28. Mär 2006
4 Beiträge
 
#6

Re: ISDN: Anrufer erkennen

  Alt 29. Apr 2006, 05:51
Hallo,

hat die oben von nypharos genannte Komponente noch irgendjemand? Die Webseite ist inzwischen leider nicht mehr erreichbar
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: ISDN: Anrufer erkennen

  Alt 29. Apr 2006, 07:08
HI!

Schau mal hier:
http://www.the-infobase.de/isdn/download.htm


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
chippie

Registriert seit: 28. Mär 2006
4 Beiträge
 
#8

Re: ISDN: Anrufer erkennen

  Alt 29. Apr 2006, 08:32
Danke schön, allerdings sind das die Projekte von Peter Zwosta. Ich suche die Komponente von Dirk Ruebenach, die es früher auf http://www-users.rwth-aachen.de/dirk.ruebenach/capi.htm gab und von der nypharos oben die Eigenschaften aufgelistet hat.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

Re: ISDN: Anrufer erkennen

  Alt 29. Apr 2006, 09:04
Hi!

Ja, aber die von Rübenach basieren darauf, deswegen dachte ich, es könnte helfen:

Zitat:
CAPI-Komponente und Anrufmonitor-Beispiel
Basierend auf den CAPI-Sourcen, die Sie auf dieser Seite downloaden können, gibts eine CAPI-Komponente mit einem beispielhaften ISDN Anrufmonitor bei Dirk Rübenach.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
DevStar

Registriert seit: 26. Aug 2007
79 Beiträge
 
#10

Re: ISDN: CAPI-Komponente von Dirk Rübenbach (RWTH AAchen)

  Alt 15. Mai 2009, 06:18
Ist zwar schon ein paar Jahre alt, aber immer noch gut.

Zitat:
procedure Play (aConnectionID:integer; Filename:string);
Spielt das mit "Filename" angegegebene WAV-File über eine bestehende Verbindung ab. Wird bereits ein File abgespielt, so wird dieses geschlossen und stattdessen das neue abgespielt.
Wie kann ich es erreichen, dass erst das File zuende abgespielt wird, bevor das nächste gespielt wird?
Das was ich aus-kommentiert habe, funktioniert nämlich nicht.

Delphi-Quellcode:
{ ------------------------------------------------------------------- }
{  TCapiISDN.Play
  Eine Wav-Datei über das Capi senden
{ ------------------------------------------------------------------- }

procedure TCAPIISDN.Play(aConnectionID:integer; Filename:string);
begin
  if not assigned(FCapi) then exit;
  if FConnectionInfos.IDItems[aConnectionID]=NIL then exit;
  if assigned(FConnectionInfos.IDItems[aConnectionID].PWavFile) then begin
    //devstar
    //wave.close(FConnectionInfos.IDItems[aConnectionID].PWavFile);
    if _debug>1 then
      debug('This Connection had an open Input-File. Closed.');
  end;
  FConnectionInfos.IDItems[aConnectionID].PWavFile := Wave.open(Filename);
  if (Wave.Error=0) and (_debug > 1) then
    debug('Playing started')
  else if (wave.Error>0) and (_debug>0) then
    debug('??Error opening Wav-File');
  FConnectionInfos.IDItems[aConnectionID].SendingMode := smWave;
end;
Hat jemand eine andere Idee?

Gruß
Devstar
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:43 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