Интеграция с инфраструктурой NB-IoT МТС. Теория и практика. Часть 3

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

И снова здравствуйте! Мы продолжаем рассказывать о составе и основных принципах работы инфраструктуры NB-IoT в рамках цикла статей «Интеграция с инфраструктурой NB-IoT МТС». Вот первая и вторая части. 

Сегодня разговор пойдёт об «М2М-менеджере». Это платформа МТС и связанная с ней услуга, предоставляющая возможность получения объективной и полной статусной, статистической и иной информации о процессе эксплуатации SIM-карт в устройствах и приборах в классических сетях 2G, 3G, LTE и NB-IoT, включая режим non-IP (NIDD).

Общие сведения об M2M-менеджере

Взаимосвязи платформы «М2М-менеджер» с ядром сети МТС
Взаимосвязи платформы «М2М-менеджер» с ядром сети МТС

Платформа связана с основными узлами сети МТС, что позволяет производить мониторинг и выполнение операций управления SIM-картами и услугами online, например:

  • получение информации о состоянии SIM-карты

  • управление доступными каналами связи

  • контроль расходов

  • проведение диагностики

  • настройка уведомлений по событиям

  • определение местоположения SIM-карты

  • отправки сообщений на устройства

  • контроль соответствия IMSI-IMEI (TAC)

  • подключение и настройка услуг M2M

В рамках услуги предоставляются Web- и API-интерфейсы для доступа к платформе и управления SIM-картами. Клиентский web-интерфейс располагается здесь

Настройка NIDD в М2М-менеджере


Для настройки сервисов NIDD необходимо войти в личный кабинет М2М-менеджера и перейти в раздел NIDD APN, далее создать APN и ID приложения.

В форме потребуется заполнить поля, как показано на рисунке: 

•  Тип: внутренняя
•  APN: произвольно
•  APN-профиль: APN_M2M_CONF
•  ID приложения: произвольно

Параметры APN можно импортировать из файлов типа *.txt, *.json, *.pdf, *.html. Для импорта нужно нажать «Выберите файл», в открывшемся диалоге выбираем необходимый файл. Далее потребуется перейти в центр управления NB-IoT и выбрать целевую SIM-карту, как показано на рисунке ниже. 

В открывшемся окне, содержащем информацию о целевой SIM-карте, переходим в раздел «Профиль», где выбираем «Создать External ID устройства».

Выбор целевой SIM-карты
Выбор целевой SIM-карты
Создание External ID устройства
Создание External ID устройства

Далее нужно перейти в раздел «Услуги», после чего подключить услугу «NB-IoT М2М Менеджер 2.0 SCEF APN». Убедиться, что подключена услуга «NIDD Пакет сообщений». Если услуга не подключена, подключить её.

Подключение услуг
Подключение услуг

Потом нужно перейти в раздел NIDD APN. Убедиться, что соответствующий APN включён для целевой SIM-карты.

Подключение NIDD APN
Подключение NIDD APN

А теперь потребуется перейти в раздел «Центр управления NB-IoT» > «NIDD Безопасность». Здесь создаём новое правило, название можно указать произвольное. Второе поле ограничивает доступ со стороны AS (application server). Временно можно установить 0.0.0.0/0, что сделает доступным работу с любым AS без ограничения по IP-адресу. Правда, это решение может не работать в связи с повышенными требованиями к безопасности, поэтому лучше сразу указать белый список адресов, с которых будут приходить запросы к М2М-менеджеру.

Создание правила безопасности
Создание правила безопасности

Переходим в раздел «Центр управления NB-IoT» > «NIDD Аккаунты». Здесь потребуется создать учётную запись, указать логин, пароль. Именно эта связка логин-пароль будет использоваться для формирования REST-запросов на М2М-менеджер — например, создание NIDD-подписки. Далее необходимо выбрать IP, указанный ранее в разделе «NIDD Безопасность», и выбрать «ID приложения: Внутренние».

