0wq / air724ug-forwarder Goto Github PK
View Code? Open in Web Editor NEWAir724UG 短信转发 & 来电通知 & 语音信箱
License: MIT License
Air724UG 短信转发 & 来电通知 & 语音信箱
License: MIT License
根据教程以及固件进行了刷机,功能正常使用,但是会在3-5天就会卡死,就是无法转发短信,重新上电就可以,但是由于是直接用充电头供电的,没有一直插在电脑上,能有办法看到卡死的日志吗?
请求部分日志如下:
[2023-06-06 09:40:25.540] [I]-[util_notify.add] 添加到消息队列, 当前队列长度: 1
[2023-06-06 09:40:25.617] [I]-[ntpSync] 时间正常, 无需同步
[2023-06-06 09:40:25.617] [I]-[util_notify.poll] 轮询消息队列中, 当前队列长度: 1
[2023-06-06 09:40:25.617] [I]-[util_notify.send] 发送通知 bark
[2023-06-06 09:40:25.617] [I]-[ril.sendat] AT+RFTEMPERATURE?
[2023-06-06 09:40:25.617] [I]-[util_notify] POST https://xxx.com/send/your_key
[2023-06-06 09:40:25.617] [I]-[util_http.fetch] 开始请求 id: http_c1_r7210
[2023-06-06 09:40:25.617] [I]-[http path] /send/your_key
[2023-06-06 09:40:25.617] [I]-[socket:connect-coreid,prot,addr,port,cert,timeout] 0 TCPSSL xxx.com 443 nil 30
[2023-06-06 09:40:25.617] [I]-[ril.proatc] +RFTEMPERATURE: 39.84
[2023-06-06 09:40:25.617] [I]-[ril.proatc] OK
[2023-06-06 09:40:26.057] [I]-[socket:on_response:] 0 SOCKET_CONNECT 1
[2023-06-06 09:40:26.057] [I]-[socket:connect: connect fail] RESPONSE
[2023-06-06 09:40:26.057] [E]-[http.response] false connect fail
[2023-06-06 09:40:26.057] [I]-[socket:sock_close] nil
[2023-06-06 09:40:26.057] [I]-[util_http.fetch] 请求结束 id: http_c1_r7210
[2023-06-06 09:40:26.057] [I]-[util_notify.send] 发送通知失败, 无需重发 code: -99 body:
求:加个wifi模块连接wifi使用
添加个780E吧 大佬
同时是配置两个推送渠道,"inotify"和"pushdeer",作为对照。
三块724核心板:
A:只配置inotify渠道(分别试过http和https)
B:配置inotify和pushdeer渠道,inotify采用http
C:配置inotify和pushdeer渠道,inotify采用https
A核心板:http一直无法推送成功,https测试的时候是失败了,然后换下卖弄的B、C核心板了,但是把url复制到浏览器直接请求,可以正常推送,
B核心板:inotify失败,pushdeer渠道成功,但无论失败还是成功,把url复制到浏览器直接请求,都是正常推送,
C核心板有时候能推送成功,有时候失败,且inotify和pushdeer渠道都是,同时成功,同时失败,即两种推送途径结果保持一致。
但无论失败还是成功,把url复制到浏览器直接请求,都是正常推送,
且以上只要推送失败,log一致打印
[2023-06-18 20:45:57.875] [I]-[util_notify.send] 发送通知失败, 无需重发 code: -99 body:
body为空
1、说明不是http和https问题,怀疑是脚本封装的http方法出现了问题,
2、通电开机后,时间不对(开机看log是先发开机通知,在同步时间),然后导致请求失败(但是有时候成功又如何解释呢?)
敏感信息部分隐去了,或者加入了部分乱码打乱信息,我测试postman请求URL是正常的能发送也能正常收到响应,且推动成功,
sim卡能正常上网,
[2023-06-18 20:45:13.528] [I]-[handler_sms.smsCallback] XXXXXXX 23/06/18,20:45:01+32 傻比
[2023-06-18 20:45:13.528] [I]-[util_notify.add] 添加到消息队列, 当前队列长度: 2
[2023-06-18 20:45:13.528] [I]-[audio.play] 4 FILE /lua/audio_new_sms.mp3 1 nil nil nil
[2023-06-18 20:45:13.528] [I]-[util_notify.poll] 轮询消息队列中, 当前队列长度: 2
[2023-06-18 20:45:13.528] [I]-[util_notify.send] 发送通知 inotify
[2023-06-18 20:45:13.574] [I]-[util_notify] GET https://push.luatos.org/key.send/%E5%82%BB%E6%AF%94%0A%0A%E5%8F%9
[2023-06-18 20:45:13.574] 1%E4%BB%B6%E5%8F%B7%E7%A0%81%3A+177%0A%E5%8F%9E6%97%B6%E9%97%B4%3A+23%2F06%2F18%2
[2023-06-18 20:45:13.574] C20%3A45%3A01%2B32%0A%23%0A%E6%9C%AC%E6%9C%BA%E5%8F%B7%E7%A0%81%3A+%2B8613080025897%0AIMEI%3A+8616
[2023-06-18 20:45:13.574] 58069202%0A%E8%BF%90%A5%E5%95%86%3A+4601%0A%E4%BE5%8F%B7%3A+-129dBm%0A%E9%A2%91%E6%AE%B
[2023-06-18 20:45:13.574] 5%3A+B1%0%BF%E5%8D%A1%3A+Air7240A%E7%B3%BB%E7%BB%9F%E7%89%88%E6%9C%AC%3A+LuatOS-Air_V4018_RDA8
[2023-06-18 20:45:13.574] 910_TTS_NOLVGL_FLOAT%0A%E6%B8%A9%E5%BA%A6%3A+37.41%E2%84%83
[2023-06-18 20:45:13.574] [I]-[util_http.fetch] 开始请求 id: http_c5_r4405
[2023-06-18 20:45:13.639] [I]-[http path] /key.send/%E5%B%A%F%91%E4%BB%B6%E5%8F%B7%E7
[2023-06-18 20:45:13.639] %A0%81%3A545A%E5%8F%91%%B6%E6%97%B6%E9%97%B4%3A+23%2F06%2F18%2C20%3A45%3A01%2B32%0A%23
[2023-06-18 20:45:13.639] SMS%0A%0A%E6%9C%AC%E6%9C%B%E7%A0%81%3A+%2B8613080025897%01658065029202%0A%E8%BF%90%
[2023-06-18 20:45:13.639] E8%90%A5%E5%96%3A+%E4%BF%A1%E5%8F%B7%3A+-129dBm%0A%E9%A2%91%E6%AE%B5%3A+B1%0A%E6%9D%BF%E5
[2023-06-18 20:45:13.639] 1%A1%3A+Air724UG%0A%E7%B3%BB%E7%BB%9F%E7%89%88%E6%9C%AC%3A+LuatOS-Air_V4018_RDA8910_TTS_NOLVGL_FLOAT%0A%E6
[2023-06-18 20:45:13.639] B8%A9%E5%BA%A6%3A+37.41%E2%84%83
[2023-06-18 20:45:13.639] [I]-[socket:connect-coreid,prot,addr,port,cert,timeout] 0 TCPSSL push.luatos.org 443 nil 30
[2023-06-18 20:45:13.639] [I]-[audioTask] FILE #audioQueue 1
[2023-06-18 20:45:13.772] [I]-[audioTask] FILE wait LIB_AUDIO_PLAY_IND
[2023-06-18 20:45:13.772] [I]-[ril.proatc] OK
[2023-06-18 20:45:13.772] [I]-[lib_sms rsp] +CMGD AT+CMGD=1 true OK nil
[2023-06-18 20:45:13.772] [I]-[ril.sendat] AT+RFTEMPERATURE?
[2023-06-18 20:45:13.803] [I]-[ril.proatc] +RFTEMPERATURE: 41.49
[2023-06-18 20:45:13.803] [I]-[ril.proatc] OK
[2023-06-18 20:45:15.338] [I]-[audioTask] FILE recv LIB_AUDIO_PLAY_IND RESULT true
[2023-06-18 20:45:15.408] [I]-[audio.handlePlayInd] RESULT true
[2023-06-18 20:45:15.408] [I]-[audio.handleCb] nil 0
[2023-06-18 20:45:15.408] [I]-[audioTask] wait LIB_AUDIO_PLAY_ENTRY
[2023-06-18 20:45:24.761] [I]-[ril.sendat] AT+RFTEMPERATURE?
[2023-06-18 20:45:24.761] [I]-[ril.proatc] +RFTEMPERATURE: 45.77
[2023-06-18 20:45:24.802] [I]-[ril.proatc] OK
[2023-06-18 20:45:43.655] [I]-[socket:connect: connect fail] TIMEOUT
[2023-06-18 20:45:43.655] [E]-[http.response] false connect fail
[2023-06-18 20:45:43.655] [I]-[socket:sock_close] 0
[2023-06-18 20:45:43.655] [I]-[util_http.fetch] 请求结束 id: http_c5_r4405
[2023-06-18 20:45:43.655] [I]-[util_notify.send] 发送通知失败, 无需重发 code: -99 body:
[2023-06-18 20:45:43.655] [I]-[audio.play] 3 FILE /lua/audio_http_success.mp3 1 nil nil nil
[2023-06-18 20:45:43.655] [I]-[audioTask] FILE #audioQueue 1
[2023-06-18 20:45:43.762] [I]-[audioTask] FILE wait LIB_AUDIO_PLAY_IND
[2023-06-18 20:45:43.762] [I]-[socket:on_response:] 0 SOCKET_CLOSE 0
[2023-06-18 20:45:43.762] [I]-[util_notify.poll] 轮询消息队列中, 当前队列长度: 1
[2023-06-18 20:45:43.762] [I]-[util_notify.send] 发送通知 pushdeer
[2023-06-18 20:45:43.762] [I]-[ril.sendat] AT+RFTEMPERATURE?
[2023-06-18 20:45:43.807] [I]-[util_notify] POST https://api2.pushdeer.com/message/push
[2023-06-18 20:45:43.846] [I]-[util_http.fetch] 开始请求 id: http_c6_r3319
[2023-06-18 20:45:43.846] [I]-[http path] /message/push
[2023-06-18 20:45:43.846] [I]-[socket:connect-coreid,prot,addr,port,cert,timeout] 0 TCPSSL api2.pushdeer.com 443 nil 30
[2023-06-18 20:45:43.846] [I]-[ril.proatc] +RFTEMPERATURE: 42.06
[2023-06-18 20:45:43.846] [I]-[ril.proatc] OK
[2023-06-18 20:45:45.610] [I]-[audioTask] FILE recv LIB_AUDIO_PLAY_IND RESULT true
[2023-06-18 20:45:45.681] [I]-[audio.handlePlayInd] RESULT true
[2023-06-18 20:45:45.681] [I]-[audio.handleCb] nil 0
[2023-06-18 20:45:45.681] [I]-[audioTask] wait LIB_AUDIO_PLAY_ENTRY
[2023-06-18 20:45:54.733] [I]-[ril.sendat] AT+CSQ
[2023-06-18 20:45:54.770] [I]-[ril.proatc] +CSQ: 10,99
[2023-06-18 20:45:54.770] [I]-[ril.proatc] OK
[2023-06-18 20:45:54.770] [I]-[ril.sendat] AT+CESQ
[2023-06-18 20:45:54.811] [I]-[ril.proatc] +CESQ: 99,99,255,255,8,13
[2023-06-18 20:45:54.811] [I]-[ril.proatc] OK
[2023-06-18 20:45:54.811] [I]-[ril.sendat] AT+RFTEMPERATURE?
[2023-06-18 20:45:54.811] [I]-[ril.proatc] +RFTEMPERATURE: 42.17
[2023-06-18 20:45:54.811] [I]-[ril.proatc] OK
[2023-06-18 20:45:57.838] [I]-[socket:on_response:] 0 SOCKET_CONNECT 1
[2023-06-18 20:45:57.875] [I]-[socket:connect: connect fail] RESPONSE
[2023-06-18 20:45:57.875] [E]-[http.response] false connect fail
[2023-06-18 20:45:57.875] [I]-[socket:sock_close] nil
[2023-06-18 20:45:57.875] [I]-[util_http.fetch] 请求结束 id: http_c6_r3319
[2023-06-18 20:45:57.875] [I]-[util_notify.send] 发送通知失败, 无需重发 code: -99 body:
[2023-06-18 20:45:57.875] [I]-[audio.play] 3 FILE /lua/audio_http_success.mp3 1 nil nil nil
[2023-06-18 20:45:57.875] [I]-[audioTask] FILE #audioQueue 1
[2023-06-18 20:45:57.991] [I]-[audioTask] FILE wait LIB_AUDIO_PLAY_IND
[2023-06-18 20:45:59.808] [I]-[audioTask] FILE recv LIB_AUDIO_PLAY_IND RESULT true
[2023-06-18 20:45:59.862] [I]-[audio.handlePlayInd] RESULT true
[2023-06-18 20:45:59.862] [I]-[audio.handleCb] nil 0
以下是从官方demo中找到的,但是奈何不会lua,调试半天也一直报错,不知哪里有问题
{"code":500,"message":"multipart: NextPart: EOF","data":null}
--如下示例代码是利用multipart/form-data模式,上传2参数和1个照片文件
--[[
local function postMultipartFormData(url,cert,params,timeout,cbFnc,rcvFileName)
local boundary,body,k,v,kk,vv = "--------------------------"..os.time()..rtos.tick(),{}
for k,v in pairs(params) do
if k=="texts" then
local bodyText = ""
for kk,vv in pairs(v) do
bodyText = bodyText.."--"..boundary.."\r\nContent-Disposition: form-data; name=\""..kk.."\"\r\n\r\n"..vv.."\r\n"
end
body[#body+1] = bodyText
elseif k=="files" then
local contentType =
{
jpg = "image/jpeg",
jpeg = "image/jpeg",
png = "image/png",
}
for kk,vv in pairs(v) do
print(kk,vv)
body[#body+1] = "--"..boundary.."\r\nContent-Disposition: form-data; name=\""..kk.."\"; filename=\""..kk.."\"\r\nContent-Type: "..contentType[vv:match("%.(%w+)$")].."\r\n\r\n"
body[#body+1] = {file = vv}
body[#body+1] = "\r\n"
end
end
end
body[#body+1] = "--"..boundary.."--\r\n"
http.request(
"POST",
url,
cert,
{
["Content-Type"] = "multipart/form-data; boundary="..boundary,
["Connection"] = "keep-alive"
},
body,
timeout,
cbFnc,
rcvFileName
)
end
postMultipartFormData(
"1.202.80.121:4567/api/uploadimage",
nil,
{
texts =
{
["imei"] = "862991234567890",
["time"] = "20180802180345"
},
files =
{
["logo_color.jpg"] = "/ldata/logo_color.jpg"
}
},
60000,
cbFnc
)
]]
我看它上面有双卡槽,能支持双卡短信转发么
如题, 我正在用bark作为推送方式, 配置文件里如何实现多个bark推送? 十分感谢
有些功能设备需要与您探讨沟通一下 希望得到您的回复 谢谢
例如在使用gotify推送的情况下,如果收到的短信是验证码,就用优先级8发送,否则用优先级1发送?
查阅了一下,硬件不支持。
开共有读写都没用,上传录音都是失败,以下是相关日志
[2022-12-26 23:46:08.283] [I]-[audioTask] wait LIB_AUDIO_PLAY_ENTRY
[2022-12-26 23:46:08.766] [I]-[reacrdStart] 正在通话中, 开始录音 result: nil
[2022-12-26 23:46:08.766] [I]-[record.delete]
[2022-12-26 23:46:08.797] [I]-[record.start] 50 FILE 2
[2022-12-26 23:46:12.186] [I]-[ril.proatc] +CIEV: "CALL",0
[2022-12-26 23:46:12.186] [I]-[ril.defurc] +CIEV: "CALL",0
[2022-12-26 23:46:12.186]
[2022-12-26 23:46:12.186] +CIEV: "CALL",0
[2022-12-26 23:46:12.186] [I]-[ril.proatc] +CIEV: "SOUNDER",0
[2022-12-26 23:46:12.186] [I]-[ril.defurc] +CIEV: "SOUNDER",0
[2022-12-26 23:46:12.186]
[2022-12-26 23:46:12.186] +CIEV: "SOUNDER",0
[2022-12-26 23:46:12.246] [I]-[ril.proatc] NO CARRIER
[2022-12-26 23:46:12.246] [I]-[ril.sendat] AT+CLCC
[2022-12-26 23:46:12.246]
[2022-12-26 23:46:12.246] NO CARRIER
[2022-12-26 23:46:12.292] [I]-[ril.proatc] OK
[2022-12-26 23:46:12.292] [I]-[电话挂断回调] 挂断原因: NO CARRIER
[2022-12-26 23:46:12.292] [I]-[record.stop]
[2022-12-26 23:46:12.292] [I]-[audio.stop] nil
[2022-12-26 23:46:12.292] [I]-[record.MSG_RECORD] true nil FILE
[2022-12-26 23:46:12.292] [I]-[audio.stop] nil
[2022-12-26 23:46:12.292] [I]-[ril.sendat] AT+CHUP
[2022-12-26 23:46:12.292] [I]-[录音结束回调] 录音成功, 时长满足要求 result: true size: 55724 55724
[2022-12-26 23:46:12.356] [I]-[http path] /voice/record/86***********/2022/12/26/23-46-13/***********_1672069573.wav
[2022-12-26 23:46:12.356] [I]-[socket:connect-coreid,prot,addr,port,cert,timeout] 0 TCPSSL test-**********.cos.ap-*.myqcloud.com 443 nil 50
[2022-12-26 23:46:12.356] [I]-[ril.proatc] *CGEV: DEACT,6
[2022-12-26 23:46:12.356] [I]-[link.cgevurc] *CGEV: DEACT,6
[2022-12-26 23:46:12.356]
[2022-12-26 23:46:12.356] *CGEV: DEACT,6
[2022-12-26 23:46:12.356] [I]-[ril.proatc] OK
[2022-12-26 23:46:12.356] [I]-[ril.sendat] AT+CLCC
[2022-12-26 23:46:12.417] [I]-[ril.proatc] OK
[2022-12-26 23:46:12.417] [I]-[电话挂断回调] 挂断原因: CHUP
[2022-12-26 23:46:12.417] [I]-[audio.stop] nil
[2022-12-26 23:46:13.040] [I]-[socket:on_response:] 0 SOCKET_CONNECT 0
[2022-12-26 23:46:13.040] [I]-[socket:connect: connect ok]
[2022-12-26 23:46:13.166] [I]-[socket:on_response:] 0 SOCKET_SEND 0
[2022-12-26 23:46:13.411] [I]-[socket:on_response:] 0 SOCKET_SEND 0
[2022-12-26 23:46:13.657] [I]-[socket:on_response:] 0 SOCKET_SEND 0
[2022-12-26 23:46:13.689] [I]-[socket.rtos.MSG_SOCK_CLOSE_IND]
[2022-12-26 23:46:13.689] [I]-[socket:send] send fail CLOSED
[2022-12-26 23:46:13.689] [E]-[http.response] false send file fail
[2022-12-26 23:46:13.689] [E]-[HTTP回调] 录音上传失败 https://test-**********.cos.ap-*.myqcloud.com/voice/record/86***********/2022/12/26
[2022-12-26 23:46:13.689] /23-46-13/***********_1672069573.wav false send file fail nil nil
还有储存桶配置
如题,已经用cloudflare.com免费服务代理了telegram的api
目前使用https://aa.bb.cc/bot888888888:Abcikasldfjpogpaouiseor-t8 (示意) 即可推送消息
如何修改咱这个项目使得可以使用呢
附 反代参考https://gitee.com/pp/SmsForwarder/wikis/pages?sort_id=5685750&doc_id=1821427
附录6:反向代理TG_BOT_API
准备:cloudflare账号
1.建立一个cf work 复制粘贴以下代码
const whitelist = ["/bot你的botID:"];
//示例const whitelist = ["/bot123456:"];
const tg_host = "api.telegram.org";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
function validate(path) {
for (var i = 0; i < whitelist.length; i++) {
if (path.startsWith(whitelist[i]))
return true;
}
return false;
}
async function handleRequest(request) {
var u = new URL(request.url);
u.host = tg_host;
if (!validate(u.pathname))
return new Response('Unauthorized', {
status: 403
});
var req = new Request(u, {
method: request.method,
headers: request.headers,
body: request.body
});
const result = await fetch(req);
return result;
}
然后获取workers地址如:https://xx.xxx.workers.dev
测试发送消息:{}不需要填写
[https://xxx.xxx.workers.dev/bot{机器人token}/sendMessage?chat_id={消息发送人}&text=test]
将 air780e-forwarder 支持的都添加过来
请教一下录音上传的方式是否支持webdav方式?还有就是录音功能能否关闭?
如果支持,改修改代码的那一部分呢?因为webdav,需要用户名和密码验证。
谢谢啦~
如果我需要关闭这个功能,尽量不要让使用流量,请问在哪里配置
可能用 Cat1模组内置U盘 实现
https://push.luatos.org/
合宙官方的推送
另外这个Air724ug可以连接WiFi吗?
如果可以的话希望大佬怎加一个连接WiFi的功能
实现短信播报,通话播放,通知提示音等功能
收到繁体字的短信,转发后无法显示繁体的字,如下:
【中 信提示】682675( , 勿 露)此 5分 有效!如非本人操作, 忽略本短 。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.