Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash vient d'être divulguée, il est recommandé de mettre à jour son système (plus de détails)

*** 28 sept. nouvelle mise à jour (4.2-2ubuntu2.5 ou 4.3-7ubuntu1.4) *** pour mettre à jour, lancez dans un terminal :
sudo apt-get update ; sudo apt-get upgrade bash

#1 Le 18/06/2012, à 18:28

benoitfra

[Script] Appel Automatique Skype

Bonjour

Voici un script que je viens d'achever. Il permet d'automatiser la phase d'appel avec Skype. C'est à dire qu'il va effectuer toutes les opérations nécéssaires pour lancer un coup de fil dans Skype, il utilise xdotool et wmctrl.

Edit: testé et fonctionnel avec Skype 4

Ce script utilise le HUD de Ubuntu 12.04 pour accéder à "Démarrer une conférence vocale" de Skype, donc le script fonctionne uniquement avec Ubuntu 12.04. (on peut facilement l'adapter en utilisant l'icone de notification, afin de l'utiliser sur d'autre distro".

Ensuite, noté que les noms et les positions associées (X et Y)  sont des exemples et donc libre à chacun d'acquérir avec xdotool les bonnes positions associées aux bons contacts.

Bon passons au script maintenant, il permet de détecter si une instance de skype existe, si tel est le cas il utilise la session existante, sinon il en ouvre une autre.

Ensuite, il permet de détecter si la fenêtre d'appel à été fermée ou si vous avez mis fin à la conversation.
Dans le premier cas, Skype sera totalement fermé, dans le second cas ; c'est à dire si vous avez mis fin à l'appel en mettant la souris sur l'icone raccroché; alos skype restera ouvert. Coté amélioration, diverses possibiités apparaissent, d'abord détecter si un le correspondant à mis fin à l'appel, puis détecter si le correspondant à enclencher sa webcam.

Voici le script:

#!/bin/bash
CONTACT="$1"
FOCUS="1"

SKYPE=`ps -e | grep skype | awk '{print $4}'`

case $CONTACT in
    maison ) X=359 ; Y=280 ;;
    centre ) X=329 ;Y=325 ;;
    alexandre ) X=328; Y=298 ;;
    thomas ) X=321; Y=302 ;;
    arnaud ) X=328; Y=259 ;;
esac

echo " "
echo " ________________SKYPE APPEL AUTOMATIQUE v1______________"
echo "|                                                        |"
echo "| 1: Lancement du script ................................|"

if [ "$SKYPE" = skype ]; then
{
echo "| 2: La séssion actuelle sera utilisée ..................|"
}
else
{
echo "| 2: Lancement de SKyoe .................................|"
skype &
sleep 8;
}
fi

echo "| 3: Lancement de la conférence .........................|"

xdotool key "Alt" ;
sleep 1;
xdotool type "conference vocale" 
xdotool key Return;

#on donne le focus a skype
wmctrl -a "Démarrer une conférence";
sleep 2;

echo "| 4: Recherche du contact ...............................|"
xdotool mousemove $X $Y click 1 click 1 mousemove 685 506 click 1  ;

echo "| 5: Ouverture de la fenêtre d'appel.....................|"
echo "|________________________________________________________|"

wmctrl -a "Appel";
sleep 1;

# on place la fenetre dans le coin
CODE=`xdotool getactivewindow`
xdotool windowmove $CODE 800 400

HEURE=`date '+%H:%M:%S'`



echo " ________________________________________________________ "
echo "|                                                        |"
echo "| Début de l'appel : $HEURE                            |" 
echo "|________________________________________________________|"
echo " "

while [ "$FOCUS" = "1" ]
do


echo -ne " Appel en cours...........................................\r"



