PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Principe
  • Les différentes étapes
  • Exemple
  • Exemple permettant de gérer les appels entrants dans le thread principal
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Principe
La gestion des appels entrants est réalisée dans un "Thread" spécifique. Lorsque un appel entrant est détecté, la procédure associée au thread est exécutée. C'est dans cette procédure que la gestion de l'appel est réalisée.
Les différentes étapes
Pour gérer les appels entrants dans une application WINDEV ou WINDEV Mobile :
  1. Déterminez si nécessaire le périphérique TAPI sur lequel la détection d'appels doit être effectuée. Utilisez les fonctions :
    Versions 09 et supérieures
    telCapacité
    Nouveauté 09
    telCapacité
    telCapacité
    Renvoie les caractéristiques d'un périphérique de téléphonie.
    Versions 09 et supérieures
    telListePériphérique
    telListePériphérique
    Liste les périphériques de téléphonie compatibles TAPI 2.0 et TAPI 3.1 installés sur le poste en cours.
    Versions 09 et supérieures
    telPériphérique
    Nouveauté 09
    telPériphérique
    telPériphérique
    Sélectionne le périphérique TAPI qui sera utilisé lors des opérations de téléphonie suivantes :
  2. Démarrez la détection d'appels entrants grâce à la fonction telDémarreDétectionAppel. Cette fonction exécute une procédure WLangage spécifique. Cette procédure sera automatiquement exécutée lorsque un appel entrant sera détecté.
  3. Dans cette procédure, il est possible de :
    • connaître l'état de l'appel grâce aux constantes suivantes :
      • telLigneOccupée : La ligne est actuellement occupée.
      • telLigneDécrochée : La ligne est connectée.
      • telLigneNumérote : Numérotation en cours.
      • telLigneTonalité : La ligne reçoit la tonalité
      • telLigneRaccrochée : Le correspondant a raccroché
      • telLigneAttendRéponse : L'appel est composé : recherche du correspondant
      • telLigneSonnerie : Sonnerie en cours chez le correspondant
      • telNouvelAppel : Nouvel appel détecté en attente de réponse ou de rejet.
      • telInformationAppel : Les informations supplémentaires (présentation du numéro) sont disponibles. Ces informations ne sont généralement disponibles qu'après la première sonnerie.
    • gérer complètement l'appel grâce aux fonctions suivantes :
      • obtenir les caractéristiques de l'appel entrant :
        Versions 09 et supérieures
        telAppelDébut
        Nouveauté 09
        telAppelDébut
        telAppelDébut
        Renvoie la date et l'heure du début de l'appel (entrant ou sortant).
        Versions 09 et supérieures
        telAppelEstTerminé
        Nouveauté 09
        telAppelEstTerminé
        telAppelEstTerminé
        Permet de savoir si l'appel (sortant ou entrant) est terminé.
        Versions 09 et supérieures
        telAppelFin
        Nouveauté 09
        telAppelFin
        telAppelFin
        Renvoie la date et l'heure de la fin de l'appel.
        Versions 09 et supérieures
        telDuréeAppel
        Nouveauté 09
        telDuréeAppel
        telDuréeAppel
        Renvoie la durée de l'appel (différence entre la date et l'heure du début de l'appel et la date et l'heure de fin de l'appel).
        Versions 09 et supérieures
        telNuméroAppelant
        Nouveauté 09
        telNuméroAppelant
        telNuméroAppelant
        Permet de connaître le numéro de téléphone appelant (qui appelle).
      • effectuer des opérations spécifiques :
        Versions 09 et supérieures
        telArrête
        Nouveauté 09
        telArrête
        telArrête
        Force l'arrêt de la lecture d'un message pré-enregistré (fonction telJoue).
        Versions 09 et supérieures
        telEnregistre
        Nouveauté 09
        telEnregistre
        telEnregistre
        Enregistre la communication en cours sous forme d'un fichier ".WAV".
        Versions 09 et supérieures
        telJoue
        Nouveauté 09
        telJoue
        telJoue
        Joue un fichier sonore (.WAV) pour la ligne spécifiée.
        Versions 09 et supérieures
        telNumérote
        Nouveauté 09
        telNumérote
        telNumérote
        Permet de simuler l'utilisation des touches du clavier téléphonique.
        Versions 09 et supérieures
        telRépondAppel
        Nouveauté 09
        telRépondAppel
        telRépondAppel
        Répond à un appel entrant détecté.
        Versions 09 et supérieures
        telToucheEnfoncée
        Nouveauté 09
        telToucheEnfoncée
        telToucheEnfoncée
        Permet de connaître l'historique des touches enfoncées sur le clavier téléphonique depuis la dernière utilisation de la fonction telToucheEnfoncée.

        Attention :
        Cette procédure WLangage étant exécutée dans un thread, toutes les contraintes des threads doivent être respectées (ouverture de fenêtre impossible, pas de gestion des timer, pas de gestion des événements, ...). Pour plus de détails, consultez Gestion des threads avec WINDEV.
        Il est conseillé de limiter les traitements réalisés dans cette procédure. En effet, pendant la durée de l'appel, la détection d'autres appels (ainsi que tous les événements de téléphonie) est gelée. Si des traitements longs doivent être réalisés, il est conseillé de traiter l'appel dans le thread principal de l'application (voir exemple ci-dessous).
  4. Pour terminer la session de détection d'appels entrants, utilisez la fonction telFinDétectionAppel.
