Auteur Sujet: Asterisk/OpenWrt : entrants perdus après inactivité, OK après un sortant  (Lu 390 fois)

0 Membres et 1 Invité sur ce sujet

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 17
  • 75
Mise à jour du 10 octobre 2026 : trois tests d’appels entrants réussis après 14 h 43, 6 h 02 et 17 h 55 sans communication, avec qualification OPTIONS toutes les 60 secondes et entretien vers soi-même désactivé. Configuration et résultats détaillés dans ma dernière réponse. Mes anciennes conclusions écartant les OPTIONS étaient prématurées ; observation toujours en cours.


Bonjour,

Box SFR (NB6VAC) remplacée par un routeur OpenWrt sur l'ONT, IPv4 fixe. La ligne fixe est portée par Asterisk 22 (PJSIP) sur un serveur du LAN, derrière le NAT du routeur.

Configuration :
- inscription vers ims.mnc010.mcc208.3gppnetwork.org, outbound_proxy 92.91.129.168:5062 (Trappes), UDP, expiration 300 s ;
- port local 5062, redirection UDP 5062 depuis les 5 adresses de trappes.p-cscf, RTP 20000-20099 ; le routeur conserve le port source 5062 en sortie (vérifié dans  conntrack) ;
- external_signaling_address et external_media_address = IP publique, rewrite_contact, 100rel, rtp_symmetric, force_rport.

Tout fonctionne : inscription (200 OK, Path vers un pcgw ...tng1asbc03.ims.sfr.net), appels sortants et entrants, audio, DTMF, présentation du numéro.

Le problème : après une période sans appel (une nuit, parfois 1 h 30), les appels entrants n'arrivent plus. L'appelant entend sonner normalement, mais rien n'arrive chez moi : ni sur le serveur (trace SIP), ni sur le routeur (compteurs et journalisation de tout UDP/TCP 5060-5062 et de toutes les adresses 92.91.0.0/16 et 77.136.7.0/24 : zéro paquet). L'inscription reste pourtant active : les renouvellements toutes les 5 minutes reçoivent un 200 OK identique à celui des périodes où tout marche.

Un simple appel sortant rétablit aussitôt les appels entrants, pour plusieurs heures.

Quelqu'un a-t-il rencontré ce comportement ? Un keepalive OPTIONS (20 s) ou une expiration à 120 s suffisent-ils chez vous ? Ou faut-il autre chose (en-têtes du REGISTER, sip.instance, reg-event, autre P-CSCF) ?

Merci pour vos lumières !
« Modifié: Aujourd'hui à 09:47:49 par jnilo »

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 17
  • 75
Asterisk/OpenWrt : entrants perdus après inactivité, OK après un sortant
« Réponse #1 le: 29 septembre 2026 à 11:33:17 »
Mise à jour, après trois jours d'observation avec trace SIP complète côté Asterisk et journalisation côté routeur (tout UDP/TCP 5060-5062, et toutes les adresses des quatre P-CSCF : trappes, mitry, corbas, venissieux).

1. Dans l'état « mauvais », SFR n'envoie rien du tout : zéro paquet de n'importe quel P-CSCF, ni en UDP ni en TCP, alors que l'appelant entend sonner. Les renouvellements d'inscription (même Call-ID, CSeq croissant, toutes les 4 min 50 s) reçoivent un 200 OK identique champ pour champ à celui de l'état « bon » (même Contact, même Path vers le même pcgw).

2. Deux gestes rétablissent les entrants :
   - un appel sortant (constaté deux fois) ;
   - une inscription neuve : désinscription (Expires: 0, 200 OK), puis nouvelle inscription avec un nouveau Call-ID (constaté ce matin).
   Les simples renouvellements, eux, ne l'empêchent pas.

3. L'état « bon » tient au moins 3 h 20 sans aucun appel. Il est systématiquement perdu après une nuit.

4. SFR n'envoie jamais rien de lui-même vers la ligne : ni OPTIONS, ni NOTIFY, uniquement des INVITE quand ça marche.

Mon hypothèse : un élément du cœur IMS perd l'état de la ligne au bout de quelques heures, et les renouvellements ne le rafraîchissent pas (absorbés par le SBC ?). Seule une inscription initiale ou un appel qui traverse le réseau le reconstruit.