Создание учётной записи NIDD
Создание учётной записи NIDD

Создание подписки NIDD

Подписка NIDD — это правило, указывающее М2М-менеджеру, куда необходимо отправлять данные, полученные с устройства. Для создания подписки необходимо отправить на М2М-менеджер HTTP REST-запрос с использованием метода POST.

Формат URL для отправки запроса:

https://m2m-manager.mts.ru/scef/v1/3gpp-nidd/v1/  ID_приложения  /configurations,

где ID_приложения создан ранее на этапе настройки NIDD. Необходимо также правильно указать параметры запроса. Заголовок Headers HTTP-запроса должен содержать следующие поля:

Content-Type : application/json

Authorization: Basic <параметры доступа>, где параметры доступа — строка вида логин:пароль в кодировке Base64. Например, значение Authorization для пользователя user с паролем userpassword будет иметь вид: 

Authorization : Basic dXNlcjp1c2VycGFzc3dvcmQ=

Для приведения пары логин:пароль к Base64 можно использовать любой онлайн-Base64-кодировщик, например этот: http://base64.ru/.

Обратите внимание: для отправки REST-запросов на М2М-менеджер необходимо использовать пару логин:пароль, указанную на этапе создания учётной записи NIDD. Также необходимо иметь в виду, что в зависимости от требуемого уровня безопасности REST-запросы будут приниматься М2М-менеджером только с IP-адресов, указанных в белом списке. Тело HTTP-запроса представляет собой JSON-структуру вида:

{
   "externalId":"m2m.default1@133304899999.iot.mts.ru",
   "duration":"2022-12-31T20:31:47Z",
   "notificationDestination":"http://test.mts.ru/test",
   "pdnEstablishmentOption":"WAIT_FOR_UE",
   "reliableDataService":false,
   "maximumPacketSize":65535
}

где externalID — созданный ранее идентификатор устройства, duration — срок окончания действия подписки, notificationDestination — адрес URL Сервера приложений, на который необходимо отправлять информацию, полученную с устройства, и ещё три параметра, как указано ниже, без изменения.

Для отправки REST HTTP-запросов удобно использовать инструмент Postman, который может быть получен по адресу https://www.postman.com/downloads/ абсолютно бесплатно. 

Формирование HTTP-запроса в Postman и ответ от M2M-менеджера

В ответном сообщении на POST-запрос М2М-менеджер вышлет идентификатор подписки ID и её статус — ACTIVE. Идентификатор подписки необходимо сохранить, так как он может понадобиться в дальнейшем для изменения или отмены подписки.

Указание параметров аутентификации в Postman

На скриншотах выше приведён пример формирования и отправки при помощи Postman-запроса на создание подписки.

Обратите внимание: Postman самостоятельно сформирует и вставит в заголовок запроса информацию о логине и пароле, предварительно закодировав их в Base64.

Формирование ключей заголовка запроса

После создания подписки устройство может зарегистрироваться в сети NB-IoT с контекстом NONIP и передать данные в любой момент времени. Сеть будет передавать данные, полученные с устройства, по подписке на Сервер приложений по указанному при создании подписки адресу.

Отправка данных с Сервера приложений на устройство

Для передачи данных на устройство Сервер приложений должен сформировать и отправить на адрес М2М-менеджера HTTP POST-запрос. Адрес для отправки запроса:  https://m2m-manager.mts.ru/scef/v1/3gpp-nidd/v1/  ID_приложения  /configurations/  ID_подписки  / downlink-data-deliveries/,

где ID_приложения создан ранее на этапе настройки NIDD APN. ID_подписки — идентификатор подписки, полученный от М2М-менеджера в результате успешного создания подписки. Необходимо также правильно сформировать заголовок и тело запроса. Заголовок запроса формируется по аналогии с тем, как это сделано при создании подписки, например:

Content-Type : application/json
Authorization : Basic dXNlcjp1c2VycGFzc3dvcmQ=

