Skip to content

Adding new device

Wang Juntao edited this page Feb 13, 2023 · 1 revision

Quickly add CPE device

image

TeamsACS provides a script template for quickly onboarding new CPE devices. The template will automatically generate based on system configurations, including the content of the CA certificate used by the system, the connection address, password, etc. You can modify this template to fit your device configuration.

this method is referenced from Tr069-best-practices

# Install certificate
:global acsCaCertTxt "-----BEGIN CERTIFICATE-----
MIIFtzCCA5+gAwIBAgIUHqaWRku2LIaeW/8LTShXfMHPaHowDQYJKoZIhvcNAQEL
BQAwazELMAkGA1UEBhMCQ04xETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQKDAh0
ZWFtc2FjczETMBEGA1UEAwwKVGVhbXNhY3NDQTEhMB8GCSqGSIb3DQEJARYSbWFz
dGVyQHRlYW1zYWNzLmNjMB4XDTIzMDIxMTEwMDEyMVoXDTMzMDIwODEwMDEyMVow
azELMAkGA1UEBhMCQ04xETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQKDAh0ZWFt
c2FjczETMBEGA1UEAwwKVGVhbXNhY3NDQTEhMB8GCSqGSIb3DQEJARYSbWFzdGVy
QHRlYW1zYWNzLmNjMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyJsj
diVl+IaTzKDNeaToj5wFE47vrkmHJ7Fl0gBSalFTmaAGUgYXwx6+Vdznosw5Dycp
YwTo1TrFKaQEQdNo8frDauhmx7qsIs9QbaJRTR30QsKzflwpUtN4UNpE+cDKGjlL
cHgtzfue7jb89nM92o4tyvMJkmXSlibTirM+6nQbAJMZRP+HQMDX8POXmixONtmA
qGMrJfTVuv/WntGGKUXNSOtR0+cCPIvUTxJEG9JDvJZ4W2iGuJHjZBq0TNfJfzEg
ckpjkkNjeX/dSB2U+4SjGPtEfiNG6sqwK3wMvOL2DvJ5SRV0C12E1MgWxe5tTDS9
8oNpcvXHHM5gxbCg2PlDikli969cTMzBRGBfxvJjk1UxxhWZqdDX1E/32/4KSgcA
tXoAcIktSe/aL2P3xKmdXmfBTRc0cpQ8eC0CNOXBO+y7hQP4hDSjl0Eb6+yWAovY
4aQqfdwmnjNcui8gkYk/GCE7xrNFuDGvYOAQ5MYGgB5GBPvp3tvjhvjpy28nnxmY
gb+FAylBmncYWHQ3MVB+iiSaF9GaLyiP98OoL7uL3EMJzh378ZMtkiUN8SR60ijS
kC3jrZ0XawE465PXxFL2iAiwfkUSt5P4wzpXWrB2s42uNGszbGlFoFd7LepFbufe
a6fyfDWxdy7t8MxPAWqtEDfxXbvqn8MzKWElLssCAwEAAaNTMFEwHQYDVR0OBBYE
FCTOfcm15zPhhIpcglme1ezzBiByMB8GA1UdIwQYMBaAFCTOfcm15zPhhIpcglme
1ezzBiByMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAI4XpnzI
pQsid8JnV2vJUfJUOmpGBE44dgEF0LoWrfPNtl24eOlcj7F23lGsPtNhkV9Lt89j
Yp5I8fVXGtvRI1cpwSTZPYbxkRS58A5GZNvOPoQCtpxdTdaFFb2a/j2x9TI8bEq8
ox6JStnwTbdpqYqlhz0C4KTYlqWur3ZEzCSzAypDBjOWoWdAxLPDWPYgfzKJEuaI
vmFwsGbLOszWfGIAJ+UVdcg8P9qNe+k5JbHghtua3cE2Yamp+JD7tgxN/uN2IfDb
5g3qzJeDfDkflVp3U23H5FSqahOZ5nAzOcJJYSFuUOEMKqriXDwhbxt6fl9G+YsJ
PUvHqs1ZWgMCuVllCTNUnsuDDl7CIeOz7Q8u/WO0K+YInzuG0z8Lw6TjkM37sfea
avCD3DiuY+Dv//CdruAzraTTJVsAMogy7q95is6VuOM++NDrRg9jLKG81o5lZ/Pw
iiOsHv/XYw9Hx19o7uE2KpuVSltSlkqMyrVMxayOotiPDnMKmIa70s4lg0u/NZiQ
QoHEO/PSGugw1jnlFTI7gisLzudI65SH9JT5IQiIPFgRdbLoR1jGqmRaZBoAg9x1
gzn0ZJn495YP7upBTTqq5YT/aEojTjC5wmTZJgiICTZ8IZU/jGrH/ey97pa2FFTh
4dRvzNS4lY4uN4WL+KXQwPkXTNXjizrBKKhH
-----END CERTIFICATE-----";

/file print file=tr069_ca_cert.txt;
delay 2;
/file set tr069_ca_cert.txt contents=$acsCaCertTxt;
/certificate import file-name=tr069_ca_cert.txt passphrase="";
/file remove tr069_ca_cert.txt;

# Wait while ehter ifaces show up
:local count 0;
:while ([/interface ethernet find] = "") do={
    :if ($count = 30) do={
        /quit;
    }
    :delay 1s; :set count ($count +1);
};

#Get serial-number
:local sn;
:if ([/system resource get board-name] = "CHR") do={
  :set sn [/system license get system-id];
} else={
  :set sn [/system routerboard get serial-number];
}

:local existingClient [/ip dhcp-client find interface=ether1];
:if ( $existingClient = "" ) do={
  /ip dhcp-client add interface=ether1 disabled=no comment="defconf";
} else={
  :put "DHCP Client already exists on interface ether1.";
}

/ip dns set servers=8.8.8.8

/tr069-client set acs-url="https://acs.mydomain.net:2999" enabled=yes \
username="$sn" password="teamsacstr069password" periodic-inform-interval=60s

:global TeamsacsApiServer "https://acs.mydomain.net:2999";
:global TeamsacsApiToken "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDc4MzQ1NTMsImx2bCI6ImFwaSIsInVpZCI6ImNwZSIsInVzciI6ImNwZSJ9.Z0LbZN5dp_HIAhlgw3ZNieS0janDTy9fj3DKNgj5eUc";

:local setupdate [/system clock get date];
:local setuptime [/system clock get time];

:local note ("# Device Info \r\
    \n1. Serial Number: $sn \r\
    \n2. TR069 Setup Time: $setupdate $setuptime \r\
    \n");

/system note set note=$note;