diff --git a/src/ConfigGenerator.php b/src/ConfigGenerator.php index 055f8e2..1e8244d 100644 --- a/src/ConfigGenerator.php +++ b/src/ConfigGenerator.php @@ -156,10 +156,15 @@ class ConfigGenerator $lines[] = "symmetric_transport = yes"; $lines[] = "cert_file = {$certPath}"; $lines[] = "priv_key_file = {$keyPath}"; - if ($caPath !== '') { + // En Asterisk PJSIP, ca_list_file ne doit être renseigné QUE si la vérification + // des certificats clients (mTLS) est requise. Si verify_client=no, renseigner ca_list_file + // force OpenSSL à envoyer une requête CertificateRequest au téléphone, ce qui fait échouer + // le handshake TLS sur la plupart des postes IP (Yealink, Fanvil, Grandstream...). + if ($caPath !== '' && $verifyClient === 'yes') { $lines[] = "ca_list_file = {$caPath}"; } - $lines[] = "method = tlsv1_2"; + // method = sslv23 permet la négociation automatique TLSv1.2 et TLSv1.3 selon le client + $lines[] = "method = sslv23"; $lines[] = "verify_client = {$verifyClient}"; $lines[] = "verify_server = no"; foreach ($localNetworks as $net) { diff --git a/version.json b/version.json index aa7b63a..378fc05 100644 --- a/version.json +++ b/version.json @@ -1,9 +1,11 @@ { - "version": "1.5.2", + "version": "1.5.3", "codename": "Helios", "release_date": "2026-11-04", "min_php_version": "8.2", "changelog": [ + "Optimisation TLS SIP PJSIP : négociation universelle TLSv1.2/TLSv1.3 (method=sslv23)", + "Suppression de CertificateRequest en mode TLS standard pour compatibilité totale avec les téléphones IP Yealink, Fanvil et Grandstream", "Correction de l'émission et du renouvellement Let's Encrypt / Certbot ACME (privilèges sudo et permissions d'accès aux certificats)", "Plafond d'expiration d'enregistrement SIP standard (maximum_expiration = 300s, default = 120s) garantissant la reconnexion automatique rapide de tous les postes (1 à 3 min)", "Nettoyage et isolation stricte des sauvegardes (base NexusPBX, sons, spools voicemail, certificats)",