TAPI Praxis - Ankommende Anrufe entgegen nehmen

Vorraussetzung:

TTAPILine.CallPrivilege: = [cpOwner,..]
TTAPIAddress.InbondCall ist auf ein entsprechendes TTAPICall Objekt zu gewiesen.


Nachdem das System initialisiert und die Leitung geöffnet wurde, ist die Anwendung bereit Anrufe anzunehmen. Wenn nun ein Anruf eingeht, wird die TTAPIAddress Komponente mit dem Ereignis OnAppNewCall über den neuen Anruf informiert. Im Parameter Privilege werden die zukünftigen Rechte übertragen. Das bedeutet aber nicht das die Anwendung dieses Recht auch wirklich erhält, bzw. erhalten will. Anrufmanipulationen sind zu diesem Zeitpunkt noch nicht erlaubt. Für Logging etc. können aber allgemeine Informationen und der Status abgerufen werden (property Info:TCallInfo property Status:TCallStatus)
Der Anruf wird nun für eine bestimmte Zeit angeboten (TTAPICall.OnStateOffering). Dieser Schritt ist typisch für ISDN und findet bei anderen Geräten ggf. nie statt. Der Anwendung stehen jetzt zumindest zwei Möglichkeiten offen, entweder sie beantwortet den Anruf (TTAPICall.Answer) oder sie akzeptiert den Anruf (TTAPICall.Accept).
if lacfAcceptToAlert in TAPIAddress1.Caps.AddrCapFlags then
begin
  if lcfAccept in TAPIAddress1.InboundCall.Status.Features then
    TAPIAddress1.InBoundCall.Accept;
end

Dieses Codefragment überprüft ob der Aufruf von Accept Pflicht ist. Im nächsten Schritt wird geprüft ob im aktuellen Kontext die Funktionalität überhaupt aufgerufen werden darf. Der Anruf kann nun in den Status Accepted (TTTAPICall.OnStateAccepted) wechseln und sollte mit TTAPICall.Answer beantwortet werden. Bei analogen Geräten wird sich zunächst der GeräteStatus verändern und zwar in TTAPILineDevice.OnStateRinging. Der Parameter RingCounter gibt die Anzahl der Klingelsignale an, welche bereits vergangen sind. Der Anruf sollte nun beantwortet werden. Auch dieser Anruf wird jetzt in den Status Accepted wechseln, nur darf jetzt auf keine Fall ein zweites Mal Answer aufgerufen werden. Die Eigenschaft IsAnswered sollte hier Aufschluss geben. Wenn keine Fehler auftraten, sollte der Anruf nun verbunden sein. TTAPICall.OnStateConnected bedeutet das der Datenstrom nun gesendet werden darf. Die Art der Daten wird durch die Eigenschaft TTAPILine.Mediamode bestimmt.
Die Arbeit der TAPI ist fürs Erste beendet.  
 
Link Übersicht Link vorheriger Schritt Link nächster Schritt
letzte Änderung :19.03.2006