Обращаем внимание, что для отправки REST-запросов на М2М-менеджер необходимо использовать пару логин:пароль, указанную на этапе создания учётной записи NIDD. Также необходимо иметь в виду, что в зависимости от требуемого уровня безопасности REST-запросы будут приниматься М2М-менеджером только с IP-адресов, указанных в белом списке. 

Тело HTTP-запроса представляет собой JSON-структуру вида:

{
   "externalId":"m2m.default1@133304899999.iot.mts.ru",
   "reliableDataService":true,
   "priority":1,
   "pdnEstablishmentOption":"WAIT_FOR_UE",
   "duration":1000,
   "data":"SGVsbG8="
}

где externalID — созданный ранее идентификатор устройства, duration — срок жизни запроса, параметры reliableDataService, priority и pdnEstablishmentOption — как указано в примере, без изменений. Поле payload — данные, передаваемые на устройство в кодировке Base64.

Ниже на рисунке приведён пример запроса, выполненный в приложении Postman.

Пример передачи данных на устройство с использованием Postman

Настройка группы SIM-карт

Использование группировки SIM-карт позволяет осуществлять над ними групповые однотипные операции, такие как массовое подключение или отключение услуг, установка externalID по маске и т. д.

Для создания группы SIM-карт необходимо войти в Личный кабинет М2М-менеджера и перейти в раздел «Центр управления NB-IoT», выбрать нужные номера, отметив их галочками, после чего нажать «+».

Выбор SIM-карт для создания группы

В появившемся окне создания группы указать необходимые параметры, нажать «Сохранить».

 Указание параметров группы SIM-карт при создании

Далее для созданной группы необходимо назначить APN.

Назначение APN вновь созданной группе SIM-карт

В появившемся окне установить для созданной группы параметры APN. Нажать «Сохранить».

  Изменение APN группы SIM-карт                               Контроль установки нового значения APN
  Изменение APN группы SIM-карт Контроль установки нового значения APN

Для того чтобы убедиться, что операция прошла успешно, рекомендуется выполнить контрольную проверку на одном из номеров, входящих в группу.

В разделе «Управление услугами» нужно выбрать услугу «NB-IoT. M2M Менеджер 2.0. SCEF APN», далее активировать её для выбранной группы SIM-карт. А затем проверить правильность выполнения операции на одном из номеров, входящих в группу.

Выбор услуги «NB-IoT. M2M Менеджер 2.0. SCEF APN»

В разделе «Управление услугами» аналогично выбираем услугу «NIDD. Пакет сообщений (год)» и проверяем правильность выполнения операции.

Активация услуги для группы SIM-карт
Проверка успешности активации услуги

На этом всё! Если тема статьи вам интересна, не переключайтесь, вскоре опубликуем новую статью. Если есть вопросы, предложения, задавайте в комментариях, постараемся ответить.

Источник: https://habr.com/ru/companies/ru_mts/articles/740916/


Интересные статьи

Интересные статьи

Основная цель и функция бота: Бот, используя стратегию усреднения, старается снизить среднюю цену входа в актив путём увеличения позиции, если текущая стоимость актива уменьшается по отношению к стоим...
Привет, друзья! Представляю вашему вниманию перевод еще нескольких статей из серии Mastering TypeScript, посвященных углубленному изучению TypeScript. TypeScript в деталях. Часть 1 Заметка о ...
Labdien! Хочу поделиться с вами опытом релокации в достаточно нестандартное для IT'шника государство ЕС - Латвию, и все это во время пандемии. Я планировал одну статью, но в процессе по объему букафф ...
Это продолжение статьи Локализация своих скриптов на BASH. В ней мы используя массивы и косвенные ссылки, научились добавлять в свои скрипты дополнительные языки и перекл...
Привет, Хабр! Продолжаем туториал по библиотеке opencv в python. Для тех кто не читал первую часть, сюда: Часть 1, а всем остальным — увлекательного чтения! Читать дальше ...