Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

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

Compte supprimé

[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)

#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


ubuntu 15.10 mate
Mint 12.04 (cinnamon, xfce) utilisée en cas de besoin

Hors ligne

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

Compte supprimé

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

#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..


ubuntu 15.10 mate
Mint 12.04 (cinnamon, xfce) utilisée en cas de besoin

Hors ligne