Compartir a través de


Enrutamiento de eventos

Con la función lineSetTerminal, la aplicación puede controlar o suprimir el enrutamiento de eventos de bajo nivel especificados (intercambiados entre el conmutador y la estación) a un dispositivo. Con lineSetTerminal, la aplicación especifica el dispositivo terminal al que se enrutan estos eventos (como eventos de línea, dirección o llamada a secuencias multimedia).

El enrutamiento de las diferentes clases de eventos se puede controlar individualmente, lo que permite especificar terminales independientes para cada clase de eventos. Las clases de eventos incluyen lámparas, botones, pantalla, timbre, hookswitch y secuencia multimedia.

Por ejemplo, la secuencia multimedia de una llamada (voz, por ejemplo) se puede enviar a cualquier dispositivo transductor si el proveedor de servicios y el hardware pueden hacerlo. En general, un transductor significa lo mismo que lo que se conoce como un dispositivo hookswitch en TAPI, algo que tiene un micrófono y un altavoz. Los eventos de anillo del conmutador al teléfono se pueden asignar a una alerta visual en la pantalla del equipo o se pueden enrutar a un dispositivo telefónico. Los eventos de lámpara y los eventos de visualización se pueden omitir o enrutar a un dispositivo telefónico (que parece comportarse como un conjunto de teléfonos normal). Por último, el botón presiona en un dispositivo telefónico puede pasarse o no a la línea. En cualquier caso, este enrutamiento de señales de bajo nivel desde la línea no afecta al funcionamiento de la parte de línea de TAPI, que siempre asigna eventos de bajo nivel a su equivalente funcional. Para determinar los terminales que un dispositivo de línea tiene disponible (y sus funcionalidades), consulte las funcionalidades del dispositivo de línea con lineGetDevCaps.

Suponga inicialmente que la aplicación ha suprimido el enrutamiento de todos los eventos (con lineSetTerminal) y el usuario selecciona un casco como dispositivo de E/S actual. Una llamada entrante envía un mensaje de LINE_CALLSTATE y un mensaje de LINE_LINEDEVSTATE con la indicación de de llamada de. Dado que se suprime el enrutamiento de todos los eventos, los eventos de anillo no se enrutan al teléfono, por lo que se suprime la llamada. En su lugar, la aplicación notifica al usuario un cuadro de diálogo emergente y un sonido del sistema en los auriculares.

El usuario decide responder a la llamada. Dado que el dispositivo de E/S actual del usuario es el casco, la aplicación de telefonía invoca lineSetTerminal en la llamada entrante para enrutar los medios de la llamada al casco y responder a la llamada. La aplicación también puede invocar lineSetTerminal para enrutar la lámpara y mostrar eventos de información al conjunto de teléfonos para que se comporte como de costumbre.

En el segundo ejemplo, supongamos que una llamada entrante está alertando en el equipo del usuario. En lugar de seleccionar la opción de respuesta con el mouse, el usuario decide simplemente recoger el teléfono del teléfono para responder a la llamada. El estado del offhook en el teléfono envía un mensaje a la aplicación. La aplicación puede interpretar este estado como una solicitud del usuario para seleccionar el teléfono para realizar la conversación. A continuación, la aplicación invoca lineSetTerminal para enrutar los datos de voz en la llamada al conjunto de teléfonos.