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

Multimédia Java Discussion :

JTAPI et provider


Sujet :

Multimédia Java

  1. #1
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut JTAPI et provider
    Bonjour,

    j'essaye d'implementer un code qui appel un telephone depuis un pc via une liaison telephonique analogique

    j'utilise JTAPI 1.4

    D'après ce que j'ai compris c'est le provider qui s'occupe de faire le passage au reseau telephonique.

    Mais la question est : comment je fais pour en avoir un !?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JtapiPeer peer = JtapiPeerFactory.getJtapiPeer("") ;
    Compile, mais me renvoie l'execption
    "Could not instancied DefaultJtapiPeer"

    J'ai lu dans la javadoc qu'il y avait une histoire de DefaultJtapiPeer.class a mettre dans le CLASSPATH ; mais ça ne m'aide pas plus

    cordialement
    trax

  2. #2
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    bonjour,
    d'après ce que j'aurais compris, il me manquerai un "driver".


    La plus part des codes utilisent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JtapiPeer peer = JtapiPeerFactory.getJtapiPeer("com.ibm.telephony.callpath.CSAJtapiPeer") ;
    qui se trouve dans le fichier ibmcpath.jar que je trouve pas ! !


  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut

    j'ai trouvé un autre driver libre

    http://prdownloads.sourceforge.net/g..._mirror=belnet

    mais j'ai encore quelques problèmes avec les différents provider
    => RTFM


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    bon ben je se pas si ca peut t'aider mais je t'envois un ptit bout de code que j'utilise et qui marche parfaitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
    			JtapiPeer peer = JtapiPeerFactory
    					.getJtapiPeer("net.xtapi.XJtapiPeer");
    			myprovider = peer.getProvider("MSTAPI");
    		} catch (Exception excp) {
    			System.out.println("Can't get Provider: " + excp.toString());
    			System.exit(0);
    			return false;
    		}
    J'espere que cela va t'aider.
    a+

  5. #5
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    j'ai telecharger les packages Xtapi et MSTAPI. J'ai maintenant, un nouveau service Xtapi mais je n'arrive pas avoir MSTAPI

    Par ailleurs, quand j'utilise comme model de provider un "Modem" (pour modem rtc série)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider myprovider = peer.getProvider("Modem");
    J'obtiens cette erreur :

    Can't open serial (com3 javax.comm.NoSuchPortException at ...

    Normal, je ne dispose que d'un port série (COM1)

    Mon system n'en trouve qu'un (panneau de configuration/system). Cependant, HyperTerminal lui me propose aussi de selectionner un port COM3.

    Ce que je voudrais c'est pouvoir spécifié le port sur lequel est censé etre le modem.

    La javadoc donne le model suivant : < service name > ; arg1 = val1; arg2 = val2; ...

    mais je n'arrive pas a trouvé le bon titre d'argument


  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    Re,

    Alors dans ta ligne pour obtenir le provider tu ne dois pas mettre ton modem car le modem c'est ton terminal.
    Le provider correspond normalement au service MSTAPI comme je te l'ai mi plus haut.
    Pour ton probleme j'utilise moi aussi un modem ("olitect") sur port COM1 et cela marche tres bien avec MSTAPI sans avoir besoin de faire autre chose
    je te met qd mm la suite du code pour avoir ton modem au cas ou:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    		try {
    			//Selection du terminal
    			Terminal[] terminals = myprovider.getTerminals();
    			if (terminals == null) {
    				System.out.println("No Terminals on Address.");
    				System.exit(0);
    				return false;
    			}
     
    			//System.out.println("terminal.length : "  + terminals.length);
    			for(int i=0;i<terminals.length;i++){
    				origterm = terminals[i];
    				//System.out.println("terminals["+i+"] = " + origterm.getName());
    				if (origterm.getName().equals("Olitec Self Memory Serial"))
    					break;
    			}
    J'espere que cela t'aidera

  7. #7
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myprovider = peer.getProvider("MSTAPI");
    Je n'est pas de MSTAPI dans la liste de mes services :s
    Donc cette ligne de code ne fonctionne pas. Pourtant j'ai ajouter les packages demander.

    Sinon, j'ai résolue une de mes précédente erreure :
    Pour indiquer le port sur lequel est le modem il fallait modifier le fichier de configuration "Modem.props"
    JTAPI ne trouvait toujours pas le port COM1
    J'ai donc décompiler quelques class de gtapi, rajouter deux lignes dans le code de ModemIO grace au tutorial http://christophej.developpez.com/tu...java/javacomm/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import com.sun.comm.Win32Driver;
    ...
    Win32Driver w32Driver= new Win32Driver();
    w32Driver.initialize();

    J'arrive maintenant a me connecter a mon modem (le code detecte l'absence de modem), mais pas encore a telephoner.

    J'ai utiliser le code http://www.bitroom.de/java_jtapi.php

    Pour l'instant mes sorties sont :

    Status : 101 : CONNECTED
    Status : 101 : ALERTING
    Modem could not call number : ERROR



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    import javax.telephony.* ; 
     
    import net.sourceforge.gjtapi.* ; 
    import net.xtapi.* ; 
    import net.xtapi.serviceProvider.* ;
     
     
    import javax.comm.* ; 
     
    public class Test {
     
    public static void main (String[] args){new Test() ; }
     
    public Test() {
     
    	Provider myprovider =null ; 
    try{
    	JtapiPeer peer = JtapiPeerFactory.getJtapiPeer("");
     
    //	net.xtapi.XJtapiPeer
    //	net.sourceforge.gjtapi.raw.modem.ModemProvider
     
    	String [] tab ; 
    	tab = peer.getServices()  ; 
     
    	for (int i = 0 ; i < tab.length  ; i++){
    		System.out.println("- " + tab[i]) ; 
    	}
     
     
    	myprovider = peer.getProvider("Modem");
    	Call call = myprovider.createCall() ; 
     
    }
    catch (Exception excp) {
    System.out.println("Can't get Provider: " + excp.toString());
    System.exit(0);
    }	
     
     
     
     
    Address origaddr = null;
    Terminal origterm = null;
    try {
      origaddr = myprovider.getAddress("113");
      Terminal[] terminals = origaddr.getTerminals();
      System.out.println("-- " + terminals.length + " "  + terminals[0].getName());
      if (terminals == null) {
        System.out.println("Numéro non attribué");
        System.exit(0);
      }   
     
      origterm = terminals[0];
    } catch (Exception e) {
    	System.out.println("03 " + e.getMessage()) ;
    }
    Call mycall = null;
    try {
       mycall = myprovider.createCall();
       mycall.addObserver(new MyCallObserver());
    } catch (Exception e) {
    	System.out.println("04 " + e.getMessage()) ;
    }
    try {
      Connection c[] = mycall.connect(origterm, origaddr, "101");
    } catch (Exception e) {
    	System.out.println("06 " + e.getMessage()) ;
     }
    }//Test
    }



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    import javax.telephony.*;
    import javax.telephony.events.*;
    public class MyCallObserver implements CallObserver {
      public void callChangedEvent(CallEv[] evlist) {
     
        for (int i = 0; i < evlist.length; i++) {
     
          if (evlist[i] instanceof ConnEv) {
            String name = null;
            try {
              Connection[] connection = evlist[i].getCall().getConnections() ;
              Address addr = connection[0].getAddress();
              name = addr.getName();
            } catch (Exception e) {
            	System.out.println("05 " + e.getMessage()) ;
            }
            String msg = "Status : " + name + ": ";
            if (evlist[i].getID() == ConnAlertingEv.ID) {
              System.out.println(msg + "ALERTING");
            } else if (evlist[i].getID() == ConnInProgressEv.ID) {
                System.out.println(msg + "INPROGRESS");
              }
              else if (evlist[i].getID() == ConnConnectedEv.ID) {
                System.out.println(msg + "CONNECTED");
              }
    	       else if (evlist[i].getID() == ConnDisconnectedEv.ID) {
    	         System.out.println(msg + "DISCONNECTED");
    	       }//if
            }//if
    	   }//for
     
      }//MyCallObserver
    }//class

  8. #8
    Invité de passage
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Par défaut Re
    Bonjour,

    J’ai trouvé le même pb, si tu arrive à le résoudre me mettre en courant.

    Cordialement
    devni

Discussions similaires

  1. [Crypto] Bouncy Castle Provider
    Par mush_H dans le forum Sécurité
    Réponses: 3
    Dernier message: 09/01/2005, 11h38
  2. Provider fournit Int et non Currency, ClientDS pas content
    Par WebPac dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/11/2004, 11h27
  3. [C#] Problème de compréhension de System.Convert ET Provider
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/11/2004, 22h52
  4. Réponses: 3
    Dernier message: 13/10/2004, 00h45
  5. Microsoft OLE DB Provider ERROR
    Par MASSAKA dans le forum ASP
    Réponses: 2
    Dernier message: 05/10/2004, 16h02

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