Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsqu’un appel est actif dans LINEBEARERMODE_PASSTHROUGH, le fournisseur de services donne un accès direct au matériel attaché pour le contrôle par l’application. Les applications peuvent utiliser ce mode pour le contrôle direct temporaire des modems asynchrones, accessibles via les fonctions de communication, afin de configurer ou d’utiliser des fonctionnalités spéciales qui ne sont pas prises en charge par le fournisseur de services, telles que la télécopie (classe 1, 2, etc.). Ce mode de porteur est pris en charge par le fournisseur de services UNIMODEM (Universal Modem Driver).
Les fournisseurs de services qui prennent en charge LINEBEARERMODE_PASSTHROUGH l’indiquent dans le membre dwBearerModes de la structure LINEDEVCAPS . Lorsque LINEBEARERMODE_PASSTHROUGH est indiqué, le fournisseur de services Unimodem inclut également dans la zone DevSpecific de la structure LINEDEVCAPS la clé de Registre utilisée pour accéder aux données relatives au modem associé à l’appareil de ligne, au format suivant :
struct {
DWORD dwContents; // Set to 1 (indicates containing key).
DWORD dwKeyOffset; // Offset to key from start of this
// structure (not from start of
// LINEDEVCAPS structure).
// 8 in this case.
BYTE rgby[...]; // Place that contains null-terminated
// registry key.
}
Par exemple :
00000001 00000008 74737953 435c6d65 ........System\C
65727275 6f43746e 6f72746e 7465536c urrentControlSet
7265535c 65636976 6c435c73 5c737361 urrentControlSet
65646f4d 30305c6d xx003030 xxxxxxxx Modem\0000.
Cette clé de Registre peut ensuite être ouverte à l’aide de la fonction RegOpenKey .
Le mode passthrough est appelé le plus souvent à l’aide de la fonction lineMakeCall , en définissant le bit LINEBEARERMODE_PASSTHROUGH dans le membre dwBearerMode de la structure LINECALLPARAMS pointée vers laquelle pointe le paramètre lpCallParams . Lorsque cela est effectué, le fournisseur de services ouvre le port série sur le modem et place immédiatement l’appel dans LINECALLSTATE_CONNECTED. L’application peut ensuite utiliser la fonction lineGetID avec la classe d’appareil « comm/datamodem » pour obtenir un handle de fichier ouvert à partir duquel lire et écrire dans le port comm.
Le mode passthrough peut également être appelé en réponse à un appel entrant. En règle générale, les applications appellent le mode passthrough lorsque l’appel est en LINECALLSTATE_OFFERING, avant que l’appel ait reçu une réponse. Au lieu d’appeler lineAnswer, l’application appelle lineSetCallParams, en passant LINEBEARERMODE_PASSTHROUGH comme paramètre dwBearerMode . Lorsque cela est effectué, comme avec lineMakeCall, l’appel est immédiatement placé dans LINECALLSTATE_CONNECTED par le fournisseur de services, et l’application peut obtenir un handle pour le port ouvert à l’aide de lineGetID. La fonction lineSetCallParams peut être appelée lorsque l’appel est dans LINECALLSTATE_OFFERING, LINECALLSTATE_ACCEPTED ou LINECALLSTATE_CONNECTED.
Le mode passthrough est normalement terminé en appelant lineDrop sur le handle d’appel obtenu à partir de lineMakeCall ou du premier message LINE_CALLSTATE , si l’appel était un appel entrant. Le fournisseur de services ferme le port et restaure le modem à son état par défaut. L’application doit appeler CloseHandle sur le handle qu’elle a reçu de lineGetID.
Le mode passthrough peut également être arrêté en appelant lineSetCallParams avec le paramètre dwBearerMode défini sur LINEBEARERMODE_VOICE. Le type de média (mode) défini par lineSetMediaMode est présumé être en vigueur. Si LINEMEDIAMODE_DATAMODEM est actif, le fournisseur de services prend en charge l’appel comme s’il s’agissait d’un appel de modem de données déjà en cours ; si lineDrop est appelé par la suite, le fournisseur de services émet les commandes de modem appropriées ou les modifications d’état de l’interface pour supprimer un appel de données.
Notes
Si le mode passthrough est arrêté pendant que l’appel est en cours, le fournisseur de services TAPI (TSP) de la ligne peut restaurer les paramètres du modem à leur état par défaut. Unimodem est un exemple de fournisseur de services partagés qui restaure toujours les paramètres du modem lors de la fin du mode passthrough. Pour cette raison, le mode passthrough ne peut pas être utilisé comme méthode pour configurer l’appareil. Le mode passthrough ne doit être utilisé que pour des activités distinctes qui peuvent être considérées comme terminées lorsque le passthrough est terminé. Parmi les exemples d’activités qui peuvent utiliser le mode passthrough, citons l’envoi d’une télécopie ou la lecture de données wave/audio via un protocole de modem propriétaire.