Compartir a través de


Funciones de línea extendidas

Los servicios de línea extendidos (o servicios de línea específicos del dispositivo) incluyen todas las extensiones definidas por el proveedor de servicios a la API. La API define un mecanismo que permite a los proveedores de proveedores de servicios ampliar TAPI mediante extensiones específicas del dispositivo. La API solo define el mecanismo de extensión y, al hacerlo, proporciona acceso a extensiones específicas del dispositivo, pero la API no define su comportamiento. El comportamiento se define por completo por el proveedor de servicios.

TAPI consta de definiciones de constantes escalares y de marcas de bits, estructuras de datos, funciones y mensajes. Los procedimientos se definen que permiten a un proveedor ampliar la mayoría de estos procedimientos de la siguiente manera.

Para las constantes de datos escalares extensibles, un proveedor de servicios puede definir nuevos valores en un intervalo especificado. Dado que la mayoría de las constantes de datos son DWORDs, normalmente el intervalo 0x00000000 a través de 0x7FFFFFFF está reservado para extensiones futuras comunes, mientras que 0x80000000 a través de 0xFFFFFFFF están disponibles para extensiones específicas del proveedor. La suposición es que un proveedor definiría valores que son extensiones naturales de los tipos de datos definidos por la API.

En el caso de las constantes de datos de marca de bits extensibles, un proveedor de servicios puede definir nuevos valores para bits especificados. Dado que la mayoría de las constantes de marca de bits son DWORDs, normalmente un número específico de los bits inferiores se reservan para extensiones comunes, mientras que los bits superiores restantes están disponibles para extensiones específicas del proveedor. Las marcas de bits comunes se asignan de cero bits hacia arriba; Las extensiones específicas del proveedor deben asignarse del bit 31 hacia abajo. Esto proporciona máxima flexibilidad para asignar posiciones de bits a extensiones comunes frente a extensiones específicas del proveedor. Se espera que un proveedor defina nuevos valores que son extensiones naturales de las marcas de bits definidas por la API.

Las estructuras de datos extensibles tienen un campo de tamaño variable que está reservado para uso específico del dispositivo. Con un tamaño variable, el proveedor de servicios decide la cantidad de información y la interpretación. Se espera que un proveedor que defina un campo específico del dispositivo realice estas extensiones naturales de la estructura de datos original definida por la API.

Dos funciones, lineDevSpecific y lineDevSpecificFeature, y dos mensajes relacionados, LINE_DEVSPECIFIC y LINE_DEVSPECIFICFEATURE, proporcionan un mecanismo de extensión específico del proveedor. La función lineDevSpecific y el mensaje de LINE_DEVSPECIFIC asociado permiten a una aplicación acceder a características de línea, dirección o llamada específicas del dispositivo que no están disponibles con los servicios de telefonía básica o complementaria. El perfil de parámetro de la función lineDevSpecific es genérico en que la API realiza poca interpretación de los parámetros. La interpretación de los parámetros se define mediante el proveedor de servicios y debe entenderse por una aplicación que las use. Los parámetros se pasan simplemente a través de TAPI desde la aplicación al proveedor de servicios. Por lo general, una aplicación que se basa en extensiones específicas del dispositivo no funcionará con otros proveedores de servicios; sin embargo, las aplicaciones escritas en los servicios de telefonía básica y complementaria funcionarán con el proveedor de servicios extendidos.

Para mayor comodidad, también se proporciona una función de escape más especializada. Es similar a lineDevSpecific, pero coloca la interpretación en algunos de los parámetros. Esta función más especializada es lineDevSpecificFeature, una función de escape específica del dispositivo para permitir el envío de características de conmutador al conmutador. El mensaje LINE_DEVSPECIFICFEATURE es el mensaje específico del dispositivo enviado a la aplicación como una indicación de las características enviadas al modificador. Esta función y su mensaje asociado permiten a una aplicación emular pulsaciones de botón en el teléfono de características de la línea. Como los teléfonos de características y los significados de sus botones son específicos del proveedor, la invocación de características mediante lineDevSpecificFeature también es específica del proveedor.

Como se mencionó anteriormente, no hay ningún registro central para los identificadores del fabricante. En su lugar, se pone a disposición un generador de identificadores únicos (EXTIDGEN).