C cenaly.com
Commencer gratuitement

L'appel se coupe : après 30 secondes, après 15 à 30 minutes

Coupure à la 32e seconde (pas de ACK), après 15 à 30 minutes (timers de session), entrants actifs uniquement les premières minutes après le démarrage — mécanisme et solution

16 min read Ouvrir cet écran dans la démo
On this page 21

L’appel se coupe : au bout de 30 secondes, au bout de 15–30 minutes

Une coupure « pile au bout de tel délai » n’est pas une mauvaise liaison, mais un minuteur : l’un des côtés attendait quelque chose, ne l’a pas obtenu et a raccroché honnêtement. C’est pourquoi, d’après le moment de la coupure, on peut nommer la cause presque à coup sûr : ~32 secondes — la confirmation du début de conversation n’est pas arrivée ; ~15 ou ~30 minutes — le renouvellement de la conversation n’a pas eu lieu ; les appels entrants ne fonctionnent que les premières minutes — le routeur a fermé le chemin vers le téléphone. Ci-dessous, le mécanisme de chaque cas en mots et ce qu’il faut faire.

La configuration générale des téléphones se trouve dans l’aperçu « Configuration des téléphones SIP », les autres symptômes dans le diagnostic par symptômes.

Vérifiez d’abord dans l’admin#

  1. Journal des appels — ouvrez l’appel coupé. « Conversation » indiquera la durée à la seconde près : 0:31–0:33 — la signature du premier cas, environ 15:00 ou 29:30 — celle du deuxième. Vous y trouverez aussi « A raccroché » (l’appelant, l’employé ou le PBX) et « Cause de fin d’appel ».
  2. Test d’écho *43, mais long : composez et gardez le combiné 45 secondes. *43 est aussi un appel, et la confirmation du début de conversation y suit le même chemin. Coupé à la 32e seconde — panne entre le téléphone et le PBX ; s’il tient — le téléphone et le réseau de l’établissement sont en ordre, cherchez plus loin (appels externes, opérateur de téléphonie).
  3. Fiche de l’appareil → « Fonctionnement » : des échecs réguliers « pas de liaison » — le routeur ferme le chemin retour vers le téléphone (voir troisième cas).
  4. « Appeler l’appareil » dans la fiche, 10 minutes après le dernier appel : s’il sonne — le chemin vers le téléphone est vivant ; silencieux alors que l’Établissement est vert — c’est le routeur.
  5. Trace SIP sur un PBX dédié : un 200 OK répété sans ACK, puis BYE — premier cas ; BYE après INVITE ou UPDATE au milieu de la conversation — deuxième.

Coupure au bout de 30–32 secondes#

Pourquoi cela arrive#

Le début de la conversation est une poignée de main en trois messages : « j’appelle » (INVITE) — « on a répondu » (200 OK) — « compris, on commence » (ACK). Le côté qui a répondu répète son « on a répondu » jusqu’à recevoir « compris ». Règle du protocole SIP : si « compris » n’arrive pas dans les 64 × T1 = 64 × 0,5 s = 32 secondes, la conversation doit se terminer. La voix circule déjà — c’est pourquoi tout va bien pendant une demi-minute, puis l’appel tombe tout seul.

Ainsi, une coupure à la 32e seconde signifie : la confirmation ACK se perd quelque part. Pourquoi — du plus fréquent au plus rare :

  1. SIP ALG sur le routeur. Le routeur réécrit les adresses à l’intérieur des messages de service, et la confirmation part au mauvais endroit ou est rejetée. La première chose à vérifier toujours.
  2. Paquet trop volumineux. Si des dizaines de codecs sont activés dans le téléphone, la description de l’appel gonfle au-delà de ~1300 octets, et en UDP elle part « en morceaux » (fragments). Beaucoup de routeurs et de pare-feu jettent silencieusement les fragments — c’est ce message-là qui se perd. Le protocole SIP exige explicitement de passer à TCP pour ces messages.
  3. Adresse interne dans les messages. Le téléphone indique une adresse interne (192.168.x.x), et la confirmation est envoyée à cette adresse. Notre PBX corrige cela lui-même — il répond là d’où le message est réellement arrivé — mais chez l’opérateur de téléphonie, une telle protection peut être absente : dans ce cas, seuls les appels externes se coupent.
  4. Double NAT ou pare-feu strict qui laisse passer les premiers messages de l’appel et coupe les suivants.
Pour l’administrateur réseau : quel côté raccroche

