Partager via


Contrôle de version TSPI

Au fil du temps, différentes versions de TAPI, d’applications et de fournisseurs de services peuvent être produites. Ces nouvelles versions peuvent créer de nouvelles définitions, comme pour les nouvelles fonctionnalités, les nouveaux membres dans les structures de données et les nouveaux champs de bits. Les numéros de version sont donc nécessaires pour indiquer comment interpréter différentes structures de données.

Pour permettre une interopérabilité optimale des différentes versions d’applications, des versions de TAPI proprement dites et des versions de fournisseurs de services par différents fournisseurs, Microsoft Telephony fournit un mécanisme de négociation de version simple pour les applications. Il existe deux versions différentes qui doivent être convenues par TAPI et le fournisseur de services de téléphonie pour chaque appareil de ligne. Le premier est le numéro de version de la spi de téléphonie de base et supplémentaire, appelé version de l’interface TSPI. L’autre concerne les extensions spécifiques au fournisseur, le cas échéant, et est appelée version de l’extension. Le format des structures de données et des types de données utilisés par les fonctionnalités De base et Supplémentaire de TSPI est défini par la version TSPI, tandis que la version de l’extension détermine le format des structures de données définies par les extensions spécifiques au fournisseur.

Ces deux types de négociation de version sont gérés par deux procédures différentes : TSPI_lineNegotiateTSPIVersion est utilisé pour négocier la version de l’interface TSPI et TSPI_lineNegotiateExtVersion est utilisé pour négocier la version de l’extension. La négociation de version d’extension peut être ignorée si les extensions ne sont pas souhaitées. Si ces entrées de plages pendant la négociation se chevauchent, le fournisseur de services doit retourner une valeur dans la partie qui se chevauche de la plage à la suite de la négociation. Généralement, il s’agit de la valeur la plus élevée possible. Si les plages ne se chevauchent pas, les deux parties sont incompatibles et la fonction retourne une erreur.

Les résultats d’une négociation indiquent simplement que le fournisseur de services est prêt à fonctionner avec un numéro de version particulier, mais ne l’engage pas à le faire. Par exemple, TAPI peut renégocier pour déterminer une version idéale après avoir négocié une version possible. La version de l’interface TSPI est validée uniquement lorsqu’une ligne est ouverte à l’aide de TSPI_lineOpen et survit jusqu’à ce que l’appareil soit fermé. La version de l’extension est validée lorsque la fonction TSPI_lineSelectExtVersion est appelée et survit jusqu’à ce que la sélection soit annulée en sélectionnant la version d’extension zéro.

La sélection de la version d’extension peut se produire plusieurs fois, y compris pendant qu’une version d’extension est en vigueur. Étant donné que le fournisseur de services est engagé sur la version de l’extension, sa plage de versions prises en charge se limite exactement à cette version d’extension. Par exemple, considérez un fournisseur de services qui est normalement compatible avec les versions d’extension 1.0 à 5.5. Si la version 3.0 est en vigueur alors qu’un appelant tente de négocier une version comprise entre 1.0 et 5.5, la négociation retourne la version 3.0.

Étant donné que TAPI négocie la version, vous pouvez mettre à niveau un fournisseur de services vers de nouvelles versions de l’interface sans exiger que TAPI soit également mis à niveau. De même, TAPI peut être mis à niveau, tout en utilisant votre ancien fournisseur de services.