Compare commits

...
3 Commits
2 changed files with 9 additions and 17 deletions

No files matched your search

+6 -16
View File
@@ -295,7 +295,7 @@ class ConfigGenerator
}
$context = trim((string)($trunk['context'] ?? 'from-external')) ?: 'from-external';
$fromUser = trim((string)($trunk['from_user'] ?? '')) ?: $username;
$fromUser = trim((string)($trunk['from_user'] ?? ''));
$fromDomain = trim((string)($trunk['from_domain'] ?? '')) ?: $host;
$callerId = trim((string)($trunk['outbound_callerid'] ?? ''));
$sendPai = ((int)($trunk['send_pai'] ?? 1) === 1) ? 'yes' : 'no';
@@ -354,20 +354,10 @@ class ConfigGenerator
if ($outboundProxy !== '') {
$lines[] = "outbound_proxy = {$outboundProxy}";
}
if ($callerId !== '') {
if (preg_match('/^(?:\"?([^\"<>]+?)\"?\s*)?<([^>]+)>$/u', $callerId, $cm)) {
$cName = trim($cm[1] ?? '');
$cNum = trim($cm[2] ?? '');
if ($cName !== '') {
$cNameClean = str_replace('"', '', $cName);
$lines[] = "callerid = \"{$cNameClean}\" <{$cNum}>";
} else {
$lines[] = "callerid = <{$cNum}>";
}
} else {
$lines[] = "callerid = {$callerId}";
}
}
// Note : Ne JAMAIS positionner la directive "callerid" dans la section endpoint d'un Trunk PJSIP.
// Dans Asterisk, "callerid" sur un endpoint sert de valeur par défaut pour les appels ENTRANTS,
// ce qui écraserait le numéro de l'appelant externe (ex: mobile 06...).
// Le CallerID sortant du Trunk (outbound_callerid) est appliqué uniquement dans le Dialplan sortant.
$lines[] = "disallow = all";
foreach ($codecs as $codec) {
$lines[] = "allow = {$codec}";
@@ -1187,7 +1177,7 @@ class ConfigGenerator
$tSlug = $tObj ? $this->slugify($tObj['name']) : $this->slugify($tKey);
$tFallbackCid = $tObj ? trim((string)($tObj['outbound_callerid'] ?? '')) : '';
if ($rCid === '' && $tFallbackCid !== '' && $overrideCid) {
if ($rCid === '' && $tFallbackCid !== '') {
foreach ($this->buildCallerIdDialplan($tFallbackCid) as $cidStmt) {
$sub[] = $cidStmt;
}
+3 -1
View File
@@ -1,9 +1,11 @@
{
"version": "1.6.3",
"version": "1.6.5",
"codename": "Helios",
"release_date": "2026-11-05",
"min_php_version": "8.2",
"changelog": [
"Trunks SIP : dissociation stricte du CallerID sortant du Trunk (suppression de callerid dans l'endpoint PJSIP pour préserver l'affichage du numéro appelant réel sur les appels entrants)",
"Trunks SIP : suppression du forçage de from_user afin de préserver l'en-tête SIP From dynamique avec Nom d'appelant (CNAM) pour OVH / Orange",
"Trunks SIP & Routage Sortant : activation systématique de trust_id_outbound et formatage strict du Caller ID Name (CNAM) pour affichage garanti chez les opérateurs distants (OVH, Orange, etc.)",
"Sauvegarde & Restauration : versionnage dynamique automatique basé sur la version installée (résolution du tag figé v1.2.0)",
"Mises à jour système OTA : déclenchement garanti d'une sauvegarde Disaster Recovery complète pré-mise à jour (visible et restaurable dans l'interface)",