Selon la RFC 3261 (§13.3.1.4), le côté qui a répondu 200 OK le répète à un intervalle de T1 à T2 et, après 64 × T1 sans ACK, termine la session par une requête BYE ; T1 par défaut — 500 ms (§17.1.1.1), d’où 32 secondes.

  • Appel entrant vers le téléphone : 200 OK est envoyé par le téléphone, ACK — par le PBX. L’ACK s’est perdu sur le chemin vers le téléphone — c’est le téléphone qui raccroche.
  • Appel sortant depuis le téléphone et *43 : 200 OK est envoyé par le PBX, ACK — par le téléphone. L’ACK s’est perdu sur le chemin vers le PBX — c’est le PBX qui raccroche.
  • Fragmentation : RFC 3261 §18.1.1 — si la requête dépasse 1300 octets (ou se situe à moins de 200 octets du MTU du chemin), le client doit l’envoyer en TCP avec contrôle de congestion. Notre PBX accepte TCP sur le même port 5060.

Ce qu’il faut faire#

Après chaque étape, refaites le *43 long (45 secondes) et un appel de test ; ne passez à la suite que si cela n’a pas aidé.

  1. Désactivez SIP ALG sur le routeur (« SIP Helper », « SIP Passthrough », « ALG pour SIP ») et redémarrez le routeur. Où il se trouve chez les marques courantes — « Réseau, routeur et internet ».
  2. Ne gardez que trois codecs dans le téléphone — G.711 PCMA, G.711 PCMU et G.722 —, désactivez les autres : les messages deviendront plus courts et cesseront d’être fragmentés.
  3. Passez le transport en TCP (le port reste le même, 5060) si l’étape 2 n’a pas aidé : TCP découpe lui-même correctement les messages longs, et la fragmentation disparaît. Notre PBX accepte à la fois UDP et TCP.
  4. Seuls les appels externes se coupent, tandis que *43 et les appels internes tiennent — la panne se situe entre le PBX et l’opérateur de téléphonie. Envoyez l’heure de plusieurs appels coupés au support.
  5. Supprimez le double NAT — passez le routeur du fournisseur en mode pont ou branchez le téléphone directement dessus.

Coupure après 15 ou 30 minutes#

Pourquoi cela se produit#

Pendant une longue conversation, les parties confirment de temps en temps que la conversation est toujours en cours — ce sont les timers de session. L'intervalle est convenu au début de l'appel ; une partie s'engage à « prolonger » la conversation à la moitié de l'intervalle, l'autre attend la prolongation. Sur notre PBX, les timers de session sont activés avec un intervalle de 1800 secondes (30 minutes) ; ils sont nécessaires pour qu'une conversation dont la liaison a disparu en silence ne reste pas suspendue pendant des heures et n'occupe pas la ligne.

D'où deux signatures :

  • environ 15 minutes — à la moitié de l'intervalle, la prolongation a été envoyée, mais elle n'est pas passée : la partie l'a rejetée ou n'a pas reçu de réponse ;
  • environ 29,5 minutes — il n'y a pas eu de prolongation du tout, et la partie qui l'attendait a raccroché juste avant l'expiration de l'intervalle.

Pourquoi la prolongation ne passe pas :

  1. Le routeur a fermé le chemin des messages de service. La voix pendant la conversation passe en continu, tandis que les messages de service restent silencieux. Si le keep-alive est désactivé sur le téléphone, le routeur ferme au bout de quelques minutes la « porte » des messages de service — et la prolongation du PBX vers le téléphone n'arrive plus.
  2. Le téléphone ne comprend pas la méthode de prolongation ou la rejette — micrologiciel ancien, « Session Timer » activé avec des paramètres non standard.
  3. SIP ALG altère le message de prolongation.
  4. Timer de l'opérateur télécom — si seuls les appels externes coupent et toujours à la même minute.

Le PBX active les timers dans la conversation uniquement si le téléphone les prend également en charge ⚠️ verify. Sur la plupart des téléphones de bureau, « Session Timer » est désactivé en sortie d'usine (chez Yealink et Grandstream — d'après la documentation), et dans ce cas il n'y a aucun timer dans la conversation.

Pour l'administrateur réseau : valeurs côté PBX
  • timers=yes — les timers sont pris en charge ; timers_sess_expires=1800 — intervalle de 1800 s ; timers_min_se=90 — le PBX n'acceptera pas moins de 90 s (shared/sip/advanced-options.json, groupe protocol).
  • Selon la RFC 4028, la prolongation est envoyée à la moitié de l'intervalle (900 s), et la partie qui ne l'a pas reçue termine la session par BYE à min(32 s, intervalle / 3) avant l'expiration — soit environ 1768 s.
  • Le PBX ne provoque pas de coupure pour cause de silence (rtp_timeout=0), donc une « conversation sans son » ne coupe pas d'elle-même.
  • Sur un PBX dédié, les mêmes valeurs se trouvent dans les « Réglages SIP avancés » (« Timers de session », « Renouvellement de session, secondes »). Il n'est pas nécessaire de les modifier sans demande du fournisseur.

