IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI/Outils Discussion :

[Outils][C#/API Tapi] Y a-t-il une gestion du nombre des appels ?


Sujet :

EDI/Outils

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Outils][C#/API Tapi] Y a-t-il une gestion du nombre des appels ?
    Bonjour a tous, je travaille actuellement sur une application C# permettant de gérer des appels téléphoniques (Recevoir, émettre, transferer des appels....).

    Pour celà je me sert de l'API TAPI 3.1. Je ne pourrai pas expliquer comment cet API marche ca serait trop long, en espérant que des gens y ont déjà travaillé dessus. En gros on s'abonne à des évènements (nouvel appel, fin d'appel, etc...) et on les traites.

    Mon problème est le suivant :

    Au bout du dixième appel recu sur mon poste, plus aucun évènement n'est levé! J'ai trouvé une application C# qui se sert de TAPI sur internet mais elle a exactement le meme problème que moi!

    Par contre, j'ai dialer sur ma machine qui est une appli de gestion téléphonique qui se sert de TAPI, cette derniere marche apres 10 appel, ce qui implique que le problème peut etre résolu. Mais comment?

    En esperant que des gens connaissent TAPI et ont eu le même problème.

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Malheureusement je ne suis pas familier de cet API. Possèdes-tu une documentation relative à cet API. Peut-être qu'il y a une sorte de paramètre de configuration à initialiser, une propriété type qui limite ou pas le nombre de connections(appels) acceptées.

    A moins que tu ais récupéré une version shareware une pointe d'humour dans ce monde impitoyable de l'informatique
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je me sert de la doc de msdn. Au début il faut initialiser l'objet TAPI (méthode sans paramètres), puis abonner les évènements, puis choisir la ligne téléphonique de travail et l'enregistrer. Mais a aucun moment je n'ai trouvé des choses relatant d'un maximum d'appel a renseigner.

    http://msdn.microsoft.com/library/de...initialize.asp

    Voici le lien vers la documentation, au cas ou.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    mais apparemment en ce qui concerne la téléphonie, il semble bien qu'il faille utiliser plutôt ITTAPI2 interface dérivée de celle-ci.
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En C#, les objets ITTAPI2 ne sont pas instanciables, il faut passer par un TAPIClass.

    En fait, j'ai trouvé dans les propriétés des Address de l'objet Tapi (Address = point de communication) qu'il y a en fait un nombre maximum d'appels égal a 10. Celà dépend du dispositif téléphonique physique et on ne peut pas le changer. Le seul moyen que j'ai actuellement pour pouvoir continuer a traiter les évènements c'est de détruire l'objet TAPI au bout du dixieme appel, en appelant ShutDown() et de le recréer. Mais cette méthode est un peu crade.

    Il s'agirait donc d'un problème de libération, en effet, lorsqu'un appel est terminé, il reste dans le TAPI object, qui au bout de 10 appel ne peut plus en rajouter. Pour l'instant j'essaie donc de trouver un moyen de "libérer" les appels, mais je ne trouve aucune méthode voir meme aucune allusion au fait de devoir "libérer" les appels. Effectuer un ShutDown() et recréer un nouvel TAPIClass semblerai etre la seule solution . N'ayant pas accès au code de cette méthode, je ne sais pas comment TAPI s'y prend pour supprimer les appels(il doit bien le faire a un moment ou un autre dans sa méthode ShutDown).

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    vérifie peut être si ces objets sont IDisposable ce qui te permettrait éventuellement d'utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Using(TAPIClass myobject = new TAPIClass())
    {
      // ...
    }
    mais franchement je ne sais si cela sera suffisant pour la libération au fur et à mesure.
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Après deux jours de galère, c'est avec la plus grande joie que je vous informe que j'ai enfin réussi à résoudre mon problème. J'arrive donc à libérer la mémoire inutilement prise par les appels terminés sans détruire le TapiClass.

    Je suis passé par

    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(appel);
    une méthode permettant de détruire à la main des objets COM (les appels étant justement des objets COM).

    C'est assez sale comme méthode, mais au moins j'ai pas a détruire l'objet TAPI et mon application peut recevoir une infinité d'appel alors que le dispositif est censé saturer au bout de 10 .

    Je tiens à te remercier pour ton aide et pour la rapidité à laquelle tu a répondu a mes interrogations. Sujet clos donc, merci a vous!

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je suis en train de faire un projet dans le cadre de mes études et je recherche de la doc pour programmer un serveur vocal en C# avec TAPI.
    Quelqu'un connait-il un site svp ?

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mappy] Création d'outil Mappy.api.map.tools.Tool
    Par Ares777 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 02/03/2010, 13h41
  2. Api pour lire les tags d'une musique
    Par zuzuu dans le forum Général Python
    Réponses: 1
    Dernier message: 09/05/2008, 15h16
  3. Réponses: 5
    Dernier message: 22/01/2007, 14h57
  4. Réponses: 5
    Dernier message: 03/03/2006, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo