软件更新中心

mti-sip-phone 软电话

跨平台 SIP 软电话:托盘常驻、语音/视频通话、本地 WebSocket 控制接口与 JS SDK

MTI Proprietary sipsoftphonevoipdesktop 最近更新 1 小时前
最新 1.0.5 1.0.5-rcpre

1.0.5 · mti-sip-phone 1.0.5

stable 2026-10-03
平台类型文件大小SHA-256
Windows x86 64 位 便携版 Windows 64 位(免安装) 已声明 36.6 MB f9b45c2750c10ce7… 下载
Windows x86 32 位 便携版 Windows 32 位(免安装) 已声明 35.3 MB 5383c19e2f0e29ba… 下载
Linux x86 64 位 便携版 Linux 64 位 已声明 36.1 MB 420a19f32fdd59de… 下载
Linux ARM 64 位 便携版 Linux ARM64 已声明 32.2 MB 76171e438d80f50d… 下载

更新说明

新增

  • 接入更新站点:新增 release/ 目录(release.conf:站点地址 / 应用 ID / 上传令牌;app.json:应用级元数据;icon.svg:图标)与 scripts/release.sh(Windows 用 scripts/release.bat,走 git-bash)一键发布:编译 → 按站点《应用发布规范 v1》打包(发布产物 + release.json + CHANGELOG.md + SHA256SUMS,打成 tar.gz)→ 先经站点接口写入应用级元数据(PUT …/metadata、PUT …/icon,不再直接操作归档目录),再上传发布包。产物文件名固定为 <应用ID>-<平台>-<架构>[.exe](不含版本号,同一平台的下载地址跨版本不变)。上传前校验产物新鲜度(跳过上次构建留下的旧二进制),缺平台的产物显式列出;上传发布包(几十 MB)时显示实时进度条。
  • JS SDK 定时查询更新站点:构造参数新增 updateUrl(地址由网页初始化 SDK 时告知)、appId、updateInterval、updateChannel、updatePrerelease;连上软电话后立即查一次并按间隔定时查询,查到更高版本自动经 system.notifyUpdate 告知软电话(软电话只弹提示,是否下载/重启仍由用户在软电话界面上确认)。新增 checkUpdate()、setUpdateSource() 方法与 update.check 本地事件(可区分已是最新 / 有新版本但本平台无产物 / 已告知过 / 未连接 / 站点 404 / 网络或超时)。预发布策略自适应:本地版本含 -(如 1.0.5-rc)时接受预发布,正式版只看正式版。另有 listReleases()(列出站点上的最新版本与最新稳定版,各带本平台产物信息,不做版本比较)与 notifyUpdate({..., force: true})(强制推送,跳过版本高低检查)。
  • 强制推送更新:WS system.notifyUpdate 新增可选 force 参数,为真时跳过"版本必须更高"的检查(平台一致性等其余校验照旧),可把同版本甚至更低版本推给软电话(联调、回滚用)。自动更新不受影响:SDK 的定时查询不带该参数,仍按版本高低决定要不要提示。
  • 测试页:自动更新卡片新增「更新站点 / 应用 ID / 通道」输入与「检查更新」按钮——点一下列出站点的最新版本与最新稳定版,每行带一个黄底白字的「推送」按钮(强制推送,列表文字用小一号字);展示定时查询结果与软电话侧的更新状态。原来那个手动填版本号/下载地址的「告知新版本」离线演示已去掉(改用站点上的真实版本)。
  • 构建:build.bat / build.sh 读 internal/core/buildinfo.go 的基础版本号,开发构建注入 -rc(如 1.0.5-rc,非正式版),SIP_PHONE_RELEASE=1 的正式构建注入 1.0.5(发布脚本自动区分);构建输出打印本次版本号。

修复

  • 更新提示窗不再占用任务栏:GLFW 会给每个顶层窗口都加上 WS_EX_APPWINDOW(作用是强制生成任务栏按钮),所以 splash 窗口虽然是 WS_POPUP,照样在任务栏留一条标题;而且这条按钮一旦被外壳建出来,之后改样式或隐藏窗口都收不回去(点「稍后」关掉提示窗后任务栏还残留一条点不动的按钮)。现在在第一次显示的同一步内完成「显示 → 立刻隐藏 → 换成 WS_EX_TOOLWINDOW → 再显示」,外壳来不及建按钮(实测:弹窗显示中与关闭后任务栏都没有它的按钮,反复弹出也不累积)。通话面板同样按这个模式处理,也不再占任务栏条目(视频窗口是带标题栏的普通窗口,保留条目)。
  • 更新提示窗的图标改为绿色话机:此前它没有自己的窗口图标,会继承应用图标——未注册时是红色话机。现在窗口显式设绿色话机图标,应用图标本身也固定为绿色话机;红色只留给托盘图标承担"未注册 / 注册失败"的异常提醒(REQ-UI-011 不变:托盘图标在启动时按注册状态显式设置一次)。

变更

  • 版本比较支持预发布标识:1.0.5-rc < 1.0.5、1.0.5-rc > 1.0.4、1.0.5-rc < 1.0.5-rc.1(- / _ 引入预发布标识,逐段比较;+ 之后为构建元数据不参与比较)。这样开发构建(带 -rc)在推送正式版时,即使版本号数字相同也会收到更新通知。原有行为不变:无法解析的版本号一律放行(裁决权在前端)。

API

关于

跨平台 SIP 软电话(Windows / Linux,x86_64 与 arm64),常驻系统托盘。

  • 语音:SIP 注册、呼出/呼入、保持、DTMF;音频 PCMA / PCMU / Opus
  • 视频:H264 / VP8 / VP9 / H263-1998,摄像头可用时双向视频
  • 集成:本地 WebSocket 控制接口 + JS SDK(网页拨号、事件推送、视频订阅)
  • 更新:应用内提示 → 用户确认后自动下载、替换并重启