Que faire#

  1. Activez le keep-alive sur le téléphone — il maintient le chemin des messages de service ouvert pendant la conversation. Yealink : Account → Advanced → Keep Alive Type (Default ou Options) et Keep Alive Interval — 30 s (valeur d'usine).
  2. Désactivez SIP ALG sur le routeur.
  3. Si « Session Timer » a été activé sur le téléphone — rétablissez la valeur d'usine (désactivé) ou réglez l'intervalle sur 1800 s : Yealink — Account → Advanced → Session Timer / Session Expires ; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
  4. Mettez à jour le micrologiciel du téléphone — les erreurs de prolongation de conversation sont souvent corrigées dans les nouvelles versions.
  5. Seuls les appels externes coupent, à la même minute — envoyez l'heure des appels au support : nous vérifierons les timers avec l'opérateur télécom.

Les appels entrants ne fonctionnent que les premières minutes après l'activation#

Pourquoi cela se produit#

Le téléphone se trouve derrière le routeur, et le PBX ne peut l'atteindre que par la « porte » que le téléphone a ouverte avec son dernier message. Le routeur ne garde pas ces portes longtemps — chez les routeurs domestiques, de une demi-minute à quelques minutes de silence — puis il les ferme. Tant que le téléphone envoie souvent quelque chose (enregistrement juste après l'allumage, keep-alive), la porte reste ouverte. Il se tait — elle se ferme, et l'appel entrant du PBX se heurte au routeur.

L'établissement dans l'admin peut quant à lui rester vert : le téléphone renouvelle son enregistrement lui-même, de l'intérieur, et cela passe, mais il n'est plus possible d'entrer vers le téléphone de l'extérieur. Le redémarrage « guérit », parce qu'il rouvre la porte — pour un temps.

De son côté, notre PBX vérifie chaque appareil toutes les 60 secondes par une requête « es-tu en ligne ? » : ce paquet en retour maintient lui aussi la porte ouverte — mais uniquement si le routeur la ferme au-delà d'une minute. Si l'appareil ne répond pas — le PBX le considère comme indisponible, l'établissement s'éteint, et un échec apparaît dans « État de fonctionnement ».

Que faire#

