2023-04-01 10:00:13 +08:00

42 lines
908 B
Lua

#!/usr/bin/lua
modem = arg[1]
addr = arg[2]
dcs = arg[3]
txt = arg[4]
suffix = arg[5]
if package.path:find(";/usr/lib/sms/?.lua") == nil then
package.path = package.path .. ";/usr/lib/sms/?.lua"
end
local pack7bit = require "pack7bit"
udl = string.format("%02X", math.floor(#txt / 2))
da = "81"
if addr:sub(1, 1) == "+" then
da = "91"
addr = addr:sub(2)
elseif addr:sub(1, 1) == "-" then
addr = addr:sub(2)
end
da = string.format("%02X", #addr) .. da
if (#addr % 2) > 0 then
addr = addr .. "F"
end
k = #addr
j = 1
repeat
da = da .. addr:sub(j + 1, j + 1) .. addr:sub(j, j)
j = j + 2
until j > k
if dcs == "00" then
pack7bit.pack(udl, txt)
ud = pack7bit["pdu"]
else
ud = txt
end
pdu = "001100" .. da .. "00" .. dcs .. "AD" .. udl .. ud
pdul = string.format("%03d", (math.floor(#pdu / 2) - 1))
os.execute("/usr/lib/sms/sendsms.sh " .. modem .. " " .. pdul .. "," .. suffix .. "," .. pdu .. " &")