Je développe un service Windows VB.NET qui vérifie constamment une base de données BMS pour les nouvelles alarmes et qui passe des appels téléphoniques pour avertir les opérateurs à distance. J'utilise actuellement un wrapper .NET TAPI et l'assemblage interop SAPI 5.3, et les étapes que je suis en train de suivre pour parler au téléphone sont les suivantes :
- Initialiser l'interface TAPI ;
- Appelez le numéro de l'opérateur ;
- Prendre l'identifiant du modem vocal waveOut device id
- Régler la sortie vocale sur l'identifiant de l'appareil ;
- Laissez SAPI faire la magie.
Tout fonctionne bien si je compile le code en tant qu'application Windows console ou formulaire, mais dès que je le compile et l'exécute en tant que service Windows, l'étape 5 ne se produit jamais - le modem vocal appelle mais reste silencieux ; tout le reste fonctionne, même la surveillance des chiffres. Je sais que les services Windows ne sont pas censés interagir avec le bureau, donc des choses comme les éléments de l'interface utilisateur et la lecture de sons sont à proscrire, mais j'ai du mal à trouver une alternative qui n'implique pas l'utilisation de l'API Wave et qui puisse être développée dans un délai raisonnable. Des idées ?