You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(sip): add parallel -TLS endpoint, drop UseWebRTC/UseSipTls flags
Generates a third per-extension PJSIP endpoint [<num>-TLS] alongside the
existing [<num>] (UDP/TCP) and [<num>-WS] (WebRTC). Dial fanout wires all
three contact buckets so an incoming call rings any registered transport;
BLF hints and DEVICE_STATE checks cover all variants. Auth is shared via
the existing [<num>-AUTH] — one credential pair across UDP/TCP/WS/TLS.
Generation is gated by certificate presence (SslCertificateService probe
cached behind SIPConf::hasCertificates() + resetCertsCache() so
long-running workers pick up freshly issued certs). The previous
UseWebRTC and the new UseSipTls global flags are removed entirely from
PbxSettings, REST schema, GeneralSettings form and Volt — controlled by
cert availability alone.
Fixes a latent dialplan parser bug in [set-dial-contacts]: variables
containing ':' (PJSIP_DIAL_CONTACTS URIs) must stay outside ${IF(?:)}
since IF treats ':' as the true/false separator and silently truncates
the URI. Bucket join now uses the safe ${VAR}${IF(both?&)}${OTHER}
pattern.
Switches the [messages] MessageSend From normalization from REPLACE
(per-character set removal) to STRREPLACE (substring removal) so the
suffix strip no longer mangles arbitrary 'W', 'S', 'T', 'L' bytes in
SIP From URIs.
REST API: AbstractExtensionStatusAction now emits 'is_tls' alongside
'is_webrtc' so CTI/UI can distinguish TLS-registered contacts.
Removes the UseWebRTC key from PBXCoreREST/Lib/GeneralSettings
DataStructure (breaking change in v3 schema — clients sending PUT with
that key now receive 422).
Copy file name to clipboardExpand all lines: src/Core/Asterisk/Configs/ExtensionsConf.php
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,10 @@ public static function sortArrayByPriority(array $a, array $b): int
62
62
*/
63
63
protectedfunctiongenerateConfigProtected(): void
64
64
{
65
+
// Force a fresh certificate-presence probe — InternalContexts uses
66
+
// SIPConf::hasCertificates() to decide whether to wire WS/TLS dial buckets.
67
+
SIPConf::resetCertsCache();
68
+
65
69
/** @scrutinizer ignore-call */
66
70
$conf = "[globals]" .PHP_EOL.
67
71
"TRANSFER_CONTEXT=internal-transfer;".PHP_EOL;
@@ -124,7 +128,7 @@ private function generateOtherExten(string &$conf): void
124
128
'exten => _X.,1,NoOp("Sending message, To ${MESSAGE(to)}, Hint ${ARG1}, From ${MESSAGE(from)}, CID ${CALLERID}, Body ${MESSAGE(body)}")' . PHP_EOL ."\t".
0 commit comments