BreePhone 应用图标

BreePhone

macOS 原生 SIP 软电话。小巧精致,简洁强大。专为 Mac 设计,让 VoIP 通话回归简单、自然与优雅。

原生 macOS 应用 现代化 UI Apple Silicon 多账号共存 通话网络自检 自带 SIP 信令
下载最新版本 v0.4.0 全部版本
界面

精致小巧,简洁强大

紧凑的界面布局,将账号状态、通话控制和诊断信息集中呈现。无需打开庞大的管理窗口,常用功能随手可用,专业能力始终保持触手可及。

特性

不只是 SIP 软电话,更是你的通信诊断工具

从日常通话到深度排障,账号管理、网络检测、SIP 信令与音频链路分析一应俱全。把复杂的通信状态变得清晰可见,让每一次连接都更稳定,让每一次故障都更容易定位。

多账号并存

多个账号可以同时挂着,拖着排序,挨个启用停用。密码和 TURN 凭据存在 macOS 钥匙串里,不落数据库,也不进日志。

完整的通话控制

  • 静音是麦克风方向的,对方听不到你
  • 关扬声器是播放方向的,对方还听得到你
  • 保持 / 恢复、DTMF 键盘
  • 来电等待:可以接、可以拒,搁置的那一路电话点一下即可切换

换网络自动适应

切换网络通话自适应不间断。换 Wi-Fi、插网线、开关 VPN 之后会自己重探对外地址再注册一遍,不用重启。注册没成功还会按递增间隔自己重试。

网络自检

本机有没有正常监听、域名解析到了哪个公网地址、语音从哪张网卡出去、STUN 拿到的对外地址有没有被改端口。挨个查完,告诉你网络是否正常、能否支持正常通话。

SIP 信令可回溯

每通电话都留下一份信令时序,按报文实际的收发方向归纳。是根本没发出去,还是对端没回,一眼分得清。

音频设备可指定

输入输出逐项挑,通话中改也立刻生效。旁边的 RTP 实时电平波纹能看出到底是麦克风没声、还是对方那边没声、还是对方语音流没发过来。

菜单栏常驻

不打电话就缩进菜单栏,注册状态和通话时长一眼看到。窗口还能始终置顶,一直贴着屏幕边也不碍事。

一键备份与迁移

账号、联系人、通话记录、设置全打成一个文件,换台机器导进去接着用。导入前会先给你看摘要(覆盖还是合并),确认了才动。

精细到账号的设置

传输方式、注册间隔、STUN、TURN、ICE,连音频编码清单,都是按账号单独配的。

排障

看见通话背后的每一个细节

网络是否正常、媒体是否畅通、通话如何结束,从网络连通性、SIP 信令到 RTP 音频链路,关键状态清晰呈现,排查问题不再依赖外部工具。

网络自检:四行结论,一句「该怎么做」

点一次「重新检查网络」,依次检查这四件事并把判断结果直接写出来:

  • SIP 监听端口:本机有没有正常监听
  • SIP 服务器:域名解析到了哪个公网地址
  • 本机地址:拨号和语音从哪张网卡发出
  • 对外地址:STUN 拿到的地址,以及端口有没有被改写

自动探测通话相关网络是否可用,再以简要的形式描述出来,比如「路由器往外转发时会换用别的端口,因此不做对外地址通告」。

网络自检界面
设置 → 网络相关 → 重新检查网络

网络胶囊:时延、丢包、算法说明都能点开

顶栏那颗胶囊常驻显示网络类型和信号强度。点开是一张详情卡:往返时延、波动、最慢一档、丢包、链路速率、出口网卡,还有是否检测到 VPN / 代理。

每一项旁边都有 ⓘ,点开是这一项的具体算法说明,不是一句「良好」就完了。

切换网络,通话不间断,并自动重新探测,始终显示当前最新网络情况。

顶栏网络胶囊详情
点顶栏的网络胶囊

SIP 信令回溯:谁先松的手

每通电话都留一份信令时序,按报文实际收发方向归纳,再也不用单独抓包了:

  • 呼出没有任何回包 → 信令根本没出去
  • 回了 100 就没了 → 对端或中间设备把 INVITE 吞了
  • 有 200 OK 但没有 ACK → 媒体地址多半有问题
  • 当然,通话界面也会实时显示 RTP 媒体流的收发情况,是我方流没发出去,还是对方流没发过来,一眼就能看出

同一页还会写明是谁先挂的、结束状态和结束原因。回看一通失败的通话,几秒钟够了。

通话详情与 SIP 信令时序
通话记录 → 详情
安装

三步,一分钟

1

下载 DMG

从 最新版本(v0.4.0) 下载 BreePhone-x.y.z.dmg。只出了 Apple Silicon 版。

2

拖进「应用程序」

双击挂载后,把 BreePhone 拖进 Applications 文件夹,然后弹出磁盘映像。

3

右键 →「打开」

在「应用程序」里右键(或按住 Control 单击)BreePhone,选「打开」,弹窗里再确认一次。就这一次。

提示「无法验证开发者」或「Apple 无法检查其是否包含恶意软件」?

1. 请提前做好系统配置,「系统设置 → 隐私与安全性」,点「允许任何来源」。

2. 如果提示的是「已损坏」,同样先用右键打开;仍然不行就去 「系统设置 → 隐私与安全性」,在页面下方找到被拦下的那一条,点「仍要打开」。

常见问题

多半是这两件事

电话接通了,但听不到对方的声音(或者只有单通)

先打开 设置 → 网络相关 → 重新检查网络,看那四行结论:

  • 「对外地址」是无应答 → 这台机器到所有 STUN 服务器都不通。 先换个网络(比如手机热点)确认是网络问题还是配置问题。
  • 「对外地址」拿到的是内网地址 → 运营商的大内网,应用会主动放弃地址通告, 这时能不能打通取决于对端和服务器怎么配。
  • 四项都是绿色但依然没声音 → 打开「设置 → 高级 → 打开日志文件夹」, 在日志里找 [RTP TX] 与 [RTP RX]: 本机发得出去、收不到包,说明对端的媒体根本没到你这儿,问题在中间链路上。

「SIP 监听端口」如果不是 5060,不用在意——这是刻意设计的: 固定用 5060 时对端的媒体地址容易被中间设备改写,反而更容易没声音。

开着 VPN 就注册不上

这类问题的根因是「套接字被钉死在启动那一刻的网卡上」。BreePhone 绑的是通配地址、 源地址交给内核按路由决定,所以开关 VPN 不会再导致注册失败。

如果仍然注册不上:换网络后应用会自动重试(约 2.5 分钟内按递增间隔重发 7 次), 也可以到 设置 → 账号 里手动点一次重新注册。

支持哪些音频编码?

按协商优先级排列:

编码说明
opus/48000/248 kHz 全带,抗丢包最好
G722/16000/1宽带 16 kHz
PCMUG.711 µ-law,兼容性最好
PCMAG.711 A-law
L16/44100/2
L16/44100/1
未压缩线性 PCM,码率很高,只在对方只认它时才用得上

在账号设置里可以勾选与排序。不包含 G.729 / GSM / Speex / iLBC / AMR。

换电脑怎么迁移?

设置 → 数据 → 导出数据 会生成一个包含全部账号、联系人、通话记录与设置的 备份文件(默认包含账号密码,请妥善保管)。在新机器上装好 BreePhone, 用「导入数据」选中这个文件即可,导入前会先给你看一份摘要,导入模式可选整体覆盖或合并。

有没有 Intel Mac / Windows / Linux 版本?

目前只有 Apple Silicon 版。Intel 版得把底层依赖整套重编一遍,暂时没有计划; 其它平台不在考虑范围内。

能用命令行或脚本发起呼叫吗?

可以,应用注册了 bree:// 协议:

bree://call/1002
bree:1002
bree://hangup
日志和数据放在哪里?
内容位置
账号、联系人、通话记录~/Library/Application Support/BreePhone/breephone.sqlite
日志~/Library/Application Support/BreePhone/breephone.log
账号密码、TURN 密码系统「钥匙串访问」

日志只写本地文件,不写系统统一日志——里面会有通话号码、服务器地址与 SIP 报文, 落到 Console.app 那种谁都能翻的持久库里不合适。

会自己静默更新吗?

不会。应用每次启动会向本仓库的 Releases 查询最新版本(GitHub 官方接口,匿名调用), 发现新版本时弹窗提示并打开发布页,不会自己下载替换。 在没有签名与公证链路的前提下,让程序自动替换自己的可执行文件,风险远大于收益。

下载 BreePhone

免费使用。发现新版本时应用会提示你,不会偷偷替换自己。

直接下载 v0.4.0

需要 macOS 13(Ventura)或更高 · Apple Silicon