You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asterisk SIP TLS加密异常求助:配置正常但通话抓包显示异常流量

解决Asterisk SIP TLS配置后媒体流未加密的问题

看起来你已经搞定了SIP信令的TLS加密——毕竟sip.conf重载无异常、客户端注册和拨号计划都正常,但媒体流(RTP)还在明文传输,而且Wireshark误把部分流量识别成SKYPE,这是因为你只配置了信令加密,没搞定媒体加密(SRTP),再加上客户端可能没开启对应设置,我给你一步步梳理解决:

1. 配置Asterisk的SRTP加密

TLS仅加密SIP信令,媒体流需要依赖SRTP实现加密,你需要在sip.conf里补充以下配置:

全局生效配置(所有分机适用)

在[general]段添加:

encryption=yes
srtp_enabled=yes
srtp_tag_32=yes  ; 兼容部分老版本Zoiper这类客户端

分机单独强制配置(可选)

如果要确保特定分机必须使用加密媒体流,在对应分机段也加上:

[1001]
type=friend
secret=your_password
encryption=yes

配置完成后重载SIP模块:

asterisk -rx "sip reload"

2. 拨号计划强制媒体加密协商

在extensions.conf的拨号规则里,添加Set(SIPSRTP=yes)来确保呼叫时强制触发SRTP协商:

[internal]
exten => _XXX,1,Set(SIPSRTP=yes)
same => n,Dial(SIP/${EXTEN},20,r)
same => n,Hangup()

3. 调整Zoiper客户端的媒体加密设置

这一步很容易被忽略,直接影响加密效果:

  • 打开Zoiper的账号设置面板,找到媒体加密选项,设置为强制SRTP或首选SRTP(别选“仅当服务器要求时”,部分客户端默认这个选项可能导致协商失败)
  • 确认客户端的SIP传输方式设置为TLS,而非UDP或TCP

4. 验证与排障

  • 重新注册客户端后互拨,再用Wireshark抓包:正常情况下,媒体流会显示为SRTP,而非明文的ITU-T G.711 PCMU,同时Wireshark也不会再误识别为SKYPE(误识别是因为明文RTP的特征被匹配到了SKYPE的流量规则)
  • 如果问题依旧,先检查Asterisk的SRTP模块是否加载:
    asterisk -rx "core show modules like srtp"
    
    若未看到res_srtp.so,说明编译Asterisk时未启用SRTP,需要重新编译并添加--enable-srtp参数
  • 查看Asterisk日志排查协商错误:
    tail -f /var/log/asterisk/messages
    
    搜索SRTP关键词,查看是否存在协商失败的提示信息

内容的提问来源于stack exchange,提问作者kantor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:19:04