Связь со службой подготовки устройств Azure с модемом Telit ME910C1
Я пытаюсь подключиться к Azure DPS с модемом Telit ME910C1-AU. Изначально я использовал HTTP-команды (т.е.
HTTPSND
и
HTTPRCV
) для успешной отправки данных на postman-echo.com. Однако при отправке в Azure мне нужно добавить симметричный ключ. К сожалению,
HTTPSND
Команда позволяет добавлять в заголовок только содержимое с максимальной длиной 100 (которая не может быть изменена), а длина ключа превышает 100 символов, что означает, что я не могу использовать HTTP-команды для этого.
Telit посоветовал мне самому открыть сокет с помощью команд SSL (SSLD
,
SSLEN
, и т.д.). Опять же, отправка данных на postman-echo.com была успешной, но отправка их в Azure возвращает (по-видимому) искаженный заголовок. Это команды / ответы, которые я отправляю / получаю (ответы выделены для большей ясности):
at#sgact=1,1
#SGACT: 10.37.xxx.xxx
OK
at#sslen=1,1
OK
at#ssld=1,443,"global.azure-devices-provisioning.net",0,0
CONNECT
PUT /<redacted1>/registrations/test-something/register?api-version=2018-11-01 HTTP/1.1\r\nauthorization: SharedAccessSignature sr=<redacted2>\r\nContent-Type: application/json\r\nHost: global.azure-devices-provisioning.net\r\nContent-Length: 35\r\n\r\n{"registrationId":"test-something"}\r\n\r\n
HTTP/1.1 202 Accepted
Date: Wed, 07 Oct 2020 23:17:53 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Location: https://global.azure-devices-provisioning.net/<redacted1>/registrations/test-something/register
x-ms-request-id: <redacted3>
Strict-Transport-Security: max-age=31536000; includeSubDomains
st
Connection: close
Date: Wed, 07 Oct 2020 23:17:53 GMT
Content-Length: 0
NO CARRIER
Если я использую Postman, вместо этого я получаю следующий ответ.
HTTP/1.1 202 Accepted
Date: Wed, 07 Oct 2020 23:09:20 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Location: https://global.azure-devices-provisioning.net/<redacted1>/registrations/test-something/register
x-ms-request-id: <redacted3>
Strict-Transport-Security: max-age=31536000; includeSubDomains
{"operationId":"<redacted5>","status":"assigning"}
это именно то, что я хочу видеть, потому что он возвращает идентификатор операции, который мне нужен для DPS.
Заголовки, отправляемые почтальоном и модемом, абсолютно одинаковы, поэтому я не вижу причин, по которым они возвращают разные вещи. У них также отключена проверка сертификата SSL.