From 9518e10616ce68e5f75ecf581e248bb092e5186c Mon Sep 17 00:00:00 2001 From: sorcier Date: Tue, 3 Nov 2026 19:39:17 +0100 Subject: [PATCH] feat(dialplan): add [from-trunk] and [from-pstn] inbound contexts for FXO gateways & FreePBX compatibility --- src/ConfigGenerator.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/ConfigGenerator.php b/src/ConfigGenerator.php index e5fbe06..404e7aa 100644 --- a/src/ConfigGenerator.php +++ b/src/ConfigGenerator.php @@ -1307,6 +1307,25 @@ class ConfigGenerator $lines[] = " same => n,GotoIf(\$[\"\${DID_NUM}\" != \"\"]?from-external,\${DID_NUM},1:from-external,s,1)"; $lines[] = ""; + // 2b-bis. Contextes standards FreePBX / Passerelles FXO : [from-trunk] et [from-pstn] + $lines[] = "[from-trunk]"; + $lines[] = "exten => _[+*#0-9a-zA-Z].,1,NoOp(Appel entrant trunk [from-trunk] EXTEN=\${EXTEN} Appelant=\${CALLERID(num)})"; + $lines[] = " same => n,ExecIf(\$[\"\${CALLERID(num):0:3}\" = \"+33\"]?Set(CALLERID(num)=0\${CALLERID(num):3}))"; + $lines[] = " same => n,ExecIf(\$[\"\${CALLERID(num):0:4}\" = \"0033\"]?Set(CALLERID(num)=0\${CALLERID(num):4}))"; + $lines[] = " same => n,GotoIf(\$[\"\${DB(blacklist/\${CALLERID(num)})}\" != \"\"]?app-blacklisted,s,1)"; + $lines[] = " same => n,ExecIf(\$[\"\${EXTEN:0:3}\" = \"+33\"]?Goto(from-external,0\${EXTEN:3},1))"; + $lines[] = " same => n,Goto(from-external,\${EXTEN},1)"; + $lines[] = "exten => s,1,NoOp(Appel entrant trunk [from-trunk] sur s - Appelant=\${CALLERID(num)})"; + $lines[] = " same => n,ExecIf(\$[\"\${CALLERID(num):0:3}\" = \"+33\"]?Set(CALLERID(num)=0\${CALLERID(num):3}))"; + $lines[] = " same => n,ExecIf(\$[\"\${CALLERID(num):0:4}\" = \"0033\"]?Set(CALLERID(num)=0\${CALLERID(num):4}))"; + $lines[] = " same => n,GotoIf(\$[\"\${DB(blacklist/\${CALLERID(num)})}\" != \"\"]?app-blacklisted,s,1)"; + $lines[] = " same => n,Goto(from-external,s,1)"; + $lines[] = ""; + $lines[] = "[from-pstn]"; + $lines[] = "exten => _[+*#0-9a-zA-Z].,1,Goto(from-trunk,\${EXTEN},1)"; + $lines[] = "exten => s,1,Goto(from-trunk,s,1)"; + $lines[] = ""; + // Contexte pour appels rejetés par la liste noire $lines[] = "[app-blacklisted]"; $lines[] = "exten => s,1,NoOp(Appelant \${CALLERID(num)} bloque par la liste noire)";