C cenaly.com
免费开始

无声音、单通、回音、机械音

为什么已注册但无声音:SIP ALG、NAT、RTP 受阻、Wi-Fi;回音与断音的原因及排查步骤

3 min read 在演示中打开此界面
On this page 23

没有声音、只能听到一方、回声、“机器人音”

电话可能已注册、能拨打、能接听——却完全不传输声音。原因在于,注册和语音是两条不同的路:注册通过端口 5060 上的服务消息进行,而语音则是端口 10000–20000 上的独立数据包流。场所的路由器可能放行前者而拦截后者。这既不是电话故障,也不是 PBX 故障:十次中有九次是两者之间的网络在作祟,几分钟就能排查出来。

电话的通用设置见“SIP 电话设置”概览,其他症状见按症状诊断。

先在管理后台检查#

  1. 用那台设备拨打 回声测试 *43。PBX 接听,一秒后发出提示音,然后回放你的声音。提示音特意在回声之前播放——它单独检查“PBX → 电话”方向,与麦克风无关:

    听到什么 意味着什么
    提示音,然后自己的声音 声音双向传输——到 PBX 的网络正常
    有提示音,听不到自己 声音没有从电话传到 PBX
    连提示音都没有 声音没有从 PBX 传到电话
    能听到自己,但断断续续或有延迟 通路存在但质量差:丢包、抖动、信道过载

    在 *43 中说十秒钟——这样 PBX 才能测出丢包、抖动和延迟。详细分析见“通话质量检查”。

  2. 通话记录——打开有问题的通话。已接听通话的**“声音”**一行会说明语音是否双向传输:“双向”、“分机 101 的电话没有传出声音”或“对方没有传出声音”,旁边还有每一侧的丢包、抖动和 RTT。

  3. 设备卡片 → “双向声音”——这部电话有多少通话是单向的。对于在接听瞬间丢失语音的型号,PBX 会自动启用“PBX 提示音”——这里也能看到。

  4. 通话录音(如果已开启录音):录音里能听到谁,谁的声音就传到了 PBX。

  5. 专用 PBX 上的 SIP 跟踪:在声音描述(SDP、c= 和 m=audio 行)中可以看到每一方声明的地址和端口。

为什么注册正常却没有声音#

我们的 PBX 始终让语音经过自身(电话之间不直接交换声音),并且把语音发回电话语音实际来源的地址,而不是电话自称的地址。因此路由器后面的电话既不需要 STUN,也不需要端口映射。但由此也可推出:如果电话到 PBX 什么都没有传到,PBX 也就无处可回——结果就是双向静音。

注册正常时,最常破坏语音的原因:

  1. 路由器上的 SIP ALG(“SIP Helper”、“SIP Passthrough”)。路由器“帮助”SIP 并改写服务消息中的地址——往往改错。注册通过,声音没有或只有单向。按路由器品牌在哪里关闭它——见“网络、路由器和互联网”。
  2. 出站 UDP 10000–20000 被封锁。 防火墙放行“互联网”(网页端口)和 5060,但不放行语音端口。
  3. 双重 NAT——运营商路由器加上其后的自有路由器:地址被改写两次,其中一个改写者出错。
  4. Wi-Fi——启用了客户端隔离的访客网络、信号弱、电话离接入点太远。
  5. 信道过载——视频监控向云端上传录像,访客在同一网络上观看视频:语音到达时千疮百孔。
给网络管理员:PBX 如何处理声音
  • 语音始终经过 PBX(direct_media=no):电话之间不直接交换 RTP——因此录音、提词器和测量才能工作。
  • 对称 RTP(rtp_symmetric=yes):PBX 把语音发到电话实际发出流的地址和端口。信令也是如此(force_rport、rewrite_contact)。
  • 严格接收(rtp.conf 中的 strictrtp=yes):在通话开始时记住语音来源后,PBX 只接收来自该来源的声音——防止冒充。
  • RTP 端口: 共享服务器——UDP 10000–10200,专用 PBX——UDP 10000–20000。需要开放的是到 PBX 地址的出站 UDP;不需要向内映射。
  • 编解码器: G.711 µ-law(PCMU)、G.711 A-law(PCMA)、G.722。不向电话提供 G.729、Opus 和 AMR。
  • 语音加密(SRTP)默认关闭。电话中启用 SRTP 会导致静音或呼叫失败。
  • 静音挂断未配置(rtp_timeout=0):PBX 不会因没有声音而挂机——“无声”通话会一直保持,直到有人挂断。

取值来自 shared/sip/advanced-options.json 和 sip-edge/asterisk/rtp.conf。

完全没有声音#

为什么会这样#

  • 语音端口双向都被关闭:出站 UDP 10000–20000 被防火墙或路由器拦截。既然电话没有发来任何数据,PBX 就不知道把应答发往哪里。
  • SIP ALG 改写了通话描述中的语音地址,数据包发往了错误的地方。
  • 电话中启用了语音加密(SRTP)——我们的 PBX 默认不提供该功能。
  • 电话中禁用了我们的全部三种编解码器(G.711 PCMA、PCMU 和 G.722)。此时通话通常甚至无法接通——应答为 488。
  • 电话通过VPN 或企业代理连接,而该代理不转发 UDP。

