EDIT Avril 2021 : Chez SFR, beaucoup de box ont basculé en ipv6 + ipv4 CGNAT.
Il faudrait revoir ce guide pour l'adapter à l'IPV6
Ce guide présente comment configurer l'IPBX 3CX afin de l'utiliser avec sur la ligne fixe de SFR.
Cela fonctionne avec la box SFR comme avec un routeur alternatif.
3CX est un IPBX commercial disposant d'une version gratuite pour les petites structures :
https://www.3cx.fr/commander/tarifs/Ce n'est donc pas de l'open-source, mais c'est une solution efficace car rapide à installer.
Je ne suis aucunement affilié à ce logiciel.
Il peut être installé en local (sur windows ou linux (y compris ARM tel que RaspberryPi) ou dans le cloud. On partira ici d'une installation locale.
Récupération des identifiants SIP de la ligne SFRPour récupérer ces identifiants, on doit se faire passer pour la box auprès de SFR.
Il faut avoir à l'esprit qu'une box n'est globalement qu'un routeur et un point d'accès wifi (et un modem dans le cas de l'ADSL).
Ce routeur permet l'interconnexion de 2 réseaux IP : celui de SFR, et celui de chez vous.
Son adresse IP publique est donnée par SFR en DHCP.
<-------Le reste d'internet-------->SFR<----------Réseau de clients SFR------------->Box<---------Réseau Local------>PC
On va donc débrancher la box du boitier ONT, auquel on se branche directement avec le PC, idéalement sous linux.
<-------Le reste d'internet-------->SFR<----------Réseau de clients SFR------------->PC
Si vous utilisez un autre OS que linux, je vous conseille de démarer temporairement sur un live USB linux.
La procédure est surement réalisable sur les autres OS, mais je ne m'attarderai pas à tester ça.
Le PC doit être configuré en DHCP pour pouvoir se connecter au réseau, et utiliser les DNS de SFR (109.0.66.10 et/ou 109.0.66.20)
(si vous ne savez pas faire, internet regorge d'exemples)
Afin de se faire passer pour une neufbox, on modifiera dans "/etc/dhcp/dhclient.conf" la vendor_class comme suit, avec ethXXX le nom de l'interface connectée. NB : sur votre OS, l'interface peut etre de la forme "ensXX".
/etc/dhcp/dhclient.conf :
interface "ethXXX" {
send vendor-class-identifier "neufbox_NB6VAC-MAIN-bypassed";
}
On utilise maintenant le merveilleux script de NextGen :
https://florent.daigniere.com/posts/2019/04/extracting-voip-credentials-from-my-broadband-router/Et on obtient :
Display name : +33xxxxxxxxx
Username : NDI0xxxxxxxxx.PCA.THD@sfr.fr
Password : MONPASSWORDDEROXOR
Domain : ims.mnc010.mcc208.3gppnetwork.org
Servers : (pick the one with the lowest latency)
mitry.p-cscf.sfr.net.:5062
corbas.p-cscf.sfr.net.:5062
trappes.p-cscf.sfr.net.:5062
où xxxxxxxxx sont les 9 chiffres du numéro de téléphone.
Notez bien ces informations (ou prenez une photo), on en aura besoin.
Configuration de la boxQue vous utilisez une box SFR ou un routeur alternatif, il va falloir ouvrir les ports suivants dans le NAT :
# Nom Protocole Type Ports externes IP de destination Ports de destination
1 3CX_TUNNEL UDP/TCP Port 5090 192.168.1.200 5090
2 3CX_audio_RTP UDP Plage 9000-10499 192.168.1.200 9000-10499
3 3CX_web_RTP UDP Plage 10500-10999 192.168.1.200 10500-10999
Si vous utilisez la box SFR, je conseille de désactiver la téléphonie de la box (via l'option éco), afin d'éviter que la box interfère avec les appels entrants en tentant de les router vers le port "telephone" de la box.
Installation de 3CXSuivez le guide d'installation proposé par 3CX pour votre OS :
https://www.3cx.fr/docs/manuel/Lors de l'installation, un port SIP vous sera demandé.Le port proposé par défaut est le 5060. SI vous utilisez la neufbox, ce port est réservé par la box. Il faut alors choisir un port différent lors de la configuration. J'utilise généralement le 15060.
NB : L'ouverture du port SIP dans le NAT n'est utile que si des extensions se connectent directement en SIP sur ton 3CX. Il est inutile si l'on compte utiliser uniquement les applis android/iOS/windows pour téléphoner via 3CX. De plus, si vos extensions (téléphones) nécessitants le SIP sont sur le réseau local, il n'y a pas non plus besoin d'ouvrir les ports dans le NAT
Configuration du Trunk SIPPour configurer un trunk SIP avec nos identifiants SFR, commençons par créer un Trunk générique. IlAu moment de l'ajout du trunk, il faut choisir "Generic" dans la liste des pays proposés puis "generic SIP trunk", et votre numéro de téléphone (au format +33xxxxxxxxx) dans "main trunk no"
Nom d'hôte ou IP du server : ims.mnc010.mcc208.3gppnetwork.org (information"Domain" récupérée part le script de NextGen)
avec le port en "Détection automatique"
Proxy sortant : mitry.p-cscf.sfr.net (ou autre serveur détecté par le script de NextGen ) avec le port 5062
Nombre d'appels simultanés : 1
Type d'authentification : Basé sur enregistrement /compte
ID d'authentification (aka SIP User ID) : +33xxxxxxxxx (votre numéro de tel)
Mot de passe d'authentification : MONPASSWORDDEROXOR (le mot de passe récupéré par le script de NextGen)
Mot de passe d'authentification 3 Way : NDI0xxxxxxxxx.PCA.THD@sfr.fr (username récupéré lar le scipt)
Dans l'onglet options, vous pouvez désigner un second serveur proxy alternatif, afin de palier à une indisponibilité du premier.
Ajout d'une règle sortante3CX devrait maintenant se connecter correctement à la box. Il n'y a plus qu'a ajouter une regle sortante pour que les appels soient redirigés vers le trunk SIP ainsi créé.
Pour plus d'information sur la configuration de 3CX (autre que le trunk SIP), dirigez vous vers les docs et forums 3CX