Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6aa1d5d796 | ||
|
|
c33d13a271 | ||
|
|
587511bd67 |
No files matched your search
+6
-16
@@ -295,7 +295,7 @@ class ConfigGenerator
|
|||||||
}
|
}
|
||||||
|
|
||||||
$context = trim((string)($trunk['context'] ?? 'from-external')) ?: 'from-external';
|
$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;
|
$fromDomain = trim((string)($trunk['from_domain'] ?? '')) ?: $host;
|
||||||
$callerId = trim((string)($trunk['outbound_callerid'] ?? ''));
|
$callerId = trim((string)($trunk['outbound_callerid'] ?? ''));
|
||||||
$sendPai = ((int)($trunk['send_pai'] ?? 1) === 1) ? 'yes' : 'no';
|
$sendPai = ((int)($trunk['send_pai'] ?? 1) === 1) ? 'yes' : 'no';
|
||||||
@@ -354,20 +354,10 @@ class ConfigGenerator
|
|||||||
if ($outboundProxy !== '') {
|
if ($outboundProxy !== '') {
|
||||||
$lines[] = "outbound_proxy = {$outboundProxy}";
|
$lines[] = "outbound_proxy = {$outboundProxy}";
|
||||||
}
|
}
|
||||||
if ($callerId !== '') {
|
// Note : Ne JAMAIS positionner la directive "callerid" dans la section endpoint d'un Trunk PJSIP.
|
||||||
if (preg_match('/^(?:\"?([^\"<>]+?)\"?\s*)?<([^>]+)>$/u', $callerId, $cm)) {
|
// Dans Asterisk, "callerid" sur un endpoint sert de valeur par défaut pour les appels ENTRANTS,
|
||||||
$cName = trim($cm[1] ?? '');
|
// ce qui écraserait le numéro de l'appelant externe (ex: mobile 06...).
|
||||||
$cNum = trim($cm[2] ?? '');
|
// Le CallerID sortant du Trunk (outbound_callerid) est appliqué uniquement dans le Dialplan sortant.
|
||||||
if ($cName !== '') {
|
|
||||||
$cNameClean = str_replace('"', '', $cName);
|
|
||||||
$lines[] = "callerid = \"{$cNameClean}\" <{$cNum}>";
|
|
||||||
} else {
|
|
||||||
$lines[] = "callerid = <{$cNum}>";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$lines[] = "callerid = {$callerId}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$lines[] = "disallow = all";
|
$lines[] = "disallow = all";
|
||||||
foreach ($codecs as $codec) {
|
foreach ($codecs as $codec) {
|
||||||
$lines[] = "allow = {$codec}";
|
$lines[] = "allow = {$codec}";
|
||||||
@@ -1187,7 +1177,7 @@ class ConfigGenerator
|
|||||||
$tSlug = $tObj ? $this->slugify($tObj['name']) : $this->slugify($tKey);
|
$tSlug = $tObj ? $this->slugify($tObj['name']) : $this->slugify($tKey);
|
||||||
$tFallbackCid = $tObj ? trim((string)($tObj['outbound_callerid'] ?? '')) : '';
|
$tFallbackCid = $tObj ? trim((string)($tObj['outbound_callerid'] ?? '')) : '';
|
||||||
|
|
||||||
if ($rCid === '' && $tFallbackCid !== '' && $overrideCid) {
|
if ($rCid === '' && $tFallbackCid !== '') {
|
||||||
foreach ($this->buildCallerIdDialplan($tFallbackCid) as $cidStmt) {
|
foreach ($this->buildCallerIdDialplan($tFallbackCid) as $cidStmt) {
|
||||||
$sub[] = $cidStmt;
|
$sub[] = $cidStmt;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"version": "1.6.3",
|
"version": "1.6.5",
|
||||||
"codename": "Helios",
|
"codename": "Helios",
|
||||||
"release_date": "2026-11-05",
|
"release_date": "2026-11-05",
|
||||||
"min_php_version": "8.2",
|
"min_php_version": "8.2",
|
||||||
"changelog": [
|
"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.)",
|
"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)",
|
"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)",
|
"Mises à jour système OTA : déclenchement garanti d'une sauvegarde Disaster Recovery complète pré-mise à jour (visible et restaurable dans l'interface)",
|
||||||
|
|||||||
Reference in new issue
Block a user