没有声音、只能听到一方、回声、“机器人音”
电话可能已注册、能拨打、能接听——却完全不传输声音。原因在于,注册和语音是两条不同的路:注册通过端口 5060 上的服务消息进行,而语音则是端口 10000–20000 上的独立数据包流。场所的路由器可能放行前者而拦截后者。这既不是电话故障,也不是 PBX 故障:十次中有九次是两者之间的网络在作祟,几分钟就能排查出来。
电话的通用设置见“SIP 电话设置”概览,其他症状见按症状诊断。
先在管理后台检查#
用那台设备拨打 回声测试
*43。PBX 接听,一秒后发出提示音,然后回放你的声音。提示音特意在回声之前播放——它单独检查“PBX → 电话”方向,与麦克风无关:听到什么 意味着什么 提示音,然后自己的声音 声音双向传输——到 PBX 的网络正常 有提示音,听不到自己 声音没有从电话传到 PBX 连提示音都没有 声音没有从 PBX 传到电话 能听到自己,但断断续续或有延迟 通路存在但质量差:丢包、抖动、信道过载 在
*43中说十秒钟——这样 PBX 才能测出丢包、抖动和延迟。详细分析见“通话质量检查”。通话记录——打开有问题的通话。已接听通话的**“声音”**一行会说明语音是否双向传输:“双向”、“分机 101 的电话没有传出声音”或“对方没有传出声音”,旁边还有每一侧的丢包、抖动和 RTT。
设备卡片 → “双向声音”——这部电话有多少通话是单向的。对于在接听瞬间丢失语音的型号,PBX 会自动启用“PBX 提示音”——这里也能看到。
通话录音(如果已开启录音):录音里能听到谁,谁的声音就传到了 PBX。
专用 PBX 上的 SIP 跟踪:在声音描述(
SDP、c=和m=audio行)中可以看到每一方声明的地址和端口。
为什么注册正常却没有声音#
我们的 PBX 始终让语音经过自身(电话之间不直接交换声音),并且把语音发回电话语音实际来源的地址,而不是电话自称的地址。因此路由器后面的电话既不需要 STUN,也不需要端口映射。但由此也可推出:如果电话到 PBX 什么都没有传到,PBX 也就无处可回——结果就是双向静音。
注册正常时,最常破坏语音的原因:
- 路由器上的 SIP ALG(“SIP Helper”、“SIP Passthrough”)。路由器“帮助”SIP 并改写服务消息中的地址——往往改错。注册通过,声音没有或只有单向。按路由器品牌在哪里关闭它——见“网络、路由器和互联网”。
- 出站 UDP 10000–20000 被封锁。 防火墙放行“互联网”(网页端口)和 5060,但不放行语音端口。
- 双重 NAT——运营商路由器加上其后的自有路由器:地址被改写两次,其中一个改写者出错。
- Wi-Fi——启用了客户端隔离的访客网络、信号弱、电话离接入点太远。
- 信道过载——视频监控向云端上传录像,访客在同一网络上观看视频:语音到达时千疮百孔。
给网络管理员: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;仅在无效时继续下一步。
- 关闭路由器上的 SIP ALG,并重启路由器和电话。
- 向 PBX 地址开放出站 UDP 10000–20000(共享服务器只需 10000–10200)。
- 在电话中关闭 SRTP / 语音加密,并确认至少启用了 G.711(PCMA 或 PCMU)。
- 用网线将电话接入场所的主网络,避开访客 Wi-Fi 和 VPN。
- 如果运营商路由器后面还接有自己的路由器——请将运营商路由器设为桥接(bridge)模式,或将电话直接接入该路由器。详见“网络、路由器和互联网”。
只能听到一方#
为什么会这样#
单向声音有两种不同情况——*43 通过提示音区分它们:
- “别人听不到我”(有提示音,但听不到自己):声音从电话到 PBX 的传输中断。原因:SIP ALG、麦克风被关闭或 Mute 键被按下、耳机故障、启用了耳机模式却没有接耳机、电话处于访客 Wi-Fi 中。部分型号的声音恰好在接听瞬间丢失——电话会切换语音端口(例如 D-Link DPH-150S 就是如此);对于已知型号,PBX 会自行修正,启用“来自 PBX 的提示音”。
- “我听不到”(没有提示音):声音从 PBX 到电话的传输中断:严格的防火墙、SIP ALG、双重 NAT。如果通话日志中写着“对方没有声音传来”,那么是运营商侧或主叫方保持静默——与您的电话无关。
该怎么做#
- 拨打
*43,根据提示音判断方向。 - **“别人听不到我”:**检查 Mute 和耳机,尝试用话筒代替免提;关闭 SIP ALG;将电话移出访客 Wi-Fi。
- **“我听不到”:**关闭 SIP ALG;检查防火墙(出站 UDP 10000–20000 及其应答);消除双重 NAT。
*43双向都清晰,但单向声音只出现在外部通话中——故障在 PBX 与运营商之间。请与同事的内部通话作对比,并将通话时间发送给支持团队。- 单向声音出现在接听瞬间且仅限某一型号——在独立 PBX 的“电话设置”中为分机启用“去电提示音——来自 PBX,而非运营商”。代价:员工将听不到运营商在接听前的提示(“用户无法接通”)。
回声#
为什么会这样#
回声的首要规则:听到回声的是其声音在另一端被反射的人。如果您听到自己的回声——源头在对方:对方的免提、廉价耳机、音量过大的扬声器、车内的电话——麦克风从对方的扬声器中拾取您的声音并发送回来。如果客人抱怨——源头在您这边。
第二个常见源头是模拟线路:普通电话通过网关适配器(ATA),或市话线路通过网关。在数字“四线”与模拟“二线”的接口处,部分信号会被反射回来;网关的回声抑制器会将其消除。
线路延迟越大,回声越明显:几乎立即返回的反射,耳朵无法分辨,而延迟返回的则听起来像重复。
在 *43 中您应该听到自己——这不是回声,而是检查本身。但如果 *43 中自己的声音返回时有明显延迟(日志中 RTT 延迟大于 300 毫秒),那么实际通话中的任何回声都会更加令人烦躁:问题出在通道上。
该怎么做#
- **确定谁听到回声。**是您——在对方那里找原因;是客人——在自己这里找。
- **来自您设备的回声:**用话筒代替免提,降低扬声器音量,更换耳机;使用免提时,电话不要靠墙或靠玻璃。根据 Yealink 文档,灵敏麦克风放置得过近也会产生回声。
- 通过网关通话时的回声(模拟电话或市话线路):检查网关中的回声抑制器是否已启用——对于 Grandstream HT,该字段为 Disable Line Echo Canceller (LEC),语音应设为 No(出厂值);如果曾调高端口增益(Rx / Tx gain),请恢复为出厂值。
- 所有外部通话通过同一运营商时出现回声,而内部通话清晰——请将通话时间发送给支持团队。
声音像“机器人”、有咕噜声、音节丢失#
为什么会这样#
声音被切成一个个小数据包,每丢失一个包,就丢失一小段音节。到达不均匀的数据包,电话会在一段时间内进行平滑处理,但如果波动太大——声音就会断续。由此产生三个数值,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。
怎么做#
- 做两次
*43:一次在空闲时段,一次在高峰时段。空闲时良好、高峰时差——信道拥挤;一直差——网络或 Wi-Fi 问题。 - 将电话用网线连接,而不是 Wi-Fi。
- 将访客 Wi-Fi 与办公网络分开,并限制其速度;将摄像头视频上传移到夜间。
- 如果路由器支持,开启电话优先级(QoS)。通话需要多少带宽——见“网络、路由器和互联网”。
- 如果无效——将日志中的数值(丢失、抖动、时间)展示给供应商:这是基于事实的沟通,而不是“你们这边听不清”。
如何判断故障在哪一方#
| 检查 | 它能区分什么 |
|---|---|
从问题话机拨打 *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。
相关章节#
- 电话不工作:按症状诊断
- SIP 电话设置 — 通话质量检查
*43,场所网络 - 电话通信的网络、路由器和互联网 — 按路由器品牌的 SIP ALG、双重 NAT、信道
- 通话中断 — 30 秒后中断同样始于 SIP ALG
- 通话日志 和 SIP 跟踪
- 模拟电话网关:Grandstream HT、Yeastar TA 和 Dinstar DAG
来源#
- 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)