Estructura LINEDEVCAPS (tapi.h)
La estructura LINEDEVCAPS describe las funcionalidades de un dispositivo de línea. La función lineGetDevCaps y la función TSPI_lineGetDevCaps devuelven la estructura LINEDEVCAPS .
Sintaxis
typedef struct linedevcaps_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwProviderInfoSize;
DWORD dwProviderInfoOffset;
DWORD dwSwitchInfoSize;
DWORD dwSwitchInfoOffset;
DWORD dwPermanentLineID;
DWORD dwLineNameSize;
DWORD dwLineNameOffset;
DWORD dwStringFormat;
DWORD dwAddressModes;
DWORD dwNumAddresses;
DWORD dwBearerModes;
DWORD dwMaxRate;
DWORD dwMediaModes;
DWORD dwGenerateToneModes;
DWORD dwGenerateToneMaxNumFreq;
DWORD dwGenerateDigitModes;
DWORD dwMonitorToneMaxNumFreq;
DWORD dwMonitorToneMaxNumEntries;
DWORD dwMonitorDigitModes;
DWORD dwGatherDigitsMinTimeout;
DWORD dwGatherDigitsMaxTimeout;
DWORD dwMedCtlDigitMaxListSize;
DWORD dwMedCtlMediaMaxListSize;
DWORD dwMedCtlToneMaxListSize;
DWORD dwMedCtlCallStateMaxListSize;
DWORD dwDevCapFlags;
DWORD dwMaxNumActiveCalls;
DWORD dwAnswerMode;
DWORD dwRingModes;
DWORD dwLineStates;
DWORD dwUUIAcceptSize;
DWORD dwUUIAnswerSize;
DWORD dwUUIMakeCallSize;
DWORD dwUUIDropSize;
DWORD dwUUISendUserUserInfoSize;
DWORD dwUUICallInfoSize;
LINEDIALPARAMS MinDialParams;
LINEDIALPARAMS MaxDialParams;
LINEDIALPARAMS DefaultDialParams;
DWORD dwNumTerminals;
DWORD dwTerminalCapsSize;
DWORD dwTerminalCapsOffset;
DWORD dwTerminalTextEntrySize;
DWORD dwTerminalTextSize;
DWORD dwTerminalTextOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwLineFeatures;
DWORD dwSettableDevStatus;
DWORD dwDeviceClassesSize;
DWORD dwDeviceClassesOffset;
GUID PermanentLineGuid;
DWORD dwAddressTypes;
GUID ProtocolGuid;
DWORD dwAvailableTracking;
} LINEDEVCAPS, *LPLINEDEVCAPS;
Miembros
dwTotalSize
Tamaño total asignado a esta estructura de datos, en bytes.
dwNeededSize
Tamaño necesario para que esta estructura de datos contenga toda la información devuelta, en bytes.
dwUsedSize
Tamaño de la parte de esta estructura de datos que contiene información útil, en bytes.
dwProviderInfoSize
Tamaño del campo de tamaño variable que contiene información del proveedor de servicios, en bytes.
dwProviderInfoOffset
Desplazamiento desde el principio de la estructura hasta la información del proveedor de servicios, en bytes.
Los miembros dwProviderInfoSize y dwProviderInfoOffset están diseñados para proporcionar información sobre el hardware o el software del proveedor, como el nombre del proveedor y los números de versión de hardware y software. Esta información puede ser útil cuando un usuario necesita llamar al servicio de atención al cliente con problemas relacionados con el proveedor.
dwSwitchInfoSize
Tamaño del campo de dispositivo de tamaño variable que contiene información del conmutador, en bytes.
dwSwitchInfoOffset
Desplazamiento desde el principio de la estructura hasta la información del modificador, en bytes.
Los miembros dwSwitchInfoSize y dwSwitchInfoOffset están diseñados para proporcionar información sobre el conmutador al que está conectado el dispositivo de línea, como el fabricante del conmutador, el nombre del modelo, la versión de software, etc. Esta información puede ser útil cuando un usuario necesita llamar al servicio de atención al cliente con problemas relacionados con el cambio.
dwPermanentLineID
Identificador permanente por el que se conoce el dispositivo de línea en la configuración del sistema. Es un nombre permanente para el dispositivo de línea. Este nombre permanente (en lugar de dwDeviceID) no cambia a medida que se agregan o quitan líneas del sistema y se conservan a través de las actualizaciones del sistema operativo. Por lo tanto, se puede usar para vincular información específica de línea en .ini archivos (u otros archivos) de una manera que no se vea afectada agregando o quitando otras líneas o cambiando el sistema operativo.
dwLineNameSize
Tamaño del campo de dispositivo de tamaño variable que contiene un nombre configurable por el usuario para este dispositivo de línea, en bytes.
dwLineNameOffset
Desplazamiento desde el principio de esta estructura de datos hasta el nombre de este dispositivo de línea. El usuario puede configurar este nombre al configurar el proveedor de servicios del dispositivo de línea y se proporciona para la comodidad del usuario. DwLineNameSize especifica el tamaño del campo.
dwStringFormat
Formato de cadena usado con este dispositivo de línea. Este miembro usa una de las STRINGFORMAT_ constantes.
dwAddressModes
Modo por el que se especifica la dirección de origen. Este miembro usa las constantes LINEADDRESSMODE_.
dwNumAddresses
Número de direcciones asociadas a este dispositivo de línea. Los identificadores de dirección hacen referencia a direcciones individuales. Los identificadores de dirección van de cero a uno menor que el valor indicado por dwNumAddresses.
dwBearerModes
Matriz de marcas que indica los diferentes modos de portador que la dirección puede admitir. Este miembro usa una o varias de las constantes de LINEBEARERMODE_.
dwMaxRate
Velocidad máxima de datos para el intercambio de información a través de la llamada, en bits por segundo.
dwMediaModes
Matriz de marcas que indica los distintos tipos de medios que la dirección puede admitir. Este miembro usa una o varias de las constantes de LINEMEDIAMODE_.
dwGenerateToneModes
Tonos que se pueden generar en esta línea. Este miembro usa una o varias de las constantes de LINETONEMODE_.
dwGenerateToneMaxNumFreq
Número máximo de frecuencias que se pueden especificar para describir un tono general mediante la estructura de datos LINEGENERATETONE al generar un tono mediante lineGenerateTone. Un valor de 0 indica que la generación de tonos no está disponible.
dwGenerateDigitModes
Modos de dígito que se pueden generar en esta línea. Este miembro usa una o varias de las constantes de LINEDIGITMODE_.
dwMonitorToneMaxNumFreq
Número máximo de frecuencias que se pueden especificar en la descripción de un tono general mediante la estructura de datos LINEMONITORTONE al supervisar un tono general mediante lineMonitorTones. Un valor de 0 indica que el monitor de tono no está disponible.
dwMonitorToneMaxNumEntries
Número máximo de entradas que se pueden especificar en una lista de tonos para lineMonitorTones.
dwMonitorDigitModes
Modos de dígito que se pueden detectar en esta línea. Este miembro usa una o varias de las constantes de LINEDIGITMODE_.
dwGatherDigitsMinTimeout
Valor mínimo que se puede especificar para los valores de tiempo de espera de primer dígito y entre dígitos usados por lineGatherDigits, en milisegundos. Si dwGatherDigitsMinTimeout y dwGatherDigitsMaxTimeout son cero, no se admiten tiempos de espera.
dwGatherDigitsMaxTimeout
Valor máximo que se puede especificar para los valores de tiempo de espera de primer dígito y entre dígitos usados por lineGatherDigits, en milisegundos. Si dwGatherDigitsMinTimeout y dwGatherDigitsMaxTimeout son cero, no se admiten tiempos de espera.
dwMedCtlDigitMaxListSize
Número máximo de entradas que se pueden especificar en el parámetro de lista de dígitos de lineSetMediaControl.
dwMedCtlMediaMaxListSize
Número máximo de entradas que se pueden especificar en el parámetro de lista de medios de lineSetMediaControl.
dwMedCtlToneMaxListSize
Número máximo de entradas que se pueden especificar en el parámetro de lista de tonos de lineSetMediaControl.
dwMedCtlCallStateMaxListSize
Número máximo de entradas que se pueden especificar en el parámetro de lista de estado de llamada de lineSetMediaControl.
dwDevCapFlags
Funcionalidades de dispositivo booleanas. Este miembro usa una o varias de las constantes de LINEDEVCAPFLAGS_.
dwMaxNumActiveCalls
Número máximo de llamadas (ancho de banda mínimo) que pueden estar activas (conectadas) en la línea en cualquier momento. El número real de llamadas activas puede ser menor si se han establecido llamadas de ancho de banda más altas en la línea.
dwAnswerMode
Efecto en la llamada activa al responder a otra llamada de oferta en un dispositivo de línea. Este miembro usa una de las constantes LINEANSWERMODE_.
dwRingModes
Número de modos de anillo diferentes que se pueden notificar en el mensaje de LINE_LINEDEVSTATE con la indicación de timbre . Los diferentes modos de anillo van de uno a dwRingModes. Cero indica que no hay ningún anillo.
dwLineStates
Diferentes componentes de estado de línea para los que se puede notificar a la aplicación en un mensaje de LINE_LINEDEVSTATE en esta línea. Este miembro usa una o varias de las constantes de LINEDEVSTATE_.
dwUUIAcceptSize
Tamaño máximo de la información de usuario-usuario, incluido el terminador NULL , que se puede enviar durante una aceptación de llamada.
dwUUIAnswerSize
Tamaño máximo de la información de usuario-usuario, incluido el terminador NULL , que se puede enviar durante una respuesta de llamada.
dwUUIMakeCallSize
Tamaño máximo de la información de usuario-usuario, incluido el terminador NULL , que se puede enviar durante una llamada make.
dwUUIDropSize
Tamaño máximo de la información de usuario-usuario, incluido el terminador NULL , que se puede enviar durante una eliminación de llamadas.
dwUUISendUserUserInfoSize
Tamaño máximo de la información de usuario-usuario, incluido el terminador NULL , que se puede enviar por separado en cualquier momento durante una llamada con lineSendUserUserInfo.
dwUUICallInfoSize
Tamaño máximo de información de usuario-usuario, incluido el terminador NULL , que se puede recibir en la estructura LINECALLINFO .
MinDialParams
Valor mínimo para los parámetros de marcado que se pueden establecer para las llamadas en esta línea, en milisegundos. Los parámetros de marcado se pueden establecer en valores del intervalo MinDialParams en MaxDialParams. La granularidad de la configuración real es específica del proveedor de servicios.
MaxDialParams
Valor máximo para los parámetros de marcado que se pueden establecer para las llamadas en esta línea, en milisegundos. Los parámetros de marcado se pueden establecer en valores del intervalo MinDialParams en MaxDialParams. La granularidad de la configuración real es específica del proveedor de servicios.
DefaultDialParams
Parámetros de marcado predeterminados usados para las llamadas en esta línea. Estos valores de parámetro se pueden invalidar por llamada.
dwNumTerminals
Número de terminales que se pueden establecer para este dispositivo de línea, sus direcciones o sus llamadas. Los identificadores de terminal hacen referencia a los terminales individuales y van de cero a uno menor que el valor indicado por dwNumTerminals.
dwTerminalCapsSize
Tamaño del campo de dispositivo de tamaño variable que contiene una matriz con entradas de tipo LINETERMCAPS, en bytes.
dwTerminalCapsOffset
Desplazamiento desde el principio de esta estructura hasta el campo de dispositivo de tamaño variable que contiene una matriz con entradas de tipo LINETERMCAPS. Esta matriz se indexa mediante identificadores de terminal, en el intervalo de cero a dwNumTerminals menos uno. Cada entrada de la matriz especifica las funcionalidades del dispositivo terminal del terminal correspondiente. DwTerminalCapsSize especifica el tamaño del campo.
dwTerminalTextEntrySize
Tamaño de cada una de las descripciones de texto de terminal, incluido el terminador null , al que apunta dwTerminalTextSize y dwTerminalTextOffset, en bytes.
dwTerminalTextSize
Tamaño del campo de tamaño variably que contiene texto descriptivo sobre cada uno de los terminales disponibles de la línea, incluido el terminador NULL , en bytes
dwTerminalTextOffset
Desplazamiento desde el principio de esta estructura al texto descriptivo sobre cada uno de los terminales disponibles de la línea, en bytes. Cada mensaje es dwTerminalTextEntrySize bytes long. El formato de cadena de estas descripciones textuales se indica mediante dwStringFormat en las funcionalidades del dispositivo de la línea. DwTerminalTextSize especifica el tamaño del campo.
dwDevSpecificSize
Tamaño del campo específico del dispositivo de tamaño variably, en bytes. Si la información específica del dispositivo es un puntero a una cadena, el tamaño debe incluir el terminador null .
dwDevSpecificOffset
Desplazamiento desde el principio de esta estructura hasta el campo específico del dispositivo, en bytes. El tamaño del campo se especifica mediante dwDevSpecificSize.
dwLineFeatures
Características disponibles para esta línea mediante las constantes LINEFEATURE_. Invocar una característica compatible requiere que la línea esté en el estado adecuado y que el dispositivo de línea subyacente se abra en un modo compatible. Un cero en una posición de bits indica que la característica correspondiente nunca está disponible. Una indica que la característica correspondiente puede estar disponible si la línea está en el estado adecuado para que la operación sea significativa. Este miembro permite a una aplicación detectar qué características de línea pueden ser (y que nunca pueden ser) compatibles con el dispositivo.
dwSettableDevStatus
Valores LINEDEVSTATUSFLAGS que se pueden modificar mediante lineSetLineDevStatus.
dwDeviceClassesSize
Tamaño de una cadena que contiene los identificadores de clase de dispositivo admitidos en una o varias direcciones de esta línea, incluido el terminador NULL , en bytes.
dwDeviceClassesOffset
Desfase desde el principio de esta estructura a una cadena que contiene los identificadores de clase de dispositivo admitidos en una o varias direcciones de esta línea, en bytes. Estas cadenas se usan con lineGetID; están separados por NULLs y el último identificador de la lista va seguido de dos VALORES NULL. El tamaño del campo se especifica mediante dwDeviceClassesSize.
PermanentLineGuid
GUID asociado permanentemente al dispositivo de línea.
dwAddressTypes
Tipo de dirección usado para la llamada. Este miembro de la estructura solo está disponible si la versión de TAPI negociada es 3.0 o posterior.
ProtocolGuid
Protocolo TAPI actual. Este miembro de la estructura solo está disponible si la versión de TAPI negociada es 3.0 o posterior. Los protocolos se declaran en tapi3.h.
dwAvailableTracking
Seguimiento disponible, como se representa mediante una LINECALLHUBTRACKING.constant. Este miembro de la estructura solo está disponible si la versión de TAPI negociada es 3.0 o posterior.
Comentarios
Las extensiones específicas del dispositivo deben usar el área de tamaño variable DevSpecific (dwDevSpecificSize y dwDevSpecificOffset) de esta estructura de datos.
Las aplicaciones anteriores se compilan sin miembros nuevos en la estructura LINEDEVCAPS y usan SIZEOF LINEDEVCAPS más pequeños que el nuevo tamaño. La aplicación pasa un parámetro dwAPIVersion con la función lineGetDevCaps , que TAPI puede usar para obtener instrucciones para controlar esta situación. Si la aplicación pasa un miembro dwTotalSize menor que el tamaño de la parte fija de la estructura tal y como se define en dwAPIVersion especificado, se devuelve LINEERR_STRUCTURETOOSMALL. Si la aplicación ha asignado suficiente memoria, antes de llamar a TSPI_lineGetDevCaps, TAPI establece los miembros dwNeededSize y dwUsedSize en el tamaño fijo de la estructura tal como existía en la versión de API especificada.
Las nuevas aplicaciones deben ser conscientes de la versión de api negociada y no examinar el contenido de los miembros de la parte fija más allá del final original de la parte fija de la estructura para la versión de API negociada.
Si el bit de LINEBEARERMODE_DATA se establece en el miembro dwBearerModes , el miembro dwMaxRate indica la velocidad máxima de transmisión digital en el canal de portador. El miembro dwMaxRate de la estructura LINEDEVCAPS puede contener valores válidos aunque el miembro dwBearerModes de la estructura LINEDEVCAPS no esté establecido en LINEBEARERMODE_DATA.
Si LINEBEARERMODE_DATA no se establece en dwBearerModes, pero el valor de LINEBEARERMODE_VOICE se establece y el valor de LINEMEDIAMODE_DATAMODEM se establece en el miembro dwMediaModes , el miembro dwMaxRate indica la velocidad de bits máxima SYNCHRONOUS (DCE) en la línea de teléfono para el módem adjunto o equivalente funcional. Por ejemplo, si la velocidad de modulación más rápida del módem es V.32bis a 14.400bps, dwMaxRate es igual a 14400. Esta no es la velocidad de puerto DTE más rápida (que probablemente sería 38400, 57600 o 115200), pero la velocidad de bits más rápida que admite el módem en la línea de teléfono.
La aplicación debe tener cuidado de comprobar que no se ha establecido LINEBEARERMODE_DATA, para evitar malinterpretar el miembro dwMaxRate . Es probable que sea 64000 o superior si se establece LINEBEARERMODE_DATA.
También debe tenerse en cuenta que si el módem no se ha identificado específicamente (por ejemplo, es un módem "genérico"), la figura indicada es una "mejor estimación" basada en el examen del módem.
Los miembros dwSettableDevStatus a través de dwDeviceClassesOffset solo están disponibles para las aplicaciones que abren el dispositivo de línea con una versión TAPI de 2.0 o posterior.
Requisitos
Requisito | Valor |
---|---|
Header | tapi.h |