Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Отправляйте SMS-сообщения через API LTE-модема Huawei (тестировалось на E3372)

    Отправляйте SMS-сообщения через API LTE-модема Huawei (тестировалось на E3372)

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Отправляйте SMS-сообщения через API LTE-модема Huawei (тестировалось на E3372), RouterOS
     
    dakobg
    Guest
    #1
    0
    27.09.2020 19:23:00
    Привет! Этот скрипт отправляет SMS через API USB LTE модема Huawei с помощью tool/fetch (тестировалось на E3372). Надеюсь, будет полезен.

    github: https://github.com/NikolayDachev/RouterOS/blob/master/ros_scripts/sendSMS.txt

    :global sendSMS do={
    # Отправка SMS через API LTE модема Huawei (тестировалось на E3372)
    # глобальные переменные:
    # lteIP - IP-адрес LTE модема (для API)
    # phone - номер телефона получателя SMS
    # sms - текст SMS
    # пример использования
    # :global sendSMS
    # :put [$sendSMS lteIP="192.168.8.1" phone="+35912345678" sms="тестовое сообщение через LTE API"]
    #

    :local getBetween do={
    # "CuriousKiwi - форум Mikrotik"
    # Простой парсер, можно использовать для XML
    # Принимает три параметра:
    # inputString - исходная строка
    # betweenStart - текст ПОСЛЕ которого надо взять данные
    # betweenEnd - текст ДО которого надо взять данные
    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd];
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd];
    :return $result;
    }

    # Получаем SessionID и Token через API LTE модема
    :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo";
    :local api [/tool fetch $urlSesTokInfo output=user as-value];
    :local apiData  ($api->"data");

    # Парсим SessionID и Token из данных сессии API
    :local apiSessionID [$getBetween inputString=$apiData betweenStart="<SesInfo>" betweenEnd="</SesInfo>"];
    :local apiToken [$getBetween inputString=$apiData betweenStart="<TokInfo>" betweenEnd="</TokInfo>"];

    # Формируем заголовки и данные запроса
    :local apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken";
    :local sendData "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><Index>-1</Index><Phones><Phone>$phone</Phone></Phones><Sca></Sca><C­ontent>$sms</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>";

    # Отправляем SMS через API LTE модема с помощью fetch
    /tool fetch  http-method=post output=user  \
    http-header-field=$apiHead \
    url="http://$lteIP/api/sms/send-sms" \
    http-data=$sendData;
    }
     
     
     
    gustavganzz
    Guest
    #2
    0
    09.12.2021 18:45:00
    Отлично работает! У вас случайно нет скрипта для приёма SMS?
     
     
     
    dakobg
    Guest
    #3
    0
    11.12.2021 23:33:00
    Нет, мне такой скрипт не нужен, но думаю, что будет что-то похожее. Скорее всего, тебе нужно настроить чтение новых SMS, приходящих по LTE, и что-то сделать на RouterOS. Только если будешь пробовать, обязательно добавь проверку номера отправителя, чтобы ограничить его одним конкретным номером... Думаю, объяснять, зачем это нужно, не стоит.
     
     
     
    notanial
    Guest
    #4
    0
    22.10.2022 18:13:00
    Привет. Я только начинаю разбираться со скриптами. Не могу понять, что нужно изменить (раскомментировать), чтобы всё заработало?
     
     
     
    notanial
    Guest
    #5
    0
    22.10.2022 20:08:00
    Нашёл решение в скрипте другого автора.
     
     
     
    notanial
    Guest
    #6
    0
    22.10.2022 20:25:00
    Кто-нибудь может написать скрипт для чтения SMS с LTE-модема?
     
     
     
    notanial
    Guest
    #7
    0
    23.10.2022 10:57:00
    Я протестировал bash-скрипт для получения содержимого SMS в формате XML:

    #!/bin/bash

    DATA=`curl http://192.168.8.1/api/webserver/SesTokInfo`
    SESSION_ID=`echo "$DATA" | grep "SessionID=" | cut -b 10-147`
    TOKEN=`echo "$DATA" | grep "TokInfo" | cut -b 10-41`

    curl http://192.168.8.1/api/sms/sms-list -H "Cookie: $SESSION_ID" -H "__RequestVerificationToken: $TOKEN" --data \
    "<?xml version='1.0' encoding='UTF-8'?> \
    <request> \
    <PageIndex>1</PageIndex> \
    <ReadCount>20</ReadCount> \
    <BoxType>1</BoxType> \
    <SortType>0</SortType> \
    <Ascending>0</Ascending> \
    <UnreadPreferred>0</UnreadPreferred> \
    </request>"

    Результат:

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                    Dload  Upload   Total   Spent    Left  Speed
    100   277  100   277    0     0   3186      0 --:--:-- --:--:-- --:--:--  3220
    <?xml version="1.0" encoding="utf-8"?>
    <response>
           <Count>1</Count>
           <Messages>
                   <Message>
                           <Smstat>1</Smstat>
                           <Index>40002</Index>
                           <Phone>lifecell</Phone>
                           <Content>SMS TEXT.... </Content>
                           <Date>2022-10-18 22:02:41</Date>
                           <Sca></Sca>
                           <SaveType>4</SaveType>
                           <Priority>0</Priority>
                           <SmsType>2</SmsType>
                   </Message>
           </Messages>
    </response>

    Пытаюсь воспроизвести то же самое в терминале Mikrotik:

    :global recvSMS do={

    :local getBetween do={
    # Это простой парсер, можно использовать для XML
    # Он принимает три параметра:
    # inputString - основная строка
    # betweenStart - текст ПОСЛЕ этой части возвращается
    # betweenEnd - текст ДО этой части возвращается
    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd];
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd];
    :return $result;
    }

    # Получаем SessionID и Token через API LTE-мода
    :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo";
    :local api [/tool fetch $urlSesTokInfo output=user as-value];
    :local apiData  ($api->"data");

    :local lteIP "192.168.8.1";

    # Парсим SessionID и Token из данных сессии API
    :local apiSessionID [$getBetween inputString=$apiData betweenStart="<SesInfo>" betweenEnd="</SesInfo>"];
    :local apiToken [$getBetween inputString=$apiData betweenStart="<TokInfo>" betweenEnd="</TokInfo>"];

    # Заголовки и конфигурация данных
    :local apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken";
    :local recvData "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><­BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascen­ding><UnreadPreferred>0</UnreadPreferred></request>";

    # Получаем SMS через API LTE-мода с помощью fetch
    /tool fetch  http-method=post output=user  \
    http-header-field=$apiHead \
    url="http://$lteIP/api/sms/sms-list" \
    http-data=$recvData;
    }

    :local arrData [ :toarray $recvSMS ];
    :local varData ( $arrData->"data" );
    :put [ $varData ];

    И при этом ничего не получаю:

    [admin@gateway] > system/script/run recvSMS1

    [admin@gateway] > Что я упустил?
     
     
     
    notanial
    Guest
    #8
    0
    23.10.2022 17:00:00
    Добавив новый скрипт: {
    :local a [/system script get recvSMS1 source]
    :local outFile "recvSMS1.xml"
    execute script=$a file=$outFile
    } я получил файл recvSMS1.xml.txt с нужным содержимым, как в bash-скрипте. Не мог бы кто-нибудь помочь написать скрипт для парсинга XML, чтобы вытащить текст внутри wol_pc и вставить его в команду /script/run/ wol_pc (скрипт с именем «wol_pc» уже существует)?
     
     
     
    notanial
    Guest
    #9
    0
    23.10.2022 18:08:00
    Третий скрипт:

    :local getBetween do={
    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd];
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd];
    :return $result;
    }

    :local statusXML [/file get recvSMS1.xml.txt contents];

    :if ([:len $statusXML] > 50) do={
    :local script ([$getBetween inputString=$statusXML betweenStart="<Content>" betweenEnd="</Content>"]);

    system/script/run $script
    }

    Но он берет только последнее сообщение, потому что в параметре recvData я указал: <ReadCount>1</ReadCount>. Я не знаю, как распарсить все сообщения в XML.
     
     
     
    notanial
    Guest
    #10
    0
    23.10.2022 18:26:00
    Было бы здорово дополнительно реализовать разбор всего файла с проверкой номера телефона отправителя и парсить только его содержимое с условием, что время системы не старше одной минуты, что совпадает с временем запуска скрипта по планировщику.
     
     
     
    diamuxin
    Guest
    #11
    0
    22.12.2022 10:10:00
    Всем привет! У меня есть роутер Huawei B311s-220, совместимый с API для полной управляющей работы. Я проверял его на Linux Debian с Python+Pip, согласно информации из интернета, и получил кучу данных. Моя идея — использовать этот роутер/модем как резервное WAN-соединение (фейловер) и одновременно использовать функционал API для чтения и отправки SMS через другие каналы (Telegram, WhatsApp или Email). В этом посте я пока не совсем понимаю, как это сделать, так как сначала нужно принимать SMS (проверять по расписанию), а потом пересылать их другим способом. И, если возможно, отправлять SMS и с моего Mikrotik роутера. @notanial, ты уже решил скрипт для анализа полученных SMS? Кто-нибудь пробовал с этим работать? Спасибо. С уважением.
     
     
     
    diamuxin
    Guest
    #12
    0
    22.12.2022 11:28:00
    Я пытался отправить SMS, но это не работает: BR.
     
     
     
    Sertik
    Guest
    #13
    0
    25.12.2022 18:25:00
    Подтверждаю. У меня такая же ошибка скрипта. Модем Huawei E3372, версия программного обеспечения Hlink: 22.333.01.00.00, версия веб-интерфейса: 17.100.13.112.03 (17.100.13.01.03_Mod 1.12).
     
     
     
    diamuxin
    Guest
    #14
    0
    25.12.2022 19:10:00
    Анализ кода: {
    :local getBetween do={
    # Это базовый парсер, можно использовать для XML
    # Принимает три параметра:
    # inputString – основная строка
    # betweenStart – текст ПОСЛЕ этой точки будет возвращён
    # betweenEnd – текст ДО этой точки будет возвращён
    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd];
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd];
    :return $result;
    }

    :local lteIP "192.168.8.1";

    # Получаем SessionID и Token через API LTE модема
    :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo";
    :local api [/tool fetch $urlSesTokInfo output=user as-value];
    :local apiData  ($api->"data");

    # Парсим SessionID и Token из данных сессии API
    :local apiSessionID [$getBetween inputString=$apiData betweenStart="<SesInfo>" betweenEnd="</SesInfo>"];
    :local apiToken [$getBetween inputString=$apiData betweenStart="<TokInfo>" betweenEnd="</TokInfo>"];

    :put $apiSessionID
    :put " "
    :put $apiToken
    }

    # Результат:
    4pO9ltivvOQXURfVlfVrHL8hUJ06Z5UBMnYNHNXXXXXXXXXXXXXXXXXXXXXX­XXXvA8PerIyT0rJDBUpYtghj9BFjWVuAA7fE0N2IePPjD76Nef0zcCDLVU

    aJCem0vXXXXXXXXXXXXXFJcjDiij Пока всё нормально, Session и Token вытягиваются корректно. Проблема возникает, когда пытается проверить их, передавая эти данные в HTTP заголовках (см. следующий код) — что-то идёт не так, сессия не запускается как надо и выдается ошибка 100003. # настройка заголовков и данных
    :local apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken";
    :local sendData "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><Index>-1</Index><Phones><Phone>$phone</Phone></Phones><Sca></Sca><C­ontent>$sms</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>";

    # отправка SMS через API LTE модема командой fetch
    /tool fetch  http-method=post output=user  \
    http-header-field=$apiHead \
    url="http://$lteIP/api/sms/send-sms" \
    http-data=$sendData; Посмотрим, может кто-то сталкивался с подобным на Huawei LTE/4G модемах. С уважением.
     
     
     
    diamuxin
    Guest
    #15
    0
    11.01.2023 17:13:00
    Ну, я уже получил свой модем Huawei E3372h-320, который включает API для управления некоторыми функциями модема. Я протестировал следующий скрипт, и он работает корректно:

    :global sendSMS do={
    # Отправка SMS через API модема Huawei LTE (тестировалось на E3372)
    # глобальные переменные:
    # lteIP - IP-адрес LTE модема (API)
    # phone - номер телефона получателя SMS
    # sms - текст SMS
    # пример использования
    # :global sendSMS
    # :put [$sendSMS lteIP="192.168.8.1" phone="+35912345678" sms="тест SMS через LTE API"]
    #

    :local getBetween do={
    # "CuriousKiwi - mikrotik форум"
    # Это базовый парсер, можно использовать для XML
    # Принимает три параметра:
    # inputString - исходная строка
    # betweenStart - текст ПОСЛЕ которого будет возвращено значение
    # betweenEnd - текст ДО которого будет возвращено значение
    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd]
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd];
    :return $result;
    }

    :local lteIP "192.168.8.1"

    # получаем SessionID и Token через API модема
    :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo";
    :local api [/tool fetch $urlSesTokInfo output=user as-value];
    :local apiData  ($api->"data");

    # парсим SessionID и Token из данных сессии API
    :local apiSessionID [$getBetween inputString=$apiData betweenStart="<SesInfo>" betweenEnd="</SesInfo>"];
    :local apiToken [$getBetween inputString=$apiData betweenStart="<TokInfo>" betweenEnd="</TokInfo>"];

    # настройки заголовков и данных
    :local apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken";
    :local sendData "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><Index>-1</Index><Phones><Phone>$phone</Phone></Phones><Sca></Sca><C­ontent>$sms</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>";

    # отправляем SMS через LTE модем API с помощью fetch
    /tool fetch  http-method=post output=user \
    http-header-field=$apiHead \
    url="http://$lteIP/api/sms/send-sms" \
    http-data=$sendData;
    }

    Чтобы использовать, я ввожу в Терминале команду:  
    :put [$sendSMS lteIP="192.168.8.1" phone="+35912345678" sms="тест SMS через LTE API"]
    Всё корректно, SMS отправляется без ошибок.

    Теперь, как и мой коллега @notanial, я пытаюсь понять, как получить список полученных SMS и как их переслать по email или сохранить в файл. Использую такой скрипт:

    :global recvSMS do={

    :local lteIP "192.168.8.1"
    :local getBetween do={

    :local posStart 0;
    :if ([:len $betweenStart] > 0) do={
    :set posStart [:find $inputString $betweenStart]
    :if ([:len $posStart] = 0) do={
    :set posStart 0
    } else={
    :set posStart ($posStart + [:len $betweenStart])
    }
    }

    :local posEnd 9999;
    :if ([:len $betweenEnd] > 0) do={
    :set posEnd [:find $inputString $betweenEnd]
    :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
    }

    :local result [:pick $inputString $posStart $posEnd]
    :return $result
    }

    # получаем SessionID и Token через API модема
    :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo"
    :local api [/tool fetch $urlSesTokInfo output=user as-value]
    :local apiData  ($api->"data")

    # парсим SessionID и Token из данных сессии API
    :local apiSessionID [$getBetween inputString=$apiData betweenStart="<SesInfo>" betweenEnd="</SesInfo>"]
    :local apiToken [$getBetween inputString=$apiData betweenStart="<TokInfo>" betweenEnd="</TokInfo>"]

    # настройки заголовков и данных
    :local apiHead "Content-Type:text/xml,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken"
    :local recvData "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><­BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascen­ding><UnreadPreferred>1</UnreadPreferred></request>"

    # получаем SMS через LTE модем API с помощью fetch
    /tool fetch  http-method=post output=user \
       http-header-field=$apiHead \
       url="http://$lteIP/api/sms/sms-list" \
       http-data=$recvData;
    }

    :local arrData [ :toarray $recvSMS ]
    :local varData ( $arrData->"data" )
    :put [ $varData ]

    Я выполняю команду :put [$recvSMS], и получаю следующий результат:

    При одном полученном сообщении:  
    status: finished downloaded: 0KiB C-z pause] data: <?xml version="1.0" encoding="UTF-8"?>  
    1 0 40001 +34XXXXXXXXX Тест SMS с моего телефона 2023-01-11 13:20:26 0 0 1 \

    При трёх полученных сообщениях:  
    status: finished downloaded: 0KiB C-z pause] data: <?xml version="1.0" encoding="UTF-8"?>  
    3 1 40003 +34XXXXXXXXX Тест SMS с моего телефона3 2023-01-11 17:02:05 0 0 1  
    1 40002 +34XXXXXXXXX Тест SMS с моего телефона2 2023-01-11 16:59:48 0 0 1  
    1 40001 +34XXXXXXXXX Тест SMS с моего телефона 2023-01-11 13:20:26 0 0 1

    Есть функция, которая позволяет извлекать определённые данные из XML:

    :global getBetween do={

         :local posStart 0;
         :if ([:len $betweenStart] > 0) do={
               :set posStart [:find $inputString $betweenStart]
               :if ([:len $posStart] = 0) do={
                     :set posStart 0
               } else={
                     :set posStart ($posStart + [:len $betweenStart])
               }
         }

         :local posEnd 9999;
         :if ([:len $betweenEnd] > 0) do={
               :set posEnd [:find $inputString $betweenEnd]
               :if ([:len $posEnd] = 0) do={ :set posEnd 9999 }
         }

         :local result [:pick $inputString $posStart $posEnd]
         :return $result
    }

    Суть в том, чтобы извлечь содержимое тегов <Phone> и <Content> каждого SMS с помощью этой функции, сохранить их в локальные переменные и затем переслать или записать в файл. Но я не знаю, как это сделать.

    Пробовал вот так, без успеха:

    {
    :global getBetween
    :execute {$recvSMS} file=sms-list.xml
    :local ExtractedXML [/file get sms-list.xml.txt contents]
    :local phon [$getBetween inputString=$ExtractedXML betweenStart="<Phone>" betweenEnd="</Phone>"]
    :local mens [$getBetween inputString=$ExtractedXML betweenStart="<Content>" betweenEnd="</Content>"]
    :put "$phon\t$mens"
    }

    Кто-нибудь может помочь? Спасибо!
     
     
     
    dakobg
    Guest
    #16
    0
    16.01.2023 07:52:00
    diamuxin, не уверен, писал ли ты мне на почту, к сожалению, я случайно удалил это (извини за это!). У меня сейчас много личных дел, но как только появится свободное время, проверю, смогу ли помочь. Быстрый вопрос: ты хочешь получить только список полученных смс или содержимое тоже? С уважением, Николай
     
     
     
    diamuxin
    Guest
    #17
    0
    16.01.2023 08:48:00
    Да, также и содержимое, спасибо. Идея в том, что содержимое полученного SMS (номер телефона и сообщение) можно переслать по электронной почте или SMS, например. С уважением.
     
     
     
    notanial
    Guest
    #18
    0
    23.10.2022 12:17:00
    Также пытался получить SMS через API LTE-модема с помощью fetch:
    :put ([/tool fetch http-method=post output=user \
    http-header-field=$apiHead \
    url="http://$lteIP/api/sms/sms-list" \
    http-data=$recvData as-value]->"data");
    } и удалил нижний блок, но по-прежнему ничего не отображается.
     
     
     
    notanial
    Guest
    #19
    0
    23.10.2022 16:37:00
    Работает с добавлением новой строки в конце после последней скобки [$recvSMS lteIP="192.168.8.1"]; Сейчас хочу записать вывод в файл для дальнейшего парсинга, чтобы отделить содержимое сообщения и использовать его как имя скрипта для команды run.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры