18 juin 2011

Chat vocal en python

Toujours en Télécom, nous avons eu l'occasion de coder un skype-lite en python, en fait ce fût un exercice pédagogique qui devait nous faire manipuler les données brute d'une source et pouvoir la mettre vers autre chose, en pratique récupérer le micro et le mettre dans une socket, parallelement, on devait récupérer d'une deuxième socket les données et les mettre dans les haut parleurs.



Il fallait le faire en UDP, en python, et ça devait être fonctionnel sous Linux. J'ai écrit le code équivalent sous OSX, modulo les librairies à installer, évidement...

Dans un premier temps, je fork, ainsi je fork pour pouvoir traiter concurentiellement et le micro, et les haut parleurs. J'ouvre aussi un pipe pour pouvoir faire communiquer les deux processus concurrents.

Un des processus va s'occuper de lire le micro, et d'envoyer ce qu'il y trouve vers une socket sortante.

L'autre processus lui va lire une socket, et envoyer les données reçues vers les haut parleurs.

Chacun des deux interlocuteurs doit lancer le programme, et spécifier l'adresse ip de l'autre.

Comme ce n'est qu'un exercice scolaire, je n'ai pas poussé le vice jusqu'à faire de la compression des données avant l'envoi sur le réseau, et même si je n'ai pas relevé un quelconque lag au niveau d'une conversation, je veux tout de même faire remarquer que voilà, c'est très basique.

Le code est disponible sur internet, sur un dépot SVN public, d'ailleurs c'est le dépot que j'ai utilisé ce semestre pour toute cette unité d'enseignement de Télécom.

Le chat est disponible dans le répertoire TP4, et est le module TP4_4.py.

L'adresse vers le dépot est la suivante:
http://code.google.com/p/intro-telecom-2011/

Aucun commentaire: