mti-sip-phone 软电话
跨平台 SIP 软电话:托盘常驻、语音/视频通话、本地 WebSocket 控制接口与 JS SDK
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
GET /api/v1/apps/mti-sip-phone/latest最新版本GET /api/v1/apps/mti-sip-phone/latest?os=windows&arch=x64指定平台GET /api/v1/apps/mti-sip-phone/check?version=1.0.0&os=windows&arch=x64检查更新
关于
跨平台 SIP 软电话(Windows / Linux,x86_64 与 arm64),常驻系统托盘。
- 语音:SIP 注册、呼出/呼入、保持、DTMF;音频 PCMA / PCMU / Opus
- 视频:H264 / VP8 / VP9 / H263-1998,摄像头可用时双向视频
- 集成:本地 WebSocket 控制接口 + JS SDK(网页拨号、事件推送、视频订阅)
- 更新:应用内提示 → 用户确认后自动下载、替换并重启