-Fred-
BeedBox
Benjamin
cent20
Comète
dada
DocGreen
Exca133
François Boulogne
Geekdefrance
gege2061
Jocelyn
Johan
Ked
MaKoTo
Maniack Crudelis
Olivier Prieur
OpenWebTech
PaulK
Philippe Scoffoni
psyphi
Rodolphe Eveilleau
Romain
Seza
Spyou
t0m_a
Tangi COLIN
Tanguy
Thomas
tranxene50
Vincent
Vincent-Xavier JUMEL
®om
[La rédaction de ce billet à donné lieu à la mise à mort d'une tablette de milka noisette. RIP.]

On s’accorde à marquer le début de ce que presque tout le monde appelle le peer2peer en juin 1999 avec la naissance de Napster. En plein gonflement de la bulle internet, les FAI voient déferler quantité de nouveaux abonnés qui n’ont d’autre idée que d’aller chercher de la musique sur ce nouvel outil (presque) tout beau (presque) tout neuf.
En réalité, internet dans son intégralité fonctionne sur un mode pair à pair, puisque, si vous avez tout bien lu le présent blog, vous savez que votre connexion internet n’est (en principe) pas différente de celle utilisée par les serveurs de (feu) megaupload, si ce n’est le débit disponible. Comprendre par là que vous pouvez, comme (théoriquement) tout le monde devenir émetteur de service sur le réseau avec votre petit ordinateur planté derrière sa machinbox. Vous êtes donc un pair comme un autre sur le réseau et discutez de pair à pair avec les autres.
Ce qu’on entend généralement par peer2peer, c’est le fait que deux abonnés à internet s’échangent directement des données sans passer par l’intermédiaire d’un serveur. Enfin, pas par l’intermédiaire d’un serveur qui va stocker l’information en question en tout cas.
Le fonctionnement de Napster était relativement simple, vous étiez connecté à un serveur central qui ne faisait office que de répertoire listant l’ensemble des fichiers présents chez les autres connectés et vous demandiez à ce serveur « dis moi qui a le dernier single de Céline Dion », le serveur vous disait « c’est le type là-bas » et après vous alliez discuter avec « le type là-bas » pour récupérer le fichier.
La « mise à mort » de Napster a été relativement simple, il a suffi de retirer le serveur central. Adios Amigos. RIP, juillet 2001. C’était le début de la fin.
Ont suivis énormément de logiciels plus ou moins réussis, avec des modes de fonctionnement et des structures techniques pas toujours forcément réussis, pour finalement arriver à ce que seuls 3 ou 4 réseaux différents prennent le dessus, voir s’entremêlent.
L’un de ceux là est bittorent, né juste avant la mort de Napster en 2001. Le nom désigne à la fois le protocole employé, le réseau peer2peer et le logiciel utilisé. Il est important de noter que bittorent était libre jusqu’à il y a peu mais que les versions ultérieures à la version 6 ne le seront à priori plus.
Bittorent fonctionne selon un principe un peu différent de Napster, principe qui lui assure son immunité à long terme contre toute tentative d’étranglement : il n’y a pas d’infrastructure centrale. Ou plus exactement, chacun est libre de créer une infrastructure centrale. Ces centres portent le doux nom de tracker et ont grosso modo la même fonction que l’antique serveur central de napster.
Pour télécharger un contenu sur bittorent (un DVD d’installation de Linux par exemple), vous devez obtenir le fichier .torrent correspondant. Ce fichier contient, entre autre, de quoi s’assurer que ce que vous allez télécharger est bien ce que vous voulez ainsi que les informations pour joindre le ou les trackers sur lesquels vous avez une chance de trouver un autre utilisateur qui dispose du contenu.
Les machines de TMG (vous savez, la boite privée dont on ne sait rien, missionnée par les ayants droit pour surveiller les réseaux peer2peer, qui envoie des saisines à hadopi en disant « bouuuhh la vilaine adresse IP là-bas elle a téléchargé Rihanna !! ») sont, du point de vue du réseau, des utilisateurs bittorent comme les autres, à ceci prêt qu’ils demandent les mêmes oeuvres aux trackers publics en permanence pour récolter les adresses IP des gens qui les partagent. Elles vont ensuite commencer le téléchargement chez chacun pour recueillir « une preuve » et envoyer le tout ficelé dans un joli fichier chiffré à hadopi par l’entremise d’un disque dur qui prend le train pour faire Nantes-Paris suite à une petite blaguel’été dernier impliquant un « serveur de test » et un jemenfoutisme sécuritaire terriblement banal dans les boites hypes qui font des trucs bizarres dans les internets.Ensuite, si hadopi pas contente, hadopi t’envoyer un mail disant « accès internet pas bien servir piratage attention bouuuh méchant ! ». Si toi rien faire, hadopi envoyer un courrier recommandé disant pareil. Si toi toujours rien faire, hadopi convoquer toi pour te dire pareil. Si toi toujours rien faire… on sait pas… le cas ne s’est encore jamais présenté.Bref, à peu près au même moment, de plus en plus de sites se mettent à proposer de télécharger de la vidéo comme des porcs sur de gros serveurs. Au début, c’est la fête, pas de pub, pas besoin de payer, en gros tout comme le peer2peer sauf que ça pédale à fond les ballons de la connexion et qu’il n’y a pas besoin de partager ses fichiers avec les autres pour avoir bonne conscience.
Et puis, avec le temps, il faut bien gagner de l’argent, donc ces plateformes mettent soit de la pub soit proposent des abonnements payants permettant d’éliminer des restrictions inventées pour l’occasion et imposées à ceux qui ne paient pas.
Les deux grands représentants mondiaux de ces choses sont Youtube et Megaupload. Le premier n’a jamais proposé de version payante (en tout cas pas pour l’utilisateur final) et a réussi à négocier des deals avec des divers ayants droit de l’image animée et du son, deals leur assurant une certaine tranquillité judiciaire en échange d’un partage des revenus publicitaires. Le second, il a pris du pognon dans tous les sens et rien négocié du tout, et chacun sait ce qu’il est devenu.
C’est la suite qui est intéressante. Que s’est-il passé, la semaine dernière, après que le megabidule ait disparu du réseau ? Eh ben pas grand chose en vérité. Un petit trou d’air dans certaines fibres, principalement chez l’hébergeur principal, Carpathia, mais on ne les plaindra pas trop vu qu’ils s’adonnent aussi à l’hébergement de sites officiels américains qui doivent bien leur faire gagner leur vie.
Pour le reste du réseau, certes un petit creux le temps que les gens se rendent compte que « non, megaupload est pas juste en panne », le temps de faire deux ou trois blagues sur twitter, du genre « Chuck Norris il a toujours accès à megaupload », et puis après ?
Et quand le service qu’on aime bien parce qu’on y trouve ce qu’on veut et qu’on y a ses habitudes n’est plus là, on fait quoi ? Ben soit on en cherche un autre et on a la surprise d’en trouver un mieux, soit on revient à ses amours d’antan. C’est là que, messieurs ayants droit, si je puis me permettre, vous avez fait une monumentale boulette. Faire en sorte que votre nouvel ennemi public numéro 1 disparaisse sans avoir prévu de filet pour ramasser les ouailles qui allaient immanquablement tomber de l’arbre que vous avez secoué, c’était juste débile.Oui, c’est vrai, hadopi avait probablement poussé quelques personnes à abandonner le peer2peer pour se diriger vers megaupload, pusique la France était première utilisatrice du service avec 10%, suivie de près par le Brésil avec 8 et quelques pourcents. Mais beaucoup de gens ont surtout été séduits par la simplicité et la diversité présente sur le service. Sans se poser la question de « c’est légal ou pas », « c’est mal ou pas », « je tue des artistes ? » (ou pas).
Résultat des courses après une semaine ? Une partie des anciens utilisateurs de megaupload sont encore désorientés et vont à la pêche aux infos sur les réseaux sociaux au risque de se faire avoir par des fishing très réussis, une partie s’est redispatchée sur d’autres services du même genre, et puis pas mal de gens sont revenus au peer2peer. Et ça, c’est pas qu’en France, c’est un phénomène mondial.
Exception notable d’un mec franchement pas con, Marc Dorcel, qui a bondi sur l’occasion pour proposer ses productions vidéos à prix cassés, au motif que quand même, laisser tous ces gens sans porn, c’était pas humain, tous les autres, ils ont juste savouré le plaisir d’avoir collé un mec en taule. J’espère qu’une majorité a bien compris qu’ils avaient gagné une bataille mais repoussé encore de 10 ans l’issue de la guerre ?
Bref, que nous réserve l’avenir ?
Eh ben facile, tout comme la photocopie est encore en train de tuer le livre tel un chien rongeant son os alors qu’il n’a plus de dents, on peut considérer que « la création » ne va jamais finir de mourir sous les assauts de cet enfoiré de piratage et de ce gros vilain internet.
Par contre, on peut être certain que « la chaîne de la création » va s’en prendre plein les dents. Parce que oui, le propre d’internet, c’est de réduire le nombre et la valeur ajoutée des intermédiaires. Oh on ne s’en débarrasse jamais totalement, mais les cartes changent de main.
Et puis on peut avoir surtout une grande confiance dans cette chose vivante qu’est internet. Parce que sauf à l’éteindre en bombardant les datacenters qui en abritent une bonne part, ce que, si j’étais parmi les oligarques qui sont à la tête de nos pays je ferais tout de suite et sans la moindre hésitation, eh bien internet continuera de croître et de n’en faire qu’à sa tête.
Et il semble que dans la tête d’internet, il y ait majoritairement l’égalité, le partage, la copie, la culture et une certaine idée de la gouvernance du monde qui, quand elle apparaîtra devant leur nez, va déplaire à beaucoup.
Tu parlais de peer2peer, non ?
Oui, c’est vrai, pardon. Toute cette introduction, c’était pour vous parler de l’avenir du peer2peer. Internet n’en fait qu’à sa tête, et si suffisamment de pays se mettent, comme la France, à tirer à boulets rouges contre le partage non marchand, il va s’adapter. Non, attend, on me dit qu’il est déjà en train…Comment ? En supprimant purement et simplement le point d’entrée des lois en question qui reposent toutes sur l’identification de la connexion internet ayant servi à partager du contenu. Et quoi de mieux pour ça que de ne fonctionner qu’avec des pairs qu’on connaît ? Je connecte mon ordinateur à celui de mon collègue de bureau qui lui même est connecté à celui de son frère, qui lui même…
Alors évidemment, ce sera plus lent, mais pas au point de devoir attendre 1 an ou 2 le prochain épisode de ma série préférée. Ça fout la rage de s’être fait chier 3 ans à monter un truc qui va plus servir à rien après une paire de tweets d’un développeur un peu allumé hein ?
L’étape suivante, c’est d’espionner les communications de tout le monde pour trouver les gros vilains pirates et de s’apercevoir que « oh ben zut alors, ils ont tout chiffré !! » ?
Ou bien l’étape suivante c’est de se débrouiller pour que l’utilisateur lambda trouve son bonheur sur les internets « légaux » ?
Je suis un bisounours … Mais j’ai quand même peur qu’ils continuent à confondre un moment culture et divertissement, valeur et argent, intérêt général et lobbys …
Je vous ai déjà parlé de Pombo, la solution open-source qui permet de rapatrier des informations sur son poste dans l’infortuné cas où vous vous faites dérober votre ordinateur. Après pas mal d’effort et de participation, la version 0.0.9, avec pas mal de nouveautés, vient de sortir.
La version à jour se trouve ici : https://sourceforge.net/

» Mon ordinateur a été voléééé! «
La mise à jour est assez importante puisqu’elle apporte en termes de nouveautés (info du changelog) :
Ce que je tiens à souligner ici, c’est l’effort fait pour simplifier l’installation, la prise en main et la maintenance de Pombo. Un petit sudo sh install.sh pour l’installer sous Linux, un *.exe sous Windows, rien à redire, l’installation de la partie client est à la portée de tous (notez qu’il faudra tout de même générer ses clés pour chiffrer ses rapports). Pour la partie serveur, la manipulation décrite ici est toujours valide.
Pour rappel, voici un exemple de rapport par Pombo :
![]() |
| Photo par webcam |
Attention : Pensez à noter le numéro de série de l’ordinateur, sans ce dernier – et sous réserve de posséder les documents générés par Pombo – la police risquerait de ne pas pouvoir faire grand chose.
Un grand bravo à BoboTiG et aux divers codeurs qui l’ont aidé à créer cette nouvelle version (et encore bravo à Sebsauvage initiateur originel de Pombo).
J’utilise beaucoup le service de sauvegarde dans le cloud nommé DropBox.
Selon Wikipedia:
Ce service d’informatique en nuage est accessible via n’importe quel navigateur Web, mais aussi en utilisant un client multi-système d’exploitation : sous Linux pour x86 et x86_64, Macintosh, MS Windows, iOS ainsi que sur Android, sur BlackBerry et sur webOS. Ce client permet d’utiliser Dropbox de manière transparente, les fichiers localisés sur le répertoire sauvegardé du disque dur de l’ordinateur étant copiés sur le serveur Dropbox après chaque enregistrement.
Par ailleurs, DropBox :
La version gratuite permet de stocker jusqu’à 2 Go de données, extensibles à 10 Go grâce au parrainage (2 Go + 8 Go à raison de 250 Mo par parrainage) ou même 16 Go, si l’on justifie le fait que l’on est étudiant grâce à une adresse en .edu (le parrainage double les 250 Mo pour le parrain, donc 500 Mo par parrainage), le filleul reçoit lui aussi 250 Mo, et des versions payantes permettent de stocker 50 ou 100 Go2.
Pour stocker les fichiers, Dropbox utilise le service d’hébergement S3 d’Amazon.
Je l’utilise principalement pour partager des fichiers en public notamment dans des forums de discussion ou plus simplement pour les images de mes articles.
Les raisons qui me poussent à changer:
J’ai donc décidé de mettre en place la solution Owncloud sur une de mes macine virtuelles Web.
De plus la dernière version de owncloud comporte pas mal de nouveautés:
Pour commencer j’ai installer les différents paquets requis à l’installation de Owncloud.
sudo aptitude install apache2 php5-curl php5-sqlite libapache2-mod-php5 git git-core
On se place ensuite à la racine de votre vhosts: et on telecharge owncloud avec git;
cd /var/www/ git clone git://gitorious.org/owncloud/owncloud.git Cloning into owncloud... remote: Counting objects: 14281, done. remote: Compressing objects: 100% (5899/5899), done. remote: Total 14281 (delta 9221), reused 12004 (delta 7695) Receiving objects: 100% (14281/14281), 5.07 MiB | 155 KiB/s, done. Resolving deltas: 100% (9221/9221), done.
Cela va crée le répertoire owncloud et vous pourrez l’installation en graphique directement sur http://votreserveur. Pour ma part j’ai fait un enregistrement DNS : cloud.info16.fr
Voilà a quoi ressemble l’interface web de owncloud:
Je m’intéresse surtout à l’option Fichier qui est le plus important.
Par contre une chose me gène énormément:
Quand je poste des fichiers sur owncloud (en web ou webdav) et que je veux les partager en public cela n’est pas pratique, car je dois allez sur l’interface web pour connaitre le lien publique…
De plus les lien publics sous owncloud ne sont pas facilement déductible puisqu’ils utilisent une suite de nombre aléatoires…
C’est mieux pour la sécurité mais moins pratique à l’usage:
Pour résoudre ce problème j’ai utilisé simplement un simple lien symbolique à la racine du site web qui pointe vers mon dossier public de owncloud:
mkdir /var/www/publicshare chown -R www-run:www-run /var/www/publicshare ln -s /var/www/owncloud/data/bartounet/files/public/ publicshare # ls -a /var/www/publicshare . 2011-10-21_104403.png 2011-10-21_104600.png owncloudcreatlectres.PNG owncloudweb1.png SC20111020-225238.jpeg speedof.png .. 2011-10-21_104424.png 2011-10-21_104641.png owncloudlect.PNG owncloudweb2.png SC20111020-225254.jpeg webdavlinux1.png 1317833759650.jpg 2011-10-21_104448.png adamburo.jpeg owncloud-logo.png owncloudweb3.png SC20111020-225304.jpeg webdavlinux2.png 18eme-mois-036_595.jpg 2011-10-21_104511.png Dropboxlogo.png owncloudpubliclink.png owncloudwebdavfiles.PNG SC20111020-225328.jpeg
Notre lien publicshare contient bien mes fichiers publics.
Pour encore faciliter la chose je crée un enregistrement DNS: share.info16.fr
Et je crée un vhost sous apache qui va directement pointer sur le dossier public.
<VirtualHost 127.0.0.1:8080> DocumentRoot /var/www/publicshare ServerName share.info16.fr CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log </VirtualHost>
Ne pas oublier d’activer les options +Indexes et followsymlinks sur ce vhosts !!!
On obtient donc un share web très simple avec les noms des fichiers beaucoup plus simple pour coller les liens publics sur le web:
Dejà à partir de là notre cloud est installé et on peut downloader, uploader, partager des fichiers directement depuis l’interface web. C’est sympa mais mon but est de pouvoir le faire directement depuis mes diférents systèmes… ( Gnu/Linux, Windows XP/7, Android …)
C’est la qu’intervient webdav.
Montage de son cloud avec Webdav sur les différents OS:
Sous Gnu/Linux Ubuntu:
Comme d’habitude, sous Linux, le montage de différents système de fichiers est un jeu d’enfant, il respecte très bien les standards.
apt-get install davfs2 mkdir /home/antony/shareinfo16 mount -t davfs http://cloud.info16.fr/files/webdav.php /home/antony/shareinfo16
Après avoir rentré vos identifiants voilà votre montage effectué
( bien sur vous pouvez passer par le fstab pour monter ça en automatique)
A partir de là on peut comme en local copier et récupérer les fichiers que l’on veut.
Sous Windows XP c’est possible mais un peu plus embêtant…
Créer un lecteur réseau
Sous Windows 7 il faut modifier une clé de registre lié à l’authentification webdav
La doc de owncloud est claire à ce sujet.
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\WebClient\\Parameters\\BasicAuthLevel from 1 to 2. Then restart Webclient service (Mouse right click -> Restart)Après l’avantage sous Windows 7 c’est que le partage webdav est monté comme un lecteur réseau:
J’ai donc la solution pour les OS que j’utilise au quotidien.
Il manque MacOSX mais je l’utilise que très rarement, et le montage webdav est aussi en standard comme sous Gnu/Linux. Cela ne devrait donc pas poser de problème.
Pour aller plus loin j’ai voulu aussi tester sous Android. Après plusieurs test le client owncloud android n’est pas mure, et je n’ai pas réussi à le faire fonctionner.
Le plus pratique que j’ai trouvé est: WebdavDroid Lite, il permet le download/upload simplement et même la synchro pour ceux que cela intéresse.
Voilà pour ma part comment j’ai remplacé Dropbox par une alternative OpenSource, stockée sur mes propres serveurs. Il reste pas mal de chose perfectibles, mais cela me satisfait. Reste à mettre en place le ssl.
Cet article a été publié par bartounet sur le blog info16. Si vous désirez comme bartounet publier en guest-blogging sur Geek de France, vous pouvez me contacter.
La plupart des téléphones récents possèdent leur propre système de synchronisation pour garder sur son ordinateur une copie de ses contacts, fichiers, messages, tâches, mémos, etc.
Malheureusement ceux-ci utilisent souvent des applications propriétaires avec tous les défauts qu'on leur connaît (logiciel différents pour chaque fabricant, voire même pour chaque modèle de téléphone, nouvelles applications plutôt que nouvelles versions, ou encore manque de rétro-compatibilité).
D'autres smartphones s'intégreront parfaitement à un compte GMail pour y synchroniser automatiquement tous ces éléments sur les serveurs de Google. Malheureusement, les précédents inconvénients disparaissent pour laisser place à de nouveaux : aucune idée sur le traitement fait aux données personnelles, publicité ciblée (essayez de placer "Sangoku" dans un e-mail, vous verrez), aucune transparence sur le protocole utilisé, etc.
Plusieurs solution Libres et/ou Open-source sont alors possibles pour palier à tout ça, la plus répandue étant SyncML (Synchronization Markup Language), implémentée en Java par Funambol Server. Comme beaucoup d'entreprises contribuant au logiciel libre, la Funambol Inc. propose une version libre de son logiciel (la Community Edition) et une version commerciale (avec support et développements spécifiques).
Funambol Server est disponible sous Linux et Windows sous forme d'un bundle (Tomcat Server, Base de données Hypersonic, et le reste programmé en JAVA) mais chaque élément peut être installé séparément à la main.
Sous Linux, le bundle contient un installeur en lignes de commandes quasiment automatique, ce qui rend l'installation très simple et rapidement fonctionnelle. Cette installation est suffisamment détaillée sur cette page http://doc.ubuntu-fr.org/funambol de la Doc Ubuntu. Il existe également de nombreux connecteurs permettant de synchroniser les données avec de nombreux périphériques et autres serveurs.
Plusieurs scénarios sont imaginables à partir de ce concept. Tous les téléphones récents équipés de Wifi pourront être configurés pour se synchroniser automatiquement avec le serveur Funambol. Pour les personnes utilisant 2 téléphones (un pour le travail, l'autre privé), le protocole SyncML pourra être utilisé pour les synchroniser via le serveur Funambol, ou même tout simplement pour faire une sauvegarde de tous vos contacts avant de changer de téléphone (ou en cas de panne) !
Un serveur web étant utilisé, il est même possible que n'importe quel téléphone avec un forfait data (par exemple) puisse se synchroniser même sans un point d'accès Wifi.
La suite de cet article détaille l'installation du serveur Funambol version 10.0.3 x86 sous Ubuntu 10.04 LTS (cette même procédure fonctionne également avec la version 9.0.0 de Funambol).
Pour l'installation, il faudra télécharger le package approprié ici : http://sourceforge.net/projects/funambol/files/bundle/v10/
(Ne pas hésiter à vérifier s'il existe une version plus récente ici : http://download.forge.objectweb.org/sync4j/ ou là : https://www.forge.funambol.org/download/)
Lancer l'installation simplement avec un sudo sh ./emplacement_du_fichier sous Ububntu.
Sous Ubuntu ou Debian, un fichier /etc/init.d/funambol pourra être créé avec le contenu suivant :
#!/bin/sh
cd '/opt/Funambol/bin/'
/bin/su -s /bin/bash -l root /opt/Funambol/bin/funambol $1
cd '/etc/init.d'
Suivi d'un sudo chmod +x /etc/init.d/funambol pour le rendre exécutable.
Le serveur Funambol pourra alors être lancé manuellement avec la commande sudo /etc/init.d/funambol start. Pour pouvoir le lancer automatiquement au démarrage du serveur, il faudra utiliser la commande update-rc.d funambol defaults qui va créer automatiquement des liens dans les différents dossiers /etc/rc*.d/ .
Pour vérifier que le serveur s'est bien lancé au démarrage : ps -aux | grep funambol devrait renvoyer 3 processus ou bien visiter la page http://serveur:8080/funambol/ds/ avec un navigateur classique.
La gestion des utilisateurs se fait via l'interface graphique d'administration à installer à partir de cette adresse pour Windows : http://sourceforge.net/projects/funambol/files/admin-tool/v10/funambol-admin-10.0.0.exe/download ; ou via la commande sudo /opt/Funambol/admin/bin/funamboladmin sous Linux.
La première connexion se fera avec l'utilisateur admin, et le mot de passe sa. Il est bien sûr possible de créer un autre administrateur avec un autre login pour supprimer ce compte d'origine. Plusieurs utilisateurs peuvent utiliser le même serveur Funambol, aucune limitation quant au nombre de périphériques utilisés par un même utilisateur. Il n'est pas nécessaire de créer manuellement la liste des utilisateurs et périphériques, ils s'ajoutent automatiquement lors de la première synchronisation.
Plus d'informations sur le fonctionnement de l'interface graphique dans le manuel Funambol disponible à cette adresse : http://download.forge.objectweb.org/sync4j/Funambol-installation-and-administration-guide-v9.0.pdf (à partir du chapitre 4 - page 12).
Sur un téléphone mobile possédant ou non une connexion wifi, la configuration se fera avec les paramètres suivants :
Serveur de synchronisation : http://serveur:8080/funambol/ds/ ;
Login : Nom de l'utilisateur ou de l'administrateur précédemment créé ;
Mot de passe : Son mot de passe.

Note: Le port 8080 utilisé par défaut peut être changé dans le fichier de configuration de Tomcat : /opt/Funambol/tools/tomcat/conf/server.xml ou peut être facilmement routé par votre box Internet.
Les catégories à synchroniser sont définies de cette manière (cette configuration fonctionne, mais devra peut-être être modifiée en fonction du téléphone :
- card pour les contacts ;
- cal pour le calendrier ;
- task pour les tâches ;
- note pour les mémos.
Sur les smartphones, plusieurs applications semblent être capables d'utiliser ce protocole de synchronisation sous Android (Funambol sync : https://market.android.com/details?id=com.funambol.androidsync - à partir de la version 2.0) mais aussi sous Windows mobile et Symbian.
Attention, après la première synchronisation, le changement d'adresse du serveur semble poser problème. La même adresse http://serveur:8080/funambol/ds/ devra être utilisée par tous les périphériques à synchroniser (sinon des erreurs de certificat ou de serveur introuvable apparaîtront sur les périphériques, et des erreurs d'authentification dans les logs du serveur). Si l'adresse du serveur doit changer, le plus simple est de supprimer l'utilisateur sur le serveur, et utiliser le mode "Récupération depuis le téléphone" lors de la première synchronisation.
En cas de doute sur la synchronisation avec le téléphone, les logs côté serveur se situent principalement ici : /opt/Funambol/logs/ds-server/ds-server.log .
Le plus simple est d'utiliser la commande tail -f /opt/Funambol/logs/ds-server/ds-server.log et lancer la synchronisation sur le téléphone. Ainsi il est possible de vérifier où se situe le problème (ne pas hésiter non plus à activer progressivement chaque catégorie de la synchronisation pour changer les paramètres si besoin).
De la même manière que pour les téléphones, il existe sous Windows et Linux plusieurs solutions, en particulier le plugin Funambol pour Thunderbird ( page du projet : http://sourceforge.net/projects/sync4jmozilla/, ou juste le plugin, ici sur Sychlora : funambol-mozilla-sync-client-linux-1_0b4.xpi ) qui permet pour l'instant la synchronisation d'un répertoire de contacts en SyncML, et qui permettra plus tard de synchroniser également les rendez-vous et les tâches.
Il est donc possible d'importer les contacts de n'importe quel carnet d'adresse ou tableur compatible avec l'outil d'import de Thunderbird pour les synchroniser avec votre appareil mobile.
Après avoir installé ce plugin dans Thunderbird, créer un nouveau carnet d'adresses. Il sera utilisé pour cette synchronisation avec les périphériques mobiles.
La configuration du plugin Funambol se fait dans le menu Outils > Funambol Sync (à partir de l'écran principal de Thunderbird, ce lien n'existant pas sur l'écran des carnets d'adresses...).

Ouvrir le menu Outils > Options de la fenêtre du plugin Funambol, et y configurer les mêmes informations que sur l'appareil synchronisé.

Dans le second onglet, il faudra choisir le carnet d'adresse qui vient d'être créé afin de ne pas mélanger les contacts mails avec ceux du téléphone, ici la base de données utilisée pour les contacts est card.

Pour importer tous les contacts du serveur vers Thunderbird, utiliser le menu Outils > Recover, et choisir la seconde option. Une fois validé, l'import des contacts se fera automatiquement.

Si tout se passe bien jusque là, il est désormais possible de créer ou modifier un contact dans Thunderbird et après avoir tout synchronisé à nouveau, ce contact sera créé ou modifié sur le téléphone. L'import d'un tableau de contact ou le copier-coller sont également possibles directement dans Thunderbird, ce qui sera plus pratique et plus rapide que l'utilisation d'un clavier à 10 touches !
Sources :
http://en.wikipedia.org/wiki/SyncML
http://doc.ubuntu-fr.org/funambol
http://ubuntuforums.org/showthread.php?t=1488582
J’ai enfin décidé d’héberger mon propre serveur Jabber, pour plusieurs raisons :
rom suivi de @rom1v.com).Et c’est simple !
Tout d’abord, installer le paquet prosody :
apt-get install prosody
Puis ajouter à la fin du fichier /etc/prosody/prosody.cfg.lua :
Host "nom.de.domaine"
Pour moi :
Host "rom1v.com"
Créer un utilisateur en ligne de commandes et choisir un mot de passe :
prosodyctl adduser user@nom.de.domaine
Un certificat TLS/SSL est créé par défaut, mais les champs sont renseignés avec des valeurs non pertinentes (localhost au lieu de nom.de.domaine par exemple). Il est donc préférable d’en générer un nouveau.
Dans le répertoire /etc/prosody/certs, exécuter :
openssl req -new -x509 -nodes -out nom.de.domaine.cert -keyout nom.de.domaine.key
Renseigner les champs demandés (« . » pour laisser un champ vide).
Remplacer le certificat dans le fichier de configuration :
ssl = {
key = "/etc/prosody/certs/nom.de.domaine.key";
certificate = "/etc/prosody/certs/nom.de.domaine.cert";
}
Comme c’est un certificat auto-signé, les clients Jabber ne lui feront pas confiance : ils demanderont une confirmation, en présentant son empreinte. Il faudra alors vérifier que le certificat présenté est bien le bon, c’est-à-dire que l’empreinte est la même.
Pour la connaître :
openssl x509 -fingerprint -noout -in nom.de.domaine.cert
Par exemple :
$ openssl x509 -fingerprint -noout -in rom1v.com.cert SHA1 Fingerprint=C3:6D:9B:65:06:55:C4:84:B4:A5:8D:4B:12:68:2F:08:71:7E:AC:DD
Les ports TCP 5222 et 5269 doivent être ouverts.
Il ne reste plus qu’à démarrer le service.
service prosody start
Il est maintenant possible de se connecter en utilisant le nom d’utilisateur et le mot de passe créés :
Les données du serveur sont stockées dans /var/lib/prosody. Il est donc important de ne pas oublier ce répertoire dans le processus de sauvegarde.
Merci à Cyrille Borne et nicolargo.
Récemment résilié de chez Orange, j’ai pris une connexion chez OVH pour une offre neutre avec un vrai service commercial et technique.
L’offre que j’ai choisie est l’offre no!Box qui inclut uniquement une connexion internet jusqu’à 28 Méga. Etant situé dans la région lilloise, j’ai été raccordé directement à l’infrastructure d’OVH.
Il s’agit donc d’une connexion en IPoE et non PPPoE ou PPPoA comme la plupart des offres ADSL en France. Alors entre le PPPoX et le IPoX, tous les deux ont des avantages et des inconvénients. Le PPPoX a pour avantage, pour les FAI, de connaître à tout moment l’état exact de la connexion de l’abonné et facilite énormément les cas de déménagements pour la gestion des clients. Par contre le PPPoX, la QoS (Quality Of Service) n’est jamais vraiment au rendez-vous et le coût de la PPP est un paramètre supplémentaire à prendre en compte. De plus par rapport à l’IPoX, le PPPoX possède une fragmentation lié au MTU de 1492 octets. Donc cela reste un choix pour le FAI.
J’ai pu trouver sur le forum d’OVH des gens qui, comme moi, avait un peu de mal avec leur routeur Netgear et heureusement quelques personnes ont su trouver la solution. J’ai du donc configurer mon modem routeur qui est un Netgear DGN3500 de la manière suivante. Notez que la manip’ marche également sur un DG834G qui possède un firmware sensiblement équivalent.
Premièrement, dans votre première facture, repérez le nom du domaine situé dans le tableau « Abonnement » dans la ligne stipulant l’abonnement choisit !
Dans Paramètre ADSL
Dans Paramètre de base
Une fois que vous aurez tout rempli allez voir dans la partie « Etat du routeur », si tout est rempli (je n’énumère pas tout ….), tout devrait être OK et votre connexion internet établie.
Alors oui, c’est un peu tricky mais pas impossible. Je pense que la documentation d’OVH mériterait d’être complétée, cela éviterait à beaucoup de gens que l’on croise sur les forum d’OVH de se tirer les cheveux. Mais encore une fois, grâce à une communauté, rien est impossible
http://forum.ovh.com/
http://lafibre.info/techno-du-web/pppoa-pppoe-ipoa-ipoe/
Nous devrions tous tendre vers la décentralisation d’Internet. Ne plus avoir besoin de passer par les serveurs centraux de Gmail ou Facebook pour communiquer avec ses amis. Certains le disent, d’autres le font (je fais plutôt parti de la première catégorie pour le moment). FreedomBox Fondation a développée un projet intéressant (voir la vidéo ci-dessous).
Des ordinateurs se branchant directement sur les prises de courant existent déjà. Mais rares sont ceux qui bénéficient par défaut d’un système pré-installé et pré-configuré afin d’assurer la sécurité et l’indépendance de tous.
De plus en plus d’appareils ont la capacité d’être connectés sur le réseau local de la maison notamment ceux qui ont un rôle à jouer autour
du multimédia. C’est pourquoi, force est de constater que beaucoup de produits arborent sur leur étiquette « DLNA compliant » !
Le papa noël ayant déposé au pied du sapin une jolie chaine compatible DLNA, il est naturel que je vous fasse par de cette expérience.
miniDLNA est un serveur DLNA libre développé par un employé de NETGEAR. miniDLNA est déployé sur leurs produits de la gamme ReadyNAS.
DLNA (Digital Living Network Alliance) est une alliance de constructeurs d’appareils électroniques crée par Sony en 2003 (à l’image de l’Open Handset Aliance pour la téléphonie mobile autour d’Android) dont le but et de maintenir un standard d’interopérabilité entre appareils (Oui Oui on peut commander son café depuis son lit avec son mobile :p). Ce standard d’interopérabilité est défini pour des actions classiques de lecture, contrôle, partage de contenu.
Vous vous en douterez, Apple ne fait, pas partie de l’alliance et possède sont propre protocole DAAP, natif dans iTunes.
Firefly Media Server est un serveur daap libre dont l’installation est détaillée ici.
DLNA s’appuit sur le prototole UPnP (Universal Plug and Play) pour la découverte des périphérques, gestion des contenus et contrôle sur le reseau.
Il existe plusieurs type d’appareils compatible DLNA, certains pouvant en combiner plusieurs :
miniDLNA est présent dans les dépôts Debian ce qui donne une installation très simplifiée :
apt-get install minidlna
Les options du fichiers de configuration à paramétrer sont peu nombreuses :
# port for HTTP (descriptions, SOAP, media transfer) traffic port=8200 # network interfaces to serve, comma delimited network_interface=eth0 # Media's locations media_dir=A,/backup/music media_dir=V,/backup/videos mdia_dir=P,/backup/pictures
Il n’y a pas plus à configurer si ce n’est le nom d’affichage du server DLNA sur votre reseau :
friendly_name=My awesome DLNA Server
Lancer le serveur miniDLNA:
/etc/init.d/minidlna start
Le script de lancement c’est pas très bavard. Vérifiez si minidlna est en écoute sur le port 8200 :
netstat -nlp | grep "8200"
J’utilise miniDLNA principalement pour le partage de ma bibliothème musicale avec une chaine hifi Sony CMT-MX700NI.
MiniDLNA répond parfaitement à mes besoins, car il indexe de manière quasi transparente mes 7000 titres et est parfaitement accessible depuis la chaine.
Il est ensuite possible de parcourir l’arborescence de plusieurs manières :
Depuis déjà 6 mois, comme cela s'était déjà produit, mon serveur plante de temps à autre…
Le démon Apache2 devient fou et déclenche les foudres d'anon, le killer de démon, qui vise à libérer de l'espace mémoire Ram+Swap, mais la Machine est à ce point submergée que rien n'y fait, il est impossible de prendre la main et le disque dur gratte comme un fou, jusqu'à ce qu'on veuille bien lui administrer les magic syst key (SEIUB)
En fait mon serveur s'est retrouvé non pas victime de son succès, mais de la coïncidence de plusieurs événements simultanés :
. scan par les robots de divers moteurs de recherche
+ scan de divers planet
+ consultation de visiteurs de mes deux sites
+ mon propre usage de TinyTinyRSS
= Autant de démon Apache2 qui se lancent que de requêtes html, php5, etc.
Bref, le temps de cerner le coupable et comprendre le problème, j'ai enfin décidé de tenter quelque chose… Apache2 en mode multi-thread
Il m'avait bien semblé voir passer un billet au titre intéressant, et en fouillant les tréfonds de ce cher TinyTinyRSS j'ai pu le retrouver et le mettre en œuvre !
Très clair, on y explique ce qui semble être la solution à mon problème, et la méthode fonctionne très bien !
Maintenant il y a très peu de lourd démon Apache2 et beaucoup de léger démon php.
On peut aussi vérifier la config en créant la fameuse page phpinfo.
Mais ayant eu quelques soucis avec ma config, je vais préciser certaines choses :
ERROR : Wrong 'suhosin.session.encrypt' option value
Et effectivement, comme pour /etc/php5/cgi/php.ini, la config cgi de suhosin est elle aussi placée ailleurs.
Il faudra alors éditer /etc/php5/cgi/conf.d/suhosin.ini
et dé-commenter puis mettre à off la ligne suhosin.session.encrypt
suhosin.session.encrypt = off
Et ceci alors même que la configuration dans le nouveau fichier /etc/php5/cgi/php.ini était correcte, c'est à dire :
file_uploads= On
ou Off permet d'autoriser ou non l'envoi de fichiers.
upload_max_filesize = 2M
permet de définir la taille maximale autorisée pour le fichier. Si cette limite est dépassée, le serveur enverra un code d'erreur.
post_max_size = 2M
indique la taille maximale des données envoyées par un formulaire. Cette directive prime sur upload_max_filesize, il faut donc s'assurer d'avoir post_max_size supérieure à upload_max_filesize.
En fait, c'est un autre fichier de config qui fixait la limite de 130 kio !
C'est donc /etc/apache2/mods-available/fcgid.conf qu'il faut amender d'une ligne MaxRequestLen
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi FcgidConnectTimeout 20 MaxRequestLen 1073741824 </IfModule>
Ici j'ai donc mis 1 Gio, valeur configurée par défaut lorsqu'on utilise Apache2 en mode « pas multi-thread»
Ce qui au passage, explique enfin pourquoi avec Owncloud je ne pouvais pas uploader plus d'1 Gio par fichier ^^
Sources :
- http://www.commentcamarche.net/faq/889-php-upload-de-fichiers#configuration-de-php-pour-permettre-l-upload
- http://blog.philippklaus.de/2011/04/fix-mod_fcgid-http-request-length-xyz-so-far-exceeds-maxrequestlen-131072/
- http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen
Je travaille depuis un moment sur Zimbra. J’ai remplacé il y à peu mon serveur d’entreprise Lotus Domino par Zimbra NE. Dans sa version NE, Zimbra possède un outil de synchro mobile intégré et très performant donc pas de problème. Par contre j’utilise aussi la version Zimbra OSE pour mes potes et des associations. C’est pour cela qu’il était pour moi interessant de fournir à mes utilisateurs une solution de Push-mail performante et gratuite.
C’est pour cela que je me suis penché sur Z-push. Z-Push est une solution Open-Source de Zarafa qui permet de faire du push mail depuis des terminaux mobiles. Mais aussi la synchro des contacts et des calendriers !
Z-Push utilise le protocole Microsoft ActiveSync qui est supporté sur un grand nombre de terminaux mobiles (Iphone, Android, Windows Mobile, Maemo, Symbian…).
J’ai effectué mon install sur un DomU Xen routed à base d’un template Ubuntu 10.04 64 bits paravirtualisé
Installation des prérequis:
Installation de apache2, php5 et php-curl openssl
Activation de ssl dans apache a2enmod ssl
Installation de Z-push
Téléchargement de Z-push sur http://prdownload.berlios.de/z-push/z-push-1.5.1.tar.gz
Téléchargement du backend Zimbra sur http://sourceforge.net/projects/zimbrabackend/files/Release48/zimbra48.tgz/download
J’ai placé z-push à la racine de mon espace web /var/www
#tar xvfz z-push-1.5.1.tar.gz -C /var/www
J’ai extrait le backend Zimbra zimbra.php dans /var/www/z-push/backend/
#tar xvfz zimbra48.tgz -C /var/www/z-push/backend
Modifications des droits
#chown -R www-data:www-data /var/www/z-push #chmod 755 /var/www/z-push/state #chown www-data:www-data /var/www/z-push/state
configuration de Z-push et Apache:
Mon serveur est un DomU Xen dédié nommé push.info16.fr. Il sera accessible en http et https. Pensez à activer l’écoute sur les ports 80 et 443 dans /etc/apache/ports.conf
<VirtualHost *:80> ServerName push.info16.fr DocumentRoot /var/www/z-push/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/z-push/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/ssl_access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php php_flag short_open_tag on php_flag magic_quotes_runtime off php_flag register_globals off php_flag magic_quotes_gpc off </VirtualHost>
<VirtualHost *:443> ServerName push.info16.fr DocumentRoot /var/www/z-push/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/z-push/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/ssl_access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php php_flag short_open_tag on php_flag magic_quotes_runtime off php_flag register_globals off php_flag magic_quotes_gpc off SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/apache2/ssl/push.crt SSLCertificateKeyFile /etc/apache2/ssl/push.key SSLProxyCACertificateFile /etc/apache2/ssl/push.crt <FilesMatch "\\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> BrowserMatch ".*MSIE.*" \\ nokeepalive ssl-unclean-shutdown \\ downgrade-1.0 force-response-1.0 </VirtualHost>
Creation des certificats 2048 bits
#cd /etc/apache2/ssl #openssl genrsa -out push.key 2048
#openssl req -new -key push.key -out push.csr
#openssl x509 -req -days 365 -in push.csr -signkey push.key -out push.crt
Pensez bien sur à activer les vhosts:
#a2ensite default; a2ensite ssl
Modification de /var/www/z-push/config.php
<?php
/***********************************************
* File : config.php
* Project : Z-Push
* Descr : Main configuration file
*
* Created : 01.10.2007
*
* Copyright 2007 - 2010 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation with the following additional
* term according to sec. 7:
*
* According to sec. 7 of the GNU Affero General Public License, version 3,
* the terms of the AGPL are supplemented with the following terms:
*
* "Zarafa" is a registered trademark of Zarafa B.V.
* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH
* The licensing of the Program under the AGPL does not imply a trademark license.
* Therefore any rights, title and interest in our trademarks remain entirely with us.
*
* However, if you propagate an unmodified version of the Program you are
* allowed to use the term "Z-Push" to indicate that you distribute the Program.
* Furthermore you may use our trademarks where it is necessary to indicate
* the intended purpose of a product or service provided you use it in accordance
* with honest practices in industrial or commercial matters.
* If you want to propagate modified versions of the Program under the name "Z-Push",
* you may only do so if you have a written permission by Zarafa Deutschland GmbH
* (to acquire a permission please contact Zarafa at trademark@zarafa.com).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Consult LICENSE file for details
************************************************/
// Defines the default time zone
if (function_exists("date_default_timezone_set")){
date_default_timezone_set("Europe/Paris");
}
// Defines the base path on the server, terminated by a slash
define('BASE_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . "/");
// Define the include paths
ini_set('include_path',
BASE_PATH. "include/" . PATH_SEPARATOR .
BASE_PATH. PATH_SEPARATOR .
ini_get('include_path') . PATH_SEPARATOR .
"/usr/share/php/" . PATH_SEPARATOR .
"/usr/share/php5/" . PATH_SEPARATOR .
"/usr/share/pear/");
define('STATE_DIR', BASE_PATH.'/state');
// Try to set unlimited timeout
define('SCRIPT_TIMEOUT', 0);
//Max size of attachments to display inline. Default is 1MB
define('MAX_EMBEDDED_SIZE', 1048576);
// Device Provisioning
define('PROVISIONING', false);
// This option allows the 'loose enforcement' of the provisioning policies for older
// devices which don't support provisioning (like WM 5 and HTC Android Mail) - dw2412 contribution
// false (default) - Enforce provisioning for all devices
// true - allow older devices, but enforce policies on devices which support it
define('LOOSE_PROVISIONING', false);
// Default conflict preference
// Some devices allow to set if the server or PIM (mobile)
// should win in case of a synchronization conflict
// SYNC_CONFLICT_OVERWRITE_SERVER - Server is overwritten, PIM wins
// SYNC_CONFLICT_OVERWRITE_PIM - PIM is overwritten, Server wins (default)
define('SYNC_CONFLICT_DEFAULT', SYNC_CONFLICT_OVERWRITE_PIM);
// The data providers that we are using (see configuration below)
$BACKEND_PROVIDER = "BackendZimbra";
// ************************
// BackendICS settings
// ************************
// Defines the server to which we want to connect
define('MAPI_SERVER', 'file:///var/run/zarafa');
define('ZIMBRA_URL','https://webmail.info16.fr');
define('ZIMBRA_USER_DIR','zimbra');
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_VIRTUAL_CONTACTS',true);
define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
define('ZIMBRA_VIRTUAL_TASKS',true);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
define('ZIMBRA_HTML',false);
define('IMAP_DEFAULTFROM', '');
define('IMAP_SENTFOLDER', '');
// ************************
// BackendIMAP settings
// ************************
// Defines the server to which we want to connect
// recommended to use local servers only
define('IMAP_SERVER', 'localhost');
// connecting to default port (143)
define('IMAP_PORT', 143);
// best cross-platform compatibility (see http://php.net/imap_open for options)
define('IMAP_OPTIONS', '/notls/norsh');
// overwrite the "from" header if it isn't set when sending emails
// options: 'username' - the username will be set (usefull if your login is equal to your emailaddress)
// 'domain' - the value of the "domain" field is used
// '@mydomain.com' - the username is used and the given string will be appended
define('IMAP_DEFAULTFROM', '');
// copy outgoing mail to this folder. If not set z-push will try the default folders
define('IMAP_SENTFOLDER', '');
// forward messages inline (default off - as attachment)
define('IMAP_INLINE_FORWARD', false);
// use imap_mail() to send emails (default) - off uses mail()
define('IMAP_USE_IMAPMAIL', true);
// ************************
// BackendMaildir settings
// ************************
define('MAILDIR_BASE', '/tmp');
define('MAILDIR_SUBDIR', 'Maildir');
// **********************
// BackendVCDir settings
// **********************
define('VCARDDIR_DIR', '/home/%u/.kde/share/apps/kabc/stdvcf');
// Alternative backend to perform SEARCH requests (GAL search)
// if an empty value is used, the default search functionality of the main backend is used
// use 'SearchLDAP' to search in a LDAP directory (see backend/searchldap/config.php)
define('SEARCH_PROVIDER', '');
?>Il ne reste plus qu’a paramétrer un mobile compatible activesync for Exchange à notre serveur Z-push.
Cet article a été publié par bartounet sur le blog info16. Si vous désirez comme bartounet publier en guest-blogging sur Geek de France, vous pouvez me contacter.