Condividi tramite


Routing eventi

Con la funzione lineSetTerminal, l'applicazione può controllare o eliminare il routing degli eventi di basso livello specificati (scambiati tra il commutatore e la stazione) a un dispositivo. Con lineSetTerminal, l'applicazione specifica il dispositivo terminale a cui vengono instradati questi eventi(ad esempio riga, indirizzo o chiamare eventi di flusso multimediale).

Il routing delle diverse classi di eventi può essere controllato singolarmente, consentendo di specificare terminali separati per ogni classe di evento. Le classi di evento includono lampade, pulsanti, display, ringer, hookswitch e flusso multimediale.

Ad esempio, il flusso multimediale di una chiamata (ad esempio voce) può essere inviato a qualsiasi dispositivo trasducente se il provider di servizi e l'hardware è in grado di farlo. In generale, un trasduttore significa uguale a quello definito hookswitch dispositivo in TAPI, qualcosa che ha un microfono e un altoparlante. Gli eventi circolari dal commutatore al telefono possono essere mappati a un avviso visivo sullo schermo del computer oppure possono essere indirizzati a un dispositivo telefonico. Gli eventi lamp e gli eventi di visualizzazione possono essere ignorati o indirizzati a un dispositivo telefonico (che sembra comportarsi come un normale set di telefono). Infine, i pulsanti vengono premuti in corrispondenza di un dispositivo telefonico o potrebbero non essere passati alla riga. In ogni caso, questo routing di segnali di basso livello dalla linea non influisce sul funzionamento della parte linea di TAPI, che esegue sempre il mapping degli eventi di basso livello al relativo equivalente funzionale. Per determinare i terminali disponibili per un dispositivo linea (e le relative funzionalità), consultare le funzionalità del dispositivo line con lineGetDevCaps.

Si supponga inizialmente che l'applicazione abbia eliminato il routing di tutti gli eventi (con lineSetTerminal) e l'utente seleziona un visore VR come dispositivo di I/O corrente. Una chiamata in arrivo invia un messaggio di LINE_CALLSTATE e un messaggio di LINE_LINEDEVSTATE con l'indicazione squillo. Poiché il routing di tutti gli eventi viene eliminato, gli eventi circolari non vengono instradati al telefono, quindi l'anello viene eliminato. L'applicazione invia invece una notifica all'utente con una finestra di dialogo popup e un segnale acustico di sistema nel visore VR.

L'utente decide di rispondere alla chiamata. Poiché il dispositivo di I/O corrente dell'utente è il visore VR, l'applicazione di telefonia richiama lineSetTerminal sulla chiamata in ingresso per instradare il supporto della chiamata al visore VR e rispondere alla chiamata. L'applicazione può anche richiamare lineSetTerminal per instradare la lampada e visualizzare gli eventi informativi al set di telefono in modo che si comporti come di consueto.

Come secondo esempio, si supponga che una chiamata in ingresso venga avvisata nel computer dell'utente. Invece di selezionare l'opzione di risposta con il mouse, l'utente decide di selezionare solo il ricevitore del telefono per rispondere alla chiamata. Lo stato offhook nel telefono invia un messaggio all'applicazione. L'applicazione può interpretare questo stato come richiesta dall'utente per selezionare il telefono portatile per condurre la conversazione. L'applicazione richiama quindi lineSetTerminal per instradare i dati vocali sulla chiamata al set di telefono.