该怎么做#

每一步之后请拨打 *43;仅在无效时继续下一步。

  1. 关闭路由器上的 SIP ALG,并重启路由器和电话。
  2. 向 PBX 地址开放出站 UDP 10000–20000(共享服务器只需 10000–10200)。
  3. 在电话中关闭 SRTP / 语音加密,并确认至少启用了 G.711(PCMA 或 PCMU)。
  4. 用网线将电话接入场所的主网络,避开访客 Wi-Fi 和 VPN。
  5. 如果运营商路由器后面还接有自己的路由器——请将运营商路由器设为桥接(bridge)模式,或将电话直接接入该路由器。详见“网络、路由器和互联网”。

只能听到一方#

为什么会这样#

单向声音有两种不同情况——*43 通过提示音区分它们:

  • “别人听不到我”(有提示音,但听不到自己):声音从电话到 PBX 的传输中断。原因:SIP ALG、麦克风被关闭或 Mute 键被按下、耳机故障、启用了耳机模式却没有接耳机、电话处于访客 Wi-Fi 中。部分型号的声音恰好在接听瞬间丢失——电话会切换语音端口(例如 D-Link DPH-150S 就是如此);对于已知型号,PBX 会自行修正,启用“来自 PBX 的提示音”。
  • “我听不到”(没有提示音):声音从 PBX 到电话的传输中断:严格的防火墙、SIP ALG、双重 NAT。如果通话日志中写着“对方没有声音传来”,那么是运营商侧或主叫方保持静默——与您的电话无关。

该怎么做#

  1. 拨打 *43,根据提示音判断方向。
  2. **“别人听不到我”:**检查 Mute 和耳机,尝试用话筒代替免提;关闭 SIP ALG;将电话移出访客 Wi-Fi。
  3. **“我听不到”:**关闭 SIP ALG;检查防火墙(出站 UDP 10000–20000 及其应答);消除双重 NAT。
  4. *43 双向都清晰,但单向声音只出现在外部通话中——故障在 PBX 与运营商之间。请与同事的内部通话作对比,并将通话时间发送给支持团队。
  5. 单向声音出现在接听瞬间且仅限某一型号——在独立 PBX 的“电话设置”中为分机启用“去电提示音——来自 PBX,而非运营商”。代价:员工将听不到运营商在接听前的提示(“用户无法接通”)。

回声#

为什么会这样#

回声的首要规则:听到回声的是其声音在另一端被反射的人。如果您听到自己的回声——源头在对方:对方的免提、廉价耳机、音量过大的扬声器、车内的电话——麦克风从对方的扬声器中拾取您的声音并发送回来。如果客人抱怨——源头在您这边。

第二个常见源头是模拟线路:普通电话通过网关适配器(ATA),或市话线路通过网关。在数字“四线”与模拟“二线”的接口处,部分信号会被反射回来;网关的回声抑制器会将其消除。

线路延迟越大,回声越明显:几乎立即返回的反射,耳朵无法分辨,而延迟返回的则听起来像重复。

在 *43 中您应该听到自己——这不是回声,而是检查本身。但如果 *43 中自己的声音返回时有明显延迟(日志中 RTT 延迟大于 300 毫秒),那么实际通话中的任何回声都会更加令人烦躁:问题出在通道上。

该怎么做#

  1. **确定谁听到回声。**是您——在对方那里找原因;是客人——在自己这里找。
  2. **来自您设备的回声:**用话筒代替免提,降低扬声器音量,更换耳机;使用免提时,电话不要靠墙或靠玻璃。根据 Yealink 文档,灵敏麦克风放置得过近也会产生回声。
  3. 通过网关通话时的回声(模拟电话或市话线路):检查网关中的回声抑制器是否已启用——对于 Grandstream HT,该字段为 Disable Line Echo Canceller (LEC),语音应设为 No(出厂值);如果曾调高端口增益(Rx / Tx gain),请恢复为出厂值。
  4. 所有外部通话通过同一运营商时出现回声,而内部通话清晰——请将通话时间发送给支持团队。

声音像“机器人”、有咕噜声、音节丢失#

为什么会这样#

声音被切成一个个小数据包,每丢失一个包,就丢失一小段音节。到达不均匀的数据包,电话会在一段时间内进行平滑处理,但如果波动太大——声音就会断续。由此产生三个数值,PBX 会在 *43 以及每个已接通的通话中测量:

数值 良好 可接受 差
数据包丢失 低于 1 % 1–3 % 超过 3 %——“咕噜声”、音节丢失
抖动(到达不均匀度) 低于 30 ms 30–50 ms 超过 50 ms——声音断续
延迟 RTT(往返) 低于 150 ms 150–300 ms 超过 300 ms——通话双方互相打断

