diff --git a/scripts/migration/genieacs-export/ext/expect_boot.js b/scripts/migration/genieacs-export/ext/expect_boot.js new file mode 100644 index 0000000..2a0f021 --- /dev/null +++ b/scripts/migration/genieacs-export/ext/expect_boot.js @@ -0,0 +1,34 @@ +const mariadb = require('mariadb/callback'); +//const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100"; +const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.5.14.21"; +const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs"; +const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw"; + +const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS}); + +function getWifi(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, ssid: r.ssid, password: r.password, enable: r.enable}))); + }); +} + +/*function getVoip(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.voip where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, username: r.username, password: r.password, enable: r.enable}))); + }); +}*/ + +exports.getWifi = getWifi; +//exports.getVoip = getVoip; + +/* +getWifi(["74DA88D3FEC4"], (err, res) => { + console.dir(err); + console.dir(res); +}); +*/ + diff --git a/scripts/migration/genieacs-export/ext/provisioning.js b/scripts/migration/genieacs-export/ext/provisioning.js new file mode 100644 index 0000000..2a0f021 --- /dev/null +++ b/scripts/migration/genieacs-export/ext/provisioning.js @@ -0,0 +1,34 @@ +const mariadb = require('mariadb/callback'); +//const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100"; +const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.5.14.21"; +const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs"; +const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw"; + +const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS}); + +function getWifi(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, ssid: r.ssid, password: r.password, enable: r.enable}))); + }); +} + +/*function getVoip(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.voip where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, username: r.username, password: r.password, enable: r.enable}))); + }); +}*/ + +exports.getWifi = getWifi; +//exports.getVoip = getVoip; + +/* +getWifi(["74DA88D3FEC4"], (err, res) => { + console.dir(err); + console.dir(res); +}); +*/ + diff --git a/scripts/migration/genieacs-export/ext/provisioning2.js b/scripts/migration/genieacs-export/ext/provisioning2.js new file mode 100644 index 0000000..972ae34 --- /dev/null +++ b/scripts/migration/genieacs-export/ext/provisioning2.js @@ -0,0 +1,33 @@ +const mariadb = require('mariadb/callback'); +const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100"; +const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs"; +const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw"; + +const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS}); + +function getWifi(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, ssid: r.ssid, password: r.password, enable: r.enable}))); + }); +} + +function getVoip(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, username: r.username, password: r.password, enable: r.enable}))); + }); +} + +exports.getWifi = getWifi; +exports.getVoip = getVoip; + +/* +getWifi(["74DA88D3FEC4"], (err, res) => { + console.dir(err); + console.dir(res); +}); +*/ + diff --git a/scripts/migration/genieacs-export/ext/test.js b/scripts/migration/genieacs-export/ext/test.js new file mode 100644 index 0000000..14693bf --- /dev/null +++ b/scripts/migration/genieacs-export/ext/test.js @@ -0,0 +1,83 @@ +// va chercher les arguments, strips les deux premieres entre par defaut +args = process.argv.slice(2); +// met le premier arguments dans la variable arg et le second dans extFunction +serial = args[0]; +extFunction = args[1]; + +// fait pointe la variable sur le script externe de Zaid +//let provisioningData = require('/opt/genieacs/ext/provisioning.js'); + +if ( extFunction == "getWifi" ) { + let provisioningData = require('/opt/genieacs/ext/wifi.js'); + provisioningData[extFunction](args,function(err, res){ + if (err != null) { + console.log(err); + process.exit(); + } else { + const wifiList = res + let i = 0; + let w = 1; + // verifie si le retour est vide mais vérifie la première valeur du array car le retour contient au minimum les braquets du json + if ( wifiList[i] ) { + // passe en boucle tout les entrees reçu dans wifiList + const wifiListLength = wifiList.length + //console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*=path:"+wifiListLength); + while ( i < wifiListLength ) { + // desactive l'instance s'il y a une ou des informations manquante ou si desactive + if ( !wifiList[i].enable || !wifiList[i].ssid || !wifiList[i].password || wifiList[i].enable == 0 ) { + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.${"+w+"}.Enable=false"); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*.instance}.SSID=ssidDisabledByACS"); + console.log("") + } else { + // active l'instance et inscrit le ssid ainsi que le mot de passe + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.${"+w+"}.Enable=true"); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.${"+w+"}.SSID="+wifiList[i].ssid); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.${"+w+"}.PreSharedKey="+wifiList[i].password); + console.log("") + } + i++ + w++ + } + // desactive tout les instances wifi si vide + } else { + //console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*=path:1"); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*.RadioEnabled=false"); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*.Enable=false"); + console.log("InternetGatewayDevice.LANDevice.1.WLANConfiguration.*.instance}.SSID=radioDisabledByACS"); + } + } + process.exit(); + }) +} else if ( extFunction == "getVoip" ) { + let provisioningData = require('/opt/genieacs/ext/voip.js'); + provisioningData[extFunction](args,function(err, res){ + if (err != null) { + console.log(err); + process.exit(); + } else { + const voipList = res + let i = 0; + let v = 1; + if ( voipList[i] ) { + const voipListLength = voipList.length; + while ( i < voipListLength ) { + if ( !voipList[i].enable || !voipList[i].username || !voipList[i].password || voipList[i].enable == 0 ) { + console.log("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line."+v+".Enable = Disabled"); + } else { + console.log("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line."+v+".Enable = Enabled"); + console.log("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line."+v+".SIP.AuthUserName = "+voipList[i].username); + console.log("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line."+v+".SIP.AuthPassword = "+voipList[i].password); + } + i++; + v++; + } + } else { + console.log("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.*.Enable = Disabled"); + } + } + process.exit(); + }) +} else { + console.log("unknow fonction") + process.exit(); +} diff --git a/scripts/migration/genieacs-export/ext/voip.js b/scripts/migration/genieacs-export/ext/voip.js new file mode 100644 index 0000000..97b2a02 --- /dev/null +++ b/scripts/migration/genieacs-export/ext/voip.js @@ -0,0 +1,17 @@ +const mariadb = require('mariadb/callback'); +//const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100"; +const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.5.14.21"; +const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs"; +const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw"; + +const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS}); + +function getVoip(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.voip where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, username: r.username, password: r.password, enable: r.enable}))); + }); +} + +exports.getVoip = getVoip; diff --git a/scripts/migration/genieacs-export/ext/wifi.js b/scripts/migration/genieacs-export/ext/wifi.js new file mode 100644 index 0000000..20365a2 --- /dev/null +++ b/scripts/migration/genieacs-export/ext/wifi.js @@ -0,0 +1,17 @@ +const mariadb = require('mariadb/callback'); +//const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100"; +const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.5.14.21"; +const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs"; +const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw"; + +const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS}); + +function getWifi(args, callback) { + const serial = args[0]; + conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => { + if (err) return callback(err); + callback(null, res.map(r => ({instance: r.instance, ssid: r.ssid, password: r.password, enable: r.enable}))); + }); +} + +exports.getWifi = getWifi; diff --git a/scripts/migration/genieacs-export/files.json b/scripts/migration/genieacs-export/files.json new file mode 100644 index 0000000..5da11aa --- /dev/null +++ b/scripts/migration/genieacs-export/files.json @@ -0,0 +1,14 @@ +[ +{"_id":"ht502fw.bin","length":3627962,"chunkSize":261120,"uploadDate":"2020-02-28T06:40:27.225Z","filename":"ht502fw.bin","md5":"7ead02669a63662ea4f4df08e7b5fdb8","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000B82","productClass":"HT-502","version":"1.0.12.1"}}, +{"_id":"HG8245V100R006C00SPC205_full_all.bin","length":14253074,"chunkSize":261120,"uploadDate":"2020-02-29T15:33:02.373Z","filename":"HG8245V100R006C00SPC205_full_all.bin","md5":"7a8cd3a2dcb117977f64336b79150f80","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"00259E","productClass":"HG8245","version":"V100R006C00SPC205"}}, +{"_id":"20200527191050_ISCOMHT803G-W_T_GJ01_SYSTEM_3.10.11_20200527","length":10127424,"chunkSize":261120,"uploadDate":"2021-01-14T14:51:46.436Z","filename":"20200527191050_ISCOMHT803G-W_T_GJ01_SYSTEM_3.10.11_20200527","md5":"857e97478f0c5cc642f89d0092a456bf","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"","productClass":"HT803G-W","version":"3.10.11"}}, +{"_id":"ht81xfw.bin","length":7623304,"chunkSize":261120,"uploadDate":"2021-04-13T17:37:19.932Z","filename":"ht81xfw.bin","md5":"72259df47e4932e584f840605a044f02","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000B82","productClass":"HT812","version":"1.0.19.11"}}, +{"_id":"ISCOMHT803G-W_T_GJ01_SYSTEM_3.10.13_20200831","length":10137664,"chunkSize":261120,"uploadDate":"2021-05-18T18:42:52.284Z","filename":"ISCOMHT803G-W_T_GJ01_SYSTEM_3.10.13_20200831","md5":"ead176b0da343c53dcbdcda661a50483","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"","productClass":"HT803G-W","version":"3.10.13"}}, +{"_id":"BETA_m4r-SP1-up-ver2-4-0-P1[20210520-rel77456]_2021-05-20_21.31.27.bin","length":12425980,"chunkSize":261120,"uploadDate":"2021-11-30T13:31:51.375Z","filename":"BETA_m4r-SP1-up-ver2-4-0-P1[20210520-rel77456]_2021-05-20_21.31.27.bin","md5":"c5e5d73dbeb107d9742a7fcc61c30c06","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"403F8C","productClass":"Device 2","version":"2.4.0 Build 20210520 Rel. 77456"}}, +{"_id":"20211011152242_ISCOMHT803G-WS2_M_GJ01_SYSTEM_MWI_20211011.bin","length":33374996,"chunkSize":261120,"uploadDate":"2021-12-07T15:15:24.153Z","filename":"20211011152242_ISCOMHT803G-WS2_M_GJ01_SYSTEM_MWI_20211011.bin","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000E5E","productClass":"HT803G-WS2","version":"3.90.42.20211011"}}, +{"_id":"20211011152242_ISCOMHT803G-WS2_M_GJ01_SYSTEM_MWI_202110111.bin","length":33374996,"chunkSize":261120,"uploadDate":"2022-02-15T15:23:07.561Z","filename":"20211011152242_ISCOMHT803G-WS2_M_GJ01_SYSTEM_MWI_202110111.bin","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000E5E","productClass":"HT803G-WS2","version":"3.90.71"}}, +{"_id":"ISCOMHT803G-W_T_GJ01_SYSTEM_3_10.15_20210222","length":10260544,"chunkSize":261120,"uploadDate":"2022-06-27T18:22:16.012Z","filename":"ISCOMHT803G-W_T_GJ01_SYSTEM_3_10.15_20210222","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"","productClass":"HT803G-W","version":"3.10.15"}}, +{"_id":"ht502fw10162.bin","length":3852518,"chunkSize":261120,"uploadDate":"2022-07-08T15:39:02.643Z","filename":"ht502fw10162.bin","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000B82","productClass":"HT502","version":"1.0.16.2"}}, +{"_id":"HT803G-WS2_M_GJ01_MWI_SYSTEM_3.90.85_20220818.bin","length":33386927,"chunkSize":261120,"uploadDate":"2022-09-12T19:22:29.247Z","filename":"HT803G-WS2_M_GJ01_MWI_SYSTEM_3.90.85_20220818.bin","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000E5E","productClass":"HT803G-WS2","version":"3.90.85_20220817"}}, +{"_id":"20221109142502_MSGHT803G_SYSTEM.bin","length":33383546,"chunkSize":261120,"uploadDate":"2022-11-11T20:10:46.074Z","filename":"20221109142502_MSGHT803G_SYSTEM.bin","metadata":{"fileType":"1 Firmware Upgrade Image","oui":"000E5E","productClass":"HT803G-WS2","version":"3.90.85.20221111"}} +] \ No newline at end of file diff --git a/scripts/migration/genieacs-export/genieacs.env b/scripts/migration/genieacs-export/genieacs.env new file mode 100644 index 0000000..d71f907 --- /dev/null +++ b/scripts/migration/genieacs-export/genieacs.env @@ -0,0 +1,12 @@ +#GENIEACS_MONGODB_CONNECTION_URL=mongodb://127.0.0.1:27017/genieacs +GENIEACS_MONGODB_CONNECTION_URL=mongodb://10.5.2.116:27017/genieacs +GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log +GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log +GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log +GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log +GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml +#NODE_OPTIONS=--enable-source-maps +GENIEACS_EXT_DIR=/opt/genieacs/ext +GENIEACS_UI_JWT_SECRET=DtF4kwC5hsb8bDJNCzKZbwYk +#GENIEACS_XMPP_JID=acs@xmpp.targointernet.com +#GENIEACS_XMPP_PASSWORD=m7iDHz9kjnnNkp diff --git a/scripts/migration/genieacs-export/presets.json b/scripts/migration/genieacs-export/presets.json new file mode 100644 index 0000000..55c727f --- /dev/null +++ b/scripts/migration/genieacs-export/presets.json @@ -0,0 +1,27 @@ +[ +{"_id":"bootstrap","weight":100,"channel":"bootstrap","events":{"0 BOOTSTRAP":true},"precondition":"NOT DeviceID.ProductClass = \"DISCOVERYSERVICE\"","configurations":[{"type":"provision","name":"bootstrap","args":null}]}, +{"_id":"default","weight":90,"channel":"default","precondition":"NOT DeviceID.ProductClass = \"DISCOVERYSERVICE\"","events":{},"configurations":[{"type":"provision","name":"default","args":null}]}, +{"_id":"inform","weight":0,"channel":"inform","precondition":"NOT DeviceID.ProductClass = \"DISCOVERYSERVICE\"","events":{},"configurations":[{"type":"provision","name":"inform","args":null}]}, +{"_id":"firmware-upgrade-ht502","channel":"firmware-upgrade","precondition":"DeviceID.ProductClass = \"HT-502\" AND Device.DeviceInfo.SoftwareVersion <> \"1.0.12.1\"","weight":0,"events":{"1 BOOT":true},"configurations":[{"type":"provision","name":"firmware-upgrade","args":["ht502fw.bin"]}]}, +{"_id":"firmware-upgrade-ht812","channel":"firmware-upgrade","precondition":"DeviceID.ProductClass = \"HT812\" AND Device.DeviceInfo.SoftwareVersion <> \"1.0.9.3\"","weight":0,"events":{"1 BOOT":true},"configurations":[{"type":"provision","name":"firmware-upgrade","args":["ht81xfw.bin"]}]}, +{"_id":"reboot","events":{"7 TRANSFER COMPLETE":true},"precondition":"","weight":0,"configurations":[{"type":"provision","name":"reboot","args":null}]}, +{"_id":"bootstrap_raisecom_hgu","precondition":"DeviceID.ProductClass = \"HT803G-W\"","channel":"bootstrap","weight":0,"events":{"0 BOOTSTRAP":true},"configurations":[{"type":"provision","name":"bootstrap_raisecom_hgu","args":null}]}, +{"_id":"HT803G-W_inform","channel":"inform","weight":10,"precondition":"DeviceID.ProductClass = \"HT803G-W\"","events":{},"configurations":[{"type":"provision","name":"HT803G-W_inform","args":null}]}, +{"_id":"firmware-upgrade-ht803-w","channel":"firmware-upgrade","weight":0,"events":{"1 BOOT":true},"precondition":"DeviceID.ProductClass = \"HT803G-W\" AND InternetGatewayDevice.DeviceInfo.SoftwareVersion <> \"3.10.13\"","configurations":[{"type":"provision","name":"firmware-upgrade-HT803G","args":["ISCOMHT803G-W_T_GJ01_SYSTEM_3.10.13_20200831"]}]}, +{"_id":"HT502_inform","channel":"inform","weight":0,"precondition":"DeviceID.ProductClass = \"HT-502\"","events":{},"configurations":[{"type":"provision","name":"HT502","args":null}]}, +{"_id":"HT812_inform","channel":"inform","weight":0,"precondition":"DeviceID.ProductClass = \"HT812\"","events":{},"configurations":[{"type":"provision","name":"HT812","args":null}]}, +{"_id":"Deco-Bootstrap","channel":"bootstrap","events":{"0 BOOTSTRAP":true},"precondition":"false AND DeviceID.ProductClass = \"Device 2\"","weight":0,"configurations":[{"type":"provision","name":"Deco-Bootstrap","args":null}]}, +{"_id":"Deco-Inform","channel":"Inform","precondition":"DeviceID.ProductClass = \"Device 2\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"Deco-Inform","args":null}]}, +{"_id":"Deco-Patch-Enable-SSID","precondition":"DeviceID.ID = \"403F8C-Device%202-403F8CF47930\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"Deco-Patch-Enable-SSID","args":null}]}, +{"_id":"HT803G-WS2_inform","precondition":"DeviceID.ProductClass = \"HT803G-WS2\" AND NOT DeviceID.ID = \"000E5E-HT803G%2DWS2-CCC2E02T3FACCC2E03DD89C\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"HT803G-WS2_inform","args":null}]}, +{"_id":"firmware-upgrade-Deco","precondition":"false AND DeviceID.ProductClass = \"Device 2\" AND Device.DeviceInfo.SoftwareVersion <> \"2.4.0 Build 20210520 Rel. 77456\" AND DeviceID.ID = \"403F8C-Device%202-403F8CF4B858\"","events":{"1 BOOT":true},"weight":0,"channel":"firmware-upgrade","configurations":[{"type":"provision","name":"firmware-upgrade","args":["BETA_m4r-SP1-up-ver2-4-0-P1[20210520-rel77456]_2021-05-20_21.31.27.bin"]}]}, +{"_id":"firmware-upgrade-HT803G-WS2","channel":"firmware-upgrade","weight":200,"events":{"1 BOOT":true},"precondition":"DeviceID.ProductClass = \"HT803G-WS2\" AND InternetGatewayDevice.DeviceInfo.SoftwareVersion <> \"3.90.85\" AND InternetGatewayDevice.DeviceInfo.SoftwareVersion <> \"3.90.79\"","configurations":[{"type":"provision","name":"firmware-upgrade","args":["HT803G-WS2_M_GJ01_MWI_SYSTEM_3.90.85_20220818.bin"]}]}, +{"_id":"Deco-Host","events":{},"channel":"inform","precondition":"false AND DeviceID.SerialNumber = \"CC32E50F5BE0\"","weight":0,"configurations":[{"type":"provision","name":"Deco-Host","args":null}]}, +{"_id":"xx230v_inform","channel":"inform","precondition":"DeviceID.ProductClass = \"Device2\" AND Device.DeviceInfo.ModelName = \"XX230v\" AND NOT Device.DeviceInfo.X_TP_MACAddress LIKE \"%CF:AD:2F:30\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"xx230v_inform","args":null}]}, +{"_id":"xx230v_boot","channel":"boot","events":{"1 BOOT":true},"precondition":"DeviceID.ProductClass = \"Device2\" AND Device.DeviceInfo.ModelName = \"XX230v\"","weight":0,"configurations":[{"type":"provision","name":"xx230v_boot","args":null}]}, +{"_id":"HT803G-W_inform_upnp","channel":"inform","precondition":"DeviceID.ProductClass = \"HT803G-W\" AND Tags.upnp_auto IS NULL","weight":0,"events":{},"configurations":[{"type":"provision","name":"HT803-W_inform_upnp","args":null}]}, +{"_id":"xx530v_inform","channel":"inform","precondition":"DeviceID.ProductClass = \"XX530v\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"xx530v_inform","args":null}]}, +{"_id":"DISCOVERYSERVICE","precondition":"DeviceID.ProductClass = \"DISCOVERYSERVICE\"","weight":10,"channel":"DISCOVERYSERVICE","events":{},"configurations":[{"type":"provision","name":"reboot","args":null}]}, +{"_id":"xx430v_inform","channel":"inform_xx430v","precondition":"DeviceID.ProductClass = \"XGB430v_Pro\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"xx430v_inform","args":null}]}, +{"_id":"XX230v_inform_TpLink_fix","channel":"inform","precondition":"Device.DeviceInfo.X_TP_MACAddress LIKE \"%CF:AD:2F:30\"","weight":0,"events":{},"configurations":[{"type":"provision","name":"XX230v_inform_TpLink_fix","args":null}]} +] \ No newline at end of file diff --git a/scripts/migration/genieacs-export/provisions.json b/scripts/migration/genieacs-export/provisions.json new file mode 100644 index 0000000..8587e2e --- /dev/null +++ b/scripts/migration/genieacs-export/provisions.json @@ -0,0 +1,26 @@ +[ +{"_id":"default","script":"const hourly = Date.now(3600000);\n\n// Refresh basic parameters hourly\ndeclare(\"InternetGatewayDevice.DeviceInfo.HardwareVersion\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.DeviceInfo.SoftwareVersion\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.MACAddress\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.ExternalIPAddress\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.LANDevice.*.WLANConfiguration.*.SSID\", {path: hourly, value: hourly});\n// Don't refresh password field periodically because CPEs always report blank passowrds for security reasons\n// declare(\"InternetGatewayDevice.LANDevice.*.WLANConfiguration.*.KeyPassphrase\", {path: hourly, value: 1});\ndeclare(\"InternetGatewayDevice.LANDevice.*.Hosts.Host.*.HostName\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.LANDevice.*.Hosts.Host.*.IPAddress\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.LANDevice.*.Hosts.Host.*.MACAddress\", {path: hourly, value: hourly});\n\ndeclare(\"InternetGatewayDevice.DeviceInfo.SerialNumber\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.DeviceInfo.ProductClass\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.DeviceInfo.ManufacturerOUI\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.DeviceInfo.Manufacturer\", {path: hourly, value: hourly});\n/*\ndeclare(\"InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANPPPConnection.*.Username\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANPPPConnection.*.MACAddress\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANPPPConnection.*.ExternalIPAddress\", {path: hourly, value: hourly});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.*.VoiceProfile.*.Line.*.Stats.*\", {path: hourly, value: hourly});\n*/\n\n/*\ndeclare(\"Device.XMPP.*\", {path: hourly, value: hourly});\ndeclare(\"Device.XMPP.*.*\", {path: hourly, value: hourly});\ndeclare(\"Device.XMPP.*.*.*\", {path: hourly, value: hourly});\n*/"}, +{"_id":"inform","script":"const now = Date.now();\n\n//const ProductClass = declare(\"InternetGatewayDevice.DeviceInfo.ProductClass\", {value: now});\n\nlet username = '';\nlet password = '';\n\n// Raisecom ONU username and password must be provision through the OLT via the TR069 profile \n//if (ProductClass.startsWith(\"HT803G\")) {\n/*if ( ProductClass == \"HT803G-W\" || ProductClass == \"HT803G-WS2\") {\n\t// Device ID as user name\n username = \"ragog\";\n // Password will be fixed a given device because Math.random() is seeded with devcie ID by default.\n password = \"26OG37\";\n} else {*/\n // Device ID as user name\n username = declare(\"DeviceID.ID\", {value: 1}).value[0];\n // Password will be fixed a given device because Math.random() is seeded with devcie ID by default.\n password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);\n//}\n\nconst informInterval = 300;\n\n/*\n// Refresh values daily\nconst daily = Date.now(86400000);\n\n// Unique inform offset per device for better load distribution\nconst informTime = daily % 86400000;\n\nif (ProductClass != \"Device 2\") {\n\tdeclare(\"InternetGatewayDevice.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\n\tdeclare(\"InternetGatewayDevice.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\tdeclare(\"InternetGatewayDevice.ManagementServer.PeriodicInformEnable\", {value: daily}, {value: true});\n\tdeclare(\"InternetGatewayDevice.ManagementServer.PeriodicInformInterval\", {value: daily}, {value: informInterval});\n \tif (ProductClass != \"HG8245\") {\n\t\tdeclare(\"InternetGatewayDevice.ManagementServer.PeriodicInformTime\", {value: daily}, {value: informTime});\n }\n}\n \n\nif (ProductClass != \"HG8245\") {\n\tdeclare(\"Device.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\n\tdeclare(\"Device.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\tdeclare(\"Device.ManagementServer.PeriodicInformEnable\", {value: daily}, {value: true});\n\tdeclare(\"Device.ManagementServer.PeriodicInformInterval\", {value: daily}, {value: informInterval});\n\tdeclare(\"Device.ManagementServer.PeriodicInformTime\", {value: daily}, {value: informTime});\n}\n*/"}, +{"_id":"bootstrap","script":"const now = Date.now();\n\n// Clear cached data model to force a refresh\nclear(\"Device\", now);\nclear(\"InternetGatewayDevice\", now);"}, +{"_id":"firmware-upgrade","script":"const newFirmwareFile = args[0];\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image]\", {path: 1}, {path: 1});\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image].FileName\", {value: 1}, {value: newFirmwareFile});\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image].Download\", {value: 1}, {value: Date.now(3600000)});\n// declare(\"Tags.DMZ\", null, {value: true});"}, +{"_id":"reboot","script":"declare(\"Reboot\", null, {value: Date.now()});"}, +{"_id":"HT803G-W","script":"// Get SSID and PreSharedKey from SQL DB\n//const res = ext(\"sqlQuery\", \"getWifi\", \"wifiInstance\", \"ssid\", \"preSharedKey\");\n\n// Configure SSID and PreSharedKey\n// nbrOfWifiInstance = (expression to get the last value of wifiInstance array);\n// declare(\"InternetGatewayDevice.LANDevice.1.WLANConfiguration.*\", null, {path: nbrOfWifiInstance};\n// declare(\"InternetGatewayDevice.LANDevice.1.WLANConfiguration.[wifiInstance].SSID\", {value: 1}, {value: ssid[wifiInstance]});\n// declare(\"InternetGatewayDevice.LANDevice.1.WLANConfiguration.[wifiInstance].PreSharedKey\", {value: 1}, {value: preSharedKey[wifiInstance]});\n\n// Get SIP username and SIP password from DB\n//const res = ext(\"sqlQuery\", \"getVoip\", \"voipInstance\", \"voipUser\", \"voipPass\");\n\n// configure SIP username and SIP password\n// nbrOfVoipInstance = (expression to get the last value of voipInstance array);\n// declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.*\", {value: 1}, {value: nbrOfVoipInstance};\n// declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.[voipInstance].SIP.AuthUserName\", {value: 1}, {value: voipUser[voipInstance]});\n// declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.[voipInstance].SIP.AuthPassword\", {value: 1}, {value: voipPass[voipInstance]});"}, +{"_id":"bootstrap_raisecom_hgu","script":"const now = Date.now();\nlet t = Date.now() - 60000;\n\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.DTMFMethod\",{value: t}, {value: \"Inband\"});\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SignalingProtocol\",{value: t}, {value: \"SIP\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy\",{value: t}, {value: \"fs02.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-OutboundProxy\",{value: t}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.ProxyServer\",{value: t}, {value: \"fs02.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-ProxyServer\",{value: t}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: t}, {value: \"fs02.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-RegistrarServer\",{value: t}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.UserAgentDomain\",{value: t}, {value: \"clients.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.CallingFeatures.CallWaitingEnable\",{value: t}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.CallingFeatures.CallWaitingEnable\",{value: t}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_HeartbeatSwitch\",{value: t}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_UPNP.Enable\",{value: t}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Time.Enable\",{value: t}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Time.LocalTimeZoneName\",{value: t}, {value: \"EST5EDT,M3.2.0,M11.1.0\"});\ndeclare(\"InternetGatewayDevice.Time.NTPServer1\",{value: t}, {value: \"10.5.2.35\"});\n//declare(\"InternetGatewayDevice.Time.NTPServer2\",{value: t}, {value: \"10.5.2.35\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.Codec.List.1.Codec\",{value: t}, {value: \"G.711MuLaw\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.X_CT-COM_IMS.three-party-service\",{value: t}, {value: \"1\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.DSCPMark\",{value: t}, {value: \"26\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.RTP.DSCPMark\",{value: t}, {value: \"46\"});\ndeclare(\"InternetGatewayDevice.LANDevice.1.LANHostConfigManagement.DNSServers\",{value: t}, {value: \"96.125.192.2,8.8.8.8\"});\n\ndeclare(\"Tags.upnp_auto\", {value: now}, {value: false});"}, +{"_id":"HT803-w inform","script":"let t = Date.now() - 60000;\n\ndeclare(\"InternetGatewayDevice.WANDevice.1.WANConnectionDevice.4.WANIPConnection.1.X_CT-COM_IPv6IPAddressOrigin\",{value: t}, {value: \"DHCPv6\"});"}, +{"_id":"HT803G-W_inform","script":"let now = Date.now();\n\n//declare(\"InternetGatewayDevice.WANDevice.1.WANConnectionDevice.4.WANIPConnection.1.X_CT-COM_IPv6IPAddressOrigin\",{value: now}, {value: \"DHCPv6\"});\n\n// VoIP QoS\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.*.RTP.DSCPMark\", {value: now}, {value: \"46\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.*.SIP.DSCPMark\", {value: now}, {value: \"26\"});\n// Logging\ndeclare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.Enable\", {value: now}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.Level\", {value: now}, {value: \"7\"});\n// DNS\n// declare(\"InternetGatewayDevice.LANDevice.1.LANHostConfigManagement.DNSServers\",{value: now}, {value: \"96.125.192.2,149.112.121.10\"});\ndeclare(\"InternetGatewayDevice.LANDevice.1.LANHostConfigManagement.DNSServers\", {value: now});\n\n\n// VoIP\n/*declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.FaxT38.Enable\", {value: now}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.RTP.DSCPMark\", {value: now}, {value: \"46\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.DSCPMark\", {value: now}, {value: \"26\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy\", {value: now}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.ProxyServer\", {value: now}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\", {value: now}, {value: \"fs03.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.UserAgentDomain\", {value: now}, {value: \"clients.targo.ca\"});\n*/\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-OutboundProxy\", {value: now}, {value: \"\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-ProxyServer\", {value: now}, {value: \"\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-RegistrarServer\", {value: now}, {value: \"\"});\n/*\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_HeartbeatSwitch\", {value: now}, {value: \"true\"});\n*/"}, +{"_id":"HT502","script":"let t = Date.now() - 60000;\n\ndeclare(\"Device.LAN.X_GRANDSTREAM_DHCPServer.Enable\",{value: t}, {value: \"false\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_NATServer.DeviceMode\",{value: t}, {value: \"Bridge\"});\ndeclare(\"Device.LAN.AddressingType\",{value: t}, {value: \"DHCP\"});\ndeclare(\"Device.Time.LocalTimeZone\",{value: t}, {value: \"UTC-0500\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_ReplyToICMP\",{value: t}, {value: \"true\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_WANSideHTTPTelnetAccess\",{value: t}, {value: \"true\"});\ndeclare(\"Device.ManagementServer.STUNServerAddress\",{value: t}, {value: \"96.125.192.11\"});\ndeclare(\"Device.ManagementServer.PeriodicInformEnable\",{value: t}, {value: \"true\"});\n\n// Legacy device only\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.UserAgentTransport\",{value: t}, {value: \"UDP\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.RegistrarServerTransport\",{value: t}, {value: \"UDP\"});\n\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.RTP.DSCPMark\",{value: t}, {value: \"46\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.FaxT38.Enable\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.FaxT38.X_GRANDSTREAM_FaxToneDetectionMode\",{value: t}, {value: \"CallerOrCallee\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_AllowIncomingSIPMessagesFromSIPProxyOnly\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.DTMFMethodG711\",{value: t}, {value: \"RFC2833,SIPInfo,In-audio\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.DTMFMethod\",{value: t}, {value: \"RFC2833,SIPInfo,In-audio\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_DisableBellcoreStyle3WayConference\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_JitterBufferType\",{value: t}, {value: \"Fixed\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_JitterBufferLength\",{value: t}, {value: \"Medium\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.Line.1.X_GRANDSTREAM_EnableCallFeatures\",{value: t}, {value: \"false\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_CheckSIPUserIDForIncomingINVITE\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.RTP.SRTP.X_GRANDSTREAM_AvailableSRTPMode\",{value: t}, {value: \"EnabledButNotForced\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_ValidateIncomingSIPMessage\",{value: t}, {value: \"true\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.SendSIPLog\",{value: t}, {value: \"true\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.ServerAddress\",{value: t}, {value: \"10.5.2.40\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.LogLevel\",{value: t}, {value: \"Warning\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.1.X_GRANDSTREAM_DisableCallWaitingTone\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.2.X_GRANDSTREAM_DisableCallWaitingTone\",{value: t}, {value: \"true\"});"}, +{"_id":"HT812","script":"let t = Date.now() - 60000;\n\ndeclare(\"Device.LAN.X_GRANDSTREAM_DHCPServer.Enable\",{value: t}, {value: \"false\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_NATServer.DeviceMode\",{value: t}, {value: \"Bridge\"});\ndeclare(\"Device.LAN.AddressingType\",{value: t}, {value: \"DHCP\"});\ndeclare(\"Device.Time.LocalTimeZone\",{value: t}, {value: \"UTC-0500\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_ReplyToICMP\",{value: t}, {value: \"true\"});\ndeclare(\"Device.LAN.X_GRANDSTREAM_WANSideHTTPTelnetAccess\",{value: t}, {value: \"true\"});\ndeclare(\"Device.ManagementServer.STUNServerAddress\",{value: t}, {value: \"96.125.192.11\"});\ndeclare(\"Device.ManagementServer.PeriodicInformEnable\",{value: t}, {value: \"true\"});\n\n//newer device only\ndeclare(\"Device.UserInterface.X_GRANDSTREAM_DisableSSH\",{value: t}, {value: \"true\"});\ndeclare(\"Device.UserInterface.X_GRANDSTREAM_AccessMethod\",{value: t}, {value: \"HTTP\"});\n\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.RTP.DSCPMark\",{value: t}, {value: \"46\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.FaxT38.Enable\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.FaxT38.X_GRANDSTREAM_FaxToneDetectionMode\",{value: t}, {value: \"CallerOrCallee\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_AllowIncomingSIPMessagesFromSIPProxyOnly\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.DTMFMethodG711\",{value: t}, {value: \"RFC2833,SIPInfo,In-audio\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.DTMFMethod\",{value: t}, {value: \"RFC2833,SIPInfo,In-audio\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_DisableBellcoreStyle3WayConference\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_JitterBufferType\",{value: t}, {value: \"Fixed\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.X_GRANDSTREAM_JitterBufferLength\",{value: t}, {value: \"Medium\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.Line.1.X_GRANDSTREAM_EnableCallFeatures\",{value: t}, {value: \"false\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_CheckSIPUserIDForIncomingINVITE\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.RTP.SRTP.X_GRANDSTREAM_AvailableSRTPMode\",{value: t}, {value: \"EnabledButNotForced\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.*.SIP.X_GRANDSTREAM_ValidateIncomingSIPMessage\",{value: t}, {value: \"true\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.SendSIPLog\",{value: t}, {value: \"true\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.ServerAddress\",{value: t}, {value: \"10.5.2.40\"});\ndeclare(\"Device.X_GRANDSTREAM_Syslog.LogLevel\",{value: t}, {value: \"Warning\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.1.X_GRANDSTREAM_DisableCallWaitingTone\",{value: t}, {value: \"true\"});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.2.X_GRANDSTREAM_DisableCallWaitingTone\",{value: t}, {value: \"true\"});\ndeclare(\"Device.X_GRANDSTREAM_Upgrade.FirmwareUpgrade.FirmwareServerPath\",{value: t}, {value: \"\"});"}, +{"_id":"Deco-Bootstrap","script":"const now = Date.now();\nconst serial = declare(\"DeviceID.SerialNumber\", {value: 1}).value[0];\n//const wifiList = ext(\"provisioning\", \"getWifi\", serial);\nconst wifi = {};\n\ndeclare(\"Device.WiFi.Radio.*.Enable\",{value: now}, {value: \"true\"});\ndeclare(\"Device.WiFi.SSID.*.Enable\",{value: now}, {value: \"true\"});\n\n//for (const w of wifiList) wifi[w.instance] = w;\n\ndeclare(\"Device.WiFi.Radio.1.OperatingChannelBandwidth\",{value: now}, {value: \"40M\"});\ndeclare(\"Device.ManagementServer.URL\",{value: now}, {value: \"http://10.5.2.115:7547/\"});\n\n//declare(\"Device.ManagementServer.STUNEnable\",{value: now}, {value: \"true\"});\n//declare(\"Device.ManagementServer.STUNServerAddress\",{value: now}, {value: \"96.125.192.11\"});\n\n//for (const i of [1, 2]) {\n// if (!wifi[i] || !wifi[i].enable) {\n// declare(`Device.WiFi.Radio.${i}.Enable`, {path: now, value: now}, {value: false});\n// continue;\n// }\n// declare(`Device.WiFi.Radio.${i}.Enable`, {path: now, value: now}, {value: true});\n// declare(`Device.WiFi.SSID.${i}.SSID`, {path: now, value: now}, {value: wifi[i].ssid});\n// declare(`Device.WiFi.SSID.${i}.X_TP_MultiSSID_SSID`, {path: now, value: now}, {value: wifi[i].ssid + \"_Guest\"});\n// declare(`Device.WiFi.AccessPoint.${i}.Security.PreSharedKey`, {path: now, value: now}, {value: wifi[i].password});\n//}"}, +{"_id":"Deco-Inform","script":"const now = Date.now();\n\n// Va chercher l'information des hosts.\n/*declare(\"Device.Hosts.HostNumberOfEntries\", {value: now});\ndeclare(\"Device.Hosts.Host.*.Active\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.AssociatedDevice\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.HostName\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.IPAddress\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.LeaseTimeRemaining\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.PhysAddress\", {path: now, value: now});\n*/\n\n/*\n// Va chercher l'information des hosts wifi\ndeclare(\"Device.WiFi.AccessPoint.*.AssociatedDeviceNumberOfEntries\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.MACAddress\", {path: now, value: now});\ndeclare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.SignalStrength\", {path: now, value: now});\n//declare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.Stats.BytesReceived\", {path: now, value: now});\n//declare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.Stats.BytesSent\", {path: now, value: now});\ndeclare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.X_TP_LinkRxRate\", {path: now, value: now});\ndeclare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.X_TP_LinkTxRate\", {path: now, value: now});\n//declare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.Stats.RetransCount\", {path: now, value: now});\n//declare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.Stats.RetryCount\", {path: now, value: now});\n//declare(\"Device.WiFi.AccessPoint.*.AssociatedDevice.*.Stats.PacketsSent\", {path: now, value: now});\n*/\n\n//Va chercher l'information wifi global\n//declare(\"Device.WiFi.RadioNumberOfEntries\", {path: now, value: now});\n//declare(\"Device.WiFi.Radio.*.Stats.BytesSent\", {path: now, value: now});\n//declare(\"Device.WiFi.Radio.*.Stats.BytesReceived\", {path: now, value: now});\n//declare(\"Device.WiFi.Radio.*.Stats.ErrorsSent\", {path: now, value: now});\n//declare(\"Device.WiFi.Radio.*.Stats.ErrorsReceived\", {path: now, value: now});\n\n//Va chercher l'information ethernet\n/*\ndeclare(\"Device.Ethernet.Interface.*.Status\", {path: now, value: now});\ndeclare(\"Device.Ethernet.Interface.*.MaxBitRate\", {path: now, value: now});\ndeclare(\"Device.Ethernet.Interface.*.DuplexMode\", {path: now, value: now});\n*/\n//declare(\"Device.Ethernet.Interface.*.Upstream\", {path: now, value: now});\n\n// Set le inform au 300 secondes\ndeclare(\"Device.ManagementServer.PeriodicInformInterval\", {value: now}, {value: 600});\n//declare(\"Device.DeviceInfo.Serial\", {path: now}, {value: now});\n"}, +{"_id":"Deco-Patch-Enable-SSID","script":"const now = Date.now();\n\ndeclare(\"Device.WiFi.Radio.*.Enable\",{value: now}, {value: \"true\"});\ndeclare(\"Device.WiFi.SSID.*.Enable\",{value: now}, {value: \"true\"});"}, +{"_id":"HT803G-WS2_inform","script":"const now = Date.now();\n\n//////////////////////////////////////////////////////////// Config VOIP //////////////////////////////////////////////////////\n/*declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.*.DigitMap\", {value: now}, {value: \"[[[2-9]11|*xx|011xxxxxxxxxxxx|1xxxxxxxxxx|xxxxxxxxxx]]\"});\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.*.DTMFMethod\", {value: now}, {value: \"Inband\"});\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.*.FaxT38.Enable\", {value: now}, {value: \"true\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.RTP.DSCPMark\", {value: now}, {value: \"46\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.DSCPMark\", {value: now}, {value: \"26\"});\n*/\n\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy\", {value: now}, {value: \"fs05.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy\", {value: now}, {value: \"fs06.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegisterRetryInterval\", {value: now}, {value: \"300\"});\ndeclare(\"InternetGatewayDevice.Time.LocalTimeZone\",{value: now}, {value: '-04:00'});\n//declare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.1.GatewayIPAddress\",{value: now});\ndeclare(\"InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANIPConnection.1.DefaultGateway\",{value: now});\n\n//static routes\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.Enable\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.DestIPAddress\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.DestSubnetMask\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.GatewayIPAddress\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.Nexthop\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.Status\",{value: now});\ndeclare(\"InternetGatewayDevice.Layer3Forwarding.Forwarding.*.Type\",{value: now});\n\n/*\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.ProxyServer\", {value: now}, {value: \"clients.targo.ca\"});\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.UserAgentDomain\", {value: now}, {value: \"clients.targo.ca\"});\ndeclare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_Standby-OutboundProxy\", {value: now}, {value: \"\"});\n//declare(\"InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.X_CT-COM_HeartbeatSwitch\", {value: now}, {value: \"true\"});\n*/\n\n// Logging\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.UpReportLogType\", {value: now}, {value: \"1,2,3,4,5,6,12\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.1.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.12.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.2.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.3.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.4.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.5.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.6.LogLevel\", {value: now}, {value: \"0\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.RemoteSyslogServerIP\", {value: now}, {value: \"10.5.2.40\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.Enable\", {value: now}, {value: \"true\"});\n//declare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_Syslog.RemoteSyslogMode\", {value: now}, {value: \"2\"});\n"}, +{"_id":"firmware-upgrade-HT803G","script":"const newFirmwareFile = args[0];\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image]\", {path: 1}, {path: 1});\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image].FileName\", {value: 1}, {value: newFirmwareFile});\ndeclare(\"Downloads.[FileType:1 Firmware Upgrade Image].Download\", {value: 1}, {value: Date.now(3600000)});\ndeclare(\"Tags.DMZ\", null, {value: true});"}, +{"_id":"Deco-Host","script":"const now = Date.now();\n\ndeclare(\"Device.Hosts.HostNumberOfEntries\", {value: now});\ndeclare(\"Device.Hosts.Host.*.Active\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.AssociatedDevice\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.HostName\", {path: now, value: now});\ndeclare(\"Device.Hosts.Host.*.IPAddress\", {path: now, value: now})"}, +{"_id":"Deco-TV","script":"const now = Date.now();\n\n/*declare(\"Device.WiFi.Radio.2.X_TP_MultiSSID_Enable\",{value: now}, {value: \"true\"});\ndeclare(\"Device.WiFi.SSID.2.X_TP_MultiSSID_SSID\",{value: now}, {value: \"TeleTargo\"});\ndeclare(\"Device.WiFi.AccessPoint.2.X_TP_MultiSSID.Security.ModeEnabled\",{value: now}, {value: \"true\"});\ndeclare(\"Device.WiFi.AccessPoint.2.X_TP_MultiSSID.Security.PreSharedKey\",{value: now}, {value: \"W1f1TVT4rg0\"});*/"}, +{"_id":"xx230v_inform","script":"const now = Date.now();\nconst daily = Date.now(86400000);\nconst digitMap = \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\";\nconst sipRealm = \"clients.targo.ca\"\n\n// Va chercher le gpon SN au format numérique, garde les 8 dernier characteres et ajoute TPLG devant\nconst rawGponSN = declare(\"Device.Optical.Interface.1.GponAuth.GponSn\", {value: 1}).value[0]\nconst gponSN = \"TPLG\" + rawGponSN.slice(-8);;\n// Mgmt User = device ID and password will be Math.random() is seeded with devcie ID by default.\nconst username = declare(\"DeviceID.ID\", {value: 1}).value[0];\nconst password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);\n\n// TR-069 MGMT credential\n//declare(\"Device.ManagementServer.ConnectionRequestUsername\", null, {value: username});\n//declare(\"Device.ManagementServer.ConnectionRequestPassword\", null, {value: password});\ndeclare(\"Device.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\ndeclare(\"Device.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\n\n\ndeclare(\"Device.DeviceInfo.X_TP_MACAddress\",{value: now});\ndeclare(\"Device.DeviceInfo.UpTime\",{value: now});\n// retiré car ceux avec entrées zombies le prennent mal\n//declare(\"Device.Routing.Router.1.IPv4Forwarding.*.GatewayIPAddress\",{value: now});\t\n\n// DHCP hostname\n//declare(\"Device.DHCPv4.Client.*.X_TP_Hostname\",{value: now}, {value: gponSN});\n\n// Remote Access\ndeclare(\"Device.UserInterface.RemoteAccess.Port\", null, {value: 443});\ndeclare(\"Device.UserInterface.RemoteAccess.Protocol\", null, {value: 'HTTPS'});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteAll\", null, {value: false});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteHost\", null, {value: '96.125.192.254/32,96.125.192.62/32,96.125.192.22/32'});\ndeclare(\"Device.UserInterface.RemoteAccess.Enable\", null, {value: true});\n\n// VoIP config\n//declare(\"Device.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.X_TP_VoiceService.1.VoiceProfile.1.MultiIsp.1.MultiRegistrarServer\",{value: now}, {value: sipRealm});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.1.DigitMap\",{value: now}, {value: \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\"});\n\n// time config\ndeclare(\"Device.Time.DaylightSavingsStart\", {value: daily}, {value: \"2024-03-10T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsEnd\", {value: daily}, {value: \"2024-11-03T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsUsed\", {value: daily}, {value: true});\ndeclare(\"Device.Time.NTPServer1\", {value: daily}, {value: \"10.5.2.35\"})\n\n// Superadmin activé\ndeclare(\"Device.Users.User.1.Enable\", {value: daily}, {value: true})\ndeclare(\"Device.Users.User.1.Password\", {value: daily}, {value: \"n3wN0HAk4u$\"})\n\n// tag config manuelle pour futur exception\ndeclare(\"Tags.config_manuelle\", now, {value: true});\n\n\n//TP-Link Fix pour erreur 9805 et 9806\nclear(\"Device.Hosts.Host\", Date.now());\nclear(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice\", Date.now());\nclear(\"Device.WiFi.AccessPoint.1.AssociatedDevice\", Date.now());\ncommit();\n\n\n\n\n\n// === Refresh First layer tree ? ===\ndeclare(\"Device.WiFi.SSID\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.Device\", {value: now});\ndeclare(\"Device.WiFi.Radio\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice\", {value: now});\ndeclare(\"Device.Hosts.Host\", {value: now});\n\n"}, +{"_id":"xx230v_boot","script":"const now = Date.now();\nclear(\"Device.UserInterface.RemoteAccess\", Date.now());\nclear(\"Device.X_TP_GPON.Link\", {value: now});\nclear(\"Device.Ethernet.Link\", {value: now});\nclear(\"Device.Ethernet.VLANTermination\", {value: now});\nclear(\"Device.IP.Interface\",{value: now});\nclear(\"Device.DHCPv4.Client\",{value: now});\nclear(\"Device.DHCPv6.Client\",{value: now});\nclear(\"Device.NAT.InterfaceSetting\",{value: now});\nclear(\"Device.Routing.Router.1.IPv4Forwarding\",{value: now});\nclear(\"Device.Routing.RIP\",{value: now});\nclear(\"Device.DNS.Relay.Forwarding\",{value: now});\nclear(\"Device.Services.VoiceService\",{value: now});"}, +{"_id":"HT803-W_inform_upnp","script":"const now = Date.now();\n\ndeclare(\"InternetGatewayDevice.DeviceInfo.X_CT-COM_UPNP.Enable\", {value: now}, {value: \"false\"});\ndeclare(\"Tags.upnp_auto\", {value: now}, {value: true});"}, +{"_id":"xx530v_inform","script":"const now = Date.now();\nconst daily = Date.now(86400000);\nconst digitMap = \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\";\nconst sipRealm = \"clients.targo.ca\"\n\n// Va chercher le gpon SN au format numérique, garde les 8 dernier characteres et ajoute TPLG devant\nconst rawGponSN = declare(\"Device.Optical.Interface.1.GponAuth.GponSn\", {value: 1}).value[0]\nconst gponSN = \"TPLG\" + rawGponSN.slice(-8);;\n// Mgmt User = device ID and password will be Math.random() is seeded with devcie ID by default.\nconst username = declare(\"DeviceID.ID\", {value: 1}).value[0];\nconst password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);\n\n// TR-069 MGMT credential\ndeclare(\"Device.ManagementServer.ConnectionRequestUsername\", null, {value: username});\ndeclare(\"Device.ManagementServer.ConnectionRequestPassword\", null, {value: password});\ndeclare(\"Device.DeviceInfo.X_TP_MACAddress\",{value: now});\n//declare(\"Device.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\n//declare(\"Device.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\n// Superadmin activé\ndeclare(\"Device.Users.User.1.Enable\", {value: daily}, {value: true})\ndeclare(\"Device.Users.User.1.Password\", {value: daily}, {value: \"n3wN0HAk4u$\"})"}, +{"_id":"xx430v_inform","script":"const now = Date.now();\nconst daily = Date.now(86400000);\nconst digitMap = \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\";\nconst sipRealm = \"clients.targo.ca\"\n\n// Va chercher le gpon SN au format numérique, garde les 8 dernier characteres et ajoute TPLG devant\nconst rawGponSN = declare(\"Device.Optical.Interface.1.GponAuth.GponSn\", {value: 1}).value[0]\nconst gponSN = \"TPLG\" + rawGponSN.slice(-8);;\n// Mgmt User = device ID and password will be Math.random() is seeded with devcie ID by default.\nconst username = declare(\"DeviceID.ID\", {value: 1}).value[0];\nconst password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);\n\n// TR-069 MGMT credential\n//declare(\"Device.ManagementServer.ConnectionRequestUsername\", null, {value: username});\n//declare(\"Device.ManagementServer.ConnectionRequestPassword\", null, {value: password});\ndeclare(\"Device.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\ndeclare(\"Device.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\n\n\ndeclare(\"Device.DeviceInfo.X_TP_MACAddress\",{value: now});\ndeclare(\"Device.DeviceInfo.UpTime\",{value: now});\n// retiré car ceux avec entrées zombies le prennent mal\n//declare(\"Device.Routing.Router.1.IPv4Forwarding.*.GatewayIPAddress\",{value: now});\t\n\n// DHCP hostname\n//declare(\"Device.DHCPv4.Client.*.X_TP_Hostname\",{value: now}, {value: gponSN});\n\n// Remote Access\ndeclare(\"Device.UserInterface.RemoteAccess.Port\", null, {value: 443});\ndeclare(\"Device.UserInterface.RemoteAccess.Protocol\", null, {value: 'HTTPS'});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteAll\", null, {value: false});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteHost\", null, {value: '96.125.192.254/32,96.125.192.62/32,96.125.192.22/32'});\ndeclare(\"Device.UserInterface.RemoteAccess.Enable\", null, {value: true});\n\n// VoIP config\n//declare(\"Device.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.X_TP_VoiceService.1.VoiceProfile.1.MultiIsp.1.MultiRegistrarServer\",{value: now}, {value: sipRealm});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.1.DigitMap\",{value: now}, {value: \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\"});\n\n// time config\ndeclare(\"Device.Time.DaylightSavingsStart\", {value: daily}, {value: \"2024-03-10T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsEnd\", {value: daily}, {value: \"2024-11-03T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsUsed\", {value: daily}, {value: true});\ndeclare(\"Device.Time.NTPServer1\", {value: daily}, {value: \"10.5.2.35\"})\n\n// Superadmin activé\ndeclare(\"Device.Users.User.1.Enable\", {value: daily}, {value: true})\ndeclare(\"Device.Users.User.1.Password\", {value: daily}, {value: \"n3wN0HAk4u$\"})\n\n// tag config manuelle pour futur exception\ndeclare(\"Tags.config_manuelle\", now, {value: true});\n\n\n\n\n/*\n\n// === Refresh Value for Lan device information ===\ndeclare(\"Device.Hosts.Host.*.InterfaceType\", {value: now});\ndeclare(\"Device.Hosts.Host.*.PhysAddress\", {value: now});\ndeclare(\"Device.Hosts.Host.*.AssociatedDevice\", {value: now});\ndeclare(\"Device.Hosts.Host.*.HostName\", {value: now});\n\n\n\n// === SSID Information ===\ndeclare(\"Device.WiFi.SSID.*.SSID\", {value: now});\ndeclare(\"Device.WiFi.SSID.*.LowerLayers\", {value: now});\n\n\n\n// === Radio Information ===\ndeclare(\"Device.WiFi.Radio.*.OperatingFrequencyBand\", {value: now});\n\n// === Access Point Information ===\ndeclare(\"Device.WiFi.AccessPoint.1.AssociatedDevice\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.1.SSIDReference\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.1.AssociatedDevice.*.MACAddress\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.1.AssociatedDevice.*.SignalStrength\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.1.AssociatedDevice.*.LastDataDownlinkRate\", {value: now});\ndeclare(\"Device.WiFi.AccessPoint.1.AssociatedDevice.*.OperatingStandard\", {value: now});\n\n// === TP-Link DataElements ===\ndeclare(\"Device.WiFi.DataElements.Network.*.SSID.Reference\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.SSID.SSID\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.FrequencyBand\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.BSS.*.SSIDReference\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.BSS.*.STA.*.MACAddress\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.BSS.*.STA.*.SignalStrength\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.BSS.*.STA.*.LastDataDownlinkRate\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.*.Radio.*.BSS.*.STA.*.OperatingStandard\", {value: now});\n\n\n// === TP-Link APDevice ===\ndeclare(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice.*.MACAddress\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice.*.Active\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice.*.OperatingStandard\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice.*.SignalStrength\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice.*.LastDataDownlinkRate\", {value: now});\n*/"}, +{"_id":"XX230v_inform_TpLink_fix","script":"const now = Date.now();\nconst daily = Date.now(86400000);\nconst digitMap = \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\";\nconst sipRealm = \"clients.targo.ca\"\n\n// Va chercher le gpon SN au format numérique, garde les 8 dernier characteres et ajoute TPLG devant\nconst rawGponSN = declare(\"Device.Optical.Interface.1.GponAuth.GponSn\", {value: 1}).value[0]\nconst gponSN = \"TPLG\" + rawGponSN.slice(-8);;\n// Mgmt User = device ID and password will be Math.random() is seeded with devcie ID by default.\nconst username = declare(\"DeviceID.ID\", {value: 1}).value[0];\nconst password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);\n\n// TR-069 MGMT credential\n//declare(\"Device.ManagementServer.ConnectionRequestUsername\", null, {value: username});\n//declare(\"Device.ManagementServer.ConnectionRequestPassword\", null, {value: password});\ndeclare(\"Device.ManagementServer.ConnectionRequestUsername\", {value: daily}, {value: username});\ndeclare(\"Device.ManagementServer.ConnectionRequestPassword\", {value: daily}, {value: password});\n\n\n\ndeclare(\"Device.DeviceInfo.X_TP_MACAddress\",{value: now});\ndeclare(\"Device.DeviceInfo.UpTime\",{value: now});\n// retiré car ceux avec entrées zombies le prennent mal\n//declare(\"Device.Routing.Router.1.IPv4Forwarding.*.GatewayIPAddress\",{value: now});\t\n\n// DHCP hostname\n//declare(\"Device.DHCPv4.Client.*.X_TP_Hostname\",{value: now}, {value: gponSN});\n\n// Remote Access\ndeclare(\"Device.UserInterface.RemoteAccess.Port\", null, {value: 443});\ndeclare(\"Device.UserInterface.RemoteAccess.Protocol\", null, {value: 'HTTPS'});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteAll\", null, {value: false});\ndeclare(\"Device.UserInterface.RemoteAccess.X_TP_RemoteHost\", null, {value: '96.125.192.254/32,96.125.192.62/32,96.125.192.22/32'});\ndeclare(\"Device.UserInterface.RemoteAccess.Enable\", null, {value: true});\n\n// VoIP config\n//declare(\"Device.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer\",{value: now}, {value: sipRealm});\n//declare(\"Device.X_TP_Services.X_TP_VoiceService.1.VoiceProfile.1.MultiIsp.1.MultiRegistrarServer\",{value: now}, {value: sipRealm});\ndeclare(\"Device.Services.VoiceService.1.VoiceProfile.1.DigitMap\",{value: now}, {value: \"112|19[2-5]|1x.t|[2-8]x.t|9x.t|0xx.t|*x.t|x.t\"});\n\n// time config\ndeclare(\"Device.Time.DaylightSavingsStart\", {value: daily}, {value: \"2024-03-10T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsEnd\", {value: daily}, {value: \"2024-11-03T02:00:00.000Z\"});\ndeclare(\"Device.Time.DaylightSavingsUsed\", {value: daily}, {value: true});\ndeclare(\"Device.Time.NTPServer1\", {value: daily}, {value: \"10.5.2.35\"})\n// Superadmin activé\ndeclare(\"Device.Users.User.1.Enable\", {value: daily}, {value: true})\ndeclare(\"Device.Users.User.1.Password\", {value: daily}, {value: \"n3wN0HAk4u$\"})\n\n// tag config manuelle pour futur exception\ndeclare(\"Tags.config_manuelle\", now, {value: true});\n\n\n//TP-Link Fix pour erreur 9805 et 9806\nclear(\"Device.Hosts.Host\", Date.now());\nclear(\"Device.WiFi.MultiAP.APDevice.*.Radio.*.AP.*.AssociatedDevice\", Date.now());\nclear(\"Device.WiFi.AccessPoint.1.AssociatedDevice\", Date.now());\ncommit();\n\n\n\n\n// === Refresh First layer tree ? ===\ndeclare(\"Device.WiFi.SSID\", {value: now});\ndeclare(\"Device.WiFi.DataElements.Network.Device\", {value: now});\ndeclare(\"Device.WiFi.Radio\", {value: now});\ndeclare(\"Device.WiFi.MultiAP.APDevice\", {value: now});\ndeclare(\"Device.Hosts.Host\", {value: now});\n\n\n"} +] \ No newline at end of file diff --git a/scripts/migration/genieacs-export/virtual-parameters.json b/scripts/migration/genieacs-export/virtual-parameters.json new file mode 100644 index 0000000..e69de29