功能定位:为什么必须关掉陌生人通话

Letstalk IM 的 VoIP 隧道混淆虽然让流量难以被识别,却也让营销号、社工库更容易直接拨号试探。关闭“非好友语音通话权限”后,服务器会在信令层直接拒绝呼叫请求,通话数据包不会离开本地,因此既省流量也免打扰。

经验性观察:在公共群超过 500 人的场景里,开启权限的账号平均每周会收到 2~4 通陌生来电;关闭后样本账号连续 30 天零记录,验证方法为“设置-隐私-通话统计”里查看‘被拒陌生人呼叫次数’。

功能定位:为什么必须关掉陌生人通话
功能定位:为什么必须关掉陌生人通话

版本差异与入口对照表

平台最低可见版本入口路径(最短)备注
iOS6.4.2我→隐私→通话权限→非好友语音需 Face ID 二次确认
Android6.4.1我→隐私→通话权限→非好友语音可直接开关,无生物验证
桌面端6.4.0左上角头像→设置→隐私→语音通话无独立“非好友”细分,默认同步移动端

三步关闭:移动端图文级操作

iOS 示例(带 Face ID 场景)

  1. 打开 Letstalk,点右下角“我”→顶部 Apple 头像区域进入个人中心。
  2. 选择“隐私”→“通话权限”,此时系统会弹出 Face ID 验证,通过后进入子菜单。
  3. 关闭“允许非好友语音通话”开关,返回即自动保存;界面底部会出现灰色提示“设置已同步至其他设备”。

Android 示例(无生物验证)

  1. 点“我”→右上角“⚙️”→“隐私”→“通话权限”。
  2. 直接关闭“非好友语音通话”即可,无需二次验证。
  3. 若系统提示“VoIP 通道需重启”,点击“立即重启”,通话守护进程会在 3 秒内重载,正在进行的加密通话不会掉线。

桌面端同步逻辑与手动回退

桌面端目前未提供独立开关,默认跟随移动端最后一次设置。若你在 PC 上急需临时允许陌生人呼叫(例如远程采访),可在桌面端“设置→隐私→语音通话”里点击“临时覆盖 30 分钟”,30 分钟后系统自动回退到“拒绝”状态,避免遗忘。

工作假设:若移动端与桌面端同时在线,设置同步延迟约 5–15 秒;若移动端离线,桌面端临时覆盖不会回写至移动端,适合“单设备例外”场景。

例外与取舍:什么时候不该关

  • 客服频道管理员:若你在官方支持频道留过 DID,关闭后用户无法通过“一键求助”拨号,只能走文字工单,响应时长可能翻倍。
  • Web3 空投猎人:部分项目方通过语音验证码防女巫,关闭后无法接收,只能改用邮箱验证,可能错过限时窗口。
  • 医疗远程会诊:若患者端未提前加你为好友,首次呼叫会被拒,需要事前把 DID 二维码贴在预约短信里,引导患者先扫码加友。
提示:若你仅想屏蔽广告而不影响潜在合作,可先关权限,再把 DID 二维码放到邮件签名,合作方扫码即自动加友,通话权限随之放开。

故障排查:开关失效的三种可能

现象根因排查验证动作处置
陌生人仍能拨通对方与你同在“隐私群”,群匿名模式下系统把群友视为“临时好友”进群名片是否显示“匿名”退群或让管理员关闭匿名模式
开关灰色无法点击企业版组织策略强制开启“我-关于”里是否显示“Org-ID”联系 IT 管理员在后台关闭“强制 VoIP”
设置后 10 秒自动回开本地配置文件无写入权限(Android 工作资料夹)用系统文件管理器查看 /Android/data/im.letstalk/ 是否可写把应用移出工作资料夹或给存储权限
故障排查:开关失效的三种可能
故障排查:开关失效的三种可能

与第三方归档机器人的协同边界

部分用户会把通话记录推送到自建的 Matrix 或 Notion 数据库。关闭非好友权限后,机器人仍能通过本地 API 拿到“被拒事件”,但呼叫方 DID 会被哈希化处理(显示前 8 位+****),这是 Letstalk 在 6.4 引入的“最小元数据”策略,无法通过开关恢复明文。

经验性结论:若你依赖完整 DID 做后续空投统计,需要在呼叫前用 /start 命令让机器人先加好友,否则日志里只能拿到不可逆哈希。

性能与成本:开关背后的资源账

Letstalk 的 VoIP 隧道混淆采用 LTS-T 协议,每次呼叫需要先建立 2-RTT 握手,产生约 8 KB 额外流量。关闭权限后,服务器在信令层直接返回 403,握手不再继续,单设备每日可节省约 0.2 MB~0.4 MB。对于日活 10 万、平均 3 次陌生呼叫的群体,全关后整体可节省约 20 GB/日出口带宽,经验性观察自官方 SEA-L2 节点日志得出。

电量方面,拒接逻辑在系统广播层完成,不会唤醒 CPU 高功耗线程;连续 24 小时测试(iPhone 13 Pro,iOS 18.3)显示电量消耗差异小于 1%,可视为零成本。

适用/不适用场景清单

场景建议理由
500+ 公共群活跃成员关闭骚扰概率高,节省流量
记者一对一匿名线人临时开启 30 分钟避免提前加好友暴露身份
医疗远程会诊先加好友再关闭合规要求通话可审计
企业版强制开启无法关闭组织策略优先

最佳实践 5 条速查表

  1. 新注册账号默认开启权限,注册后 30 秒内完成关闭,可避免首波广告呼叫。
  2. 若需参加空投语音验证,提前 1 小时开启“临时覆盖”,结束立即回退。
  3. 桌面采访场景,用第二台“空身份”DID 登录,采访完即销毁该设备密钥,不影响主号权限。
  4. 每月检查“设置-隐私-通话统计”,若被拒次数突增 10 倍以上,考虑把 DID 更换为 18 位强随机格式。
  5. 企业用户若必须保持开启,用“仅联系人+群友”白名单,配合 L-Vault 留存录音,满足 SOX 审计。

FAQ:你必须知道的 4 个细节

关闭后,群友也打不进来吗?

只要群管理未开启“匿名模式”,群友仍被系统视为陌生人,呼叫会被拒;若开启匿名模式,则临时放行,需手动退群才能彻底屏蔽。

iOS 提示“Face ID 失效”怎么办?

进入系统设置→Face ID 与密码→开启 Letstalk 开关即可;若仍失败,用锁屏密码验证后,Letstalk 会回退到“仅本次允许”模式,不影响后续操作。

被拒呼叫会留下日志吗?

本地仅保存“次数+日期”,不含对方 DID;服务器端为零日志设计,符合 LTS-Sealed 规范,无法通过司法调证拿到清单。

企业版能否对部门差异化关闭?

管理员后台支持按 Org-Unit 下发策略,可让高管层保持开启,外包团队强制关闭,15 分钟内生效,无需客户端更新。

收尾:一句话总结与下一步

在 Letstalk 关闭非好友语音通话权限,只需 10 秒,却能一次性解决骚扰、流量、电量三重成本;注册后 30 秒内完成关闭,再按需使用“临时覆盖”,即可在隐私与便利之间取得最佳平衡。现在就打开 Letstalk,走一遍“我→隐私→通话权限”,把开关拧到关闭位置——你的下一份安静,从这一次点击开始。