freeswitch+sipml5实现wss方式的通话,亲测可用!

1.nginx支持https安装配置

本文运行环境在centeros7内网,需要在服务器上安装好nginx,可以参考百度https://blog.csdn.net/long690276759/article/details/82790002

还需要通过opensll生成证书,需要用到.key .crt ,pem文件,下面有提到。

nginx.conf文件修改

找到nginx.conf的位置,cd /usr/local/nginx/conf,修改配置文件

  # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      /home/nginx/nginx-1.10.2/ssl/nginx.crt;
        ssl_certificate_key  /home/nginx/nginx-1.10.2/ssl/nginx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }

	location /sip{
	    root /home;
	}
}

将sipml5项目放到 /home下,将文件夹改名为sip,然后访问 https://192.168.7.65/sip/call.htm,ip为自己的ip,如果可用访问那么我们的准备工作就好了,接下来就是安装freeswitch了

2.freeswitch的安装


yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release
yum install -y freeswitch-config-vanilla freeswitch-lang-* freeswitch-sounds-*
systemctl enable freeswitch
fs_cli -rRS
  • fs_cli访问socket连接失败

fs_cli是用过8021端口进行连接fs的,通过命令netstat -nlp |grep freeswitch发现8021端口并没有listen,查资料发现,需要更改/etc/freeswitch/autoload_configs/event_socket.conf.xml中
listen-ip为0.0.0.0

3.freeswitch支持https

因为 WebRTC 需要 https ,对应的 WebSocket 也要 SSL 。freeSWITCH 支持 SSL 但默认没打开。

wss 配置分两部分, 
conf/vars.xml 有两个开关,打开。类似下面:

<X-PRE-PROCESS cmd="set" data="internal_ssl_enable=true"/> 

<X-PRE-PROCESS cmd="set" data="external_ssl_enable=true"/>

conf/sip_profiles/internal.xml 中确保下面两个配置打开,一般不用改:

<!-- for sip over websocket support -->
<param name="ws-binding"  value=":5066"/>

<!-- for sip over secure websocket support -->
<!-- You need wss.pem in $${certs_dir} for wss or one will be created for you -->
<param name="wss-binding" value=":7443"/>    

SIP 服务的端口是 5060 ,WebSocket(ws)服务的端口是 5066 , wss 端口是 7443 。

我在局域网内进行测试,得做一个 ACL 配置,否则调不通。

conf/autoload_configs/acl.conf.xml 中,加入下面配置:

<list name="localnet.auto" default="allow">
</list>

然后,conf/sip_profiles/internal.xml 中加入下列配置:

<param name="apply-candidate-acl" value="rfc1918.auto"/>
<param name="apply-candidate-acl" value="localnet.auto"/>

 

最后,需要替换freeswitch下的wss.pem,必须和本地nginx的证书保持一致,可以在我的资源里下载,地址https://download.csdn.net/download/gsls200808/8697633

进入/etc/freeswitch/tls/ 将原来的文件改名,将生成的pem证书放到里面,必须保持freeswitch的和项目的证书一致!!!!

4.配置sipml

进入刚刚配置得sipml页面,点击expert mode?进行配置,截图

 

保存成功之后回到初始页面进行登录,ice servera,如果没有必须为[] !!!!

如果显示Connected,那恭喜你你离成功就差一步了,如果显示Disconnected: Failed to connet to the server 那就是你freeswitch配置错误了,或者wss地址写错了

4.下载voip软电话

常用的voip软电话有yate,xlite,sipdroid,如果想在pc端测试,安装前2个即可,如果想在安卓端测试,下载的第三个即可,有点需要注意,你手机端的音量把媒体音量开大最大。

然后手机端登录下,呼叫网页即可实现通话,反之一样。

freeswitch默认有20个账号,1000-1019,密码都是1234,都是可以拿来测试的,如果想要添加用户1020,在freeswitch的/etc/freeswitch/directory/default下面复制一份1000.xml,然后把所有1000的都改成1020,最好在是10开头,然后进入/etc/freeswitch/dialplan,找到default.xml,修改<condition field="destination_number" expression="^(10[01][0-9])$">为<condition field="destination_number" expression="^(10[0-9][0-9])$">


 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值