前言
现在的浏览器都已支持webrtc,浏览器可通过webrtc直接注册sip账户到FreeSWITCH,进入实现实现拨打和接听电话。但是从安全角度来看,FreeSWITCH配置SSL证书的步骤有些复杂。如果使用nginx代理wss的方式,就可以跳过一些步骤,实现更加便捷。
关于我们
小何:18270073585 (VX同号)
nginx配置
- 修改/etc/nginx/nginx.conf配置文件:
server {
listen 443 ssl http2;
server_name _;
root /usr/share/nginx/html;
//nginx配置SSL证书的地方。
ssl_certificate "/etc/pki/nginx/www.ddcti.com.crt";
ssl_certificate_key "/etc/pki/nginx/www.ddcti.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
//wss转发的配置
location ^~ /sip {
proxy_pass http://192.168.31.213:8000/; //这里的IP修改成服务器的内网IP,端口与中间件配置的ws端口一致。
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 60s;
proxy_set_header Upgrade websocket;
proxy_set_header Connection Upgrade;
}
}
- 检查配置文件的格式是否正确,SSH控制台执行命令:
nginx -t
如果输出结果如以下所示,说明文件的格式没有问题:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
中间件修改
acl.conf配置文件修改
CCAdmin-Web->呼叫中心->配置文件设置->找到acl.conf配置文件->新增以下配置:
<list name="mylan" default="deny">
</list>
sip配置修改
CCAdmin-Web->呼叫中心->SIP设置->找到internal配置->按要求修改以下参数:
local-network-acl
:修改成mylan。ws-binding
:内网IP:ws端口。例:192.168.31.213:8000,ws端口与nginx中的转发配置的端口一致。
CCAdmin-Web->运维调试->FS终端->执行命令:
reload mod_sofia
,使sip配置生效。
分机注册
浏览器访问地址:https://www.ddrj.com/jssip/index.html,开始注册分机:
用户名
:分机号。密码
:分机密码。WSS
:域名/sip。(注意:这里的域名后面需要带sip路径)