Astitray : déclencher un appel sur un téléphone SIP avec une applet

Posté par  . Modéré par Nÿco.
Étiquettes :
0
21
mai
2008
Technologie
Quoi de plus frustrant que de taper un numéro sur son téléphone SIP alors qu'il est dans la signature d'un e-mail ou dans son carnet d'adresse ?

Lorsque son système de téléphonie est géré via un IPBX (Asterisk au hasard) et que le monde libre nous permet d'y mettre notre grain de sel, l'interconnexion poste de travail-IPBX-téléphone est possible. Cependant vous n'avez pas forcément envie que des postes de travail se connectent directement à votre IPBX avec peu ou pas de restriction. Dans ce cas là Astitray est fait pour vous !

Il s'agit d'une petite application GNOME qui, une fois lancée, se retrouve dans votre zone de notification. Celle ci permet de déclencher des appels à partir d'un carnet d'adresses ou d'un numéro de téléphone copié-collé. La communication entre cette application « poste de travail » et l'IPBX passe par un service Web XMLRPC écrit en PHP. Ce service Web permet à l'application de :
  • S'authentifier (via fichier de login/mot de passe, Ldap, Mysql, Postgresql et toutes les bases de données supportées par PHP/PDO) ;
  • Récupérer un carnet d'adresse central (Ldap, Mysql, etc.) ;
  • Déclencher des appels vers son téléphone. Le téléphone à « faire sonner » est déterminé lors de l'authentification. L'application GNOME ne peut pas intervenir dessus. Cela permet d'éviter les « blagues » comme faire sonner le téléphone de son voisin, etc. ;
  • Reformater des numéros de téléphone comme par exemple ajouter un zéro « pour sortir », transformer un +44 en 0044, supprimer les espaces, les points, les tirets, etc.
L'application « poste de travail » n'a jamais d'information sur la méthode utilisée pour communiquer avec Asterisk (ni adresse du serveur, ni login/mot de passe manager, etc.). Un système de pilotes est en place. Ils sont pour le moment au nombre de deux :
  • Pour Asterisk : utilisation du protocole Ajam ;
  • Toujours pour Asterisk : utilisation du protocole Manager standard.
L'écriture d'un pilote pour un autre IPBX nécessite simplement de trouver un moyen de déclencher des appels.

