Timer eventi multimediali
Molte applicazioni dipendono dalla relazione di intervallo tra eventi multimediali (ad esempio, cifre DTMF ricevute) per determinare la natura di un'operazione richiesta. Ad esempio, in un'applicazione di segreteria telefonica, due cifre DTMF consecutive "1" possono significare "eseguire il backup di due segmenti" o "riprodurre dall'inizio del messaggio", a seconda del tempo trascorso tra le due cifre. In un ambiente client/server, se il rilevamento DTMF viene eseguito su un processore separato da quello in cui è in esecuzione l'applicazione, la latenza nella rete locale rende molto probabile che la relazione di intervallo tra gli eventi multimediali venga asimmetrica, con il risultato che queste differenze basate sulla tempistica potrebbero andare perse o diventare inaffidabili.
Per risolvere questo problema, è possibile impostare come timestamp diversi messaggi TAPI. Poiché si tratta della tempistica relativa tra questi eventi importante, l'ora dell'orologio dell'evento non è importante e il timestamp secondario è interessato, questi timestamp usano il "tempo trascorso dall'avvio di Windows" restituito dalla funzione GetTickCount . Le applicazioni devono tenere presente che si tratta del conteggio dei tick nel server (o nel computer in cui il provider di servizi gestisce direttamente l'hardware è in esecuzione) e non è necessariamente lo stesso computer in cui l'applicazione è in esecuzione; pertanto, i timestamp in questi messaggi TAPI possono essere confrontati tra loro e non con il valore restituito da GetTickCount nel processore in cui è in esecuzione l'applicazione.
I messaggi TAPI che possono essere timestamp sono: LINE_GATHERDIGITS, LINE_GENERATE, LINE_MONITORDIGITS, LINE_MONITORMEDIA e LINE_MONITORTONE. Il conteggio dei tick viene inserito in dwParam3 di questi messaggi. Se il timestamp non è supportato dal provider di servizi (indicato dall'impostazione del provider di servizi dwParam3 in questi messaggi su 0), TAPI inserisce il conteggio dei tick in dwParam3 di tutti questi messaggi (può essere asimmetria, ma meno di se l'applicazione ha eseguito lo stesso dopo l'attraversamento di uno schema di comunicazione interprocesso).