Salut,
Si tu as IPv6 (réponse négative interdite ), le SIP SFR fonctionne très bien avec IPv6, ce qui enlève une bonne partie des soucis liés au NAT.
Merci pour ta réponse, les informations et exemples donnés, à vrai dire je ne sais même pas comment être sûr que j'ai bien une IPV6, OpenWRT c'est un peu tout nouveau pour moi, j'ai beaucoup de lacunes, tout comme certaines bases en réseau (alors que paradoxalement, je sais peu ou prou configurer un serveur web + NDD sous Debian/Ubuntu), mais là aussi j'ai des lacunes en sécurité & en matière de pare-feu, nat, bridge, et j'en passe.
J'ai partagé avec ma réponse une image de carte mentale que j'ai fait ce matin, elle est en très haute résolution, du coup les captures d'écran sont lisibles en zoomant dessus, il y a toutes les informations accessibles et les liens indiqués entre les différents éléments pour comprendre ma configuration. Si tu penses que tout ouvrir sur le pare-feu du deuxième routeur en matière de sécurité, n'hésite pas à m'en faire part.
Voilà mes fichiers de configuration actuels sur asterisk-pjsip sur le routeur OpenWRT N°1 :
/etc/asterisk/pjsip.conf
[transport-udp-nat]
bind=0.0.0.0
external_media_address=192.168.1.1
external_signaling_address=192.168.1.1
local_net=192.168.1.1/255.255.255.0
protocol=udp
type=transport
; --------- ;
; Templates ;
; --------- ;
[my_codecs](!)
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw
[aor_dynamic](!)
max_contacts=1
remove_existing=yes
type=aor
[auth_userpass](!)
auth_type=userpass
type=auth
[endpoint_internal](!,my_codecs)
context=outgoing
from_domain=ims.mnc010.mcc208.3gppnetwork.org
language=fr
type=endpoint
; --------- ;
; Trunk SFR ;
; --------- ;
[sfr]
contact=sip:+33NUMERODETEL@ims.mnc010.mcc208.3gppnetwork.org
outbound_proxy=sip:corbas.p-cscf.sfr.net:5062\;lr
type=aor
[sfr]
auth_type=userpass
password=MOT_DE_PASSE_LIGNE_SFR_SIP
realm=
username=NDI0NUMERODETEL.MPY.THD@sfr.fr
type=auth
[sfr](my_codecs)
aors=sfr
context=incoming
from_domain=ims.mnc010.mcc208.3gppnetwork.org
from_user=+33NUMERODETEL
outbound_auth=sfr
outbound_proxy=sip:corbas.p-cscf.sfr.net:5062\;lr
rewrite_contact=yes
transport=transport-udp-nat
type=endpoint
[sfr]
endpoint=sfr
match=residential.p-cscf.sfr.net
type=identify
[sfr]
client_uri=sip:+33NUMERODETEL@ims.mnc010.mcc208.3gppnetwork.org
outbound_auth=sfr
outbound_proxy=sip:corbas.p-cscf.sfr.net:5062\;lr
server_uri=sip:+33NUMERODETEL@ims.mnc010.mcc208.3gppnetwork.org
transport=transport-udp-nat
type=registration
; -------------------- ;
; Phone Line 'tralala' ;
; -------------------- ;
[tralala](aor_dynamic)
[tralala](auth_userpass)
password=MOT_DE_PASSE_CLIENT_SIP
username=tralala
[tralala](endpoint_internal)
auth=tralala
aors=tralala
callerid=tralala
Et /etc/asterisk/extensions.conf
[general]
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
static=yes
writeprotect=no
[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=DAHDI/G2
TRUNKMSD=1
[outgoing]
exten => _X.,1,Dial(PJSIP/${EXTEN}@sfr)
exten => _X.,n,Hangup()
[incoming]
exten => s,1,Dial(PJSIP/tralala)
Ensuite j'ai simplement utilisé "service enable asterisk" pour l'autodémarrage au démarrage du routeur et "service start asterisk" pour démarrer asterisk maintenant. J'ai pu tester avec différents clients SIP dont Linphone sur Linux et Android, et Zoiper sous Linux et je peux envoyer des appels, mais uniquement si je suis connecté par wifi au routeur OpenWRT N°1.
Pour le firewall du système où est installé asterisk :
- accepter les connexions entrantes pour asterisk : port 5060, UDP. Ex nftables avec une règle avec filtrages des ips SFR et une autre pour accepter les connexions locales (interface br-lan). Il pourrait y avoir une règle pour ouvrir tout court le port 5060 UDP mais un serveur SIP ouvert aux quatre vents c'est pas terrible :
ip6 saddr { 2a02:8400:20:238::8, 2a02:8400:20:239::8, 2a02:8400:20:23a::8, 2a02:8400:20:23b::8, 2a02:8400:20:23c::8 } udp dport 5060 ct state { new, untracked } accept comment "!fw: SIP SERVER SFR"
iifname "br-lan" udp dport 5060 ct state { new, untracked } accept comment "!fw: Accept SIP SERVER LOCAL"
- une règle pour accepter les connexions entrantes des sessions RTP : plage de ports 10000-20000, UDP (configuration par défaut du fichier rtp.conf dans le paquet fourni par openwrt). Ex nftables : meta nfproto ipv6 udp dport 10000-20000 ct state { new, untracked } accept comment "!fw: SIP SERVER RTP"
Désolé je ne connais pas les équivalents en commandes uci. Je trouve qu'un fichier de conf nftables est plus simple et logique que FW4. Mais avec ces infos tu devrais y arriver.
Avec le port 5060 ouvert et les bons paramètres, ça devrait le faire. S'il n'y a pas de son c'est la session RTP qui foire.
Comment fonctionne ta cascade de routeur exactement et pourquoi deux routeurs ? (jai un peu peur pour IPv6 du coup ...). Tes tests sont bien faits "branché au cul" du routeur n°1 ?
Je peux pas t'aider, je ne sais pas comment tailscale est intégré à Openwrt, ni quelle zone ou règles par défaut. J'imagine qu'une nouvelle interface est créée et il faut donc des nouvelles règles.
Alors pour répondre à ce que je peux, j'ai bien indiqué les ports à ouvrir avec ma configuration, sans plus de succès avec les appels entrants, mais je n'ai pas configuré IPV6 et ne sait pas si j'en ai bien une, ce que tu devrais pouvoir me dire avec mes captures d'écran.
Concernant ma cascade, comme montré sur ma carte mentale, j'ai tout un équipement à gérer, à la maison, mais aussi dans le jardin.
J'ai une configuration avec deux rasbperry PI, gérant Home Assistant et OpenSprinkler pour une irrigation fine au goutte à goutte et pour une pépinière. (De la documentation à ce sujet :
https://pepinature.org/fr/gestion_de_l_eau/programmation_avancee_et_automatisation_de_l_irrigation )
Comme je ne peux pas tirer de câble RJ45 étant en location, j'ai installé le répéteur wifi pour que le routeur gérant la partie pépinière puisse avoir accès à internet, c'est pourquoi le routeur N°2 sous OpenWRT se connecter au répéteur par wifi.
En outre, l'objectif, est aussi de pouvoir me connecter à ce routeur en wifi dans le jardin, permettre aux enfants de le faire également, accéder aux équipements branchés en RJ45 sur le routeur N°1 (ça, ça fonctionne déjà) et surtout, utiliser la ligne Fixe SFR depuis le jardin via le client SIP du smartphone.
Et en prime, si je peux accéder au routeur N°1 depuis le routeur N°2 dans ma configuration actuelle, l'inverse n'est pas vrai, sans tailscale (VPN) je n'arrive pas à contacter ni le routeur N°2, ni les raspberry PI branchés dessus (Ni la caméra que j'installerais prochainement), depuis une connexion wifi au routeur N°1 à la maison.