ACTIVE=`xprop -root 2> /dev/null | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}'`
NAME=`xprop -id $ACTIVE 2> /dev/null | grep WM_CLASS | sed 's/WM_CLASS(STRING) = ".*", "\([^"]*\)".*/\1/'`


    if [ "$NAME" = "Skype" ];then
    {
    FOCUS="1"
    }
    else
    {
    # si la fenetre Appel perd le focus
    FOCUS="0"
    X=`xdotool getmouselocation 2> /dev/null | awk '{print $1 }' | cut -f2 -d:`
    Y=`xdotool getmouselocation 2> /dev/null | awk '{print $2 }' | cut -f2 -d:`
    
        if test $X -gt 987; then
        {
            if test $Y -gt 564 ; then
            {
            wmctrl -a "Gnome-terminal"    
    
            HEURE=`date '+%H:%M:%S'`
    
            echo " ________________________________________________________ "
            echo "|                                                        |"
            echo "| 6: Vous venez de raccrocher............................|"
            echo "|________________________________________________________|"
            echo " ________________________________________________________ "
            echo "|                                                        |"
            echo "| Fin de l'appel : $HEURE                              |"
            echo "|________________________________________________________|"
            echo " ________________________________________________________"
            echo "|                                                        |"
            echo "| Merci d'avoir utiliser le script d'appel SKype ........|"    
            echo "|________________________________________________________|"
            echo " "
            exit 0;
            }
            fi
        }
        else
        {
        killall skype;
        wmctrl -a "Gnome-terminal"    
    
        HEURE=`date '+%H:%M:%S'`
        echo " ________________________________________________________"
        echo "|                                                        |"
        echo "| 6: La fenêtre d'appel s'est fermée.....................|"
        echo "|________________________________________________________|"
        echo " ________________________________________________________ "
        echo "|                                                        |"
        echo "| Fin de l'appel : $HEURE                              |"
        echo "|________________________________________________________|"
        echo " _________________________________________________________"
        echo "|                                                        |"
        echo "| Merci d'avoir utiliser le script d'appel SKype ........|"    
        echo "|________________________________________________________|"
        echo " "
        exit 1;
        }        
        fi
    }    
    fi


done

exit 2;

Pour utiliser le script, il faut passer en argument le nom du contact. Ainsi, on peut lancer un appel depuis différents endroits. Via le Terminal (avec des alias) ou encore via des quicklists Unity (Ubuntu-tweak permet de modifier les quicklists).


Voici une photo du rendu terminal:
Skype Appel Automatique


photo


Autre photo

Afin de vous donner quelques idées sur l'utilisation de ce script, voici quelques vidéos, la première montre que
Cette seconde vidéo illustre tout ce que je vous ai dit auparavant:

Vidéo de démonstration

Au passage sur la première vidéo vous avez un exemple de ce que cela donne avec la dernière version de Skype (ie Skype 4)

Dernière modification par benoitfra (Le 25/06/2012, à 17:16)

Hors ligne

#2 Le 01/10/2012, à 10:31

jeromespeed974

Re : [Script] Appel Automatique Skype

Bonjour super ton script cependant je ne vois pas ou mettre le nom du contact.
Donc lorsque je lance le script, il ouvre simplement skype...
Ensuite la vidéo ne fonctionne plus...
aurais-tu une idée stp? merci


Xubuntu 13.04
lxde 13.04/12.10
ubuntu 12.10

Hors ligne

#3 Le 01/10/2012, à 16:15

benoitfra

Re : [Script] Appel Automatique Skype

Salut à toi ça fait longtemps que je n'y ai plus touché
Mais dans le script ci-dessus remplace les noms par tes contacts,
Ensuite il faut ouvrir skype et trouver les X et Y qui conviennent pour sélectionner les dit contacts.
Pour les noms regarde au niveau de

case $CONTACT in
    maison ) X=359 ; Y=280 ;;
    centre ) X=329 ;Y=325 ;;
    alexandre ) X=328; Y=298 ;;
    thomas ) X=321; Y=302 ;;
    arnaud ) X=328; Y=259 ;;
esac

Pour acquérir les positions il fut utliser xdotool

Hors ligne

#4 Le 02/10/2012, à 13:27

jeromespeed974

Re : [Script] Appel Automatique Skype

Bon je crois que je n'y arrive pas de plus
j'utilise XBindKeys  donc les paramètres ne sont pas les mêmes.
sa serait tout de même pratique que skype puisse appeler un contact précis par l'intermédiaire d'un raccourcie comme une touche mémoire d'un téléphone..


Xubuntu 13.04
lxde 13.04/12.10
ubuntu 12.10

Hors ligne

Haut de page ↑