同一通电话可以在一部手机上显示一个名称,在另一部手机上显示另一个名称。主叫方对这两个名称都没有选择权。之所以如此,是因为号码和名称通过不同的路径到达手机,由不同的参与方决定。
呼叫本身携带了什么?
一个号码,以及关于谁有权使用该号码的声明。
主叫号码是呼叫建立过程的一部分,随呼叫一起到达,是接收网络可以立即处理的信息。没有随呼叫到达的是名称。
签名改变的是号码的可信程度,而非名称的有无。STIR/SHAKEN 证明主叫方有权使用该主叫号码,这是一项仅关于号码的声明。一通完全通过认证的呼叫,显示的仍然是接收端决定展示的任何名称。
名称从哪里来?
来自接收运营商根据号码查询的数据库。
CNAM(主叫名称服务)是在被叫端执行的查询。接收运营商取得主叫号码,向主叫名称数据库查询该号码对应的名称记录,然后将结果传递给手机。主叫方不参与这一过程。
由此产生两个结果。因为查询发生在远端,不同运营商可能为同一通呼叫显示不同的名称。过时的记录会在企业更改名称很久之后仍然显示旧名称。因为主叫方不参与查询,你这边的任何设置都无法决定结果。
屏幕上的名称究竟由什么决定?
四种来源之一。它们大致按以下顺序生效。
| 来源 | 来自哪里 | 对你意味着什么 |
|---|---|---|
| 已保存的联系人 | 收件人自己的通讯录 | 你无法影响它,而且它通常优先级最高 |
| CNAM 记录 | 接收运营商查询的主叫名称数据库 | 通过持有该号码记录的一方进行更改 |
| 垃圾标记 | 接收运营商或手机自身的分析系统 | 是对通话流量的判断,根本不是名称 |
| 经过认证的身份 | 经签名的呼叫,在接收端验证 | 证明号码确实属于你,但不涉及名称 |
如果收件人已保存该号码,无论其他人做什么,都会显示他们自己的标签。被判定为骚扰的呼叫可能会用警告信息取代任何名称。为什么来电被标记为疑似垃圾介绍了最后一行的情况。
设置显示名称和证明号码属于我是一回事吗?
不是。它们是两个独立的问题,使用不同的机制。
证明号码控制权的方式是验证该号码,验证通过后你便获得从该号码发起呼叫的权利。为号码发布名称的方式是更新主叫名称记录,通过持有该记录的一方完成。
服务商可以完成前者而不涉及后者。前者是你与自己运营商之间的关系,后者是存储在其他所有运营商查询的数据库中的一条记录。
我在 Bird 上可以做什么?
注册并验证你已持有的号码。将名称视为本地标签。
Bird 通过拨打电话并要求输入验证码来验证外部持有的号码,从而确认你对该号码拥有足够的控制权以发起呼叫。来电显示指南介绍了该流程,该流程在控制面板中执行,而非通过公开的 API。
已注册来电显示上的 name 是你自己的标签,用于区分多个已注册号码。它不会出现在通话中,因此更改它不会影响被叫方看到的内容。Bird 上的任何操作都不会发布主叫名称。如需更改显示名称,请联系持有该号码 CNAM 记录的一方。
简而言之
号码随呼叫传递,名称靠查询获取。
呼叫携带的是主叫号码。号码旁边显示的名称来自接收运营商查询的数据库,而非来自主叫方。
四种不同的来源决定屏幕上显示的名称。
已保存的联系人、CNAM 查询、运营商垃圾标记和经过认证的身份,各自以不同方式决定显示内容。
签名验证的是号码,而非名称。
STIR/SHAKEN 证明主叫方有权使用某个号码,但不涉及为该号码显示的名称。
Bird 的来电显示标签仅供你自己使用。
已注册来电显示上的名称不会出现在通话中,因此更改它不会改变被叫方看到的内容。