Exemple

Exemple permettant de gérer les appels entrants dans le thread principal

  • Code de déclaration des globales de la fenêtre réalisant la détection d'appels. Dans ce code sont déclarés les différents événements permettant de gérer les appels dans le thread principal de l'application.
    GLOBAL
    gnIDEvenement est un entier
    // On met en place un événement pour gérer les appels entrant en popup
    SI Evénement("AppelDetecté", "*.*", "AppelTel") = 0 ALORS
    Erreur("Impossible de gérer la popup de détection d'appel", ErreurInfo())
    FIN
    SI Evénement("FinAppelDetecté", "*.*", "AppelTelFin") = 0 ALORS
    Erreur("Impossible de gérer la popup de détection d'appel", ErreurInfo())
    FIN
    SI Evénement("IdentifiantAppelDetecté", "*.*", "AppelTelInfo") = 0 ALORS
    Erreur("Impossible de gérer la popup de détection d'appel", ErreurInfo())
    FIN
  • Code d'initialisation de la fenêtre : ce code permet de démarrer la procédure de détection d'appels.
    // On démarre le service de détection des appels
    SI telDémarreDétectionAppel("AppelEntrant", telOptionTypeFax, "DetectionAppel") ALORS
            // Le service de détection des appels a démarré
            Message("Détection des appels activés")
    SINON
           // Le service de détection des appels n'a pas démarré
             Erreur("Impossible de démarrer la détection des appels" + RC + ...
                           "Détail de l'erreur :" + RC + ErreurInfo(errMessage))
    FIN
  • Procédure de détection d'appels :
    Cette procédure permet de détecter les appels entrants.
    Pour chaque appel entrant, les caractéristiques de l'appel sont transmises au thread principal grâce à la fonction PostMessage.
    PROCEDURE DetectionAppel(nIDService, nIDAppel, nStatut)
    // AVERTISSEMENT :
    // Les traitements réalisés dans cette procédure sont appelés à partir d'un thread
    // La gestion de l'affichage doit être réalisé à partir du thread principal
    // (d'où l'utilisation de PostMessage)
    // Pour déboguer ce type de traitement, vous devez utiliser la fonction "Trace"
    // détection des appels entrants
    SELON nStatut
    // Détection d'un nouvel appel :
    // Note : On ne disposera de plus d'informations qu'après au moins une sonnerie
    CAS telNouvelAppel :
      // On signale l'arrivée d'un nouvel appel à la fenêtre principale
      // pour ouvrir une Popup
      PostMessage(Handle(Fenêtre_Appel), "AppelTel", nIDAppel, nStatut)
      // On dispose d'informations sur l'appel
    CAS telInformationAppel :
      // On signale l'arrivée d'un nouvel appel à la fenêtre principale
      // pour ouvrir une Popup
      PostMessage(Handle(Fenêtre_Appel), "AppelTelInfo", nIDAppel, nStatut)
      // La ligne a été raccrochée
    CAS telLigneRaccrochée:
      // On signale l'arrivée d'un nouvel appel à la fenêtre principale
      // pour ouvrir une Popup
      PostMessage(Handle(Fenêtre_Appel), "AppelTelFin", nIDAppel, nStatut)
    FIN
Liste des exemples associés :
WD Répondeur Téléphonique Exemples complets (WINDEV) : WD Répondeur Téléphonique
[ + ] Cet exemple utilise les fonctionnalités de téléphonie pour la gestion d'un répondeur téléphonique.
Ce programme réalisé avec WINDEV permet de comprendre l'utilisation des fonctions de téléphonie dans le cadre d'un répondeur.
Ce répondeur est paramétrable (Message d'accueil) à distance et peut être interrogé à distance, grâce à un menu.
WD Téléphonie Exemples complets (WINDEV) : WD Téléphonie
[ + ] Cet exemple illustre les fonctions téléphonie de WINDEV.
Dans cet exemple, nous abordons deux thèmes principaux :
1/ Comment composer un numéro de téléphone
2/ Détecter et identifier des appels entrants
Résumé de l'exemple livré avec WINDEV :
Cet exemple présente les différentes fonctions de téléphonie fournies en standard avec WINDEV. Après avoir saisi quelques contacts dans la fenêtre principale (la table est en saisie), vous pourrez les appeler directement à partir de l'application (à condition que votre ordinateur soit équipé d'un modem correctement installé). Vous pourrez également avoir une notification des appels entrants et obtenir l'identité de l'appelant
Pocket Téléphonie Mobile (WINDEV Mobile) : Pocket Téléphonie
[ + ] Cet exemple est une application de téléphonie utilisable avec un Pocket PC qui possède un accès téléphonique (Type GSM).
Cet exemple utilise les fonctions de téléphonie de WINDEV Mobile ainsi que les fonctions permettant de récupérer les paramètres du téléphone.
Il permet d'appeler, d'être appelé, de gérer un historique des appels (reçus et émis) ainsi qu'une base de contacts.
De plus, vous pouvez importer les contacts présents dans le fichier contacts du Pocket PC.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire