You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teltonika TRM250/Quectel BG96使用gammu无法接收SMS送达报告问题排查

排查步骤

1. 启用Gammu底层AT交互日志

你当前配置中[gammu]段的logformat = nothing会屏蔽调制解调器的原始AT指令交互记录,无法判断设备是否真的上报了送达报告,首先修改配置:

  • 将logformat = nothing改为logformat = textall
  • 新增LogFile = /var/log/gammu-at.log到[gammu]段,单独记录AT交互
    修改后重启gammu-smsd服务,后续所有调制解调器和服务端的指令交互都会写入上述日志文件。

2. 验证调制解调器的送达报告上报配置

Quectel BG96默认不会主动向串口上报短信送达报告,需要通过AT指令开启两个核心配置,你可以先通过minicom/screen连接到/dev/ttyUSB2手动下发指令测试:

  • 首先开启短信阶段2支持,允许状态报告接收:AT+CSMS=1
  • 配置新消息上报规则,将送达报告主动推送至串口:AT+CNMI=2,1,0,2,0
    下发指令后如果返回OK,手动发送一条测试短信,查看AT日志中是否出现以+CDS:开头的上报内容,该内容即为运营商返回的送达报告。

3. 将初始化指令加入Gammu配置

如果手动测试可以正常收到+CDS上报,说明设备需要额外初始化指令,在[gammu]段添加以下配置即可让服务启动时自动下发指令:

init1 = AT+CSMS=1
init2 = AT+CNMI=2,1,0,2,0

4. 验证送达报告记录

完成配置修改后重启gammu-smsd服务,发送测试短信,正常情况下你会在syslog的gammu-smsd日志中看到送达报告的匹配记录,已发送短信的状态也会同步更新。

配置修改参考示例
[gammu]
device = /dev/ttyUSB2
connection = at115200
synchronizetime = no
logformat = textall
LogFile = /var/log/gammu-at.log
init1 = AT+CSMS=1
init2 = AT+CNMI=2,1,0,2,0

[smsd]
Service = sql
Driver = native_mysql
LogFile = syslog
DebugLevel = 255
DeliveryReport = log 
SMSC = +xxxxxx
StatusFrequency = 300
ReceiveFrequency = 60
User = xxx
Password = xxx
Host = localhost
Database = xxx

内容的提问来源于stack exchange,提问作者Marie Fischer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:57:03