From a675e1a56e5c1d8ceb365a3f1a56b0a1f87aa407 Mon Sep 17 00:00:00 2001 From: noyo Date: Mon, 26 Jun 2023 18:46:32 +0200 Subject: [PATCH] Update sendSMS.txt - add compatibility with: MTC-827F HUAWEI-E3372H - changing the name of the function from sendSMS to sendSMSHlink --- ros_scripts/sendSMS.txt | 57 ++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/ros_scripts/sendSMS.txt b/ros_scripts/sendSMS.txt index 4f993bf..474620a 100644 --- a/ros_scripts/sendSMS.txt +++ b/ros_scripts/sendSMS.txt @@ -1,12 +1,13 @@ -:global sendSMS do={ +:global sendSMSHlink do={ # Send SMS messages via Huawei LTE modem API (tested with E3372) # global vars: # lteIP - lte modem ip address (api) # phone - sms destination phone number # sms - sms text message + # modemModel - HUAWEI-E3372 or MTC-827F or HUAWEI-E3372H # usage example - # :global sendSMS - # :put [$sendSMS lteIP="192.168.8.1" phone="+35912345678" sms="test sms via lte api"] + # :global sendSMSHlink + # :put [$sendSMSHlink lteIP="192.168.8.1" phone="+35912345678" sms="test sms via lte api" modemModel="MTC-827F"] # :local getBetween do={ @@ -36,22 +37,42 @@ :return $result; } - # get SessionID and Token via LTE modem API - :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo"; - :local api [/tool fetch $urlSesTokInfo output=user as-value]; - :local apiData ($api->"data"); + :local apiHead ""; - # pars SessionID and Token from API session data - :local apiSessionID [$getBetween inputString=$apiData betweenStart="" betweenEnd=""]; - :local apiToken [$getBetween inputString=$apiData betweenStart="" betweenEnd=""]; + :if ($modemModel = "MTC-827F" or $modemModel = "HUAWEI-E3372H") do={ + # get SessionID and Token via LTE modem API + :local urlTokInfo "http://$lteIP/api/webserver/token"; + :local api [/tool fetch $urlTokInfo output=user as-value]; + :local apiData ($api->"data"); - # header and data config - :local apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken"; - :local sendData "-1$phone$sms-11-1"; + # pars Token from API session data + :local apiToken [$getBetween inputString=$apiData betweenStart="" betweenEnd=""]; - # send SMS via LTE modem API with fetch - /tool fetch http-method=post output=user \ - http-header-field=$apiHead \ - url="http://$lteIP/api/sms/send-sms" \ - http-data=$sendData; + # header and data config + :set apiHead "Content-Type:application/x-www-form-urlencoded,__RequestVerificationToken:$apiToken"; + + } else={ + :if ($modemModel = "HUAWEI-E3372") do={ + # get SessionID and Token via LTE modem API + :local urlSesTokInfo "http://$lteIP/api/webserver/SesTokInfo"; + :local api [/tool fetch $urlSesTokInfo output=user as-value]; + :local apiData ($api->"data"); + + # pars SessionID and Token from API session data + :local apiSessionID [$getBetween inputString=$apiData betweenStart="" betweenEnd=""]; + :local apiToken [$getBetween inputString=$apiData betweenStart="" betweenEnd=""]; + + # header and data config + :set apiHead "Content-Type:application/x-www-form-urlencoded,Cookie: $apiSessionID,__RequestVerificationToken:$apiToken"; + } + } + + :if ([:len $apiHead] >0) do={ + :local sendData "-1$phone$sms-11-1"; + + # send SMS via LTE modem API with fetch + /tool fetch http-method=post output=user http-header-field=$apiHead url="http://$lteIP/api/sms/send-sms" http-data=$sendData; + } else={ + :put "wrong model modem, only: HUAWEI-E3372, MTC-827F, HUAWEI-E3372H"; + } }