feat: add support for inbound trunk registration (Receive mode) for FXO gateways like Grandstream HT813 and analog Livebox integration
This commit is contained in:
1 parent
981c650c7a
commit
8a4d7a0504
5 files changed
+285
-37
No files matched your search
+6
-1
@@ -128,7 +128,7 @@ class Database
|
||||
CREATE TABLE IF NOT EXISTS trunks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name VARCHAR(64) NOT NULL UNIQUE,
|
||||
host VARCHAR(128) NOT NULL,
|
||||
host VARCHAR(128) NOT NULL DEFAULT '',
|
||||
port INTEGER NOT NULL DEFAULT 5060,
|
||||
outbound_proxy VARCHAR(128) NOT NULL DEFAULT '',
|
||||
transport VARCHAR(8) NOT NULL DEFAULT 'udp',
|
||||
@@ -136,6 +136,7 @@ class Database
|
||||
username VARCHAR(64) NOT NULL DEFAULT '',
|
||||
auth_username VARCHAR(64) NOT NULL DEFAULT '',
|
||||
secret VARCHAR(128) NOT NULL DEFAULT '',
|
||||
registration_mode VARCHAR(16) NOT NULL DEFAULT 'send' CHECK (registration_mode IN ('send', 'receive', 'none')),
|
||||
register INTEGER NOT NULL DEFAULT 1 CHECK (register IN (0, 1)),
|
||||
server_uri VARCHAR(192) NOT NULL DEFAULT '',
|
||||
client_uri VARCHAR(192) NOT NULL DEFAULT '',
|
||||
@@ -561,6 +562,7 @@ class Database
|
||||
|
||||
// Colonnes universelles PJSIP supplémentaires (Session Timers, Fax T.38, Diversion, Retries, Langue, Keepalive)
|
||||
$extraColumns = [
|
||||
'registration_mode' => "VARCHAR(16) NOT NULL DEFAULT 'send'",
|
||||
'max_retries' => "INTEGER NOT NULL DEFAULT 10000",
|
||||
'forbidden_retry_interval' => "INTEGER NOT NULL DEFAULT 600",
|
||||
'fatal_retry_interval' => "INTEGER NOT NULL DEFAULT 0",
|
||||
@@ -579,6 +581,9 @@ class Database
|
||||
foreach ($extraColumns as $colName => $colDef) {
|
||||
if (!in_array($colName, $existing, true)) {
|
||||
$db->exec("ALTER TABLE trunks ADD COLUMN {$colName} {$colDef}");
|
||||
if ($colName === 'registration_mode') {
|
||||
$db->exec("UPDATE trunks SET registration_mode = CASE WHEN register = 1 THEN 'send' ELSE 'none' END");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user