reeswitch http https ws wss nginx domain default port config
2024-10-20 16:26:59
现代H5浏览器产业链越来越丰富,http+websocket+webrtc+sip组合已经是一种非常成熟的web原生音视频通讯解决方案
FreeSWITCH是一个开源的电话软交换平台,早在SIP年代就非常有名,自从支持WebSocket传输sip信令后与Web结合玩法多了许多
WebRTC提供了音视频通讯的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台,但就是没有信令协议部分
Chrome、Firefox等浏览器为了从保护用户隐私绝对安全角度考虑,纷纷提高了Web原生应用访问摄像头、麦克风的门槛:如不是用https、wss安全协议则会有各种警告及确认甚至直接拒绝
WS、WSS其实就是HTTP、HTTPS的WebSocket协议名称,其使用方式及默认端口都完全一致
综上所述,如果都用同一个域名地址承载web sip相关服务方便用户使用,就需要在nginx上做一些优雅的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen 443 ssl;
root /var/www/sip;
proxy_read_timeout 3600;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
location / {
if ($scheme = 'http') {
set $ws_port 5066;
}
if ($scheme = 'https') {
set $ws_port 7443;
}
if ($http_upgrade = 'websocket') {
proxy_pass $scheme://$server_addr:$ws_port;
}
}
}
|
其对应freeswitch相关端口配置片断如下
1
2
3
4
5
6
7
8
9
|
<!-- Internal SIP Profile -->
<X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
<!-- RTP port range -->
<param name="rtp-start-port" value="16384"/>
<param name="rtp-end-port" value="32768"/>
<!-- for sip over websocket support -->
<param name="ws-binding" value=":5066"/>
<!-- for sip over secure websocket support -->
<param name="wss-binding" value=":7443"/>
|
注:
sip和rtp端口不经nginx直连,但需要防火墙做相应的白名单
ws5066端口和wss7443端口间接通过nginx的http端口和https端口反向代理提供服务
nginx默认的http80端口和https443端口又用来提供webrtc前端相关资源访问
最新文章
- linq to entity 查询数据表是错误解决
- MySQL中distinct和group by性能比较[转]
- hadoop-spark-hive-hbase配置相关说明
- Java面试题-多线程
- SORT ORDER BY STOPKEY
- ArcGIS API for JavaScript 4.2学习笔记[13] Layer的弹窗(PopupTemplate)
- pip安装报错 解决办法
- tips:Jquery的attr和prop的区别
- socket.io不为人知的功能
- 20145320《WEB基础实践》
- 杭电多校第七场 1010 Sequence(除法分块+矩阵快速幂)
- 笔记:认识 head 标签 待 更新中……
- 再续session和cookie (网络整理)
- zsh: command not found: pip 解决方法
- URAL 1995 Illegal spices 贪心构造
- Hadoop体系结构之 HDFS
- 利用AdaBoost方法构建多个弱分类器进行分类
- Bellman_Ford算法(求一个点到任意一点的最短距离)
- 《Unity預計算即時GI》笔记:一、基本概念与一些设置
- [NEXT] 时间管理实践