Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nell'architettura TAPI tutti i TSP vengono eseguiti nel contesto di TAPISRV, implementato come processo di servizio all'interno di SVCHOST. Le applicazioni TAPI vivono nel proprio processo. Le applicazioni TAPI caricano Tapi3.dll e tutti gli MSP necessari nel proprio processo e la DLL TAPI comunica con TAPISRV tramite un'interfaccia RPC privata. Il diagramma seguente illustra l'interazione di questi componenti.
Un provider di servizi multimediali (MSP) fornisce lo streaming multimediale usando le astrazioni di Terminali, Flussi e SubStream.
Un terminale è un sink o un'origine per un flusso multimediale. Può trattarsi di un oggetto fisico, ad esempio un altoparlante o un microfono, oppure un'astrazione di un dispositivo, ad esempio una finestra video. L'oggetto terminale espone l'interfacciaITTerminal. La classe del terminale è descritta dal GUIDclasse terminale. Un MSP può definire le proprie classi terminal.
I flussi dividono il supporto di una chiamata in base al tipo di supporto o al tipo, alla direzione del flussoe all'indirizzo di destinazione del supporto. Ad esempio, un flusso audio in ingresso da un modem è un oggetto flusso, un flusso video in uscita a un indirizzo IP e una porta è un oggetto flusso, i flussi video provenienti da un gruppo multicast IP vengono considerati anche come un oggetto flusso. L'oggetto Stream è rappresentato dall'interfacciaITStreamControl.
I substream consentono un controllo più fine sui supporti. Ad esempio, nel caso del multicast IP, l'oggetto flusso video in ingresso potrebbe rappresentare diverse persone. L'applicazione probabilmente vuole che ogni partecipante abbia un renderer separato. Il flusso video in ingresso può essere suddiviso in diversi sottostream, uno per ogni persona. Un sottostream corrisponde a una persona e può essere configurato e controllato separatamente. L'oggetto SubStream è rappresentato dall'interfacciaITSubStreamControl.
Quando un'applicazione chiama ITAddress::CreateCall per configurare una chiamata, deve specificare il tipo di supporto necessario. In una chiamata in uscita indica semplicemente TAPI quando viene creata la chiamata. Per esempio:
HRESULT hr = pAddress->CreateCall(
pszDestAddress,
lAddressType,
TAPIMEDIATYPE_AUDIO | TAPIMEDIATYPE_VIDEO,
&pCall
);
// If (hr != S_OK ) process the error here
In questo caso, l'applicazione sta creando una chiamata audio-video in uscita.
I tipi di supporti passati indicano il supporto a cui l'applicazione è interessata per tutta la durata della chiamata. Ad esempio, l'applicazione può specificare audio e video durante la creazione della chiamata, ma selezionare solo terminali audio all'inizio. L'MSP avvierà lo streaming solo audio, ma non rifiuterà una richiesta video locale o remota effettuata in un secondo momento nella durata della chiamata.
Quando l'applicazione chiama ITBasicCallControl::Connect, TAPI 3 chiama TSPI_lineMakeCall nel TSP. Dopo aver stabilito una chiamata, msp e TSP possono comunicare in base alle esigenze.
Quando una chiamata viene disconnessa, spetta a MSP e TSP comunicare sulla disinstallazione della chiamata. Tapi3.dll chiamerà TSPI_lineDrop se l'applicazione chiama Disconnect.