Compartir a través de


Control de versiones de TSPI

Con el tiempo, se pueden producir diferentes versiones de TAPI, aplicaciones y proveedores de servicios. Estas nuevas versiones pueden crear nuevas definiciones, como para nuevas características, miembros nuevos en estructuras de datos y nuevos campos de bits. Por lo tanto, los números de versión son necesarios para indicar cómo interpretar varias estructuras de datos.

Para permitir una interoperabilidad óptima de diferentes versiones de aplicaciones, versiones de TAPI y versiones de proveedores de servicios por diferentes proveedores, La telefonía de Microsoft proporciona un mecanismo de negociación de versiones simple para las aplicaciones. Hay dos versiones diferentes que deben ser acordadas por TAPI y el proveedor de servicios de telefonía para cada dispositivo de línea. El primero es el número de versión del SPI de telefonía básica y complementaria, denominado versión de la interfaz TSPI. El otro es para extensiones específicas del proveedor, si las hay, y se conoce como la versión de la extensión. El formato de las estructuras de datos y los tipos de datos utilizados por las características básicas y complementarias de TSPI se define mediante la versión de TSPI, mientras que la versión de extensión determina el formato de las estructuras de datos definidas por las extensiones específicas del proveedor.

Estos dos tipos de negociación de versiones se controlan mediante dos procedimientos diferentes: TSPI_lineNegotiateTSPIVersion se usa para negociar la versión de la interfaz TSPI y se usa TSPI_lineNegotiateExtVersion para negociar la versión de extensión. La negociación de la versión de extensión se puede omitir si no se quieren extensiones. Si estos intervalos de entrada durante la negociación se superponen, el proveedor de servicios debe devolver un valor dentro de la parte superpuesta del intervalo como resultado de la negociación. Normalmente, debe ser el valor más alto posible. Si los intervalos no se superponen, las dos partes son incompatibles y la función devuelve un error.

Los resultados de una negociación simplemente indican que el proveedor de servicios está dispuesto a operar en un número de versión determinado, pero no confirma que el proveedor de servicios lo haga. Por ejemplo, TAPI puede renegociar para determinar una versión ideal después de haber negociado una posible versión. La versión de la interfaz TSPI solo se confirma cuando se abre una línea mediante TSPI_lineOpen y sobrevive hasta que se cierra el dispositivo. La versión de la extensión se confirma cuando se llama a la función TSPI_lineSelectExtVersion y sobrevive hasta que se cancela la selección seleccionando la versión de extensión cero.

La selección de la versión de extensión puede producirse muchas veces, incluida la versión de una extensión en vigor. Dado que el proveedor de servicios se confirma en la versión de extensión, su intervalo de versiones admitidas se limita exactamente a esa versión de extensión. Por ejemplo, considere un proveedor de servicios que normalmente es compatible con las versiones de extensión 1.0 a 5.5. Si la versión 3.0 está en vigor mientras un autor de la llamada intenta negociar una versión dentro del intervalo de 1.0 a 5.5, la negociación devuelve 3.0.

Dado que TAPI negocia la versión, puede actualizar un proveedor de servicios a nuevas versiones de la interfaz sin necesidad de actualizar TAPI. Del mismo modo, TAPI se puede actualizar, pero sigue usando su proveedor de servicios anterior.