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

0 Membres et 1 Invité sur ce sujet

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 16
  • 75
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 !

jnilo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 16
  • 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: 16
  • 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: 16
  • 75
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...