En pratique, c'est pas non plus la panacée.
Probablement aussi parce que j'ai pas forcément trouvé la meilleure solution non plus.

Note de début juillet 2010 : J'ai testé la dernière version de Sipdroid (v 1.5.2 beta) et la qualité d'appel est largement meilleure ainsi que celle du logiciel en lui même, qui ne plante plus. De plus, j'ai globalement laissé tomber l'utilisation des points d'accès Freephonie pour les raisons expliquées en fin d'article. Les points d'accès FreeWifi sont probablement plus intéressant à ce titre. Je laisse évidemment le reste de l'article pour tous ceux et celles intéressées, la partie configuration de Sipdroid étant toujours d'actualité par exemple.

Note de début janvier 2011 : Vous êtes toujours un certain nombre à tomber sur cet article en cherchant à gérer la Freephonie avec Android. En alternative à Sipdroid, le logiciel français et libre CSipSimple est assez intéressant, plus simple (il connait le fournisseur Freephonie et peut se configurer tout seul pour l'utiliser) et visuellement mieux intégré. Sachez aussi qu'à partir d'Android 2.3 Gingerbread, les fonctions SIP seront intégrées directement à Android, permettant une meilleure intégration au système et une meilleure (espérons-le) gestion de la batterie.

Bref, on va procéder en deux étapes: le principal, installer un client SIP pour Android, et pour les personnes intéressées, le secondaire, gérer l'accès automatique aux points d'accès freephonie.
Vous noterez au passage que je n'ai pas tout inventé, donc merci aux auteurs des tutos sur le wiki de smartphonefrance, à Ludovic Roblette pour ce post sur Freephonie.org et à http://www.freephonie.org en général je suppose.

Je pars du principe que vous êtes sous CyanogenMod (4.2.15 dans mon cas). Je n'ai pas testé avec d'autres versions d'Android, mais on peut imaginer que ça fonctionne. Il y a sûrement de petites différences, voyez le post de Ludovic dans ce cas.

0) Activez le SIP dans votre interface Free.

1) Client SIP

Cette partie-la est facile: installez Sipdroid (libre) ou Sipagent à partir du marché Android. Évitez aSip qui est une copie « volée » du code de Sipdroid avec une autre icône et probablement une tentative de récupérer des identifiants SIP. Un bon phishing a priori donc.
Notez que la version Sipdroid disponible sur le marché ne permet pas de se connecter via 3G, si vous voulez participer à l'opération Orange je t'emmerde et passer des appels VoIP par la 3G et à l'encontre de votre contrat, il vous faudra télécharger la version disponible sur la page de Sipdroid. À l'heure où j'écris ces lignes on parle de la version 1.3.14 beta.

Pour la configuration: Sipdroid

  • Réglages SIP:
    • Nom d'utilisateur/ID de l'appelant: votre numéro Freebox 09…
    • Mot de passe: mdp freephonie choisi à l'étape 0.
    • Serveur: freephonie.net ou, il semblerait que ça fonctionne mieux, 172.17.20.241
    • Port: 5060
    • Protocole: UDP

Il y a de nombreux autres réglages, mais c'est là le principal (et la portée de mes maigres connaissances).

Sipagent:

  • pas réussi à le faire fonctionner pour l'instant, pourtant j'utilise les mêmes réglages :/

Voilà, vous devriez pouvoir téléphoner via SIP. Sipdroid vous proposera de s'occuper de tous vos appels, je vous le déconseille vu que tous les appels vers les portables risquent de casquer.
Pour ma part, j'ai un plantage (force close) de Sipdroid lorsque j'appelle les numéros de fixes. Ça sonne de l'autre côté, mais ça plante du mien.
En mettant le proxy freephonie de Free 172.17.20.241 comme serveur, ça sonne et ne plante pas au décrochage, mais pas de son. En même temps j'ai testé en m'appelant depuis mon téléphone Android vers mon téléphone Freebox.

Voilà pour l'étape 1, je pense vous avoir bien vendu du rêve pour le moment.

Et bien c'est pas fini.

2) Connexion aux points d'accès wifi freephonie

Bon alors autant vous le dire direct, installer un certificat freephonie sous Android, c'est pas du Flan. Haha, vous savez, Éclair, flan…
Ahem.

Bref, récupérez vos deux certificats et votre clé privée dans la console d'administration de Free.fr, rubrique Téléphonie et Gestion de mon compte SIP, puis Afficher les certificats pour votre Pocket PC / SmartPhone. Il faut ensuite s'assurer qu'il sont bien formattés, le formatage HTML les rendant, comme on dit dans le métier, tous niqués.

Donc un bon copier coller de chaque certificat/clé dans un fichier texte, depuis

-----BEGIN NIANIANIA-----

jusqu'à

-----END NIANIANIA-----

