准备工作
若要排查 SIP Link 问题,请确保您拥有:
- SBC 上的数据包捕获
- 防火墙上的数据包捕获数据
- 用于查看数据包捕获的工具
- 对 SBC 日志的访问权限
注意:如果您在问题排查方面还需要其他帮助,请与您的 SBC 供应商或运营商联系。
确认与 SIP Link 的信号连接
SIP Link 的信令使用传输层安全协议 (TLS)。TLS 由公共证书授权机构 (CA) 创建的证书包组成。您可以在管理员控件的 SIP Link 着陆页中检查 TLS 连接的状态。
- 确认您的 TLS 证书来自下列证书授权机构之一:
- DigiCert
- Entrust DataCard
- GlobalSign
- GoDaddy
- Sectigo
- 启动传输控制协议 (TCP) 三次握手,然后进行 TLS 握手。
证书交换时,Voice 会发送一个证书,然后发送 SBC 的证书。
- 进行此交换后,即可在 Voice 和 SBC 之间交换应用数据。
排查通话质量问题
如果您遇到通话质量问题,请确保您的网络延迟时间稳定且较短。当 Voice 流量在 Voice 与 SBC 之间的传输路径最短时,通话质量最佳。请确保往返延迟时间不超过 100 毫秒。
如需测试网络延迟时间,请执行以下操作:
- 从 SBC 的外部接口对 Voice 媒体前端服务器执行 ping 操作。
- 与 Voice 保持连接至少 4 小时。
- 确保延迟时间稳定且不超过 100 毫秒。不要计算平均延迟时间,并检查是否存在偶发的延迟时间激增。
- 如果延迟时间超过 100 毫秒,请使用 traceroute 实用程序输出从 SBC 或客户端机器到 Voice 媒体前端的网络路径。该路径应尽可能短,例如:
- 对于桌面设备,请使用 > traceroute lens.voice.google.com
- 对于 Chromebook,请使用 > tracepath lens.voice.google.com
- 对于 SBC,请使用 traceroute siplink.telephony.goog 或 traceroute lens.voice.google.com
排查常见的信号连接问题
无法在 SBC 和 Voice 之间建立 TCP 会话
如果无法建立 TCP 会话,可能是防火墙或网络连接问题所致。SBC 可以发送 SYN 消息,但无法获得响应。
如需解决此问题,请执行以下操作:
- 对 siplink.telephony.google 执行 ping 操作以确保网络连接可用。
- 为 Voice 启用目标端口 5672。
- 确认 DNS 能正常解析 siplink.telephony.goog。
- 确保防火墙允许来自 SBC 的流量,且 siplink.telephony.goog:5672 端口已打开。
无法在 SBC 和 Voice 之间建立 TLS 会话
如果无法建立 TLS 会话,可能是 PCA 认证问题所致。您可能会收到一条“严重”级别提醒,告知您证书未知。
如需解决此问题,请执行以下操作:
- 确保与 PCA 关联的根证书和中间证书已上传到与 SIP Link 的 TLS 配置文件关联的密钥库中。为 SBC 认证生成 CSR 时,请遵循相应 SBC 供应商的互操作性文档中的指南。
- 确保您的 SBC 证书符合以下准则:
- 密钥大小为 2,048
- 使用 RSA 或 ECDSA 加密
- 通用名称 (CN) 与为 SIP Link 创建的主机名一致
- 证书中的 CN 域名与 Workspace 域名一致
- 已启用双向身份验证
- 已启用服务器和客户端身份验证
- 不支持通配符证书
- 确保在 pki.goog 中找到的 Google 认证 GTSR1 也上传到了 SIP Link 的相应 TLS 配置文件的密钥库中。
- 检查从 SBC 到 Google 的证书是否已失效。
SBC 邀请期间收到“404 Not Found”(404 找不到)或“604 Not Found”(604 找不到)响应
如果您在 SBC 发出邀请期间收到“404 Not Found”或“604 Not Found”响应,则表示您可能尚未为 Voice 分配 SBC 号码。
如需解决此问题,请执行以下操作:
- 确保已将 SBC 电话号码分配给 Voice 中的用户、自动客服或响铃群组。
- 确认电话号码采用 E. PAI 标头中的 E.164 格式。
SBC 邀请期间收到“400 Bad Request”响应
如果您在 SBC 发出邀请期间收到“400 Bad Request”响应,可能是您使用的密钥不正确。
如需解决此问题,请执行以下操作:
- 检查邀请消息,确保其中包含正确的 X-Google-Pbx-Trunk-Secret-KeyX-Google-Pbx-Trunk-Secret-Key SIP 标头值。此密钥是在您设置 SIP Link 时生成的。
- 确认电话号码采用 E. 164 格式。
收到来自 Voice 的“403 Forbidden”响应
如果您收到“403 Forbidden”响应,则表示 SBC 向 Voice 发送的邀请中的请求 URI (RURI) 可能有误。请确认 RURI 的主机是 trunk.sip.voice.google.com。
排查常见的媒体连接问题
开始排查媒体连接问题之前,请确保您的网络满足以下条件:
- 您的网络使用数据报传输层安全协议 (DTLS) 加密或者用于媒体流的会话描述协议安全描述 (SDES) 加密,但未同时使用这二者。
- 您未使用未加密的 SDP 提议。通过此方式进行的通话会自动终止。
- MKI 或 Crypto Lifetime 必须处于停用状态。
- 若采用 DTLS,则须在 SBC 中使用自签名证书。证书不必是 CA 签名的证书。
- 确保在 SBC 的 Voice 配置文件中配置了下列受支持的编解码器之一:G711 mulaw (PCMU)、G711 alaw (PCMA)、Opus 或 G722。
- 双音多频 (DTMF) 以电话事件的形式存在。
- 为 SBC 的外部接口分配专用公共 IP。
- 为防火墙配置源 NAT 和目标 NAT。
证书协商失败 (DTLS)
如果您收到一条提醒消息(级别:严重;说明:未知证书授权机构 (CA)),则说明用于 DTLS 的证书可能未经认证。
DTLS 协商始于提议和应答 SDP 连接字段中指定的媒体端点之间的证书握手。协商成功后,媒体会通过加密连接在 SBC 和 Google Voice 之间传输。
如要解决此问题,请确保证书包含来自 SBC 的自签名证书。请勿使用公共 CA 签名的证书,因为这会使 UDP 上出现碎片,进而导致出现问题。
从 SBC 向 Voice 发出的客户端问候消息未收到响应 (DTLS)
使用 DTLS 加密时,您可能会收到从 SBC 向 Voice 发出的多条客户端问候消息,但没有响应。
如需解决该问题,请执行以下操作:
- 检查防火墙端口,确保从 SBC 到 Voice 媒体 IP 子网 (74.125.39.0/24) 端口 19305 或 26500 的媒体流是双向的。
- 对于 SBC 公共 IP,媒体流应为:媒体端口 <> 74.125.39.0/24:(19302-19308, 26500)。如需了解详情,请参阅 SIP Link 的防火墙端口部分。
- Google Voice 媒体 IP 可通过 ping 访问。此外,若要测试是否能从 SBC 访问 Google Voice 媒体 IP,也可以使用这种方式。
从 SBC 到 Voice 的 UDP 没有响应
如需解决该问题,请执行以下操作:
- 检查防火墙端口,确保从 SBC 到 Voice 媒体 IP 子网 (74.125.39.0/24) 端口 19305 或 26500 的媒体流是双向的。
- 对于 SBC 公共 IP,媒体流应为:媒体端口 <> 74.125.39.0/24:(19302-19308, 26500)。如需了解详情,请参阅 SIP Link 的防火墙端口部分。
- Google Voice 媒体 IP 可通过 ping 访问。此外,若要测试是否能从 SBC 访问 Google Voice 媒体 IP,也可以使用这种方式。
- 执行网络地址转换 (NAT) 时,防火墙不得修改 SBC 发送的端口。如果修改,Voice 会丢弃从 SBC 发送的媒体数据包,因为源会显示为 SBC 的公共 IP,但端口会与协商的 SDP 提议和应答不同。
数据包流是双向的,但通话没有声音
如要解决此问题,请检查用于媒体的加密方式。加密媒体时,应使用 AES_CM_128_HMAC_SHA1_80。
Google 使用 486 响应邀请 (SDES)
如要解决此问题,请检查用于媒体的加密方式。
如果邀请包含 SIP Link 不支持的 MKI,则请停用 MKI。
相关主题
Google、Google Workspace 以及相关标志和徽标是 Google LLC 的商标。其他所有公司名和产品名是其各自相关公司的商标。