Piège Asterisk au passage : après « pjsip send unregister », « pjsip send register » renvoie un REGISTER avec Expires: 0. SFR répond 403 Forbidden - 6032 , jugé fatal, et la ligne reste désinscrite. Il faut redémarrer Asterisk (ou recharger la registration) pour repartir sur une inscription neuve.

Prochaines étapes : un keepalive OPTIONS ou une expiration courte ne devraient rien changer ici, puisqu'il ne s'agit pas du NAT (rien n'arrive au routeur). Le contournement visé est une inscription neuve périodique (désinscription, puis nouveau Call-ID), qui est le seul geste automatisable dont on a constaté l'effet.

Quelqu'un avec une box SFR d'origine sait-il à quelle fréquence elle se réinscrit, et si elle envoie des keepalive ? Et quelqu'un en Asterisk derrière NAT constate-t'il la même chose sans s'en être rendu compte ? Le symptôme est invisible tant qu'on ne teste pas un appel entrant le matin.

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 17
  • 75
Asterisk/OpenWrt : entrants perdus après inactivité, OK après un sortant
« Réponse #2 le: 30 septembre 2026 à 19:43:41 »
Suite de mes tests : durée de l'état « bon », et deux contournements comparés.

Durée : sans aucun appel, l'état « bon » tient plus de 3 h 20 et moins de 8 h, puis les entrants se perdent de nouveau.

1er contournement testé: inscription neuve périodique (désinscription, puis redémarrage d'Asterisk, toutes les 3 heures). Ça marche, mais une inscription neuve ne prend effet chez SFR qu'au bout de 3 à 6 minutes (mesuré deux fois) : un appel entrant dans cet intervalle est perdu. Soit 25 à 50 minutes aveugles par jour, plus une coupure de quelques secondes à chaque redémarrage.

2nd contournement testé: appel sortant d'entretien. Toutes les 2 heures, Asterisk appelle le numéro de la ligne elle-même et raccroche aussitôt :
     channel originate PJSIP/<numéro de la ligne>@sfr extension s@entretien   avec un contexte qui ne fait que raccrocher :
     [entretien]
     exten => s,1,Hangup()
   SFR décroche lui-même (200 OK immédiat, sans doute la messagerie), l'appel dure 0 seconde et ne revient jamais vers la ligne. Juste après, les entrants arrivent de nouveau : constaté dans l'état « mauvais », sans aucune fenêtre aveugle.

C'est le second qui est retenu pour l'instant : pas de coupure, pas de délai de prise en compte, rien à redémarrer. Il est en service depuis aujourd'hui, avec une alerte si l'appel d'entretien ne s'établit pas.

Deux réserves. L'appel est décroché par SFR : sa gratuité reste à vérifier sur la facture. Et c'est un contournement, pas une correction. Prochain essai : un numéro inexistant, que SFR refuserait sans jamais décrocher, pour voir si un appel refusé suffit aussi.

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 17
  • 75
Asterisk/OpenWrt : entrants perdus après inactivité, OK après un sortant
« Réponse #3 le: 06 octobre 2026 à 11:51:43 »
Suite et, pour l'instant, fin des essais. Résumé de ce que j'ai appris, pour qui a un Asterisk sur une ligne SFR IMS.

1. Capture d'une box SFR d'origine (NB6VAC) sur une autre ligne, 37 heures, pont Linux transparent entre l'ONT et la box, tcpdump sur les ports SIP. La box ne fait rien de spécial :
- REGISTER avec Expires: 3600, renouvelé toutes les 54 minutes, Call-ID constant ;
- aucun keepalive, pas même un CRLF ; pas d'OPTIONS, pas de SUBSCRIBE ;
- mêmes serveurs, même authentification, mêmes codecs que mon Asterisk ;
- et elle ne perd jamais ses entrants (appel reçu 13 h 36 après la dernière communication).

2. Imitation de la box, une variable par nuit, entretien suspendu, test d'appel entrant le matin au moins 20 minutes après un renouvellement :
- expiration 3600 au lieu de 300 : la première nuit a semblé réussir, mais l'appel tombait 35 s après un renouvellement. La seconde nuit : perdu. Ça ne suffit pas ;
- User-Agent de la box + même P-CSCF qu'elle (92.91.129.136, bordure tng1asbc01 au lieu de tng1asbc03) : perdu aussi.
Ce qui reste différent et que je n'ai pas testé : user=phone dans l'URI du Contact (Asterisk ne le permet pas sans patch, contact_header_params le met après le >), le port local 5060, et le profil de la ligne : la box tient sur une ligne dont la messagerie est active, la mienne est désactivée (mais je ne vois pas ce que cela pourrait changer).

3. Ce qui rétablit les entrants, constaté à chaque fois : un appel sortant DÉCROCHÉ, ou une inscription neuve. Un appel sortant non décroché ne rétablit rien (vérifié ce matin : SFR a exceptionnellement fait sonner au lieu de décrocher l'appel de la ligne vers elle-même, et la ligne est restée sourde). Donc : pas de numéro inexistant, pas de OPTIONS, pas de raccourci.

4. Deux pièges Asterisk au passage :
- Asterisk désinscrit la ligne (Expires: 0) à chaque arrêt. Juste après la réinscription, les entrants ne passent plus pendant plusieurs minutes, parfois bien plus. Après tout redémarrage, passer un appel sortant ;
- après pjsip send unregister, pjsip send register renvoie Expires: 0 ; SFR répond 403 et la ligne reste désinscrite. Redémarrer Asterisk pour repartir.

Solution en service : toutes les 2 heures, Asterisk appelle le numéro de la ligne elle-même, SFR décroche (messagerie), raccroché aussitôt, 0 seconde, rien de facturé. Trois
essais à une minute d'intervalle avant d'alerter. Depuis sa mise en place, plus un seul entrant perdu en dehors des nuits d'essai.

Si quelqu'un a une ligne SFR avec messagerie désactivée et un Asterisk, un test d'appel entrant le matin m'intéresserait beaucoup...

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 17
  • 75
Mise à jour du 10 octobre : premiers résultats favorables avec des OPTIONS toutes les 60 secondes.

Je corrige mes conclusions précédentes : j’avais écarté les OPTIONS sans les tester, en considérant que l’absence de paquets entrants observés excluait le NAT. Cette conclusion était trop catégorique. Les compteurs de redirection et les journaux ne remplacent pas une capture WAN complète.

L’appel d’entretien vers le numéro de la ligne elle-même a également cessé d’être fiable. Il est maintenant désactivé, ainsi que la réinscription périodique.

Depuis le 8 octobre à 18:42, j’ai ajouté ces deux paramètres dans la section AOR existante du trunk PJSIP :

[sfr]
type = aor
contact = sip:ims.mnc010.mcc208.3gppnetwork.org
outbound_proxy = sip:92.91.129.168:5062\;lr
qualify_frequency = 60

Attention : pour les OPTIONS de qualification, l’outbound_proxy doit aussi figurer dans l’AOR ; celui de l’endpoint et de la registration ne suffit pas.

Le reste est conservé : Asterisk 22.11.0 sur le NAS derrière OpenWrt, port local 5062, proxy Trappes .168, expiration 3600 secondes. Application à chaud, sans redémarrage ni nouvelle inscription. Chaque OPTIONS reçoit un 200 OK du proxy.

Après un appel sortant initial vers un portable et un entrant de contrôle, trois périodes sans communication ont été testées, sans aucun appel sortant ni entretien entre les mesures :

- nuit du 8 au 9 : entrant reçu après 14 h 43 ;
- journée du 9 : entrant reçu après 6 h 02 ;
- nuit du 9 au 10 : entrant reçu après 17 h 55.

Les trois appels ont fait sonner le fixe, environ 38 à 41 minutes après le dernier renouvellement REGISTER.

Je conserve donc cette configuration et poursuis l’observation. Ce résultat valide un fonctionnement sur ces trois périodes, mais ne démontre pas encore la cause : les OPTIONS ont été activés en même temps que l’entretien vers soi-même a été arrêté. Aucun essai de retrait des OPTIONS n’a été fait.

Je ne peux donc pas conclure à un défaut précis du cœur IMS SFR, ni garantir que ce réglage suffit sur toutes les lignes. En cas de nouvelle perte, la prochaine étape sera une capture WAN pendant l’appel manqué, avant tout autre changement.

Si d’autres utilisateurs d’Asterisk/PJSIP derrière OpenWrt ont rencontré ce symptôme, vos retours sur la qualification OPTIONS m’intéressent.