Après chaque étape, vérifiez l'appel entrant après 10 minutes d'inactivité (avec le bouton « Appeler l'appareil » ou depuis un poste voisin) ; ensuite — uniquement si cela n'a pas aidé.

  1. Activez le keep-alive sur le téléphone avec un intervalle de 20–30 secondes. Yealink : Account → Advanced → Keep Alive Type / Keep Alive Interval (Default et 30 s en sortie d'usine) ; chez Fanvil — Keep Alive Type dans les paramètres avancés de la ligne.
  2. Désactivez SIP ALG sur le routeur — lui aussi a tendance à « oublier » les portes.
  3. Réduisez la durée d'enregistrement sur le téléphone (Expires / Register Expiration) à 60–120 secondes — le téléphone rouvrira lui-même la porte plus souvent. Notre PBX n'acceptera pas moins de 60 (423 Interval Too Brief).
  4. Sur un PBX dédié, vous pouvez vérifier les appareils plus souvent : « Réglages SIP avancés » → « Vérification de liaison, secondes » — 20–30 au lieu de 60. Cela maintient la porte côté PBX, mais ajoute du trafic de service ; le keep-alive du téléphone est plus fiable.
  5. Double NAT (routeur du fournisseur + le vôtre) — il y a deux portes, et elles se ferment différemment : supprimez-en une — « Réseau, routeur et internet ».

Rupture lors du passage du Wi-Fi à l’internet mobile#

Pourquoi cela se produit#

Le Wi-Fi de l’établissement et l’internet mobile sont deux adresses différentes. La conversation a commencé depuis l’une d’elles, et le PBX a mémorisé au début de l’appel d’où vient la voix : pour des raisons de sécurité, il n’accepte le son que depuis cette adresse. Quand le smartphone bascule sur le réseau mobile, la voix commence à arriver depuis une nouvelle adresse — et pour le PBX, c’est déjà un flux étranger, tandis que les messages de service continuent de partir vers l’ancienne adresse, qui n’existe plus. Une conversation commencée sur un réseau se coupe presque toujours lors du passage à un autre. C’est une limitation de la technologie elle-même, pas une panne.

L’autre face de la même chose : pendant que le smartphone bascule, le softphone perd son enregistrement, et les appels entrants n’aboutissent pas pendant ces secondes. Android met en plus en veille les applications en arrière-plan — plus de détails dans l’aperçu, section sur les téléphones logiciels.

Que faire#

  1. Pendant la conversation, ne changez pas de réseau : terminez l’appel avant de sortir de la zone Wi-Fi.
  2. Désactivez sur le smartphone le basculement automatique d’un Wi-Fi médiocre vers le réseau mobile (sur iPhone — « Assistance Wi-Fi », sur Android — « basculer vers le réseau mobile » dans les paramètres Wi-Fi) : actuellement, il coupe la conversation sur le seuil du café.
  3. Autorisez le softphone à fonctionner en arrière-plan et désactivez pour lui l’économie de batterie — il s’enregistrera alors plus vite après un changement de réseau.
  4. Là où l’appel ne doit pas être perdu (comptoir, réception), installez un téléphone de bureau ou un combiné DECT, pas un smartphone.

Que transmettre au support#

  • la date et l’heure de plusieurs appels coupés à la minute près, les numéros et le poste ;
  • au bout de combien de temps la coupure survient (d’après le journal — « Conversation ») et si c’est toujours identique ;
  • si tous les appels sont coupés ou seulement les externes ; si un long *43 tient (45 secondes) ;
  • le modèle et le firmware du téléphone (la ligne du tag de l’appareil), si keep-alive et Session Timer y sont activés ;
  • le modèle du routeur, si SIP ALG est désactivé, s’il y a un second routeur du fournisseur ;
  • sur un PBX dédié — le texte de la trace SIP de la coupure reproduite.

Comment nous écrire — « Support ».

Questions fréquentes#

Pourquoi la coupure survient-elle précisément à la 32e seconde, et non à la 30e ni à la 40e ?#

Parce que ce nombre est inscrit dans le protocole SIP lui-même : la confirmation du début de conversation est attendue pendant 64 intervalles d’une demi-seconde — 32 secondes. Si chez vous c’est « environ 30 secondes » et toujours identique — c’est bien cela, même si le chronomètre affichait 31 ou 33 : une partie du temps est passée en sonneries et en réponse.

SIP ALG est désactivé, mais la coupure à la 30e seconde persiste — quoi d’autre ?#

Vérifiez qu’ALG est désactivé sur tous les routeurs sur le chemin (celui du fournisseur a souvent le sien), ne laissez que trois codecs dans le téléphone et essayez le transport TCP. Si seuls les appels externes sont coupés, alors que *43 tient 45 secondes, le problème se situe sur le segment vers l’opérateur de téléphonie : envoyez l’heure des appels.

L’établissement est vert, mais les appels entrants n’arrivent pas — est-ce aussi une « coupure » ?#

C’est le même mécanisme que dans la section sur les appels entrants des premières minutes : l’enregistrement se met à jour de l’intérieur, mais la porte vers le téléphone depuis l’extérieur est déjà fermée. Vérification — « Appeler l’appareil » après 10 minutes d’inactivité ; remède — keep-alive dans le téléphone.

Peut-on simplement désactiver les timers de session sur le PBX ?#

Oui (sur un PBX dédié, « Réglages SIP fins »), mais cela traite le symptôme, pas la cause : la prolongation ne passe pas parce que le chemin des messages de service est fermé ou altéré, et ce même chemin sera nécessaire pour le transfert d’appel et la mise en attente. De plus, sans timers, les conversations interrompues en silence resteront suspendues pendant des heures et occuperont les lignes. D’abord keep-alive et SIP ALG.

Sections liées#

Sources#

  • RFC 3261 — SIP : répétition du 200 OK jusqu’à réception du ACK et fin de session après 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), passage à TCP pour les messages de plus de 1300 octets (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261
  • RFC 4028 — Session Timers : prolongation à la moitié de l’intervalle, BYE à min(32 s, intervalle / 3) avant expiration — https://www.rfc-editor.org/rfc/rfc4028
  • Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (valeurs d’usine Default, 30 s), Session Timer (valeur d’usine — désactivé ; Session Expires 1800 s ; actualisation à la moitié de l’intervalle)
  • Grandstream GRP261x/262x/263x Administration Guide — Session Timer : Enable Session Timer (valeur d’usine « No »), Session Expiration, Min-SE — https://documentation.grandstream.com/knowledge-base/grp261x-grp262x-grp263x-series-administration-guide/
  • Zoiper 5 User Guide v1.0.7 — UDP et limitation de la taille des paquets, délais d’expiration NAT du routeur — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
  • Code du PBX : shared/sip/advanced-options.json (timers=yes, timers_sess_expires=1800, timers_min_se=90, qualify_frequency=60, minimum_expiration=60, rtp_timeout=0, force_rport, rewrite_contact), sip-edge/asterisk/rtp.conf (strictrtp=yes), sip-edge/sipsync/linecheck.go (test d’écho *43, plafond de vérification 300 s)
Was this article helpful?