Aller plus loin

  • # déjà utilisé

    Posté par  (site web personnel) . Évalué à 2.

    J'ai déjà utilisé une telle fonctionnalité chez un grand fournisseur d'accès coloré comme un fruit...
    Directement depuis l'intranet, on cliquait sur le numéro de la personne et notre telephone l'appellait :)

    Faignantise quand tu nous tiens :) Mais pratique :p
    • [^] # Re: déjà utilisé

      Posté par  . Évalué à 5.

      Gain de temps, quand tu nous tiens....
    • [^] # Re: déjà utilisé

      Posté par  . Évalué à 2.

      Nous aussi, même que c'est moi qui ait rendu possible le clic-and-call dans l'annuaire du personnel ! Bon, j'ai juste fait un appel à un service web, mais c'est cool !
  • # Mise en relation des postes sans besoin d'un pilote spécifique

    Posté par  . Évalué à 3.

    L'écriture d'un pilote pour un autre IPBX nécessite simplement de trouver un moyen de déclencher des appels.


    L'approche que j'ai eu pour mettre en relation 2 postes SIP : tu lances une invitation d'appel de ton PC vers le premier téléphone (INVITE), une fois que celui-ci a accepté l'appel (OK), tu lui renvoies un" renvoi inconditionnel" ==> il appelle (en passant par le proxy SIP qui lui est configuré) l'autre poste téléphonique et libère la communication avec ton PC. C'est en SIP, en moins de 200 lignes de code (commentaires compris) et fonctionne avec n'importe quel PABX ... vu qu'il ne l'utilise pas pour la première étape :)
    • [^] # Re: Mise en relation des postes sans besoin d'un pilote spécifique

      Posté par  . Évalué à 3.

      Tu nous en fait profiter ?
      • [^] # Re: Mise en relation des postes sans besoin d'un pilote spécifique

        Posté par  . Évalué à 3.

        Ce que j'ai fait sur la téléphonie sur IP (SIP) se trouve ici : http://lehmann.free.fr/Contributions/SIP/

        et pour le "clic-to-dial", c'est ici :
        http://lehmann.free.fr/Contributions/SIP/pabxCTD.pl

        C'est en CLI. Je pense que pour ceux qui savent (donc pas moi) c'est facile de faire une interface graphique au-dessus.

        C'est plutôt un "proof of concept", donc qualité du code en conséquence ...
        • [^] # Re: Mise en relation des postes sans besoin d'un pilote spécifique

          Posté par  . Évalué à 3.

          Très ingénieux comme solution. Comme quoi qu'il n'y a pas besoin de mécanismes compliquées pour faire du clic to call. On voit ici toute la force de SIP qui réside dans sa simplicité.

          La seule limite que je vois à cette méthode est qu'il n'y aurait pas de sécurité. N'importe qui pourrait envoyer un appel sur le poste d'une autre personne.

          Mais rien n'empêcherait à l'application de click to call de pouvoir contrôler le numéro du poste source (variable SourceCTD) avec une authentification lors du chargement.
          • [^] # Re: Mise en relation des postes sans besoin d'un pilote spécifique

            Posté par  . Évalué à 1.

            La seule limite que je vois à cette méthode est qu'il n'y aurait pas de sécurité. N'importe qui pourrait envoyer un appel sur le poste d'une autre personne.

            Je ne l'ai pas implémenté ici, mais tu peux utiliser une authentification. En SIP, que la méthode utilisée soit INVITE (établissement de connexion), REFER (utilisé entre autre pour les transferts), REGISTER (enregistrement du poste auprès d'un registrar), ou autre, tu peux demander une authentification sous forme de challenge avant de continuer à traiter la méthode : tu peux demander une authentification à n'importe quel moment dans la "communication". Il faut que le téléphone exige l'authentification, sinon c'est un pb de sécurité ... indépendant du clic-to-dial. Cette façon de faire demande de connaître le mot de passe du téléphone que tu apelles avec ton PC.

            Ensuite le téléphone appellant passe par le PABX pour contacter le second téléphone, donc tu peux encore ici mettre une authentification. Cette fois c'est plus aisé car le PABX (proxy SIP) connait le mot de passe du premier poste (si lui ne le connait pas, qui le connait ?!) et n'acceptera de relayer l'appel que si le téléphone s'est authentifié à lui.

            Pour finir il y a TLS (SIPS). Je ne connais pas assez pour en parler, mais il doit être possible de l'inclure dans la seconde étape, peut-être plus difficillement dès la première vu que l'on se base sur des clefs et plus sur un mot de passe (que l'on pourrait demander à l'utilisateur).
    • [^] # Re: Mise en relation des postes sans besoin d'un pilote spécifique

      Posté par  . Évalué à 3.

      Je suis abonné chez un fournisseur de VoIP qui faisait ça: Quand tu choisissais de consulter ta messagerie téléphonique via l'interface web, cliquer sur le nom de ton correspondant créait un appel sur vers ton téléphone, et si tu décrochais, ton correspondant était appelé et tu étais mis en relation avec lui.

      Et puis ils ont changé leur interface, et la fonction a disparu. Je suppose que si cette interface était développée sous licence libre, ce ne serait pas arrivé.
  • # re

    Posté par  (site web personnel) . Évalué à 3.

    Je profite de l'assemblée pour demander si quelqu'un connait une applet java qui s'utiliserait dans un _navigateur_ pour passer des appels SIP :)

    En cherchant j'ai trouvé ca : https://jain-sip.dev.java.net/ mais c'est plus une API qu'une application entiere ... Et surtout les exemples de fonctions c'est pour envoyer des messages texte.

    Enfin bref, si quelqu'un connait un truc de genre je suis preneur !!!

    Merci !
    • [^] # Re: re

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      je suis preneur aussi.

      et tant que l'on est dans les questions y a-t-il un truc, par exemple dans gnome, tel que quand on a un appel sur ekiga, les autres sons se coupent...
      • [^] # Re: re

        Posté par  (site web personnel) . Évalué à 2.

        PulseAudio devrait pouvoir faire ça via un plugin qui couperait toute les sortie quand ekiga sortirait son flux audio.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.