Free, SIP et Asterisk
Comme je l’avais expliqué dans Asterisk - build your own PBX, la prise téléphonique de ma Freebox était connectée à mon PC par une interface analogique de type FXO. Sur le PC, qui tourne sous GNU/Linux, l’autocommutateur libre Asterisk gère mes communications et mes services. Tout fonctionnait correctement, même si la reconnaissance du raccroché du correspondant était parfois (mais très rarement) un peu aléatoire.
Aujourd’hui, Free a ouvert l’accès en SIP à son service de téléphonie. Cela signifie que j’ai pu connecter Asterisk au service téléphonique de Free (appelé freephonie) en IP, sans passer par la ligne de téléphone analogique. Cela a instantanément supprimé l’écho qui survenait en début de conversation (avant le réglage automatique de l’annulateur), et les détections d’état pendant la communication sont parfaites.
Pour aider ceux qui voudraient faire la même chose, voici un extrait de mon fichier sip.conf :
[general] defaultexpirey=1800 dtmfmode=auto qualify=yes register => NuméroDeTéléphoneFreebox:MotDePasseSIPFree@freephonie.net [freephonie_outbound] type=peer allow=all host=freephonie.net secret=MotDePasseSIPFree fromuser=NuméroDeTéléphoneFreebox username=NuméroDeTéléphoneFreebox qualify=yes fromdomain=freephonie.net [freephonie.net] type=peer context=fromfree host=freephonie.net qualify=yes allow=all deny=0.0.0.0/0.0.0.0 permit=212.27.52.5/255.255.255.255
Quelques remarques :
Vous obtiendrez votre mot de passe SIP Free dans l’interface de gestion de votre compte sur https://adsl.free.fr/.
Il est possible que, dans le futur, je doive changer le numéro IP du serveur de Free ou en autoriser plusieurs. En attendant, cela limite les possibilités d’appels intempestifs.
Il faut augmenter l’expiration à 1800 secondes. Asterisk ne semble pas comprendre le serveur SIP de Free lorsque celui-ci lui indique, et il tente de s’enregistrer avec la durée d’expiration par défaut qui est de 120 secondes.
Le contexte freephonie_outbound est celui utilisé pour les appels sortants, freephonie.net celui pour les appels entrants. Dans mon cas, les appels entrants sont aiguillés vers le contexte fromfree, extension s. Le contexte doit être défini dans le fichier extensions.conf.
L’ordre de déclaration des deux entrées SIP est important, la dernière correspondant à un host donné l’emportant lors d’un appel entrant.