Remarque
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.
La fonction lineForward transfère les appels destinés à l’adresse spécifiée sur la ligne spécifiée, conformément aux instructions de transfert spécifiées. Lorsqu’une adresse d’origine (dwAddressID) est transférée, les appels entrants spécifiés pour cette adresse sont déviés vers l’autre numéro par le commutateur. Cette fonction fournit une combinaison de fonctionnalités avant et ne pas déranger. Cette fonction peut également annuler le transfert actuellement en vigueur.
Syntaxe
LONG lineForwardW(
HLINE hLine,
DWORD bAllAddresses,
DWORD dwAddressID,
LPLINEFORWARDLIST const lpForwardList,
DWORD dwNumRingsNoAnswer,
LPHCALL lphConsultCall,
LPLINECALLPARAMS const lpCallParams
);
Paramètres
hLine
Gérez l’appareil de ligne.
bAllAddresses
Spécifie si toutes les adresses d’origine sur la ligne ou seulement celles spécifiées doivent être transférées. Si TRUE, toutes les adresses de la ligne sont transférées et dwAddressID est ignorée ; si FALSE, seule l’adresse spécifiée comme dwAddressID est transférée.
dwAddressID
Adresse sur la ligne spécifiée dont les appels entrants doivent être transférés. Ce paramètre est ignoré si bAllAddresses est TRUE.
Un identificateur d’adresse est associé définitivement à une adresse ; l’identificateur reste constant entre les mises à niveau du système d’exploitation.
lpForwardList
Pointeur vers une structure de données de taille variable qui décrit les instructions de transfert spécifiques, de type LINEFORWARDLIST.
dwNumRingsNoAnswer
Nombre d’anneaux avant qu’un appel ne soit considéré comme une « aucune réponse ». Si dwNumRingsNoAnswer est hors plage, la valeur réelle est définie sur la valeur la plus proche de la plage autorisée.
lphConsultCall
Pointeur vers un emplacement HCALL. Dans certains environnements de téléphonie, cet emplacement est chargé d’un handle vers un appel de consultation utilisé pour consulter la partie à laquelle il est transféré, et l’application devient le seul propriétaire initial de cet appel. Ce pointeur doit être valide même dans les environnements où le transfert d’appel ne nécessite pas d’appel de consultation. Ce handle est défini sur NULL si aucun appel de consultation n’est créé.
lpCallParams
Pointeur vers une structure de type LINECALLPARAMS. Ce pointeur est ignoré, sauf si lineForward nécessite l’établissement d’un appel à la destination de transfert (et lph ConsultingCall est retourné, auquel cas lpCallParams est facultatif). Si NULL, les paramètres d’appel par défaut sont utilisés. Dans le cas contraire, les paramètres d’appel spécifiés sont utilisés pour établir hCall.
Valeur de retour
Retourne un identificateur de requête positif si la fonction est terminée de manière asynchrone ou un numéro d’erreur négatif si une erreur se produit. Le paramètre dwParam2 du message de LINE_REPLY correspondant est égal à zéro si la fonction réussit ou s’il s’agit d’un numéro d’erreur négatif si une erreur se produit. Les valeurs de retour possibles sont les suivantes :
LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALCOUNTRYCODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALPARAM, LINEERR_UNINITIALIZED.
Remarques
Un transfert réussi indique uniquement que la demande a été acceptée par le fournisseur de services, et non que le transfert est configuré au niveau du commutateur. Un message LINE_ADDRESSSTATE (transfert) indique que le transfert a été configuré au niveau du commutateur.
Le transfert des adresses reste en vigueur jusqu’à ce que cette fonction soit appelée à nouveau. La liste de transfert la plus récente remplace l’ancienne. Le transfert peut être annulé en spécifiant un pointeur NULL comme lpForwardList. Si une NULL adresse de destination est spécifiée pour une entrée dans la liste de transfert, l’opération agit comme une erreur de non-dérangement.
L’état de transfert d’une adresse peut également être affecté en externe ; par exemple, par des actions administratives au commutateur ou par un utilisateur d’une autre station. Il se peut que le fournisseur de services ne sache pas ce changement d’état et qu’il n’est peut-être pas en mesure de conserver la synchronisation avec l’état de transfert connu du commutateur.
Étant donné qu’un fournisseur de services peut ne pas connaître l’état de transfert de l’adresse « pour sûr » (autrement dit, il a peut-être été transféré ou non d’une manière inconnue), lineForward réussit, sauf si elle ne parvient pas à définir les nouvelles instructions de transfert. En d’autres termes, une demande indiquant que tous les transferts doivent être annulés à la fois qu’il n’y a pas de transfert en vigueur réussit. Cela est dû au fait qu’il n’existe pas de « déforwarding » : vous ne pouvez modifier que l’ensemble précédent d’instructions de transfert.
La réussite ou l’échec de cette opération ne dépend pas de l’ensemble précédent d’instructions de transfert, et la même chose est vraie lors de la définition d’instructions de transfert différentes. Le fournisseur doit « tout déforer » avant de définir les nouvelles instructions de transfert. Étant donné que cela peut prendre du temps dans les environnements de téléphonie analogique, un fournisseur peut également vouloir comparer le transfert actuel avec le nouveau, et émettre uniquement des instructions sur le commutateur pour accéder à l’état final (laissant le transfert inchangé non affecté).
L’appel de lineForward lorsque LINEFORWARDLIST a défini sur zéro a le même effet que de fournir un paramètre NULLlpForwardList. Elle annule tous les transferts actuellement en vigueur.
Note
L’en-tête tapi.h définit lineForward comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
| Exigence | Valeur |
|---|---|
| plateforme cible | Windows |
| d’en-tête | tapi.h |
| bibliothèque | Tapi32.lib |
| DLL | Tapi32.dll |