Releases: myleo1/SimGo
Releases · myleo1/SimGo
Release list
SimGo v2.0.0 - Containerized EC20 Phone Relay
v2.0.0
功能
- 新增 call waiting 运行时对齐(保活):watchdog 每轮(2 分钟)读取
quectel show device state的Call Waiting:状态,与config/quectel.conf [defaults]的callwaiting意图双向对齐:- 配置
yes(默认)且运行时为Disabled→ 自动执行quectel callwaiting enable <dev>,解决模块偶发丢失呼叫等待、第二路来电无提示 / 打不进的问题 - 配置
no且运行时为Enabled→ 自动执行quectel callwaiting disable <dev>
- 配置
- 轻量幂等命令,独立于既有防抖 / 冷却 / 日上限逻辑;驱动状态切换(
scheduled/Stopped)期间保持托管不干预;只记日志、不推送 - 背景:模块 call waiting 状态由驱动运行时决定,上游 chan-quectel 无法保证长期稳定,watchdog 作为兜底确保行为始终符合配置意图
变更
- README(中 / 英)镜像拉取标签更新为
2.0
SimGo v1.7.0 - Containerized EC20 Phone Relay
v1.7.0
变更
- 中英文 README 更新:镜像 pull 标签 1.6.1 → 1.7
修复
- 修复录音文件名联系人命名不生效:拨号计划用
$[...]表达式 +LEN()/IF判断联系人姓名是否为空,但表达式引擎解析 UTF-8 中文时判定错乱,LEN(测试)被当作 0,导致命中 CSV 的中文联系人名也被回退成号码;现移除该判断,命中联系人时姓名直接进入录音文件名(空格替换为_) - 修正
REPLACE调用方式:改为传裸变量名REPLACE(REC_NAME, ,_)(原写法把值当变量名查询,恒空、会清空姓名) - 未收录号码时名字位留空(文件名形如
..._in__号码),号码始终保留 - 同步更新 DESIGN.md / PROMPT-RECORD.md 对应技术说明
SimGo v1.6.1 - Containerized EC20 Phone Relay
v1.6.1
变更
- 中英文 README 更新:镜像 pull 标签 1.6 → 1.6.1
修复
- 修复 v1.6.0 中 Call Waiting 修复未真正生效的问题
SimGo v1.6.0 - Containerized EC20 Phone Relay
v1.6.0
变更
- 升级上游 chan-quectel 驱动(myleo1/asterisk-chan-quectel-lts):
- 修复来电等待(Call Waiting)确定性应用:AT+CCWA 此前只在
quectel_update_registration()的一次性 not-ready → ready 跃迁时下发,模块重启、静默重附着等无可见 0→1 跃迁的重初始化场景下callwaiting=yes不再生效;现改为在每次注册/重注册后幂等重应用——quectel_update_registration()对比设备实际确认状态has_call_waiting与配置值,不一致才下发 CCWA 设置与状态查询,callwaiting=auto时跳过;has_call_waiting在断开/注销时清除,模块重启或命令丢失由下一次周期AT+CEREG?(约 10s)在重注册后自动愈合(5c97bd1) - Dockerfile 构建时拉取上游最新 master,本次镜像已包含上述提交
- 修复来电等待(Call Waiting)确定性应用:AT+CCWA 此前只在
- 中英文 README 更新:镜像 pull 标签 1.5 → 1.6
SimGo v1.5.0 - Containerized EC20 Phone Relay
v1.5.0
变更
- 升级上游 chan-quectel 驱动(myleo1/asterisk-chan-quectel-lts):
- LTE 域
+CEREG响应也作为模块就绪信号处理(55bf76d) - 初始化及运行期周期性查询
AT+CEREG?,保持 LTE 就绪状态新鲜(022323a) - Dockerfile 构建时拉取上游最新 master,本次镜像已包含上述两项提交
- LTE 域
- Telegram 告警推送正文由
<pre>代码包裹改为纯文本(保留换行),与企微推送样式统一——手机端不再出现"复制 / </>"按钮 - 中英文 README 更新:架构图重绘(graph TB → graph LR)、watchdog 原理与信号问题说明修正、项目结构更正
修复
- 修复 Telegram 告警推送始终 404:
sendMessage接口地址api.telegram.org/bot<token>之前多带了一个斜杠,与 telegram_bot.py 对齐后恢复推送;Telegram 失败不再阻断企业微信,双通道独立 try/except,仅全失败才 exit 1 - watchdog 与录音归档 cron 脚本执行权限:setup.sh 自动
chmod +x,并以可执行模式提交,git pull后不再丢失执行位 - 卸载说明补全:列出 setup.sh 可能安装的全部系统组件(inotify-tools、logrotate 包、nftables 规则、残留 Docker 镜像)
SimGo v1.4.0 - Containerized EC20 Phone Relay
v1.4.0
功能
- 新增宿主侧 EC20 模块状态监控与自愈 watchdog:容器外每 2 分钟轮询
quectel show device state,异常自动分级恢复,无需人工干预 - 状态全集识别:
GSM not registered→ 恢复链 A;Not initialized→ 恢复链 B;Not connected→ 恢复链 C;状态切换调度(scheduled尾缀)或Stopped→ 静默让位,不与驱动自愈打架 - 恢复链(轻→重,幂等):链 A = CEREG/CREG 探针 +
quectel reset→ 失败再AT+CFUN=1,1;链 B/C 分别reset/restart now;每步间隔 15 秒复查,命中 OK/SKIP 即视为恢复 - 防抖与限流:同一设备连续 2 轮同类故障才触发;单次动作后冷却 30 分钟;每日动作上限 5 次,超限停止并通知人工
- 通话保护:有活动通话时本轮跳过且不清计数,绝不打断通话
- 双通道告警:异常触发 / 恢复 / 升级 / 状态切换均推送 Telegram + 企业微信(复用
bot.conf),WATCHDOG_NOTIFY可一键关闭,无第三方依赖 - 状态持久化 + 防重入:防抖计数/冷却/当日上限落盘
scripts/.watchdog-state/,flock防并发重入
变更
- 新增
notify_alarm.py容器内双通道通知 CLI,经./scripts只读挂载自动进容器,无需重建镜像 - README 补充录音归档架构图与 DuckDNS 前置依赖说明
安装
- setup.sh 新增 watchdog cron(
*/2,# SimGo-watchdog标记,幂等去重),卸载自动清理 - 新增
logs/watchdog-quectel.log轮询日志,已纳入 logrotate(保留 7 份,gzip) .simgo-manifest新增 watchdog/cli 文件与 cron 条目,卸载同步清理
SimGo v1.3.0 - Containerized EC20 Phone Relay
v1.3.0
修复
- vCard 导入:兼容 Apple / iCloud 导出的属性组前缀(
item1.TEL),此前这类号码全部被跳过 - vCard 导入:去
+86前缀仅限真实手机号段(1[3-9]),不再误伤区号类号码 - NAS 归档:
cp -p在 NAS 不支持保留属主(Operation not permitted)时自动降级普通复制,改以cmp内容校验判定成败,不再误报归档失败 - 归档扫描:录音扩展名改大小写不敏感匹配(wav49 落盘为
.WAV),兜底扫描与清理不再漏档
变更
- 录音清理日志安静化:仅在实际删除文件时记录,空闲扫描不再每 5 分钟刷一条日志
- 新增宿主机日志轮转(logrotate):
logs/每日自动轮转——录音归档日志保留 7 份、Asterisk(messages.log/queue_log)保留 14 份,均 gzip 压缩;配置/etc/logrotate.d/simgo,卸载时自动删除 - setup.sh 自动安装 logrotate 并写入轮转配置
- 此版本 logrotate 配置已在实际部署机(PVE)dry-run 验证通过
SimGo v1.2.0 - Containerized EC20 Phone Relay
v1.2.0
功能
- 双向自动通话录音:去电/来电均自动录制,通话接通后才开始(不录振铃/等待音),挂机自动停止
- 总开关控制:
RECORDING_ENABLED一键开启/关闭自动录音(默认开启),无需改动拨号计划 - 录音格式可选:
wav49(默认)/ulaw - 联系人命名:录音自动用联系人姓名命名,未收录号码回退为号码(
spool/contacts.csv) - vCard 通讯录导入:一条命令将 iPhone / 安卓导出的 vCard 转为联系人表(自动生成去
+86手机号段变体行) - 持久化归档:宿主机守护(inotifywait)监听录音落盘,
cp+ 逐字节cmp校验后归档到 NAS 等持久化目录,按YYYY-MM分月子目录 - 本地保留策略可选:归档即删(默认)/ 保留 N 天 / 大小上限,B+C 可组合
- 本地中转 + 守护归档:录音永远先写本地,归档存储不可用(如 NAS 未启动)不影响通话,恢复后 5 分钟内自动补传
安装
- setup.sh 新增录音交互:总开关、录音格式、持久化归档目录、本地保留策略
- 自动安装 inotify-tools,配置
@reboot常驻守护 + 每 5 分钟兜底扫描 cron .simgo-manifest同步记录新生成文件与 cron,卸载自动清理
SimGo v1.1.0 - Containerized EC20 Phone Relay
v1.1.0
变更
- 中英文 README 新增法律风险声明
- 中英文 README 新增 Mermaid 架构图
- 镜像版本更新至 1.1.0
- 升级 chan-quectel 驱动:适配 EC20 简化固件的 AT+CCWA 命令
修复
- 修正 setup.sh 企业微信相关提示文字
清理
- 移除 telegram_bot.py 中未使用的 reply_sms 死代码
- 移除 docs/DESIGN.md 中过时的 asterisk_history 描述
SimGo v1.0.1 - Containerized EC20 Phone Relay
v1.0.1
变更
- 项目从 CellBridge 更名为 SimGo
- Docker 容器名:cellbridge → simgo
- Manifest 文件:.cellbridge-manifest → .simgo-manifest
- Cron 标记:# CellBridge → # SimGo
- 新增英文版 README