-
声明:本文仅作合法用途使用,禁止用作非法违法违规用途,否则后果自负,与本文无关。
- 转发短信参考:
https://ai.feishu.cn/wiki/Gk0EwXPDFigsXfkxhFHcznMqnxf
https://github.com/chenxuuu/sms_forwarding
https://ai.feishu.cn/wiki/OzDtw0flbiaGlGkGa5rc15L6nYc
https://github.com/lostmaniac/air780e_forwarder
https://github.com/dushixiang/uart_sms_forwarder
转发短信+语音参考:
https://blog.sparktour.me/posts/2022/10/08/quectel-ec20-asterisk-freepbx-gsm-gateway/
https://hanako.me/ec20_issabel.html
现阶段支持4G短信的开发版
移动ML307C-DCCN(支持移动联通,不支持电信)
Core‑Air780EPV/780EPM(支持全网短信)
Core‑Air780E/780EG开发板(仅移动/联通短信,不支持电信短信+不支持语音)
现阶段支持4G短信+4G语音的开发版
移远EC20CEFAG-512-SGNS mini pice版 全新(淘宝 移远旗舰店) 185 二手70
移动ML307A-DSLN 全新(淘宝 蜂景无限旗舰店店) 14.34
合宙Air724UG 全新(淘宝 上海合宙LuatOS官方企业店)停售 二手40
合宙Air820UG 全新(淘宝 上海合宙LuatOS官方企业店)停售 二手45
广和通fibocom L610-CN 全新(淘宝 广和通官方企业店)停售 二手48
SIMCom芯讯通SIM7600CE‑4G开发板 全新(淘宝 微雪电子 waveshare代理店) 317.79
SIMCom芯讯通A7670E开发板(微雪ESP32‑S3 A7670E)全新(淘宝 微雪电子 waveshare代理店) 147.51
龙尚U9507C-DGNC 全新(淘宝 世纪物联) 115
转发语音短信原理 AT指令
常见通用指令如下
一、短信基础通用指令(3GPP GSM 07.05/07.07标准,全厂商/全模块通用)
| 指令格式 | 功能核心含义 | 参数说明 | 实操示例(文本模式) | 通用范围 |
| AT+CMGF= | 切换短信编码模式 | mode:0=PDU模式(二进制,兼容所有场景);1=文本模式(易操作,推荐) | AT+CMGF=1 → 返回OK(切换到文本模式) | ✅ 全模块通用 |
| AT+CMGR= | 读取单条短信 | index:短信存储位置的序号(如1=第1条,2=第2条) | AT+CMGR=1 → 返回第1条短信内容+状态 | ✅ 全模块通用 |
| AT+CMGL= | 列出指定状态的所有短信 | stat:0=未读;1=已读;2=未发送;3=已发送;4=所有短信 | AT+CMGL=4 → 返回所有短信的序号+内容+状态 | ✅ 全模块通用 |
| AT+CMGS=”” | 发送短信(文本模式) | number:接收号码;输入后模块返回>,输入短信内容,按Ctrl+Z(ASCII 26)发送 | AT+CMGS=”10086″ → 输入查询余额 → 按Ctrl+Z | ✅ 全模块通用 |
| AT+CMGD= | 删除单条短信 | index:短信序号(如AT+CMGD=1删除第1条) | AT+CMGD=1 → 返回OK(删除第1条短信) | ✅ 全模块通用 |
| AT+CPMS=[,,] | 设置短信存储位置 | mem:”SM”=SIM卡(推荐);”ME”=模块内置存储;”MT”=所有存储 | AT+CPMS=”SM” → 短信存储到SIM卡 | ✅ 全模块通用 |
| AT+CNMI=,,,, | 新短信到达提示 | mode:1=新短信直接回显;0=不提示;mt:1=显示短信内容 | AT+CNMI=1,1,0,0,0 → 新短信自动弹窗显示 | ✅ 全模块通用 |
| AT+CSCA? | 查询短信中心号码 | 无参数,返回当前SIM卡的短信中心号码 | AT+CSCA? → 返回+CSCA: “+8613800210500”,145 | ✅ 全模块通用 |
| AT+CSCA=””, | 设置短信中心号码 | sca:短信中心号码(如联通+8613010112500);tosca:145(固定) | AT+CSCA=”+8613800210500″,145 → 保存中心号 | ✅ 全模块通用 |
| AT+CMGW=”” | 保存短信到SIM卡(不发送) | number:接收号码;输入后返回>,输入内容按Ctrl+Z保存 | AT+CMGW=”10086″ → 输入查流量 → Ctrl+Z保存 | ✅ 全模块通用 |
短信指令关键注意事项:
1. 发送短信时,文本模式仅支持纯英文/中文(需模块支持UTF-8),PDU模式兼容所有字符;
2. 短信序号(index)从1开始,可先执行AT+CMGL=4查看所有短信的序号;
3. 短信中心号码需匹配运营商(移动/联通/电信不同),错误会导致短信发送失败。
二、语音基础通用指令(行业通用规范,全厂商/支持语音的模块通用)
| 指令格式 | 功能核心含义 | 参数说明 | 实操示例 | 通用范围 |
| ATD; | 拨打语音电话 | number:被叫号码;末尾分号必须加(区分语音/数据呼叫) | ATD10086; → 模块发起呼叫,返回OK | ✅ 所有支持语音的模块通用 |
| ATA | 接听来电 | 无参数,来电时执行该指令接听 | 来电时ATA → 返回OK(接通通话) | ✅ 所有支持语音的模块通用 |
| ATH | 挂断通话/拒接来电 | 无参数,通话中执行挂断,来电时执行拒接 | 通话中ATH → 返回OK(挂断通话) | ✅ 所有支持语音的模块通用 |
| AT+CLCC | 查询当前通话状态 | 无参数,返回通话类型(语音/数据)、状态(拨号中/接通/挂断)、号码等 | AT+CLCC → 返回+CLCC: 1,0,2,0,”10086″,129 | ✅ 所有支持语音的模块通用 |
| AT+CHUP | 强制释放所有通话 | 无参数,替代ATH,适用于多通话场景 | AT+CHUP → 返回OK(释放所有通话) | ✅ 所有支持语音的模块通用 |
| AT+CLIP= | 开启/关闭来电显示 | n:0=关闭;1=开启(需运营商开通该功能) | AT+CLIP=1 → 返回OK(开启来电显示) | ✅ 所有支持语音的模块通用 |
| AT+CLIP? | 查询来电显示状态 | 无参数,返回当前开启/关闭状态 | AT+CLIP? → 返回+CLIP: 1,1(已开启) | ✅ 所有支持语音的模块通用 |
| AT+CLVL= | 设置通话音量 | level:音量等级(0~10,不同模块范围略有差异,0=最小,10=最大) | AT+CLVL=5 → 返回OK(设置中等音量) | ✅ 绝大多数支持语音的模块通用 |
| AT+CCWA= | 开启/关闭呼叫等待 | n:0=关闭;1=开启(需运营商开通) | AT+CCWA=1 → 返回OK(开启呼叫等待) | ✅ 所有支持语音的模块
语音指令关键注意事项: 1. ATD末尾的分号是核心:不加分号模块会识别为“数据呼叫”,导致拨号失败; 2. 来电时模块会主动回显提示:如RING(普通来电)、+CRING: VOICE(VoLTE来电); 3. 通话音量AT+CLVL的等级范围(0~10/0~8)随模块微调,但指令格式完全通用。 |
语音指令关键注意事项:
1. ATD末尾的分号是核心:不加分号模块会识别为“数据呼叫”,导致拨号失败;
2. 来电时模块会主动回显提示:如RING(普通来电)、+CRING: VOICE(VoLTE来电);
3. 通话音量AT+CLVL的等级范围(0~10/0~8)随模块微调,但指令格式完全通用。
三、跨模块通用验证指令(快速确认模块功能)
| 指令格式 | 功能含义 | 实操价值 |
| AT | 测试模块通信正常性 | 发送AT返回OK,说明模块与开发板串口通信正常 |
| AT+CGMI | 查询模块厂商 | 返回Quectel(移远)/Huawei(华为)/SIMCom(芯讯通),确认厂商 |
| AT+CGMM | 查询模块型号 | 返回ML307A/EC20/SIM7600,确认模块型号 |
| AT+CFUN? | 查询模块功能状态 | 返回+CFUN: 1(正常工作),0为休眠状态 |
四 IMEI指令相关
通用查询
• AT+CGSN:最通用,返回15位IMEI。
• AT+CGSN=1:部分模块需带参数1,如移动ML307A‑DSLN。
• AT+EGMR=0,7:部分模块支持,如移远EC20系列。
各模块修改
| 模块型号 | 查询指令 | 修改指令 | 备注 |
| 移远EC20CEFAG‑512‑SGNS | AT+CGSNAT+EGMR=0,7 | AT+EGMR=1,7,”新IMEI” | 需解锁,部分固件限制,建议先备份 |
| 移动ML307A‑DSLN/ML307C‑DCCN | AT+CGSN=1AT+CGSN | 多为专用工具烧录,无公开AT指令 | 部分版本需厂商授权,谨慎操作 |
| 合宙Air724UG/Air820UG/Air780E/780EG/Air780EPV | AT+CGSN | LuatOS:misc.setImei(“新IMEI”)AT指令:部分支持AT+EGMR=1,7,”新IMEI” | 需LuatOS环境,AT指令需适配固件版本 |
| 广和通fibocom L610‑CN | AT+CGSN | 专用工具烧录,无公开AT指令 | 需厂商技术支持获取权限 |
| SIMCom SIM7600CE‑4G/A7670E | AT+CGSN | AT+SIMIMEI=”新IMEI”部分旧版:AT+CMEC=0(进入配置模式)+ AT+EGMR=1,7,”新IMEI” | 需确认固件版本,新IMEI需符合Luhn校验 |
| 龙尚U9507C‑DGNC | AT+CGSN | 专用工具烧录,无公开AT指令 | 需联系厂商获取烧录工具 |
从常见的AT指令可以看出,找到开发版的AT指令串口或者usb虚拟AT指令串口就可以进行收发短信
那么AT指令串口能否承载语音数据呢?响铃,接通,挂断指令走的原来的AT指令串口,但是通话时的语音不走AT指令口,从常见开发版上看没跟AT走同一个串口,走的另一个串口传输PCM语音,但是串口速率慢,传1s的PCM语音会有几十毫秒的延时,所以基本只能用来录音,不能双向通话。好在一般的开发版还定义了UAC(USB Audio Class)通道,这个能双向传输语音,而且实时性很好。差一点的一般还支持USB数据通道+RTP封装进行实时传输。