同样的阈值会在日志中给出“质量良好 / 可接受 / 差”的评分。

丢失和抖动的来源:Wi-Fi(尤其是离接入点较远或信道拥挤时)、网络过载(摄像头、上传、更新、同一信道上的访客 Wi-Fi)、性能不足的路由器无法承受负载、移动网络和 VPN。

怎么做#

  1. 做两次 *43:一次在空闲时段,一次在高峰时段。空闲时良好、高峰时差——信道拥挤;一直差——网络或 Wi-Fi 问题。
  2. 将电话用网线连接,而不是 Wi-Fi。
  3. 将访客 Wi-Fi 与办公网络分开,并限制其速度;将摄像头视频上传移到夜间。
  4. 如果路由器支持,开启电话优先级(QoS)。通话需要多少带宽——见“网络、路由器和互联网”。
  5. 如果无效——将日志中的数值(丢失、抖动、时间)展示给供应商:这是基于事实的沟通,而不是“你们这边听不清”。

如何判断故障在哪一方#

检查 它能区分什么
从问题话机拨打 *43 您的网络到 PBX ↔ 其他所有环节。*43 干净——话机和场所网络正常
内部通话 vs 外部通话 内部干净、外部差——PBX 与运营商之间的区段或对方一侧
通话录音 录音中能听到谁,谁的声音就到达了 PBX。双方都能听到,但听筒里没有——问题在 PBX 到其中一部电话之间的区段
日志中的“声音”行 “分机 101 的电话没有声音”——您的话机或其网络;“对方没有声音”——远端
同一插座上的另一部电话 症状相同——网络问题;症状消失——话机或其设置

需要向支持发送什么#

  • 通话日期和时间(精确到分钟)、对方号码和分机号;
  • 谁听不到谁,或谁听到了回声;
  • 该话机的 *43 结果:回铃音、自己的声音、是否断续——以及日志中的数值(丢失、抖动、RTT);
  • 日志中通话卡片的截图,包含“声音”行;
  • 电话型号和固件(话机标签上的字符串)、连接方式(网线 / Wi-Fi)、路由器型号以及 SIP ALG 是否关闭;
  • 在独立 PBX 上——重复通话的 SIP 跟踪文本。

如何联系我们——见“支持”。

常见问题#

在 *43 中我听到自己声音有延迟——这是回声吗?#

不是。*43 就是“返回您的声音”:延迟等于到 PBX 的往返时间。低于 300 ms 几乎察觉不到。如果延迟在听觉上很明显(半秒及以上),那么实际通话中会不方便——问题在信道,而不是电话。

声音只在手机来电时消失——是我们这边的问题吗?#

很可能不是:手机对方有自己薄弱的区段——蜂窝网络。请从您的话机检查 *43:如果干净,内部通话也正常,请将几次此类通话的时间发送给支持——我们会查看声音在哪个区段丢失。

其他编解码器——G.729 或 Opus——会有帮助吗?#

不会。我们的 PBX 向电话提供 G.711(PCMA、PCMU)和 G.722——所有电话都支持它们,而且它们不压缩语音,因此对错误更稳定。G.729、Opus 和 AMR 不会提供给电话:在电话中启用它们没有必要。

可以启用语音加密,让路由器“不干涉”通话吗?#

目前不行:电话通过 UDP / TCP 工作,不使用 TLS 和 SRTP。在电话中“以防万一”启用 SRTP 恰恰会导致静音。对付路由器靠的不是加密,而是关闭 SIP ALG。

相关章节#

来源#

  • RFC 3550 — RTP 和 RTCP 报告,用于计算丢包、抖动和延迟 — https://www.rfc-editor.org/rfc/rfc3550
  • ITU-T G.114 — 单向延迟建议(*43 中 150 / 300 ms 往返延迟阈值属于行业实践)— https://www.itu.int/rec/T-REC-G.114
  • Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Troubleshooting → Audio Issues:回声和语音断续的原因
  • Grandstream HT80x Administration Guide — Disable Line Echo Canceller (LEC)、Rx / Tx gain — https://documentation.grandstream.com/knowledge-base/ht80x-administration-guide/
  • 交换机代码:shared/sip/advanced-options.json(direct_media=no、rtp_symmetric、force_rport、rewrite_contact、编解码器、rtp_timeout=0),sip-edge/asterisk/rtp.conf(strictrtp=yes、端口),sip-edge/sipsync/linecheck.go(回声测试 *43,阈值 1 / 3 %、30 / 50 ms、150 / 300 ms)
  • 管理后台界面:通话日志的“声音”行(admin/app/[locale]/calls/i18n/CallsPbxLog.i18n.ts)、“双向声音”区块(admin/components/integrations/SipDeviceMediaHealth.tsx)、“外呼回铃音 — 来自交换机”(admin/components/integrations/SipOptions.i18n.ts)
Was this article helpful?