puis on remplace chaque espace par un retour à la ligne pour s'assurer que la clé ait la gueule qui va bien (remplacer " " par "\n" en utilisant l'éditeur de texte Gedit par exemple). Si vous êtes sous Windows, vos retours à la ligne ne sont pas les mêmes que nos retours à la ligne sous Linux/Unix (ça fait très Them & Us tout ça) donc faudra trouver quelque chose. Il est probable que Notepad++ sache faire des retours à la ligne Unix, mais j'en ai aucune idée en fait. Autre solution sinon, copier les blocs des certificats dans code source de la page garde le formattage par exemple.
Nommez chaque fichier respectivement privé.txt, public.txt et racine.txt, pour ce que Free nomme la clé privée, la clé publique et le certificat root freephonie.

Ensuite, c'est parti pour un coup d'OpenSSL pour combiner nos trois clés/certificats en un seul. Je vous laisse le soin d'installer OpenSSL au besoin, mais un coup d'aptitude install openssl devrait suffire si vous êtes sous Ubuntu par exemple.
La commande a exécuter, à partir du dossier contenant vos trois fichiers privé.txt, public.txt et racine.txt est:
openssl pkcs12 -export -in public.txt -inkey privé.txt -certfile racine.txt -out certs.p12

Ce qu'on fait ici: on utilise notre clé privée pour signer notre certificat public, le certificat racine doit servir à donner la validité de l'organisme de certification de l'ensemble. Ouais les certificats c'est pas ma spécialité.

On choisi comme fichier de sortie certs.p12, le seul nom de fichier que CyanogenMod 4.x.x accepte pour l'instant, dixit Cyanogen. Les autres extensions de certificats ne sont pas reconnues, donc oubliez les *.cer et *.pfx.

OpenSSL vous demande ensuite un mot de passe: mettez-en un, Android n'aime pas qu'il n'y en n'ait pas. (Traduction: sans mot de passe, l'importation du certificat échouera). Conseil, mettez le même que pour votre compte Freephonie en général, sauf si êtes maso ou cypherpunk.

Ensuite, afin de récupérer une info nécessaire à la connexion aux points d'accès freephonie, on balance un bon:
openssl pkcs12 -in certs.p12 -info -nokeys

Cherchez la ligne commençant par subject, elle se termine par /CN=1234567.
Ce nombre à 7 chiffres vous servira à vous connecter un peu plus tard.

Ensuite, transférez votre certs.p12 à la racine de votre carte microSD, par USB ou autre.

Maintenant on va importer ce certificat. C'est là que ça va vous prendre 30 secondes alors que ça m'a pris une heure et demie.\\ Allez dans les réglages (touche menu depuis votre fond d'écran) puis Sécurité et localisation et enfin Install from SD card.\\ Si tout va bien, il reconnaît votre certificat et vous demande de le nommer (n va pas faire dans l'original, nommez-le freephonie) et d'entrer le mot de passe.\\ Obtempérez et zou, vous avez un certificat tout beau.

Dernière étape pour pouvoir se connecter aux points d'accès freephonie, se connecter au point d'accès freephonie.
Oui je sais, dit comme ça, c'est facile…\\ Rendez vous dans les réglages wifi, on se connecte au point d'accès freephonie.
Si vous n'avez pas encore réglé de mot de passe pour le gestionnaire de secrets, c'est le moment (et pas azerty je vous en supplie), puis:

  • Méthode EAP: changez pour TLS
  • Authentification phase 2: laissez Aucun
  • Certificat CA: freephonie devrait être déjà sélectionné
  • Certificat client: freephonie devrait aussi être déjà sélectionné
  • Mot de passe clé privée: laissez vide
  • Identité: entrez ici votre identifiant à 7 chiffre récupéré auparavant
  • Mot de passe sans fil: entrer votre mot de passe freephonie, qui devrait être toujours le même si vous n'avez pas joué le gourou cypherpunk.

Blague, votre connexion ne marchera pas forcément directement. Un coup de ON/OFF sur la connexion wifi en général devrait résoudre ça.
Blague 2: les certificats sont temporaires, leur durée est de deux mois. Donc au bout d'un moment il faudra refaire toute ce qu'on vient de faire. Amusant.

Autre problème, une fois connecté aux points d'accès freephonie, seule la partie SIP de la connexion fonctionera. Donc pas de mail, de web, etc. Pas super pratique. Et comme les informations pour se connecter à ces points d'accès sont enregistrées, dès qu'il y a un point d'accès freephonie à proximité, le téléphone s'y connecte.

Vous pouvez à tout moment « oublier » le point d'accès freephonie et ne plus vous y connecter automatiquement.

Conclusion, pour le moment, la téléphonie SIP sur Android ça marche à peu près, mais c'est pas non plus très pratique ni efficace.

On est en droit d'espérer qu'avec l'arrivée à venir de Free dans la téléphonie mobile, vu les solutions ouvertes qu'ils proposent déjà, la possibilité d'utiliser son portable comme si c'était son téléphone Freebox sera une réalité.

Si vous avez des suggestions pour améliorer cette solution, c'est avec plaisir.