Usage examples - curl Linux cURL examples to exercise the RESTful API interface These examples show how to exercise each of the endpoints of the RESTful API. The examples were verified under Ubuntu Linux but should be, with slight modification, able to be used under other OSs such as MS Windows. See the appendix for more information Endpoint Examples Notes In these examples, the test device is test.summit.com. Your URL will be local to your network. The output of the files will be piped to the jq app which is used to pretty-print the json output. It is available for a variety of OSs. Anatomy of an example curl command: curl -s --location --request GET https://test.summit.com/endpoint --header "Content-Type: application/json" -b cookie --insecure | jq curl - the curl executable binary -s - enables the silent option in order to not show curl progress statistics –location - follow redirects - allows the restful API to force the caller to https if they did not use it –request GET https://test.summit.com/awm - the command (GET/PUT/POST/DELETE) for the endpoint (http://URL/endpoint) –header “Content-Type: application/json” - lets the server know we are expecting JSON return -c cookie - save the authentication key in a file called ‘cookie’ -b cookie - user the existing cookie file –insecure - do not user certificates to authenticate (SSL/TSL is being used so nothing is in clear text) | jq - output piped to the jq application accesspoints Get cached WiFi access point list curl -s --location --request GET https://test.summit.com/accesspoints -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/accesspoints -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "count": 3, "accesspoints": [ { "SSID": "", "HwAddress": "xx:xx:xx:xx:xx:xx", "Strength": 72, "MaxBitrate": 540000, "Frequency": 5785, "Flags": 1, "WpaFlags": 0, "RsnFlags": 392, "LastSeen": 98509, "Security": "WPA2 PSK", "Keymgmt": "wpa-psk" }, { "SSID": "BrownBear", "HwAddress": "xx:xx:xx:xx:xx:xx", "Strength": 22, "MaxBitrate": 130000, "Frequency": 2432, "Flags": 3, "WpaFlags": 332, "RsnFlags": 332, "LastSeen": 98507, "Security": "WPA1 WPA2 PSK", "Keymgmt": "wpa-psk" }, { "SSID": "ATT5Ift7kY", "HwAddress": "xx:xx:xx:xx:xx:xx", "Strength": 14, "MaxBitrate": 270000, "Frequency": 2437, "Flags": 3, "WpaFlags": 0, "RsnFlags": 392, "LastSeen": 98507, "Security": "WPA2 PSK", "Keymgmt": "wpa-psk" } ] } Initiate a WiFi scan curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/accesspoints -b cookie --insecure --data '' | jq curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/accesspoints -b cookie --insecure --data '' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "Scan requested" } awm Set awm enable/disable curl -s --location --request PUT https://test.summit.com/awm --header 'Content-Type: application/json' -b cookie --insecure --data '{"geolocation_scanning_enable":0}' | jq curl -s --location --request PUT https://test.summit.com/awm --header 'Content-Type: application/json' -b cookie --insecure --data '{"geolocation_scanning_enable":0}' | jq Copy to clipboard returned JSON: { "SDCERR": 1, "InfoMsg": "AWM's geolocation scanning configuration only supported in LITE mode", "geolocation_scanning_enable": 1 } Get awm current setting curl -s --location --request GET https://test.summit.com/awm --header "Content-Type: application/json" -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/awm --header "Content-Type: application/json" -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "AWM configuration only supported in LITE mode", "geolocation_scanning_enable": 1 } connection Activate/deactivate activate curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/connection -b cookie --insecure --data '{ "uuid": "f93578c1-d309-4103-8554-fc1982ccda02", "activate" : 1 }' | jq curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/connection -b cookie --insecure --data '{ "uuid": "f93578c1-d309-4103-8554-fc1982ccda02", "activate" : 1 }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "Connection Activated" } deactivate curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/connection -b cookie --insecure --data '{ "uuid": "f93578c1-d309-4103-8554-fc1982ccda02", "activate" : 0 }' | jq curl -s --header 'Content-Type: application/json' --request PUT https://test.summit.com/connection -b cookie --insecure --data '{ "uuid": "f93578c1-d309-4103-8554-fc1982ccda02", "activate" : 0 }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "Connection Deactivated" } Get connection details curl -s --location --request GET https://test.summit.com/connection?uuid=f93578c1-d309-4103-8554-fc1982ccda02 -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/connection?uuid=f93578c1-d309-4103-8554-fc1982ccda02 -b cookie --insecure | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "", "connection": { "connection": { "id": "static-usb0", "interface-name": "usb0", "permissions": [], "timestamp": 1639192592, "type": "802-3-ethernet", "uuid": "f93578c1-d309-4103-8554-fc1982ccda02" }, "802-3-ethernet": { "auto-negotiate": false, "mac-address-blacklist": [], "s390-options": {} }, "ipv4": { "address-data": [ { "address": "10.10.3.1", "prefix": 24 } ], "addresses": [ [ "10.10.3.1", 24, "0.0.0.0" ] ], "dns": [], "dns-search": [], "method": "shared", "route-data": [], "routes": [] }, "ipv6": { "address-data": [], "addresses": [], "dns": [], "dns-search": [], "method": "auto", "route-data": [], "routes": [] }, "proxy": {} } } Delete a connection curl -s --request DELETE https://test.summit.com/connection?uuid=57df6dec-04a6-4f6f-9fe9-0fc79740717f -b cookie --insecure | jq curl -s --request DELETE https://test.summit.com/connection?uuid=57df6dec-04a6-4f6f-9fe9-0fc79740717f -b cookie --insecure | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "" } Ethernet Configuration curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "id": "new-eth1", "interface-name": "eth1", "type": "802-3-ethernet", "zone": "external" }, "ipv4": { "method": "auto" } }' curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "id": "new-eth1", "interface-name": "eth1", "type": "802-3-ethernet", "zone": "external" }, "ipv4": { "method": "auto" } }' Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection new-eth1 created" } GSM Configuration todo WiFi Configuration Multiple examples of various authentication methods: EAP-TLS with CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TLS_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "acs": 0, "frequency-dfs": 1, "hidden": 0, "mode": "infrastructure", "ssid": "EAP_TLS_CA_CERT", "bgscan": "laird:5:-64:30" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "tls", "private-key-password": "user1", "private-key": "user1.pfx", "identity": "user1", "password": "user1", "client-cert": "None", "ca-cert": "SystestCA.cer" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TLS_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "acs": 0, "frequency-dfs": 1, "hidden": 0, "mode": "infrastructure", "ssid": "EAP_TLS_CA_CERT", "bgscan": "laird:5:-64:30" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "tls", "private-key-password": "user1", "private-key": "user1.pfx", "identity": "user1", "password": "user1", "client-cert": "None", "ca-cert": "SystestCA.cer" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection EAP_TLS_CA_CERT created" } EAP-TLS no CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TLS_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "acs": 0, "frequency-dfs": 1, "hidden": 0, "mode": "infrastructure", "ssid": "EAP_TLS_NO_CA_CERT", "bgscan": "laird:5:-64:30" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "tls", "private-key-password": "user1", "private-key": "user1.pfx", "identity": "user1", "password": "user1", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TLS_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "acs": 0, "frequency-dfs": 1, "hidden": 0, "mode": "infrastructure", "ssid": "EAP_TLS_NO_CA_CERT", "bgscan": "laird:5:-64:30" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "tls", "private-key-password": "user1", "private-key": "user1.pfx", "identity": "user1", "password": "user1", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection EAP_TLS_NO_CA_CERT created" } EAP-TTLS with CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TTLS_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "EAP_TTLS_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "ttls", "identity": "user1", "password": "user1", "anonymous-identity": "anonNAME", "phase2-autheap": "mschapv2", "phase2-autheap": "md5", "phase2-autheap": "gtc", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TTLS_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "EAP_TTLS_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "ttls", "identity": "user1", "password": "user1", "anonymous-identity": "anonNAME", "phase2-autheap": "mschapv2", "phase2-autheap": "md5", "phase2-autheap": "gtc", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection EAP_TTLS_CA_CERT created" } EAP_TTLS no CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TTLS_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "EAP_TTLS_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "ttls", "identity": "user1", "password": "user1", "anonymous-identity": "anonNAME", "phase2-autheap": "mschapv2", "phase2-autheap": "md5", "phase2-autheap": "gtc", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "EAP_TTLS_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "EAP_TTLS_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "auth-timeout": 0, "eap": "ttls", "identity": "user1", "password": "user1", "anonymous-identity": "anonNAME", "phase2-autheap": "mschapv2", "phase2-autheap": "md5", "phase2-autheap": "gtc", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection EAP_TTLS_NO_CA_CERT created" } PEAP GTC with CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_GTC_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_GTC_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "gtc", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_GTC_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_GTC_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "gtc", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection PEAP_GTC_CA_CERT created" } PEAP GTC with out CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_GTC_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_GTC_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "gtc", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_GTC_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_GTC_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "gtc", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection PEAP_GTC_NO_CA_CERT created" } PEAP-MSCHAPv2 with CA-cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_MSCHAPv2_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_MSCHAPv2_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "mschapv2", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_MSCHAPv2_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_MSCHAPv2_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "mschapv2", "ca-cert": "SystestCA.cer", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection PEAP_MSCHAPv2_CA_CERT created" } PEAP-MSCHAPv2 no CA cert curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_MSCHAPv2_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_MSCHAPv2_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "mschapv2", "client-cert": "None" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "autoconnect": 0, "id": "PEAP_MSCHAPv2_NO_CA_CERT", "interface-name": "wlan0", "type": "802-11-wireless", "uuid": "", "zone": "trusted" }, "802-11-wireless": { "mode": "infrastructure", "ssid": "PEAP_MSCHAPv2_NO_CA_CERT" }, "802-11-wireless-security": { "key-mgmt": "wpa-eap", "proto": "rsn", "pairwise": "ccmp", "proactive-key-caching": 1 }, "802-1x": { "eap": "peap", "identity": "user1", "password": "user1", "phase2-autheap": "mschapv2", "client-cert": "None" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection PEAP_MSCHAPv2_NO_CA_CERT created" } Bridge master Configuration curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "id": "br-master-new", "interface-name": "br0", "type": "bridge", "zone": "internal" }, "bridge": { "interface-name": "br0" }, "ipv4": { "addresses": [ [ "10.0.0.100", 24, "0.0.0.0" ] ], "method": "shared" } }' | jq curl -s --header 'Content-Type: application/json' --request POST https://test.summit.com/connection -b cookie --insecure --data '{ "connection": { "id": "br-master-new", "interface-name": "br0", "type": "bridge", "zone": "internal" }, "bridge": { "interface-name": "br0" }, "ipv4": { "addresses": [ [ "10.0.0.100", 24, "0.0.0.0" ] ], "method": "shared" } }' | jq Copy to clipboard returnted JSON: { "SDCERR": 0, "InfoMsg": "connection br-master-new created" } connections Get all connection profiles curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/connections -b cookie --insecure | jq curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/connections -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "count": 6, "connections": { "03c6798b-d1e8-3155-8aac-efdd8f09180a": { "id": "br-slave-eth0", "activated": 1 }, "a5450ddc-ce22-3172-a295-e01d1354cc88": { "id": "br-slave-usb0", "activated": 0 }, "51afa7a0-27af-418e-ab47-4451c28e486b": { "id": "br-master", "activated": 1 }, "6db04e98-4f3a-3e55-93e9-d6b8140765ce": { "id": "eth1", "activated": 1 }, "bd89b41c-5688-3e79-8353-f7391d8e5ce9": { "id": "br-slave-wlan0", "activated": 1, "type": "ap" }, "f93578c1-d309-4103-8554-fc1982ccda02": { "id": "static-usb0", "activated": 0 } } } datetime Get date, time, and timezones curl -s --location --request GET https://test.summit.com/datetime --header curl -s --location --request GET https://test.summit.com/datetime --header Copy to clipboard 'Content-Type: application/json' -b cookie --insecure | jq { "SDCERR": 0, "InfoMsg": "", "zones": [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis" ], "zone": "America/New_York", "method": "manual", "time": "2021-12-09 11:25:26\n" } Set timezone. curl -s --location --request PUT https://test.summit.com/datetime --header 'Content-Type: application/json' --data '{ "zone": "America/New_York" }' --insecure -b cookie | jq curl -s --location --request PUT https://test.summit.com/datetime --header 'Content-Type: application/json' --data '{ "zone": "America/New_York" }' --insecure -b cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "America/New_York", "time": "2021-12-09 11:32:23\n" } Set empty timezone curl -s --location --request PUT https://test.summit.com/datetime --header 'Content-Type: application/json' --data '{ "zone": "" }' --insecure -b cookie | jq curl -s --location --request PUT https://test.summit.com/datetime --header 'Content-Type: application/json' --data '{ "zone": "" }' --insecure -b cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "America/New_York", "time": "2021-12-09 11:35:10\n" } definitions Definitions shared with front-end curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/definitions -b cookie --insecure | jq curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/definitions -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "Definitions": { "SDCERR": { "SDCERR_SUCCESS": 0, "SDCERR_FAIL": 1, "SDCERR_USER_LOGGED": 2, "SDCERR_USER_BLOCKED": 3, "SDCERR_SESSION_CHECK_FAILED": 4, "SDCERR_FIRMWARE_UPDATING": 5 }, "PERMISSIONS": { "UserPermissionTypes": [ "status_networking", "networking_connections", "networking_edit", "networking_activate", "networking_ap_activate", "networking_delete", "networking_scan", "networking_certs", "logging", "help_version", "system_datetime", "system_swupdate", "system_password", "system_advanced", "system_positioning", "system_reboot", "system_user" ], "UserPermissionAttrs": [ [ "Networking Status", "checked", "disabled" ], [ "View Connections", "checked", "disabled" ], [ "Edit Connection", "", "" ], [ "Activate Connection", "", "" ], [ "Activate AP", "", "" ], [ "Delete Connection", "", "" ], [ "Wifi Scan", "", "" ], [ "Manage Certs", "", "" ], [ "Logging", "", "" ], [ "Version", "checked", "disabled" ], [ "Date & time", "", "" ], [ "Firmware Update", "", "" ], [ "Update Password", "checked", "disabled" ], [ "Advance Setting", "", "" ], [ "Positioning", "", "" ], [ "Reboot", "", "" ], [ "", "", "" ] ] }, "DEVICE_TYPES": { "0": "Unknown", "1": "Ethernet", "2": "Wi-Fi", "5": "Bluetooth", "6": "OLPC", "7": "WiMAX", "8": "Modem", "9": "InfiniBand", "10": "Bond", "11": "VLAN", "12": "ADSL", "13": "Bridge Master", "14": "Generic", "15": "Team Master", "16": "TUN/TAP", "17": "IP Tunnel", "18": "MACVLAN", "19": "VXLAN", "20": "VETH", "21": "MACsec", "22": "dummy", "23": "PPP", "24": "Open vSwitch interface", "25": "Open vSwitch port", "26": "Open vSwitch bridge", "27": "WPAN", "28": "6LoWPAN", "29": "WireGuard", "30": "WiFi P2P", "31": "VRF" }, "DEVICE_STATES": { "0": "Unknown", "10": "Unmanaged", "20": "Unavailable", "30": "Disconnected", "40": "Prepare", "50": "Config", "60": "Need Auth", "70": "IP Config", "80": "IP Check", "90": "Secondaries", "100": "Activated", "110": "Deactivating", "120": "Failed" }, "PLUGINS": [ "status", "networking", "system", "logging", "help" ], "SETTINGS": { "firewalld_disabled": 768, "session_timeout": 10 } } } factoryReset curl -s --location --request PUT https://test.summit.com/factoryReset --header 'Content-Type: application/json' -b cookie --insecure --data-raw '' | jq curl -s --location --request PUT https://test.summit.com/factoryReset --header 'Content-Type: application/json' -b cookie --insecure --data-raw '' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "Reboot required" } file Upload Certificate/PAC file curl -s --request POST https://test.summit.com/file -b cookie --insecure --form type="cert" --form file=@"user2.pem" | jq curl -s --request POST https://test.summit.com/file -b cookie --insecure --form type="cert" --form file=@"user2.pem" | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Delete Certificate/PAC file note the URL, endpoint, and parameters are encased in “‘s due to & character curl -s --request DELETE "https://test.summit.com/file?file=user2.pem&type=cert" -b cookie --insecure curl -s --request DELETE "https://test.summit.com/file?file=user2.pem&type=cert" -b cookie --insecure Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "file user2.pem deleted" } Download encrypted zip file This endpoint returns the data as a stream. Curl can save the stream to a file with the output option --output filename note the URL, endpoint, and parameters are encased in “‘s due to & character config file curl -s --location --request GET "https://test.summit.com/file?type=config&password=test"--header 'Content-Type: application/json' -b cookie --insecure --output config.zip curl -s --location --request GET "https://test.summit.com/file?type=config&password=test"--header 'Content-Type: application/json' -b cookie --insecure --output config.zip Copy to clipboard (the file config.zip is created) no other output debug file curl -s --location --request GET "https://test.summit.com/file?type=debug" --header 'Content-Type: application/json' -b cookie --insecure --output debug.encrypt curl -s --location --request GET "https://test.summit.com/file?type=debug" --header 'Content-Type: application/json' -b cookie --insecure --output debug.encrypt Copy to clipboard (the file debug.zip is created) no other output log file curl -s --location --request GET "https://test.summit.com/file?type=log&password=test" --header 'Content-Type: application/json' -b cookie --insecure --output log.zip curl -s --location --request GET "https://test.summit.com/file?type=log&password=test" --header 'Content-Type: application/json' -b cookie --insecure --output log.zip Copy to clipboard (the file log.zip is created) no other output Upload an encrypted zip file. curl -s --location --request POST https://test.summit.com/file --insecure -b cookie --form type="config" --form file=@"config.zip" --form password="test" | jq curl -s --location --request POST https://test.summit.com/file --insecure -b cookie --form type="config" --form file=@"config.zip" --form password="test" | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } files Get available certificate/PAC files curl -s --location --request GET https://test.summit.com/files?type=pac -b cookie --insecure --data-raw '' |jq curl -s --location --request GET https://test.summit.com/files?type=pac -b cookie --insecure --data-raw '' |jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "pac files", "count": 0, "files": [] } curl -s --location --request GET https://test.summit.com/files?type=cert -b cookie --insecure --data-raw '' |jq curl -s --location --request GET https://test.summit.com/files?type=cert -b cookie --insecure --data-raw '' |jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "cert files", "count": 1, "files": [ "user2.pem" ] } fips Enable/disable fips/fips_wifi. curl -s --location --request PUT https://test.summit.com/fips --header 'Content-Type: application/json' -b cookie --insecure --data '{"fips":"unset"}' | jq curl -s --location --request PUT https://test.summit.com/fips --header 'Content-Type: application/json' -b cookie --insecure --data '{"fips":"unset"}' | jq Copy to clipboard returned JSON: { "SDCERR": 1, "InfoMsg": "Not a FIPS image" } Get status of current fips setting curl -s --location --request GET https://test.summit.com/fips --header 'Content-Type: application/json ' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/fips --header 'Content-Type: application/json ' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "Not a FIPS image", "status": "unset" } firmware Firmware Update - block mode curl -s -S --header 'Content-Type: application/json' --request POST --data '{"image":"main"}' --insecure https://test.summit.com/firmware -b cookie | jq curl -s -S --header 'Content-Type: application/json' --request POST --data '{"image":"main"}' --insecure https://test.summit.com/firmware -b cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Send firmware update block In order to send firmware by block, the linux app split is used to generate the files to be sent to the device: split -b128k -d -a 4 --additional-suffix=.swu-block som60.swu split -b128k -d -a 4 --additional-suffix=.swu-block som60.swu Copy to clipboard Then a for loop is used to pass all the blocks in order: for file in x*.swu-block; do echo -e 'sending: '${file} curl -s -S --request PUT https://test.summit.com/firmware --header 'Content-type: application/octet-stream' -b cookie --insecure --data-binary @${file} done for file in x*.swu-block; do echo -e 'sending: '${file} curl -s -S --request PUT https://test.summit.com/firmware --header 'Content-type: application/octet-stream' -b cookie --insecure --data-binary @${file} done Copy to clipboard no JSON returned Check firmware update finished or not after sending the complete image curl --request GET --insecure https://test.summit.com/firmware?mode=0 -b cookie curl --request GET --insecure https://test.summit.com/firmware?mode=0 -b cookie Copy to clipboard possible returned JSON: update in progress { "SDCERR": 0, "InfoMsg": "Device is busy" } update in progress { "SDCERR": 1, "InfoMsg": "Bootside is not updated\n" } update complete { "SDCERR": 0, "InfoMsg": "Updated" } Cleanup after firmware update curl --request DELETE --insecure https://test.summit.com/firmware -b cookie curl --request DELETE --insecure https://test.summit.com/firmware -b cookie Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Firmware Update - Image pulled by device curl -s --header 'Content-Type: application/json' --request POST --data '{"image":"full", "url":"http://192.168.1.123:8080/som60.swu"}' --insecure https://test.summit.com/firmware -b cookie curl -s --header 'Content-Type: application/json' --request POST --data '{"image":"full", "url":"http://192.168.1.123:8080/som60.swu"}' --insecure https://test.summit.com/firmware -b cookie Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Get firmware update result curl -s --request GET --insecure https://test.summit.com/firmware?mode=1 -b cookie | jq curl -s --request GET --insecure https://test.summit.com/firmware?mode=1 -b cookie | jq Copy to clipboard possible returned JSON: update in progress { "SDCERR": 5, "InfoMsg": "Updating..." } update complete { "SDCERR": 0, "InfoMsg": "Updated" } release resources curl --request DELETE --insecure https://test.summit.com/firmware -b cookie curl --request DELETE --insecure https://test.summit.com/firmware -b cookie Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } logData Query log data based on settings. curl -s --location --request GET "https://test.summit.com/logData?type=All&priority=6&days=-1" --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET "https://test.summit.com/logData?type=All&priority=6&days=-1" --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "type: All; days: -1; Priority: 6", "length": 96, "log": [ { "time": "2021-12-10 15:08:51.825914", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148931.8255] device (wlan0): Activation: starting connection 'br-slave-wlan0' (bd89b41c-5688-3e79-8353-f7391d8e5ce9)" }, { "time": "2021-12-10 15:08:51.855654", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148931.8553] device (wlan0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:52.304292", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148932.3039] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:52.342970", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148932.3426] device (wlan0): Activation: (wifi) access point 'br-slave-wlan0' has security, but secrets are required." }, { "time": "2021-12-10 15:08:52.344317", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148932.3439] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:53.441982", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.4364] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:53.923533", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9231] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:53.933519", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9331] device (wlan0): Activation: (wifi) connection 'br-slave-wlan0' has security, and secrets exist. No new secrets needed." }, { "time": "2021-12-10 15:08:53.935131", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9348] Config: added 'ssid' value 'xxxxxxxx'" }, { "time": "2021-12-10 15:08:53.936419", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9361] Config: added 'mode' value '2'" }, { "time": "2021-12-10 15:08:53.937687", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9373] Config: added 'wps_disabled' value '1'" }, { "time": "2021-12-10 15:08:53.939002", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9386] Config: added 'ignore_broadcast_ssid' value '1'" }, { "time": "2021-12-10 15:08:53.941220", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9399] Config: added 'frequency' value '5180'" }, { "time": "2021-12-10 15:08:53.942063", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9403] Config: added 'freq_list' value '5180'" }, { "time": "2021-12-10 15:08:53.955650", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9406] Config: added 'scan_freq' value '5180'" }, { "time": "2021-12-10 15:08:53.956536", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9512] Config: added 'ht40' value '1'" }, { "time": "2021-12-10 15:08:53.957304", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9516] Config: added 'vht_center_freq1' value '5210'" }, { "time": "2021-12-10 15:08:53.958054", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9519] Config: added 'vht' value '1'" }, { "time": "2021-12-10 15:08:53.958794", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9522] Config: added 'max_oper_chwidth' value '1'" }, { "time": "2021-12-10 15:08:53.959606", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9526] Config: added 'key_mgmt' value 'WPA-PSK'" }, { "time": "2021-12-10 15:08:53.960358", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9529] Config: added 'psk' value '<hidden>'" }, { "time": "2021-12-10 15:08:53.971413", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9533] Config: added 'proto' value 'RSN'" }, { "time": "2021-12-10 15:08:53.972256", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9536] Config: added 'pairwise' value 'CCMP'" }, { "time": "2021-12-10 15:08:53.973086", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9539] Config: added 'group' value 'CCMP'" }, { "time": "2021-12-10 15:08:53.973839", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148933.9542] Config: added 'ieee80211w' value '0'" }, { "time": "2021-12-10 15:08:54.010962", "priority": "4", "identifier": "NetworkManager", "message": "<warn> [1639148934.0068] sup-iface[ed695269395d0a0a,0,wlan0]: set bridge \"br0\" result: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Property is read-only" }, { "time": "2021-12-10 15:08:54.291003", "priority": "6", "identifier": "kernel", "message": "IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready" }, { "time": "2021-12-10 15:08:54.341638", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148934.3412] device (wlan0): supplicant interface state: disconnected -> scanning" }, { "time": "2021-12-10 15:08:54.343561", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148934.3427] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning" }, { "time": "2021-12-10 15:08:54.633813", "priority": "6", "identifier": "python", "message": "[10/Dec/2021:15:08:54] weblcm_bluetooth: HidBarcodeScannerPlugin loaded" }, { "time": "2021-12-10 15:08:54.654419", "priority": "6", "identifier": "python", "message": "[10/Dec/2021:15:08:54] weblcm_bluetooth: VspConnectionPlugin loaded" }, { "time": "2021-12-10 15:08:54.660001", "priority": "6", "identifier": "python", "message": "[10/Dec/2021:15:08:54] __main__: Bluetooth loaded" }, { "time": "2021-12-10 15:08:56.712099", "priority": "6", "identifier": "systemd", "message": "NetworkManager-dispatcher.service: Succeeded." }, { "time": "2021-12-10 15:08:59.747273", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148939.7469] device (wlan0): supplicant interface state: scanning -> disconnected" }, { "time": "2021-12-10 15:08:59.756070", "priority": "4", "identifier": "NetworkManager", "message": "<warn> [1639148939.7504] device (wlan0): Disconnected by supplicant" }, { "time": "2021-12-10 15:08:59.756901", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148939.7507] device (wlan0): state change: config -> disconnected (reason 'supplicant-disconnect', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:08:59.770413", "priority": "6", "identifier": "kernel", "message": "IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready" }, { "time": "2021-12-10 15:08:59.808444", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148939.8081] device (wlan0): released from master device br0" }, { "time": "2021-12-10 15:08:59.837712", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148939.8373] device (p2p-dev-wlan0): supplicant management interface state: scanning -> disconnected" }, { "time": "2021-12-10 15:09:00.150390", "priority": "6", "identifier": "kernel", "message": "IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready" }, { "time": "2021-12-10 15:09:00.573826", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148940.5734] manager: startup complete" }, { "time": "2021-12-10 15:09:00.993604", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148940.9926] policy: auto-activating connection 'br-slave-wlan0' (bd89b41c-5688-3e79-8353-f7391d8e5ce9)" }, { "time": "2021-12-10 15:09:01.041760", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.0414] device (wlan0): Activation: starting connection 'br-slave-wlan0' (bd89b41c-5688-3e79-8353-f7391d8e5ce9)" }, { "time": "2021-12-10 15:09:01.061070", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.0607] device (wlan0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:01.451229", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.4509] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:01.461875", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.4615] device (wlan0): Activation: (wifi) access point 'br-slave-wlan0' has security, but secrets are required." }, { "time": "2021-12-10 15:09:01.463182", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.4628] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:01.556858", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.5565] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:01.605715", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6053] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:01.616156", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6158] device (wlan0): Activation: (wifi) connection 'br-slave-wlan0' has security, and secrets exist. No new secrets needed." }, { "time": "2021-12-10 15:09:01.617531", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6172] Config: added 'ssid' value 'xxxxxxxx'" }, { "time": "2021-12-10 15:09:01.618770", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6184] Config: added 'mode' value '2'" }, { "time": "2021-12-10 15:09:01.619995", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6197] Config: added 'wps_disabled' value '1'" }, { "time": "2021-12-10 15:09:01.626586", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6214] Config: added 'ignore_broadcast_ssid' value '1'" }, { "time": "2021-12-10 15:09:01.627452", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6217] Config: added 'frequency' value '5180'" }, { "time": "2021-12-10 15:09:01.628207", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6220] Config: added 'freq_list' value '5180'" }, { "time": "2021-12-10 15:09:01.628949", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6223] Config: added 'scan_freq' value '5180'" }, { "time": "2021-12-10 15:09:01.629737", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6226] Config: added 'ht40' value '1'" }, { "time": "2021-12-10 15:09:01.630616", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6229] Config: added 'vht_center_freq1' value '5210'" }, { "time": "2021-12-10 15:09:01.631371", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6231] Config: added 'vht' value '1'" }, { "time": "2021-12-10 15:09:01.632104", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6234] Config: added 'max_oper_chwidth' value '1'" }, { "time": "2021-12-10 15:09:01.632900", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6237] Config: added 'key_mgmt' value 'WPA-PSK'" }, { "time": "2021-12-10 15:09:01.633649", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6240] Config: added 'psk' value '<hidden>'" }, { "time": "2021-12-10 15:09:01.634382", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6243] Config: added 'proto' value 'RSN'" }, { "time": "2021-12-10 15:09:01.635115", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6246] Config: added 'pairwise' value 'CCMP'" }, { "time": "2021-12-10 15:09:01.635850", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6249] Config: added 'group' value 'CCMP'" }, { "time": "2021-12-10 15:09:01.636634", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148941.6252] Config: added 'ieee80211w' value '0'" }, { "time": "2021-12-10 15:09:01.674882", "priority": "4", "identifier": "NetworkManager", "message": "<warn> [1639148941.6734] sup-iface[ed695269395d0a0a,0,wlan0]: set bridge \"br0\" result: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Property is read-only" }, { "time": "2021-12-10 15:09:02.090410", "priority": "6", "identifier": "kernel", "message": "IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready" }, { "time": "2021-12-10 15:09:02.127572", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148942.1272] device (wlan0): supplicant interface state: disconnected -> scanning" }, { "time": "2021-12-10 15:09:02.131957", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148942.1304] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning" }, { "time": "2021-12-10 15:09:04.370543", "priority": "6", "identifier": "kernel", "message": "IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready" }, { "time": "2021-12-10 15:09:04.667434", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.6669] device (wlan0): supplicant interface state: scanning -> completed" }, { "time": "2021-12-10 15:09:04.690884", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.6905] device (wlan0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Started Wi-Fi Hotspot \"xxxxxxxx\"" }, { "time": "2021-12-10 15:09:04.692309", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.6919] device (p2p-dev-wlan0): supplicant management interface state: scanning -> completed" }, { "time": "2021-12-10 15:09:04.698687", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.6983] device (wlan0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:04.730390", "priority": "6", "identifier": "kernel", "message": "br0: port 2(wlan0) entered blocking state" }, { "time": "2021-12-10 15:09:04.730870", "priority": "6", "identifier": "kernel", "message": "br0: port 2(wlan0) entered disabled state" }, { "time": "2021-12-10 15:09:04.731234", "priority": "6", "identifier": "kernel", "message": "device wlan0 entered promiscuous mode" }, { "time": "2021-12-10 15:09:04.740402", "priority": "6", "identifier": "kernel", "message": "br0: port 2(wlan0) entered blocking state" }, { "time": "2021-12-10 15:09:04.740874", "priority": "6", "identifier": "kernel", "message": "br0: port 2(wlan0) entered forwarding state" }, { "time": "2021-12-10 15:09:04.762561", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.7622] device (br0): attached bridge port wlan0" }, { "time": "2021-12-10 15:09:04.763954", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.7636] device (wlan0): Activation: connection 'br-slave-wlan0' enslaved, continuing activation" }, { "time": "2021-12-10 15:09:04.778748", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148944.7784] device (wlan0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:04.861730", "priority": "6", "identifier": "dbus-daemon", "message": "[system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1.6' (uid=0 pid=203 comm=\"/usr/sbin/NetworkManager --no-daemon --config-dir=\")" }, { "time": "2021-12-10 15:09:04.971910", "priority": "6", "identifier": "systemd", "message": "Starting Network Manager Script Dispatcher Service..." }, { "time": "2021-12-10 15:09:05.274460", "priority": "6", "identifier": "dbus-daemon", "message": "[system] Successfully activated service 'org.freedesktop.nm_dispatcher'" }, { "time": "2021-12-10 15:09:05.290388", "priority": "6", "identifier": "systemd", "message": "Started Network Manager Script Dispatcher Service." }, { "time": "2021-12-10 15:09:05.322426", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148945.3216] device (wlan0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:05.327194", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148945.3268] device (wlan0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')" }, { "time": "2021-12-10 15:09:05.392171", "priority": "6", "identifier": "NetworkManager", "message": "<info> [1639148945.3918] device (wlan0): Activation: successful, device activated." }, { "time": "2021-12-10 15:09:08.245921", "priority": "6", "identifier": "/weblcm-python", "message": "Attempt to login user root" }, { "time": "2021-12-10 15:09:10.745756", "priority": "6", "identifier": "systemd", "message": "systemd-hostnamed.service: Succeeded." }, { "time": "2021-12-10 15:09:15.681389", "priority": "6", "identifier": "systemd", "message": "NetworkManager-dispatcher.service: Succeeded." }, { "time": "2021-12-10 15:09:19.405878", "priority": "6", "identifier": "/weblcm-python", "message": "Attempt to login user root" }, { "time": "2021-12-10 15:09:19.414975", "priority": "6", "identifier": "/weblcm-python", "message": "user root logged in" } ] } login user login curl -s --header 'Content-Type: application/json' --request POST --data '{"username":"root","password":"xxxxxxxx"}' --insecure https://test.summit.com/login -c cookie | jq curl -s --header 'Content-Type: application/json' --request POST --data '{"username":"root","password":"xxxxxxxx"}' --insecure https://test.summit.com/login -c cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "REDIRECT": 0, "PERMISSION": "status_networking networking_connections networking_edit networking_activate networking_ap_activate networking_delete networking_scan networking_certs logging help_version system_datetime system_swupdate system_password system_advanced system_positioning system_reboot ", "InfoMsg": "User logged in" } logout user curl -s --header 'Content-Type: application/json' --request DELETE --insecure https://test.summit.com/login -b cookie | jq curl -s --header 'Content-Type: application/json' --request DELETE --insecure https://test.summit.com/login -b cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "user root logged out" } logSetting Set log level for supplicant and driver curl -s --location --request POST https://test.summit.com/logSetting --header 'Content-Type: application/json' -b cookie --insecure --data '{"suppDebugLevel":"debug", "driverDebugLevel":"1"}' | jq curl -s --location --request POST https://test.summit.com/logSetting --header 'Content-Type: application/json' -b cookie --insecure --data '{"suppDebugLevel":"debug", "driverDebugLevel":"1"}' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Get log level for supplicant and driver curl -s --location --request GET https://test.summit.com/logSetting --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/logSetting --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "suppDebugLevel": "debug", "driverDebugLevel": "1" } networkInterfaces Get available network interfaces curl -s --location --request GET https://test.summit.com/networkInterfaces -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/networkInterfaces -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "interfaces": [ "eth0", "eth1", "usb0", "wlan0", "wlan1", "br0", "p2p-dev-wlan0", "p2p-dev-wlan1" ] } networkStatus Get network status curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/networkStatus -b cookie --insecure | jq curl -s --header 'Content-Type: application/json' --request GET https://test.summit.com/networkStatus -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "status": { "eth0": { "status": { "State": 100, "StateText": "Activated", "Mtu": 1500, "DeviceType": 1, "DeviceTypeText": "Ethernet" }, "connection_active": { "id": "br-slave-eth0", "interface-name": "eth0", "master": "br0", "permissions": [], "slave-type": "bridge", "timestamp": 1639150420, "type": "802-3-ethernet", "uuid": "03c6798b-d1e8-3155-8aac-efdd8f09180a" }, "ip4config": { "Addresses": {}, "Routes": {}, "Gateway": "", "Domains": {} }, "ip6config": { "Addresses": {}, "Routes": {}, "Gateway": "", "Domains": {} }, "wired": { "HwAddress": "C0:EE:40:29:BA:54", "PermHwAddress": "C0:EE:40:29:BA:54", "Speed": 100, "Carrier": true } }, "eth1": { "status": { "State": 100, "StateText": "Activated", "Mtu": 1500, "DeviceType": 1, "DeviceTypeText": "Ethernet" }, "connection_active": { "id": "eth1", "interface-name": "eth1", "permissions": [], "timestamp": 1639150420, "type": "802-3-ethernet", "uuid": "6db04e98-4f3a-3e55-93e9-d6b8140765ce", "zone": "external" }, "ip4config": { "Addresses": { "0": "192.168.1.227/24" }, "Routes": { "0": "192.168.1.0/24 metric 100" }, "Gateway": "192.168.1.1", "Domains": { "0": "localdomain" } }, "ip6config": { "Addresses": { "0": "fe80::db22:26e7:e08e:8a73/64" }, "Routes": { "0": "fe80::/64 metric 100" }, "Gateway": "", "Domains": {} }, "wired": { "HwAddress": "C0:EE:40:29:BA:53", "PermHwAddress": "C0:EE:40:29:BA:53", "Speed": 100, "Carrier": true } }, "usb0": { "status": { "State": 20, "StateText": "Unavailable", "Mtu": 1500, "DeviceType": 1, "DeviceTypeText": "Ethernet" }, "wired": { "HwAddress": "DE:AD:BE:EF:00:00", "PermHwAddress": "", "Speed": 0, "Carrier": false } }, "wlan0": { "status": { "State": 100, "StateText": "Activated", "Mtu": 1500, "DeviceType": 2, "DeviceTypeText": "Wi-Fi" }, "connection_active": { "id": "br-slave-wlan0", "interface-name": "wlan0", "master": "br0", "permissions": [], "slave-type": "bridge", "timestamp": 1639150420, "type": "802-11-wireless", "uuid": "bd89b41c-5688-3e79-8353-f7391d8e5ce9" }, "ip4config": { "Addresses": {}, "Routes": {}, "Gateway": "", "Domains": {} }, "ip6config": { "Addresses": {}, "Routes": {}, "Gateway": "", "Domains": {} }, "wireless": { "Bitrate": 0, "HwAddress": "C0:EE:40:43:7D:C0", "PermHwAddress": "C0:EE:40:43:7D:C0", "Mode": 3, "LastScan": 56349, "RegDomain": "US" }, "activeaccesspoint": { "Ssid": "xxxxxxxx", "HwAddress": "C0:EE:40:43:7D:C0", "Maxbitrate": 0, "Flags": 1, "Wpaflags": 0, "Rsnflags": 392, "Strength": 100, "Frequency": "5180" } }, "wlan1": { "status": { "State": 30, "StateText": "Disconnected", "Mtu": 1500, "DeviceType": 2, "DeviceTypeText": "Wi-Fi" }, "wireless": { "Bitrate": 0, "HwAddress": "C0:EE:40:43:7D:C1", "PermHwAddress": "C0:EE:40:43:7D:C1", "Mode": 2, "LastScan": 1541075, "RegDomain": "US" } }, "br0": { "status": { "State": 100, "StateText": "Activated", "Mtu": 1500, "DeviceType": 13, "DeviceTypeText": "Bridge Master" }, "connection_active": { "id": "br-master", "interface-name": "br0", "permissions": [], "timestamp": 1639150420, "type": "bridge", "uuid": "51afa7a0-27af-418e-ab47-4451c28e486b", "zone": "internal" }, "ip4config": { "Addresses": { "0": "172.16.54.100/24" }, "Routes": { "0": "172.16.54.0/24 metric 425" }, "Gateway": "", "Domains": {} }, "ip6config": { "Addresses": { "0": "fe80::bc57:47a8:a6bd:9601/64" }, "Routes": { "0": "fe80::/64 metric 425" }, "Gateway": "", "Domains": {} } }, "p2p-dev-wlan0": { "status": { "State": 30, "StateText": "Disconnected", "Mtu": 0, "DeviceType": 30, "DeviceTypeText": "WiFi P2P" } }, "p2p-dev-wlan1": { "status": { "State": 30, "StateText": "Disconnected", "Mtu": 0, "DeviceType": 30, "DeviceTypeText": "WiFi P2P" } } }, "devices": 8 } positioning Set token to access positioning assist server todo Get location todo positioningSwitch Enable/disable Celllocate and GPS (exclusive). todo Get status of location switch todo reboot Perform a system reboot curl -s --location --request PUT https://test.summit.com/reboot --header 'Content-Type: application/json' -b cookie --insecure --data-raw '' curl -s --location --request PUT https://test.summit.com/reboot --header 'Content-Type: application/json' -b cookie --insecure --data-raw '' Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "Reboot initiated" } users Get user list curl -s --location --request GET https://test.summit.com/users --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/users --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "only non-default users listed under 'Users'", "Default_user": "root", "Users": {}, "Count": 0 } Add a user curl -s --location --request POST https://test.summit.com/users --header 'Content-Type: application/json' -b cookie --insecure --data '{"username":"test", "password":"12345678", "permission":"status_networking networking_connections networking_edit networking_activate networking_ap_activate networking_delete networking_scan networking_certs logging help_version system_datetime system_swupdate system_password system_advanced system_positioning system_reboot "}' | jq curl -s --location --request POST https://test.summit.com/users --header 'Content-Type: application/json' -b cookie --insecure --data '{"username":"test", "password":"12345678", "permission":"status_networking networking_connections networking_edit networking_activate networking_ap_activate networking_delete networking_scan networking_certs logging help_version system_datetime system_swupdate system_password system_advanced system_positioning system_reboot "}' | jq Copy to clipboard returned JSON: { "SDCERR": 1, "InfoMsg": "Max number of users reached" } Delete a user curl -s --location --request DELETE https://test.summit.com/users?username=test --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request DELETE https://test.summit.com/users?username=test --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 1, "InfoMsg": "user test not found" } Update a password curl -s --header 'Content-Type: application/json' --request PUT --data '{"username":"root","current_password":"oldpassword","new_password":"newpassword"}' --insecure https://test.summit.com/users -b cookie | jq curl -s --header 'Content-Type: application/json' --request PUT --data '{"username":"root","current_password":"oldpassword","new_password":"newpassword"}' --insecure https://test.summit.com/users -b cookie | jq Copy to clipboard returned JSON: { "SDCERR": 0, "REDIRECT": 1, "InfoMsg": "password changed" } version Get version information curl -s --header 'Content-Type: application/json' --location --request GET https://test.summit.com/version -b cookie --insecure | jq curl -s --header 'Content-Type: application/json' --location --request GET https://test.summit.com/version -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "nm_version": "9.15.0.13-1.32.4", "weblcm_python_webapp": "1.0.0.2", "build": "Summit Linux ngpvsd_dvk-laird-7.625.0.17", "supplicant": "sdcsupp v9.15.0.13-40.3.16.26", "radio_stack": "9.15.0.13", "driver": "lrdmwl_sdio", "kernel_vermagic": "4.19.203" } bluetooth Get controller(s) state filter requires at least entry. Separate multiple with commas curl -s --location --request GET https://test.summit.com/bluetooth?filter=bluetoothDevices,discoverable,powered,discovering --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/bluetooth?filter=bluetoothDevices,discoverable,powered,discovering --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "controller0": { "bluetoothDevices": [], "discovering": 0, "powered": 0, "discoverable": 0 } } bluetooth/controller[n] Get bluetooth state of first controller and discovered devices. filter requires at least entry. Separate multiple with commas curl -s --location --request GET https://test.summit.com/bluetooth/controller0?filter=bluetoothDevices,powered,discoverable,discovering --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/bluetooth/controller0?filter=bluetoothDevices,powered,discoverable,discovering --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "controller0": { "bluetoothDevices": [], "discovering": 0, "powered": 0, "discoverable": 0 } } Set controller state power off curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{"powered": 0, "discovering": 0, "discoverable": 0}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{"powered": 0, "discovering": 0, "discoverable": 0}' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } scan curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{"powered": 1, "discovering": 1, "discoverable": 1}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{"powered": 1, "discovering": 1, "discoverable": 1}' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } get state curl -s --location --request GET 'https://test.summit.com/bluetooth/controller0?filter=powered,discovering,discoverable' --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET 'https://test.summit.com/bluetooth/controller0?filter=powered,discovering,discoverable' --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "controller0": { "discovering": 1, "powered": 1, "discoverable": 1 } } scan results curl -s --location --request GET 'https://test.summit.com/bluetooth/controller0?filter=bluetoothDevices' -b cookie --insecure | jq curl -s --location --request GET 'https://test.summit.com/bluetooth/controller0?filter=bluetoothDevices' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "controller0": { "bluetoothDevices": [ { "Address": "C0:EE:40:43:B1:A7", "AddressType": "public", "Name": "Laird DVK SOM60x2 (43:B1:A4)", "Alias": "Laird DVK SOM60x2 (43:B1:A4)", "Paired": 1, "Trusted": 1, "Blocked": 0, "LegacyPairing": 0, "Connected": 0, "UUIDs": [ "00001800-0000-1000-8000-00805f9b34fb", "00001801-0000-1000-8000-00805f9b34fb", "0000180a-0000-1000-8000-00805f9b34fb", "be98076e-8e8d-11e8-9eb6-529269fb1459" ], "Modalias": "usb:v1D6Bp0246d0537", "Adapter": "/org/bluez/hci0", "ServicesResolved": 0 }, { "Address": "E0:13:7D:9D:2E:45", "AddressType": "random", "Name": "Nordic_UART_Service", "Alias": "Nordic_UART_Service", "Appearance": 833, "Paired": 0, "Trusted": 0, "Blocked": 0, "LegacyPairing": 0, "RSSI": -58, "Connected": 0, "UUIDs": [ "00001800-0000-1000-8000-00805f9b34fb", "00001801-0000-1000-8000-00805f9b34fb", "6e400001-b5a3-f393-e0a9-e50e24dcca9e" ], "Adapter": "/org/bluez/hci0", "ServicesResolved": 0 } ] } } bluetooth/controller[n]/device[device_address] connect to device curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 1}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 1}' | jq Copy to clipboard returned JSON: { "SDCERR": 0 "InfoMsg": "" } read Bluetooth state curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "Address": "E0:13:7D:9D:2E:45", "AddressType": "random", "Name": "Nordic_UART_Service", "Alias": "Nordic_UART_Service", "Appearance": 833, "Paired": 0, "Trusted": 0, "Blocked": 0, "LegacyPairing": 0, "**Connected**": 1, "UUIDs": [ "00001800-0000-1000-8000-00805f9b34fb", "00001801-0000-1000-8000-00805f9b34fb", "6e400001-b5a3-f393-e0a9-e50e24dcca9e" ], "Adapter": "/org/bluez/hci0", "ServicesResolved": 0 } get connection information curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "getConnInfo" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "getConnInfo" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "rssi": -40, "tx_power": 10, "max_tx_power": 12 } open vsp port port is 1001 curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattConnect", "tcpPort": "1001", "vspSvcUuid": "6e400001-b5a3-f393-e0a9-e50e24dcca9e", "vspReadChrUuid": "6e400003-b5a3-f393-e0a9-e50e24dcca9e", "vspWriteChrUuid": "6e400002-b5a3-f393-e0a9-e50e24dcca9e", "socketRxType": "JSON" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattConnect", "tcpPort": "1001", "vspSvcUuid": "6e400001-b5a3-f393-e0a9-e50e24dcca9e", "vspReadChrUuid": "6e400003-b5a3-f393-e0a9-e50e24dcca9e", "vspWriteChrUuid": "6e400002-b5a3-f393-e0a9-e50e24dcca9e", "socketRxType": "JSON" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "GattConnections": [ { "device": "E0:13:7D:9D:2E:45", "port": 1001 } ] } close vsp port curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattDisconnect" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattDisconnect" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } check VSP service ports: curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattDisconnect" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "gattDisconnect" }' | jq Copy to clipboard returned JSON { "SDCERR": 0, "InfoMsg": "", "GattConnections": [] } bluetooth disconnect curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 0}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 0}' | jq Copy to clipboard returned JSON: { "SDCERR": 0 "InfoMsg": "" } read Bluetoothstate curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "Address": "E0:13:7D:9D:2E:45", "AddressType": "random", "Name": "Nordic_UART_Service", "Alias": "Nordic_UART_Service", "Appearance": 833, "Paired": 0, "Trusted": 0, "Blocked": 0, "LegacyPairing": 0, "**Connected**": 0, "UUIDs": [ "00001800-0000-1000-8000-00805f9b34fb", "00001801-0000-1000-8000-00805f9b34fb", "6e400001-b5a3-f393-e0a9-e50e24dcca9e" ], "Adapter": "/org/bluez/hci0", "ServicesResolved": 0 } hid connect Bluetooth connect curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 1}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"connected": 1}' | jq Copy to clipboard returned JSON: { "SDCERR": 0 "InfoMsg": "" } read Bluetooth state curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "Address": "00:07:BE:33:80:AB", "AddressType": "random", "Name": "Datalogic Gryphon GBT4500", "Alias": "Datalogic Gryphon GBT4500", "Appearance": 962, "Icon": "input-keyboard", "Paired": 1, "Trusted": 0, "Blocked": 0, "LegacyPairing": 0, "RSSI": -67, "**Connected**": 1, "UUIDs": [ ], "Modalias": "usb:v1915pEEEEd0001", "Adapter": "/org/bluez/hci0", "ServicesResolved": 1, "WakeAllowed": 1 } open vsp port 1001 curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "hidConnect", "tcpPort": "1001" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "hidConnect", "tcpPort": "1001" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } check HID service ports curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "hidList" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "hidList" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "00:07:BE:33:80:AB", "HidConnections": [ { "device": "", "port": 1001 } ] } use nc to see tcp output. Scan a barcode and confirm results: nc test.summit.com 1001 {"Received": {"Barcode": "ABCDEF"}} {"Received": {"Barcode": "Code 128"}} {"Connected": 0} ble start server curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStartServer", "tcpPort": "1001" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStartServer", "tcpPort": "1001" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } use nc to see tcp output. Listen on port: nc test.summit.com 1001 { "connect":{ "address":"E0:13:7D:9D:2E:45", "connected":true, "services":{ "00001801-0000-1000-8000-00805f9b34fb":{ "characteristics":[ { "00002b2a-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read" ] } }, { "00002b29-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read", "write"{ "connect":{ "address":"E0:13:7D:9D:2E:45", "connected":true, "services":{ "00001801-0000-1000-8000-00805f9b34fb":{ "characteristics":[ { "00002b2a-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read" ] } }, { "00002b29-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read", "write" ] } }, { "00002a05-0000-1000-8000-00805f9b34fb":{ "Flags":[ "indicate" ] } } ] }, "6e400001-b5a3-f393-e0a9-e50e24dcca9e":{ "characteristics":[ { "6e400002-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "write-without-response", "write" ] } }, { "6e400003-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "notify" ] } } ] } }, "timestamp":1637677328 } } { "char":{ "char_uuid":"6e400003-b5a3-f393-e0a9-e50e24dcca9e", "value":"616f65750d", "service_uuid":"6e400001-b5a3-f393-e0a9-e50e24dcca9e", "address":"E0:13:7D:9D:2E:45", "timestamp":1637677879 } } ] } }, { "00002a05-0000-1000-8000-00805f9b34fb":{ "Flags":[ "indicate" ] } } ] }, "6e400001-b5a3-f393-e0a9-e50e24dcca9e":{ "characteristics":[ { "6e400002-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "write-without-response", "write" ] } }, { "6e400003-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "notify" ] } } ] } }, "timestamp":1637677328 } } { "char":{ "char_uuid":"6e400003-b5a3-f393-e0a9-e50e24dcca9e", "value":"616f65750d", "service_uuid":"6e400001-b5a3-f393-e0a9-e50e24dcca9e", "address":"E0:13:7D:9D:2E:45", "timestamp":1637677879 } } check BLE server status and port curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleServerStatus" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleServerStatus" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "00:07:BE:33:80:AB", "started": true, "port": 1234 } ble enable websockets curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleEnableWebsockets" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleEnableWebsockets" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } use curl to see notifications. Listen: (must replace all instances of test.summit.com with target’s address) curl --include --header "Connection: Upgrade" --header "Upgrade: websocket" --header "Host: test.summit.com" --header "Origin: http://test.summit.com/bluetoothWebsocket/ws" --header "Sec-WebSocket-Key: 1243SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" --request GET https://test.summit.com/bluetoothWebsocket/ws --insecure -b cookie --output - curl --include --header "Connection: Upgrade" --header "Upgrade: websocket" --header "Host: test.summit.com" --header "Origin: http://test.summit.com/bluetoothWebsocket/ws" --header "Sec-WebSocket-Key: 1243SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" --request GET https://test.summit.com/bluetoothWebsocket/ws --insecure -b cookie --output - Copy to clipboard returned WebSockets-wrapped JSON: { "connect":{ "address":"E0:13:7D:9D:2E:45", "connected":true, "services":{ "00001801-0000-1000-8000-00805f9b34fb":{ "characteristics":[ { "00002b2a-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read" ] } }, { "00002b29-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read", "write"{ "connect":{ "address":"E0:13:7D:9D:2E:45", "connected":true, "services":{ "00001801-0000-1000-8000-00805f9b34fb":{ "characteristics":[ { "00002b2a-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read" ] } }, { "00002b29-0000-1000-8000-00805f9b34fb":{ "Flags":[ "read", "write" ] } }, { "00002a05-0000-1000-8000-00805f9b34fb":{ "Flags":[ "indicate" ] } } ] }, "6e400001-b5a3-f393-e0a9-e50e24dcca9e":{ "characteristics":[ { "6e400002-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "write-without-response", "write" ] } }, { "6e400003-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "notify" ] } } ] } }, "timestamp":1637677328 } } { "char":{ "char_uuid":"6e400003-b5a3-f393-e0a9-e50e24dcca9e", "value":"616f65750d", "service_uuid":"6e400001-b5a3-f393-e0a9-e50e24dcca9e", "address":"E0:13:7D:9D:2E:45", "timestamp":1637677879 } } ] } }, { "00002a05-0000-1000-8000-00805f9b34fb":{ "Flags":[ "indicate" ] } } ] }, "6e400001-b5a3-f393-e0a9-e50e24dcca9e":{ "characteristics":[ { "6e400002-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "write-without-response", "write" ] } }, { "6e400003-b5a3-f393-e0a9-e50e24dcca9e":{ "Flags":[ "notify" ] } } ] } }, "timestamp":1637677328 } } { "char":{ "char_uuid":"6e400003-b5a3-f393-e0a9-e50e24dcca9e", "value":"616f65750d", "service_uuid":"6e400001-b5a3-f393-e0a9-e50e24dcca9e", "address":"E0:13:7D:9D:2E:45", "timestamp":1637677879 } } ble start discovery curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStartDiscovery" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStartDiscovery" }' | jq Copy to clipboard Discovery notification events will be received over the connection previously established by bluetooth_ble_connect, for example: Example data received { "discovery":{ "Address":"C4:93:D9:2E:C7:B0", "Alias":"Erik's Galaxy Note9", "Class":5898764, "Icon":"phone", "Name":"Erik's Galaxy Note9", "RSSI":-69, "UUIDs":[ "00001105-0000-1000-8000-00805f9b34fb", "0000110a-0000-1000-8000-00805f9b34fb", "0000110c-0000-1000-8000-00805f9b34fb", "0000110e-0000-1000-8000-00805f9b34fb", "00001112-0000-1000-8000-00805f9b34fb", "00001115-0000-1000-8000-00805f9b34fb", "00001116-0000-1000-8000-00805f9b34fb", "0000111f-0000-1000-8000-00805f9b34fb", "0000112f-0000-1000-8000-00805f9b34fb", "00001200-0000-1000-8000-00805f9b34fb", "00001132-0000-1000-8000-00805f9b34fb" ], "timestamp":1637711953 } } ble stop discovery curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStopDiscovery" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleStopDiscovery" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } ble connect curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"command": "bleConnect"}' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{"command": "bleConnect"}' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } read Bluetooth state: curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure| jq curl -s --location --request GET https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure| jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "", "Address": "E0:13:7D:9D:2E:45", "AddressType": "random", "Name": "Nordic_UART_Service", "Alias": "Nordic_UART_Service", "Appearance": 833, "Paired": 0, "Trusted": 1, "Blocked": 0, "LegacyPairing": 0, "Connected": 1, "UUIDs": [ "00001800-0000-1000-8000-00805f9b34fb", "00001801-0000-1000-8000-00805f9b34fb", "6e400001-b5a3-f393-e0a9-e50e24dcca9e" ], "Adapter": "/org/bluez/hci0", "ServicesResolved": 1 } ble gatt notify curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "notify", "enable": "True", "svcUuid": "6e400001-b5a3-f393-e0a9-e50e24dcca9e", "chrUuid": "6e400003-b5a3-f393-e0a9-e50e24dcca9e" }'| jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/E0:13:7D:9D:2E:45 --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "notify", "enable": "True", "svcUuid": "6e400001-b5a3-f393-e0a9-e50e24dcca9e", "chrUuid": "6e400003-b5a3-f393-e0a9-e50e24dcca9e" }'| jq Copy to clipboard Characteristic notification events will be received over the connection previously established by bluetooth_ble_connect, for example: { "char":{ "char_uuid":"6e400003-b5a3-f393-e0a9-e50e24dcca9e", "value":"0d", "service_uuid":"6e400001-b5a3-f393-e0a9-e50e24dcca9e", "address":"E0:13:7D:9D:2E:45", "timestamp":1637709735 } } bluetooth GATT read curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "read", "svcUuid": "0000180d-0000-1000-8000-00805f9b34fb", "chrUuid": "00002a38-0000-1000-8000-00805f9b34fb" }'| jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "read", "svcUuid": "0000180d-0000-1000-8000-00805f9b34fb", "chrUuid": "00002a38-0000-1000-8000-00805f9b34fb" }'| jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Read notification events will be received over the connection previously established by bluetooth_ble_connect, for example: { "char":{ "char_uuid":"00002a38-0000-1000-8000-00805f9b34fb", "value":"01", "service_uuid":"0000180d-0000-1000-8000-00805f9b34fb", "address":"C0:EE:40:50:17:6B", "timestamp":1637782343 } } ble gatt write curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "write", "value": "0001020304", "svcUuid": "12345678-1234-5678-1234-56789abcdef0", "chrUuid": "12345678-1234-5678-1234-56789abcdef1" }'| jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "write", "value": "0001020304", "svcUuid": "12345678-1234-5678-1234-56789abcdef0", "chrUuid": "12345678-1234-5678-1234-56789abcdef1" }'| jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } ble gatt notify curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "notify", "enable": "True", "svcUuid": "0000180d-0000-1000-8000-00805f9b34fb", "chrUuid": "00002a37-0000-1000-8000-00805f9b34fb" }' | jq curl -s --location --request PUT https://test.summit.com/bluetooth/controller0/C0:EE:40:50:17:6B --header 'Content-Type: application/json' -b cookie --insecure --data '{ "command": "bleGatt", "operation": "notify", "enable": "True", "svcUuid": "0000180d-0000-1000-8000-00805f9b34fb", "chrUuid": "00002a37-0000-1000-8000-00805f9b34fb" }' | jq Copy to clipboard returned JSON: { "SDCERR": 0, "InfoMsg": "" } Notification events will be received over the connection previously established by bluetooth_ble_connect, for example: { "char":{ "char_uuid":"00002a37-0000-1000-8000-00805f9b34fb", "value":"067f", "service_uuid":"0000180d-0000-1000-8000-00805f9b34fb", "address":"C0:EE:40:50:17:6B", "timestamp":1637783561 } } Appendix What is cURL? See wikipedia entry MS Windows and curl Using curl from MS Windows. cURL availability for MS Windows? MS Windows interprets ‘ and “ differently from Linux MS Windows shell processes the “ characters instead of passing them in tact to the curl application. To prevent this, “ characters must be ‘escaped’ by converting “ to /”. This can easily be done using the SOM’s console or ssh port to access the tool sed which is part of the image on the SOM. Example This example of the connection endpoint is a curl command which creates a bridge-slave interface for wlan0 (change localhost to the ip address/FQDN of the SOM): Type the following command at a SOM prompt. Copy/Paste the line starting with curl. After paste, press control-d to end the creation of the file. cat > create_bridge.sh curl --header 'Content-Type: application/json' --request POST https://localhost/connection -b cookie --insecure --data '{"connection": { "id": "br-slave-wlan0", "uuid": "bd89b41c-5688-3e79-8353-f7391d8e5ce9", "interface-name": "wlan0", "master": "br0", "slave-type": "bridge"}, "802-11-wireless": { "mode": "ap", "band": "a", "channel": 36, "channel-width" : 80, "hidden" : 1, "ssid": "SOMWiFi" }, "802-11-wireless-security": { "group": "ccmp", "key-mgmt": "wpa-psk", "pairwise": "ccmp", "proto" : "rsn", "pmf" : 1, "psk" : "PASSWORD" }}' cat > create_bridge.sh curl --header 'Content-Type: application/json' --request POST https://localhost/connection -b cookie --insecure --data '{"connection": { "id": "br-slave-wlan0", "uuid": "bd89b41c-5688-3e79-8353-f7391d8e5ce9", "interface-name": "wlan0", "master": "br0", "slave-type": "bridge"}, "802-11-wireless": { "mode": "ap", "band": "a", "channel": 36, "channel-width" : 80, "hidden" : 1, "ssid": "SOMWiFi" }, "802-11-wireless-security": { "group": "ccmp", "key-mgmt": "wpa-psk", "pairwise": "ccmp", "proto" : "rsn", "pmf" : 1, "psk" : "PASSWORD" }}' Copy to clipboard Press ctrl-d to close the file. ctrl-d next, use sed to replace all the “ with “\ and create a bat file for windows: sed 's#\"#\\\"#g' create_bridge.sh > create_bridge.bat sed 's#\"#\\\"#g' create_bridge.sh > create_bridge.bat Copy to clipboard lastly, replace the ‘ character with “ in the new create_bridge.bat file: sed -i 's/'\''/\"/g' -i create_bridge.bat sed -i 's/'\''/\"/g' -i create_bridge.bat Copy to clipboard Here are the two files for comparison showing original “ changed to \” and ‘ changed to “ : curl --header 'Content-Type: application/json' --request POST https://localhost/connection -b cookie --insecure --data '{"connection": { "id": "br-slave-wlan0", "uuid": "bd89b41c-5688-3e79-8353-f7391d8e5ce9", "interface-name": "wlan0", "master": "br0", "slave-type": "bridge"}, "802-11-wireless": { "mode": "ap", "band": "a", "channel": 36, "channel-width" : 80, "hidden" : 1, "ssid": "SOMWiFi" }, "802-11-wireless-security": { "group": "ccmp", "key-mgmt": "wpa-psk", "pairwise": "ccmp", "proto" : "rsn", "pmf" : 1, "psk" : "PASSWORD" }}' curl --header "Content-Type: application/json" --request POST https://localhost/connection -b cookie --insecure --data "{\"connection\": { \"id\": \"br-slave-wlan0\", \"uuid\": \"bd89b41c-5688-3e79-8353-f7391d8e5ce9\", \"interface-name\": \"wlan0\", \"master\": \"br0\", \"slave-type\": \"bridge\"}, \"802-11-wireless\": { \"mode\": \"ap\", \"band\": \"a\", \"channel\": 36, \"channel-width\" : 80, \"hidden\" : 1, \"ssid\": \"SOMWiFi\" }, \"802-11-wireless-security\": { \"group\": \"ccmp\", \"key-mgmt\": \"wpa-psk\", \"pairwise\": \"ccmp\", \"proto\" : \"rsn\", \"pmf\" : 1, \"psk\" : \"PASSWORD\" }}" curl --header 'Content-Type: application/json' --request POST https://localhost/connection -b cookie --insecure --data '{"connection": { "id": "br-slave-wlan0", "uuid": "bd89b41c-5688-3e79-8353-f7391d8e5ce9", "interface-name": "wlan0", "master": "br0", "slave-type": "bridge"}, "802-11-wireless": { "mode": "ap", "band": "a", "channel": 36, "channel-width" : 80, "hidden" : 1, "ssid": "SOMWiFi" }, "802-11-wireless-security": { "group": "ccmp", "key-mgmt": "wpa-psk", "pairwise": "ccmp", "proto" : "rsn", "pmf" : 1, "psk" : "PASSWORD" }}' curl --header "Content-Type: application/json" --request POST https://localhost/connection -b cookie --insecure --data "{\"connection\": { \"id\": \"br-slave-wlan0\", \"uuid\": \"bd89b41c-5688-3e79-8353-f7391d8e5ce9\", \"interface-name\": \"wlan0\", \"master\": \"br0\", \"slave-type\": \"bridge\"}, \"802-11-wireless\": { \"mode\": \"ap\", \"band\": \"a\", \"channel\": 36, \"channel-width\" : 80, \"hidden\" : 1, \"ssid\": \"SOMWiFi\" }, \"802-11-wireless-security\": { \"group\": \"ccmp\", \"key-mgmt\": \"wpa-psk\", \"pairwise\": \"ccmp\", \"proto\" : \"rsn\", \"pmf\" : 1, \"psk\" : \"PASSWORD\" }}" Copy to clipboard