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

如何在JsSIP前端限制Asterisk服务器音频连接的端口范围?

如何限制JsSIP音频连接的端口范围

问题说明

你的场景是JsSIP接听来电后,会通过随机UDP端口建立音频连接,导致出现端口超出指定范围的情况,比如Asterisk日志记录的:

Asterisk日志示例:Exp:m=audio 63485 UDP/TLS/RTP/SAVPF 8 107 0 101(该端口63485超出指定范围)

解决方法

JsSIP的音频端口由底层WebRTC的RTCPeerConnection管理,通过配置JsSIP UA的rtcConfiguration参数,即可限制端口范围:

  1. 配置UA实例时指定端口范围
    在创建JsSIP UA对象时,传入rtcConfiguration配置项,其中通过portRange字段定义允许的UDP端口范围。示例代码如下:
const ua = new JsSIP.UA({
  uri: 'sip:your-account@your-sip-server.com',
  password: 'your-password',
  // 其他必要配置(如服务器地址、传输方式等)
  rtcConfiguration: {
    iceServers: [ { urls: 'stun:stun.l.google.com:19302' } ],
    // 设置允许的端口范围,根据你的需求调整min和max值
    portRange: {
      min: 50000,
      max: 60000
    },
    iceTransportPolicy: 'all' // 保持默认或根据网络环境调整为'relay'
  }
});
  1. 关键注意事项
  • 确保指定的端口范围未被系统其他进程占用,且服务器/客户端的防火墙、安全组已开放该范围的UDP端口
  • portRange参数的兼容性依赖于浏览器,主流Chrome、Firefox、Edge均已支持,旧版浏览器可能需要额外处理
  • 如果使用TLS加密音频(如日志中的UDP/TLS/RTP),需确保端口范围同时适配TLS传输的要求

配置完成后,JsSIP在建立音频连接时会自动从指定范围内选择可用端口,避免出现超出范围的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:06:19