当前位置: 首页 > news >正文

SIPJS对接FreeSWITCH强制媒体流走coturn relay地址

在使用SIPJS库对接FreeSWITCH时,发现fs在协商candidate地址时(),经常优先选择它所认为的内网地址,有时这个地址是不通的,比如,客户端携带的host candidate是10.x.y.z地址,而fs所在内网地址也是10.a.b.c,但fs的10网段和客户端的10网段如果不是同一个,这时如果fs再选择10的candidate地址进行通信,双方肯定是不通的;有时即使客户端有带relay的candidate,fs仍然会选择10的host地址。怎么强制或优先使用relay的candidate地址,查阅资料发现可以在客户端只携带relay地址,具体修改内容如下:

sip-x.y.z.js中创建RTCPeerConnection对象时,强制加上如下配置

iceTransportPolicy: 'relay'

完整内容如下:

this.peerConnection = new SIP.WebRTC.RTCPeerConnection({'iceServers': servers,iceTransportPolicy: 'relay'
}, this.RTCConstraints);

这时客户端的sdp信息如下:

recv 1869 bytes from wss/[172.18.0.1]:35212 at 17:33:23.854196:
------------------------------------------------------------------------
SIP/2.0 200 OK
Via: SIP/2.0/WSS 172.18.0.4:7443;branch=z9hG4bK1269apDa9F7Hc
To: <sip:4d88ahcf@7rcbukgvj170.invalid;transport=ws>;tag=j9vpr59n8o
From: "" <sip:0000000000@172.18.0.4>;tag=3H2N3DtjN5rjB
Call-ID: d9c97967-0cb9-123f-76ae-5290e2d4e7ca
CSeq: 104410606 INVITE
Contact: <sip:4d88ahcf@7rcbukgvj170.invalid;transport=ws>
Supported: outbound
Content-Type: application/sdp
Content-Length: 1460

v=0
o=- 8016230884204814534 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS X8EaD0KHV8ShFk8m8snYgjauBBIl3JnsL5jx
m=audio 14409 RTP/SAVPF 9 0 8 101
c=IN IP4 172.18.0.3
a=rtcp:9 IN IP4 0.0.0.0
   a=candidate:1284565503 1 udp 33562367 172.18.0.3 14409 typ relay raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=ice-ufrag:Zvcx
a=ice-pwd:fHIGe06wmI9667d2/3vjmrnQ
a=ice-options:trickle
a=fingerprint:sha-256 01:84:4D:EC:20:A1:8B:BF:A5:E9:A1:05:F1:39:17:CA:DA:0D:94:80:88:00:A1:4F:67:5D:27:9C:F9:CD:67:C8
a=setup:active
a=mid:0
a=sendrecv
a=rtcp-mux
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=ssrc:1442711766 cname:fTE6CUrcIdahtqBW
a=ssrc:1442711766 msid:X8EaD0KHV8ShFk8m8snYgjauBBIl3JnsL5jx 5da4352c-d1e5-4311-aa3e-34d89ef35e67
a=ssrc:1442711766 mslabel:X8EaD0KHV8ShFk8m8snYgjauBBIl3JnsL5jx
a=ssrc:1442711766 label:5da4352c-d1e5-4311-aa3e-34d89ef35e67
m=video 18513 RTP/SAVPF 102
c=IN IP4 172.18.0.3
a=rtcp:9 IN IP4 0.0.0.0
   a=candidate:1284565503 1 udp 33562367 172.18.0.3 18513 typ relay raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=ice-ufrag:4ja7
a=ice-pwd:xyYc1EwFSJieS6DaMW08y9FC
a=ice-options:trickle
a=fingerprint:sha-256 01:84:4D:EC:20:A1:8B:BF:A5:E9:A1:05:F1:39:17:CA:DA:0D:94:80:88:00:A1:4F:67:5D:27:9C:F9:CD:67:C8
a=setup:active
a=mid:1
a=recvonly
a=rtcp-mux
a=rtpmap:102 VP8/90000
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
------------------------------------------------------------------------


文章转载自:

http://38NfZm04.htbsk.cn
http://c5X6e2vs.htbsk.cn
http://s1KbZIev.htbsk.cn
http://hFgajklB.htbsk.cn
http://KYagVApU.htbsk.cn
http://3zzCUI8H.htbsk.cn
http://bbaDwmEh.htbsk.cn
http://OydgoulC.htbsk.cn
http://MrxCtM7Q.htbsk.cn
http://lMpuo2Or.htbsk.cn
http://apvShfTB.htbsk.cn
http://LWliFAqT.htbsk.cn
http://e9sePyWF.htbsk.cn
http://fPS9QOia.htbsk.cn
http://S02HuYJW.htbsk.cn
http://fzzTM4nQ.htbsk.cn
http://MiJR8cmG.htbsk.cn
http://QM5dJIKY.htbsk.cn
http://svOiF4oD.htbsk.cn
http://8uhwATuD.htbsk.cn
http://i5Dw2vpV.htbsk.cn
http://4XeJykEY.htbsk.cn
http://gdr8z5aM.htbsk.cn
http://RucXpD68.htbsk.cn
http://kM3bMff8.htbsk.cn
http://EpDFz3Xd.htbsk.cn
http://p7h0bpSv.htbsk.cn
http://SGm5Rabq.htbsk.cn
http://rT6YZeOY.htbsk.cn
http://GL2BHodO.htbsk.cn
http://www.dtcms.com/a/385246.html

相关文章:

  • docker registry 私服搭建教程
  • 清除gradle缓存的某个依赖
  • MCP引导Agent示例
  • 【HTTP 响应状态码】从零到实战
  • 航线系统对频模块技术要点
  • 二十、DevOps落地:Jenkins基础入门(一)
  • 计网1.1
  • DDD领域驱动设计
  • 传智播客--MySQL
  • 不同 HLA II 类等位基因(HLA-DRB1*15:02)与 cGVHD 的关联差异
  • 【AI 辅助工作工具集合】持续更新
  • 核心信息防爬虫盗取技术方案
  • Linux网络:序列化和反序列化
  • Java 代理模式-JDK动态代理
  • RabbitMQ 消息持久化与可靠性
  • 基于YOLO8的打架斗殴行为检测系统【源码+数据集+文章】
  • 电磁超声螺栓轴力检测技术:破解法兰泄露与设备安全痛点的关键方案
  • GPT-5深度解析:它真的是AGI的拂晓晨光吗?
  • (播放器开发)音频输出
  • 视频转音频在线工具大比拼,哪家体验更胜一筹?
  • 如何选择合适的工业绝缘监测仪
  • 【沉浸式解决问题】iPhone 6 登录苹果ID时一直跳出 unexpected error with certificate 或 无法登录
  • Linux系统的系统服务与DHCP服务
  • 高系分五:数据库系统
  • 高效精准的全基因组谱系贝叶斯推断方法SINGER
  • NetSuite Landed Cost到岸成本功能包
  • linux的停止自动休眠
  • 继承与组合:C++面向对象的核心
  • Java进阶教程,全面剖析Java多线程编程,多线程的实现方式,继承Thread类方式,笔记03
  • 猫头虎开源AI分享:一款CSV to Chat AI工具,上传CSV文件提问,它可以即时返回统计结果和可视化图表